CS 229 - 기계 학습


딥러닝 치트시트
Star

아프신 아미디셰르빈 아미디
Rickie Park 에 의해 번역됨

신경망

신경망(neural network)은 층(layer)으로 구성되는 모델입니다. 합성곱 신경망(convolutional neural network)과 순환 신경망(recurrent neural network)이 널리 사용되는 신경망입니다.

구조 ― 다음 그림에 신경망 구조에 관한 용어가 표현되어 있습니다:

Illustration

$i$는 네트워크의 $i$ 번째 층을 나타내고 $j$는 각 층의 $j$ 번째 은닉 유닛(hidden unit)을 지칭합니다:

\[\boxed{z_j^{[i]}={w_j^{[i]}}^Tx+b_j^{[i]}}\]

여기에서 $w$, $b$, $z$는 각각 가중치(weight), 절편(bias), 출력입니다.


활성화 함수(activation function) ― 활성화 함수는 은닉 유닛 다음에 추가하여 모델에 비선형성을 추가합니다. 다음과 같은 함수들을 자주 사용합니다:

시그모이드 하이퍼볼릭탄젠트 렐루 Leaky 렐루
$g(z)=\displaystyle\frac{1}{1+e^{-z}}$ $g(z)=\displaystyle\frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}$ $g(z)=\textrm{max}(0,z)$ $g(z)=\textrm{max}(\epsilon z,z)$
with $\epsilon\ll1$
Illustration Illustration Illustration Illustration

크로스 엔트로피(cross-entropy) 손실 ― 신경망에서 널리 사용되는 크로스 엔트로피 손실 함수 $L(z,y)$는 다음과 같이 정의합니다:

\[\boxed{L(z,y)=-\Big[y\log(z)+(1-y)\log(1-z)\Big]}\]

학습률 ― 학습률은 종종 $\alpha$ 또는 $\eta$로 표시하며 가중치 업데이트 양을 조절합니다. 학습률을 일정하게 고정하거나 적응적으로 바꿀 수도 있습니다. 적응적 학습률 방법인 Adam이 현재 가장 인기가 많습니다.


역전파(backpropagation) ― 역전파는 실제 출력과 기대 출력을 비교하여 신경망의 가중치를 업데이트하는 방법입니다. 연쇄 법칙(chain rule)으로 표현된 가중치 $w$에 대한 도함수는 다음과 같이 쓸 수 있습니다:

\[\boxed{\frac{\partial L(z,y)}{\partial w}=\frac{\partial L(z,y)}{\partial a}\times\frac{\partial a}{\partial z}\times\frac{\partial z}{\partial w}}\]

결국 가중치는 다음과 같이 업데이트됩니다:

\[\boxed{w\longleftarrow w-\alpha\frac{\partial L(z,y)}{\partial w}}\]

가중치 업데이트 ― 신경망에서 가중치는 다음 단계를 따라 업데이트됩니다:
- 1 단계: 훈련 데이터의 배치(batch)를 만듭니다.
- 2 단계: 정방향 계산을 수행하여 배치에 해당하는 손실(loss)을 얻습니다.
- 3 단계: 손실을 역전파하여 그래디언트(gradient)를 구합니다.
- 4 단계: 그래디언트를 사용해 네트워크의 가중치를 업데이트합니다.


드롭아웃(dropout) ― 드롭아웃은 신경망의 유닛을 꺼서 훈련 데이터에 과대적합(overfitting)되는 것을 막는 기법입니다. 실전에서는 확률 $p$로 유닛을 끄거나 확률 $1-p$로 유닛을 작동시킵니다.


합성곱 신경망

합성곱 층의 조건 ― 입력 크기를 $W$, 합성곱 층의 커널(kernel) 크기를 $F$, 제로 패딩(padding)을 $P$, 스트라이드(stride)를 $S$라 했을 때 필요한 뉴런의 수 $N$은 다음과 같습니다:

\[\boxed{N=\frac{W-F+2P}{S}+1}\]

배치 정규화(batch normalization) ― 하이퍼파라미터 $\gamma, \beta$로 배치 $\{x_i\}$를 정규화하는 단계입니다. 조정하려는 배치의 평균과 분산을 각각 $\mu_B, \sigma_B^2$라고 했을 때 배치 정규화는 다음과 같이 계산됩니다:

\[\boxed{x_i\longleftarrow\gamma\frac{x_i-\mu_B}{\sqrt{\sigma_B^2+\epsilon}}+\beta}\]
보통 완전 연결(fully connected)/합성곱 층과 활성화 함수 사이에 위치합니다. 배치 정규화를 적용하면 학습률을 높일 수 있고 초기화에 대한 의존도를 줄일 수 있습니다.


순환 신경망

게이트(gate) 종류 ― 전형적인 순환 신경망에서 볼 수 있는 게이트 종류는 다음과 같습니다:

입력 게이트 삭제 게이트 게이트 출력 게이트
셀 정보의 기록 여부 셀 정보의 삭제 여부 셀의 입력 조절 셀의 출력 조절

LSTM ― 장 단기 메모리(long short-term memory, LSTM) 네트워크는 삭제 게이트를 추가하여 그래디언트 소실 문제를 완화한 RNN 모델입니다.


강화 학습(reinforcement learning)

강화 학습의 목표는 주어진 환경에서 진화할 수 있는 에이전트를 학습시키는 것입니다.

정의

마르코프 결정 과정(Markov decision process) ― 마르코프 결정 과정(MDP)은 다섯 개의 요소 $(\mathcal{S},\mathcal{A},\{P_{sa}\},\gamma,R)$로 구성됩니다:
- $\mathcal{S}$는 상태(state)의 집합입니다
- $\mathcal{A}$는 행동(action)의 집합입니다
- $\{P_{sa}\}$는 상태 전이 확률(state transition probability)입니다. $s\in\mathcal{S}$, $a\in\mathcal{A}$ 입니다
- $\gamma\in[0,1[$ 할인 계수(discount factor)입니다
- $R:\mathcal{S}\times\mathcal{A}\longrightarrow\mathbb{R}$ 또는 $R:\mathcal{S}\longrightarrow\mathbb{R}$ 는 알고리즘이 최대화하려는 보상 함수(reward function)입니다


정책(policy) ― 정책 $\pi$는 상태와 행동을 매핑하는 함수 $\pi:\mathcal{S}\longrightarrow\mathcal{A}$ 입니다.

참고: 상태 $s$가 주어졌을 때 정책 $\pi$를 실행하여 행동 $a=\pi(s)$를 선택한다고 말합니다.


가치 함수(value function) ― 정책 $\pi$와 상태 $s$가 주어졌을 때 가치 함수 $V^{\pi}$를 다음과 같이 정의합니다:

\[\boxed{V^\pi(s)=E\Big[R(s_0)+\gamma R(s_1)+\gamma^2 R(s_2)+...|s_0=s,\pi\Big]}\]

벨만(Bellman) 방정식 ― 벨만 최적 방정식은 가치 함수 $V^{\pi^*}$와 최적의 정책 $\pi^*$로 표현됩니다:

\[\boxed{V^{\pi^*}(s)=R(s)+\max_{a\in\mathcal{A}}\gamma\sum_{s'\in S}P_{sa}(s')V^{\pi^*}(s')}\]

참고: 주어진 상태 $s$에 대한 최적 정책 $\pi^*$는 다음과 같이 나타냅니다:

\[\boxed{\pi^*(s)=\underset{a\in\mathcal{A}}{\textrm{argmax}}\sum_{s'\in\mathcal{S}}P_{sa}(s')V^*(s')}\]

가치 반복 알고리즘 ― 가치 반복 알고리즘은 두 단계를 가집니다:

1) 가치를 초기화합니다:

\[\boxed{V_0(s)=0}\]

2) 이전 가치를 기반으로 다음 가치를 반복합니다:

\[\boxed{V_{i+1}(s)=R(s)+\max_{a\in\mathcal{A}}\left[\sum_{s'\in\mathcal{S}}\gamma P_{sa}(s')V_i(s')\right]}\]

최대 가능도 추정 ― 상태 전이 함수를 위한 최대 가능도(maximum likelihood) 추정은 다음과 같습니다:

\[\boxed{P_{sa}(s')=\frac{\#\textrm{times took action }a\textrm{ in state }s\textrm{ and got to }s'}{\#\textrm{times took action }a\textrm{ in state }s}}\]

$Q$-러닝(learning) ― $Q$-러닝은 다음과 같은 $Q$의 모델-프리(model-free) 추정입니다:

\[\boxed{Q(s,a)\leftarrow Q(s,a)+\alpha\Big[R(s,a,s')+\gamma\max_{a'}Q(s',a')-Q(s,a)\Big]}\]