본문 바로가기
Computer Science/기계학습

[Recurrent neural network]

by 큌 2024. 6. 18.
반응형

모델링 시퀀스 데이터

시퀀스 데이터 소개

• 일반적인 ML 알고리즘은 독립적이고 동일하게 분산된(i.i.d) 데이터를 가정합니다

• 순차적 데이터로

– 샘플이 독립적이지 않습니다

– 발주사항

• 응용 프로그램

– 시퀀스 기반 예측

– 시계열 예측

– 자연어 처리(NLP)

과제들

• 네트워크 아키텍처를 모델 p("hey Jude"| )로 정의하는 방법?

• 예를 들어, 입력 문장의 길이는 가변적일 수 있습니다

• 표준 신경망은 고정된 입력 크기의 데이터만 처리할 수 있습니다

• 과거 정보를 기억하고 미래 예측에 사용하는 방법은 무엇입니까?

순환신경망

• (길이가 가변적인) 시퀀스 모델링을 위해 설계되었으며 과거 정보를 기억할 수 있습니다 핵심 아이디어: 동일한 가중치를 반복 적용 순환신경망 아키텍처

예: 서열분류

• 입력 데이터로 5일 동안 3개의 형상(길이 T=5의 시퀀스 데이터)을 관측했다고 가정합니다

RNN: 입력 인코딩

- 벡터 표현에 대한 입력 시퀀스

-시간이 지남에 따라 동일한 파라미터(W, U, b)가 공유됨 RNN: 숨김 상태에서 출력으로

• 전체 시퀀스가 인코딩되면(마지막 숨겨진 상태로), 인코딩(hT, 마지막 숨겨진 상태 또는 잠재 표현)을 출력에 매핑하는 간단한 분류기(또는 회귀기, FC 레이어)를 넣습니다

RNN의 출력

• RNN 입력은 시퀀스입니다

• 순환 레이어는 시퀀스를 출력으로 반환하거나, 단순히 마지막 출력을 반환할 수 있습니다(t=T, ) RNN 아키텍처

• 우리는 매 단계마다 반복 공식을 적용하여 벡터 x의 수열을 처리할 수 있습니다: 참고: 매 단계마다 동일한 기능과 동일한 매개 변수 세트가 사용됩니다 입력 표현: 임베딩 레이어

각 범주형 입력(예: 단어(또는 토큰)을 텍스트 시퀀스로 표현하는 방법

• One-hot 인코딩(w.r.t. dictionary): 매우 고차원적이고 희소한 벡터 • 또는 임베딩 레이어로 훈련

– one-hot 벡터를 임베딩 레이어를 통해 조밀 벡터로 변환 트레이닝 RNN

• 기본 순환 네트워크는 또한 스킵 연결 및 공유 가중치가 있는 표준 신경망의 특별한 경우입니다 • 따라서 표준 역전파를 사용할 수 있습니다

• 시간에 따른 역전파(BPTT)

RNN은 훈련하기가 어렵습니다

• RNN 기반 네트워크는 동일한 용어의 곱셈 때문에 항상 학습하기 쉽지 않습니다 • 소실 기울기 문제|W|< 1

• 폭발 구배 문제|W| >> 1

구배 폭발/사라짐 문제

• 역전파 중:

 tanh'는 거의 항상 <1

 사라지는 기울기

동항의 곱셈으로 인하여(்ିଵ)

|W| < 1  소실 구배인 경우 |W| >> 1  폭발 구배의 경우 RNN의 경우 입력 시퀀스 길이가 깊이와 같은 역할을 합니다!

그래디언트 클리핑

• 폭발적으로 증가하는 그라디언트를 처리하는 방법 – 각 그라데이션은 어느 정도 최대값으로 클리핑됩니다 – 각 치수는 기울기 방향을 유지하기 위해 비례적으로 축척되어야 합니다 실측치

• 폭발적인 그래디언트

– 클립 그라데이션 임계값

– 잘린 BPTT

– 학습률 조정

• 소실 구배(검출이 더 어려워짐)

– 활성화로 ReLU(기본값은 tanh) – LSTM, GRU

장기 단기 메모리 셀

• 바닐라 RNN은 단기 기억력으로 고통을 받습니다

• 사라지는 기울기 문제를 극복하기 위해 도입된 LSTM

• LSTM의 빌딩 블록은 메모리 셀로서, 표준 RNN의 숨겨진 레이어를 대체합니다

• 3종류의 게이트를 사용합니다

게이팅 메커니즘

• 게이트 도입

– A 벡터

– 각 요소는 0에서 1 사이입니다

– 1이면 정보가 완전히 유지됩니다. 0이면 정보가 플러시됩니다

– 뉴럴 네트워크에서 학습하기

– Sigmoid는 직관적인 선택입니다

LSTM의 3개 게이트

1) 게이트 잊기(ft)

– 메모리 셀이 셀 상태를 재설정할 수 있도록 합니다

– 통과할 수 있는 정보를 결정합니다

2) 입력게이트(it)

– 셀 상태 업데이트 담당

3) 출력 게이트(ot)

– 숨겨진 단위의 값을 업데이트하는 방법을 결정합니다

장기 단기 기억

• 우리가 잊기로 한 것들을 잊어버리고 옛 상태에 ft를 곱합니다

• 그런 다음 각 상태 값을 업데이트하기로 결정한 정도에 따라 조정된 새로운 후보 값인 ∗ gt를 추가합니다.

LSTM은 사라지는 그라디언트를 어떻게 해결합니까?

• LSTM 아키텍처를 사용하면 RNN이 여러 시간 단계에 걸쳐 정보를 더 쉽게 보존할 수 있습니다

• LSTM이 사라지거나 폭발하는 기울기가 없다는 것을 보장하지는 않지만 모델이 장거리 종속성을 더 쉽게 학습할 수 있는 방법을 제공합니다

게이트 반복 단위(GRU)

• LSTM은 좋지만 중복된 것 같습니다

– 문이 그렇게 많이 필요합니까?

– 기억하기 위해 숨겨진 상태와 셀 메모리가 필요합니까?

• 게이트 순환 단위(GRU, 2014)

– LSTM보다 단순한 아키텍처

– 두 개의 게이트, 소위 업데이트 게이트를 사용합니다

리셋 게이트

– 셀 상태와 숨겨진 상태를 병합합니다

 LSTM보다 적은 파라미터로 더 빠르게 훈련할 수 있습니다

LSTM vs GRU

• 연구자들은 많은 게이트 RNN 변형을 제안했지만 LSTM과 GRU가 가장 널리 사용됩니다

• LSTM은 올바른 기본 선택입니다. 속도와 적은 파라미터를 위해 GRU로 전환합니다

양방향 LSTM(또는 GRU)

• 각 입력 시퀀스에 대해 순방향 패스와 역방향 패스의 두 가지 패스를 합니다

– 결과는 기본적으로 연결됩니다

– 'sum', 'mul', 'ave' 또는 'none'을 사용할 수 있습니다

심층(다계층) RNN

깊이가 있는 경우 건너뛰기/dense 연결이 필요할 수 있습니다

RNN: 요약

• RNN은 시퀀스 데이터를 처리하는 데는 좋지만 단기 메모리로 인해 어려움을 겪습니다

• LSTM과 GRU는 게이팅 메커니즘을 사용하여 단기 기억을 완화합니다 – 게이트는 시퀀스 체인을 통해 흐르는 정보의 흐름을 조절하는 신경망일 뿐입니다. – LSTM은 강력하지만 GRU는 더 빠릅니다

• 그래디언트를 잘라내고 가능하면 양방향성을 사용합니다 • 다중 계층 RNN은 강력하지만 심층적인 경우 건너뛰기/밀도 연결이 필요할 수 있습니다

주의 기반 RNN

RNN 인코더-디코더

• seq2seq 예측문제에 대한 end-to-end 모델

• 인코더는 디코더에 입력으로 전달되는 단일 출력 벡터 c(context 벡터)를 출력합니다(예: 마지막 인코더 히든 상태 c=hT) • 디코더는 이(단일) 컨텍스트 벡터에서 정보를 해독합니다 주의 메커니즘

• 주의 메커니즘은 디코더에서 예측을 수행하기 위해 인코더 시퀀스에서 숨겨진 모든 상태를 확인하는 데 도움이 되며 컨텍스트 벡터 ct가 t에 따라 달라지도록 합니다

• 어떤 주가 더 유용합니까?

– 신경망을 사용하여 어떤 숨겨진 인코더 상태에 "참석"하고 얼마나 많이 "학습"할 것인지(데이터에서 j에서 주의 가중치 학습) 주의 열 지도

예: 기계번역

• x축 및 y축은 각각 소스 문장(영어) 및 생성된 번역(프랑스어)의 단어에 해당합니다 • 각 픽셀은 t번째 대상 단어에 대한 j번째 소스 단어의 무게 atj를 표시합니다

주의 기반 RNN: 요약

• seq2seq 문제에 유용합니다

• 입력 또는 출력 시퀀스에서의 거리에 관계없이 종속성 모델링 허용 • 제한사항

– 장거리 종속성을 다루는 것은 여전히 어려운 일입니다

– 병렬화하기 어렵습니다

실세계 성공

• 2013-2015년부터 LSTM은 최첨단 성과를 내기 시작했습니다 • 트랜스포머가 더 지배적이 되었습니다

– 예를 들어, WMT(MT Conference + Competition)의 경우: – WMT 2016에서는 요약 보고서에 "RNN"이 44번 포함되어 있습니다 – WMT 2018에서 보고서에는 "RNN" 9회, "Transformer" 63회가 포함되어 있습니다 – WMT 2019에서 "RNN" 7회, "Transformer" 105회 • 이제 트랜스포머가 모든 커뮤니티를 장악하고 있습니다

반응형

'Computer Science > 기계학습' 카테고리의 다른 글

[Unsupervised learning] 1  (0) 2024.06.18
[Transformer] 1  (0) 2024.06.18
[Convolutional neural network] 2  (0) 2024.06.18
[Convolutional neural network] 1  (0) 2024.06.18
CNN  (0) 2024.05.27