문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 인공신경망 (문단 편집) ===== 순환 신경망(Recurrent Neural Network, RNN) ===== 뉴런의 출력이 다시 입력으로 feedback되는 재귀적인 연결 구조를 갖는 신경망. 다층 퍼셉트론 신경망은 입력이 출력 방향으로만 활성화되고 은닉 뉴런이 과거의 정보를 기억하지 못한다는 단점이 있다. 이러면 입력이 들어온 문맥을 기억할 수 없다. 이런 단점은 [[시계열분석]][* 시간에 따라 연속성을 지니는 문제. 텍스트 역시 연속된 문장과 단어로 구성되어 있기 때문에 RNN으로 잘 풀린다.] 관련 문제에서 매우 해롭다. RNN은 이런 단점을 해결했다. 앞에서 무슨 단어가 나왔는지의 문맥이 다음에 나올 단어를 예측(prediction)하는 문제를 푸는 데 유용하다. 이런 문제에는 음성 인식, 필기체 인식, 텍스처 인식이 있다. 또 분류에도 유용하다. [[언어모델]]은 [[말뭉치]]를 이용한 [[기계 번역]]에 도움이 되었다. 기존의 DNN(Deep Neural Networks)의 경우 각 layer마다 parameter들이 독립적이었으나, RNN은 이를 공유하고 있다. 따라서 현재의 출력 결과는 이전 time step의 결과에 영향을 받으며, hidden layer는 일종의 메모리 역할을 하게 된다. RNN의 기본적 작동원리는 h,,t,, = g,,1,, ( x,,t,,U + W,,h(t-1),, + b,,x,,), o,,t,, = g,,2,, (V,,h(t),,+b,,h,,) 이다. g,,1,, g,,2,, : 비선형 활성화 함수 (Sigmoid, tanh 등) x,,t,,: 입력값 h,,t,,: t(시간)단계의 은닉변수 (hidden state) o,,t,,: t(시간)단계의 출력값 b: 편향 (bias) UVW: x,,t,, h,,t,, h,,t-1,,의 가중치 (weight) 위 식에서 입력 X = (x,,1,, , x,,2,, , x,,3,, , ... , x,,n,,)이 입력되면 o,,t,,가 출력된다. 변종으로 Bi-directional RNN이 있다. 이 모델은 과거 및 미래 상태도 반영한다. 언어 모델링을 할 때 앞뒤 단어를 모두 고려하게 되므로 정확성이 높아진다. 하지만 학습이 오랫동안 진행지면서 초기 학습이 잊혀질 단점이 있다. 하지만 전통적인 RNN 모형 및 Bi-directional RNN의 경우 Vanishing gradient problem을 지닌다. [* networks의 weight가 업데이트 되는 과정에서 gradient(weight에 대한 일종의 업데이트 비율)가 1보다 작은 값이 계속 곱해지면서 gradient가 사라지는 현상. 따라서, 먼 과거의 상태는 현재의 학습에 아무런 영향을 미치지 못하게 됨] 이 해결책으로 제시되고 있는 것이 다음 알고리즘들이다. * LSTM * elman NN: RNN에 context layer가 추가되어 있어 vanishing gradient problem을 어느 정도 해결했다. context layer는 hidden layer에서 나온 결과 중 기억하고 싶은 부분을 저장해 두었다가 필요할 때 꺼내올 수 있는 피드백 신호 역할을 한다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기