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]}\]