MLM블로그 Crash Course in Recurrent Neural Networks for Deep Learning-2
Crash Course in Recurrent Neural Networks for Deep Learning - MachineLearningMastery.com
RNN 순환 신경망
1.어떻게 RNN을 훈련시키는지
순전파 네트워크를 기본적인 방법은 오류를 역전파하고 네트워크 가중치를 업데이트하는 것이다.
역전파는 rnn네트워크에서 고장난다. 왜냐하면 재발되거나 루프 커넥션 때문이다.
이것은 시간에 따른 역전파 혹은 BPTT로 불리는 역전파의 기술을 수정함으로써 해결된다.
반복 네트워크에서 역전파를 수행하는 대신에, 이 네트워크 구조는 펼쳐저 있다, 반복적으로 연결된 뉴런의 복사가 생성된디. 예를 들어서, 하나의 단일 뉴런은 2개의 같은 가중치를 가진 뉴런으로 나타낼 수 있다. 이것은 전통적인 순전파 네트워크같은 비순환 그래프가 순환 신경망의 비순환 그래프로 바뀌는 것을 허락한다. 그리고 역전파가 적용될 수 있다.
2.훈련중 안정적으로 기울기를 가지는 방법
역전파는 매우 깊은 신경망과 펼쳐진 순환신경망에서 사용될때, 그 기울기는 가중치가 불안정하게 되어 계산된다.
그들은 폭발적인 기울기 혹은 기울기 소멸 문제라는 매우 작은 숫자를 가질 수도 있다. 이 큰 숫자들은, 네트워크에서 가중치를 업데이트 할때 훈련을 불안정하게 만들며 네트워크를 의지할 수 없게 만든다. This problem is alleviated in deep multilayer perceptron networks through the use of the rectifier transfer function and even more exotic but now less popular approaches of using unsupervised pre-training of layers.
순환신경망 구조안에서, 이 문제는 경감시키고 있다, RNN 네트워크중 LSTM이라고 불리는 네트워크를 훈련시켜서.
3.장단기 메모리 네트워크
LSTM은 순환신경망이며 이것은 시간을 통한 역전파를 사용한다. 그리고 기울기 소멸 문제를 해결한다.
이와 같이, 거대한 순환 네트워크를 생성하는데 사용된다, 그리고 머신러닝과 최첨단 결과에서 어려운 재발 시퀀스문제에서도 사용된다.
뉴런 대신에, LSTM네트워크는 층마다 메모리 블럭을 가지고 있다.
블럭은 최근 시퀀스를 기억하기 위해서 전통적인 뉴런보다 더 스마트하게 구성된다. 한 블럭은 게이트를 포함하는 대 이 게이트는 블럭의 상태와 출력을 관리한다. 한 시퀀스에 대해서 하나의 유닛이 작동한다, 이와같은 게이트 활성화 함수로 시그모이드 함수를 사용하며 트리거로 할지 안할지 제어한다, 현재 상태를 바꾸거나 정보 추가를 하기 위해서.
여기에는 3가지 타입의 메모리 유닛이 있다.
- 망각 게이트:유닛에서 조건적으로 정보를 버릴지 결정
- 입력 게이트:입력값에서 메모리 상태를 업데이트할 값을 조건적으로 결정한다.
- 출력 게이트:조건적으로 입력과 기억장치에 출력할 것을 결정한다.
각 유닛들은 미니 상태 기계와 같다, 각 게이트에 있는 가중치를 가지고 유닛들이, 훈련 진행중에.
LSTM에서 정교한 학습과 메모리를 달성하는 것을 볼 수 있고 이것은 어렵지않다. 어떻게 높은 추상화를 다층으로 계층화하는 것을.