CS 230 - 딥 러닝

순환 신경망 치트시트
Star

아프신 아미디셰르빈 아미디


Wooil Jeong에 의해 번역됨

개요

전통적인 RNN의 아키텍처 RNNs이라고 알려진 순환 신경망은 이전의 출력을 은닉층에서 입력으로 사용하게 하는 신경망의 한 종류입니다. 이는 일반적으로 다음과 같습니다:


각 시점 $t$에 대해 활성화 $a^{< t >}$와 출력 $y^{< t >}$는 다음과 같이 표현됩니다.

\[\boxed{a^{< t >}=g_1(W_{aa}a^{< t-1 >}+W_{ax}x^{< t >}+b_a)}\quad\textrm{와}\quad\boxed{y^{< t >}=g_2(W_{ya}a^{< t >}+b_y)}\]
여기서 $W_{ax}, W_{aa}, W_{ya}, b_a, b_y$는 시간적으로 공유되는 계수이고, $g_1, g_2$는 활성화 함수입니다.

일반적인 RNN 아키텍처의 장단점은 아래 표에 요약되어 있습니다:

장점 단점
• 모든 길이의 입력을 처리할 수 있는 가능성
• 입력 크기에 따라 모델 크기가 증가하지 않음
• 계산 시 이력 정보가 고려됨
• 시간에 따라 가중치가 공유됨
• 계산 속도가 느림
• 오래 전 정보에 대한 접근이 어려움
• 현재 상태에 대한 향후 입력을 고려할 수 없음

RNN의 응용 RNN 모델은 자연어 처리 및 음성 인식 분야에서 주로 사용됩니다. 다양한 응용 프로그램이 아래표에 요약되어 있습니다:

RNN의 유형 일러스트레이션 예제
일-대-일
$T_x=T_y=1$
전통적인 신경망
일-대-다
$T_x=1, T_y>1$
음악 생성
다-대-일
$T_x>1, T_y=1$
감성 분류
다-대-다
$T_x=T_y$
이름 엔터티 인식
다-대-다
$T_x\neq T_y$
기계 번역

손실 함수 순환 신경망의 경우, 모든 시점의 손실 함수 $\mathcal{L}$은 다음과 같이 매 시점의 손실을 기준으로 정의됩니다:

\[\boxed{\mathcal{L}(\widehat{y},y)=\sum_{t=1}^{T_y}\mathcal{L}(\widehat{y}^{< t >},y^{< t >})}\]

시간에 따른 역전파 역전파는 각 시점에 수행됩니다. $T$시점에서, 가중치 행렬 $W$에 대한 손실 $\mathcal{L}$의 도함수는 다음과 같이 표현됩니다:

\[\boxed{\frac{\partial \mathcal{L}^{(T)}}{\partial W}=\sum_{t=1}^T\left.\frac{\partial\mathcal{L}^{(T)}}{\partial W}\right|_{(t)}}\]

장기 의존성 처리

일반적으로 사용되는 활성화 함수 RNN 모듈에서 사용되는 가장 일반적인 활성화 함수는 다음과 같습니다:

시그모이드 하이퍼볼릭탄젠트 렐루
$\displaystyle g(z)=\frac{1}{1+e^{-z}}$ $\displaystyle g(z)=\frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}$ $\displaystyle g(z)=\max(0,z)$
Sigmoid Tanh RELU

그래디언트 소실/폭발 그래디언트가 소실되거나 폭발하는 현상은 RNNs에서 종종 발생합니다. 이와 같은 현상들이 발생하는 이유는 층의 수에 따라 기하 급수적으로 감소하거나 증가할 수 있는 곱셈 그래디언트로 인해 장기 종속성을 포착하기가 어렵기 때문입니다.


그래디언트 클리핑 역전파를 수행할 때 종종 마주치는 그래디언트 폭발 문제를 처리하기 위한 테크닉입니다. 그래디언트의 최대값을 캡핑하면 이 현상이 실제로 제어가 됩니다.


게이트 유형 그래디언트 소실 문제를 해결하기 위해 특정 게이트가 일부 유형의 RNN에서 사용되고 일반적으로 잘 정의된 목적을 가지고 있습니다. 보통 $\Gamma$로 표시되며 다음과 같습니다:

\[\boxed{\Gamma=\sigma(Wx^{< t >}+Ua^{< t-1 >}+b)}\]

여기서 $W, U, b$는 게이트에 고유한 계수이고 $\sigma$는 시그모이드 함수입니다. 주요 내용은 아래 표에 요약되어 있습니다:

게이트 유형 역할 사용
업데이트 게이트 $\Gamma_u$ 과거가 현재 얼마나 중요한가? GRU, LSTM
관련도 게이트 $\Gamma_r$ 이전 정보를 버릴 것인가? GRU, LSTM
게이트 망각 $\Gamma_f$ 셀을 지울 것인가 말 것인가? LSTM
게이트 출력 $\Gamma_o$ 셀을 얼만큼 공개할 것인가? LSTM

GRU/LSTM Gated Recurrent Unit (GRU) 및 Long Short-Term Memory units (LSTM)은 전통적인 RNN에서 발생하는 그래디언트 소실 문제를 처리합니다. LSTM은 GRU의 일반화된 형태입니다. 다음은 각 아키텍처의 특성화 방정식을 요약 한 표입니다.

특성화 Gated Recurrent Unit (GRU) Long Short-Term Memory (LSTM)
$\tilde{c}^{< t >}$ $\textrm{tanh}(W_c[\Gamma_r\star a^{< t-1 >},x^{< t >}]+b_c)$ $\textrm{tanh}(W_c[\Gamma_r\star a^{< t-1 >},x^{< t >}]+b_c)$
$c^{< t >}$ $\Gamma_u\star\tilde{c}^{< t >}+(1-\Gamma_u)\star c^{< t-1 >}$ $\Gamma_u\star\tilde{c}^{< t >}+\Gamma_f\star c^{< t-1 >}$
$a^{< t >}$ $c^{< t >}$ $\Gamma_o\star c^{< t >}$
종속성

비고: $\star$ 기호는 두 벡터 사이의 원소 단위의 곱셈을 나타냅니다.


RNN의 변형 아래 표는 일반적으로 사용되는 다른 RNN 아키텍처를 요약한 것입니다:

양방향 (BRNN) 심층 (DRNN)

단어 표현 학습

이 절에서, 우리는 어휘는 $V$, 차수는 $|V|$로 표기합니다.

동기 부여 및 표기법

표현 기법 단어를 표현하는 두 가지 주요 방법이 아래 표에 요약되어 있습니다:

원-핫 표현 단어 임베딩
• $o_w$ 표기
• 나이브 접근법, 유사도 정보 없음
• $e_w$ 표기
• 단어 유사도 고려

임베딩 매트릭스 주어진 단어 $w$에 대해 임베딩 매트릭스 $E$는 다음과 같이 임베디드 $e_w$에 원-핫 표시를 매핑하는 매트릭스입니다:

\[\boxed{e_w=Eo_w}\]

비고: 임베딩 매트릭스 학습은 목표/상황 가능도 모델을 사용하여 수행 할 수 있습니다.


단어 임베딩

Word2vec Word2vec는 주어진 단어가 다른 단어로 둘러싸여 있을 가능성을 추정하여 단어 임베딩 학습을 목표로 하는 프레임워크입니다. 인기있는 모델에는 스킵-그램(skip-gram), 네거티브 샘플링(negative sampling) 그리고 CBOW가 있습니다.



스킵그램(Skip-gram) 스킵그램 word2vec 모델은 주어진 타겟 단어가 문맥 단어 $c$와 함께 발생할 확률을 평가하여 단어 임베딩을 학습하는 지도 학습 업무입니다. $\theta_t$에 $t$와 연관된 파라미터를 표시함으로써, 확률 $P(t|c)$는 다음과 같습니다.

\[\boxed{P(t|c)=\frac{\exp(\theta_t^Te_c)}{\displaystyle\sum_{j=1}^{|V|}\exp(\theta_j^Te_c)}}\]

비고: 소프트맥스(softmax) 부분의 분모에서 전체 어휘를 합산하면 이 모델이 계산 상으로 비용이 많아들게 됩니다. CBOW는 주변 단어를 사용하여 주어진 단어를 예측하는 또 다른 word2vec 모델입니다.


네거티브 샘플링 주어진 문맥과 타겟 단어가 $k$개의 음의 사례와 1개의 양의 사례에 대해 학습된 모델을 사용하여 평가하는 것을 목표로하는 로지스틱 회귀를 사용한 이진 분류기입니다. 문맥 단어 $c$와 타겟 단어 $t$가 주어지면, 예측은 다음과 같이 표현됩니다.

\[\boxed{P(y=1|c,t)=\sigma(\theta_t^Te_c)}\]

비고: 이 방법은 스킵그램 모델보다 계산 부담이 적습니다.


글로브 글로브:

\[\boxed{J(\theta)=\frac{1}{2}\sum_{i,j=1}^{|V|}f(X_{ij})(\theta_i^Te_j+b_i+b_j'-\log(X_{ij}))^2}\]

여기서 $f$는 $X_{i,j}=0\Longrightarrow f(X_{i,j})=0$이 되는 가중 함수입니다. 이 모델에서 $e$와 $\theta$가 대칭이라는 것을 감안할 때, $e_w^{(\textrm{final})}$ 포함하는 최종 단어는 다음과 같이 주어집니다.

\[\boxed{e_w^{(\textrm{final})}=\frac{e_w+\theta_w}{2}}\]

비고: 학습된 단어 삽입의 개별 구성 요소가 반드시 해석될 필요는 없습니다.


단어 비교하기

코사인 유사성 단어 $w_1$과 $w_2$ 사이의 코사인 유사도는 다음과 같이 표현됩니다:

\[\boxed{\textrm{similarity}=\frac{w_1\cdot w_2}{||w_1||\textrm{ }||w_2||}=\cos(\theta)}\]

비고: $\theta$는 단어 $w_1$과 $w_2$ 사이의 각도입니다.


$t$-SNE $t$-SNE ($t$-분포 확률적 임베딩)는 고차원적 임베딩을 저차원 공간으로 축소시키는 것을 목표로 하는 기술입니다. 실제로 2D 공간에서 단어 벡터를 시각화하는 데 일반적으로 사용됩니다.


언어 모델

개요 언어 모델은 문장 $P(y)$의 확률을 추정하는 것을 목표로 합니다.


$n$-그램($n$-gram) 모델 이 모델은 학습 데이터의 표현 수를 계산하여 표현식이 말뭉치(corpus)에 표시될 확률을 정량화하는 것을 목표로하는 나이브(naive)한 접근 방식입니다.


퍼플렉시티(Perplexity) 언어 모델은 일반적으로 PP로도 알려진 퍼플렉시티 측도(Perplexity metric)를 사용하여 평가되며, 단어의 수로 정규화된 데이터 세트의 역 확률로 해석될 수 있습니다. 퍼플렉시티는 낮은 것이 좋으며 다음과 같이 정의됩니다:

\[\boxed{\textrm{PP}=\prod_{t=1}^T\left(\frac{1}{\sum_{j=1}^{|V|}y_j^{(t)}\cdot \widehat{y}_j^{(t)}}\right)^{\frac{1}{T}}}\]

비고: PP는 $t$-SNE에서 일반적으로 사용됩니다.


기계 번역

개요 기계 번역 모델은 앞선 인코더 네트워크를 제외하고는 언어 모델과 유사합니다. 이러한 이유로 조건적 언어 모델이라고도 합니다.

목표는 다음과 같은 문장 $y$를 찾는 것입니다:

\[\boxed{y=\underset{y^{< 1 >}, ..., y^{< T_y >}}{\textrm{arg max}}P(y^{< 1 >},...,y^{< T_y >}|x)}\]

빔 탐색(Beam search) 기계 번역 및 음성 인식에서 입력 $x$가 주어진 가능성있는 문장 $y$를 찾는 데 사용되는 휴리스틱 검색 알고리즘입니다.

• 1단계: 상위 $B$개의 가능성 있는 단어 $y^{< 1 >}$찾기
• 2단계: 조건부 확률 $y^{< k >}|x,y^{< 1 >},...,y^{< k-1 >}$계산
• 3단계: 상위 $B$ 조합 유지 $x,y^{< 1>},...,y^{< k >}$, 정지 단어에서 종료 처리



비고: 빔 너비(Beam width)가 1로 설정되면 이는 나이브 그리디(Naive greedy) 탐색과 같습니다.


빔 너비(Beam width) 빔 너비 $B$는 빔 탐색을 위한 파라미터입니다. $B$의 값이 클수록 성능은 향상되지만 메모리는 증가합니다. $B$값이 작으면 결과는 나쁘지만 계산 집약은 적습니다. $B$에 대한 표준값은 약 10입니다.


길이 정규화(Length normalization) 수치 안정성을 향상시키기 위해 빔 탐색은 대개 다음과 같이 정의되는 정규화된 로그 가능도 객체라고 하는 정규화된 객체에 적용됩니다:

\[\boxed{\textrm{Objective } = \frac{1}{T_y^\alpha}\sum_{t=1}^{T_y}\log\Big[p(y^{< t >}|x,y^{< 1 >}, ..., y^{< t-1 >})\Big]}\]

비고: 파라미터 $\alpha$는 연화제로 볼 수 있으며 그 값은 일반적으로 0.5와 1 사이 입니다.


오류 분석 예측된 변환 $\widehat{y}$를 얻을 때 다음과 같은 오류 분석을 수행하여 왜 $y^*$가 좋은 변환을 얻지 못했는지 궁금해 할 수 있습니다:

원인 $P(y^*|x)>P(\widehat{y}|x)$ $P(y^*|x)\leqslant P(\widehat{y}|x)$
근본 원인 빔 탐색 오류 RNN 오류
해결 방안 빔 너비 증가 • 다른 아키텍처 시도
• 정규화
• 더 많은 데이터 얻기

블루 점수(Bleu score) 이중 언어 평가 (bleu) 점수는 $n$-그램($n$-gram) 정밀도에 따라 유사성 점수를 계산하여 기계 번역이 얼마나 좋은지를 정량화합니다. 그것은 다음과 같이 정의됩니다:

\[\boxed{\textrm{bleu score}=\exp\left(\frac{1}{n}\sum_{k=1}^np_k\right)}\]
여기서 $p_n$은 다음과 같이 정의된 $n$-그램($n$-gram)의 블루 점수입니다:
\[p_n=\frac{\displaystyle\sum_{\textrm{n-gram}\in\widehat{y}}\textrm{count}_{\textrm{clip}}(\textrm{n-gram})}{\displaystyle\sum_{\textrm{n-gram}\in\widehat{y}}\textrm{count}(\textrm{n-gram})}\]

비고: 인위적으로 팽창된 블루 점수를 방지하기 위해 짧은 예측 번역에 간결 패널티를 적용할 수 있습니다.


주의

주의 모델 이 모델을 사용하면 RNN이 중요한 것으로 간주되는 입력의 특정 부분에 주의를 기울이게 되므로 실제 결과 모델의 성능이 향상됩니다. 시간 t에서의 문맥 활성화 및 출력에 대해 출력 $y^{< t >}$가 지불해야하는 관심의 양을 $\alpha^{< t, t'>}$로 표기함으로써, 다음을 얻습니다:

\[\boxed{c^{< t >}=\sum_{t'}\alpha^{< t, t' >}a^{< t' >}}\quad\textrm{와}\quad\sum_{t'}\alpha^{< t,t' >}=1\]

비고: 주의 점수는 일반적으로 이미지 캡션 작성 및 기계 번역에 사용됩니다.



주의 가중치 출력 $y^{< t >}$가 활성화 $a^{< t' >}$에 지불해야하는 관심의 양은 다음과 같이 계산된 $\alpha^{< t,t' >}$에 의해 주어집니다:

\[\boxed{\alpha^{< t,t' >}=\frac{\exp(e^{< t,t' >})}{\displaystyle\sum_{t''=1}^{T_x}\exp(e^{< t,t'' >})}}\]

비고: 계산 복잡도는 $T_x$에 대해 2차 입니다.