순환 신경망: 두 판 사이의 차이

38 바이트 추가됨 ,  1년 전
잔글
봇: 틀 이름 및 스타일 정리
잔글 (봇: 틀 이름 및 스타일 정리)
 
=== 완전순환(Fully recurrent) ===
[[File파일:Recurrent_neural_network_unfold.svg|링크=https://en.wikipedia.org/wiki/File:Recurrent_neural_network_unfold.svg|섬네일|기초적인 순환 신경망의 구조]]
RNN은 [[인공 뉴런|뉴런과 유사한]] 노드들이 이룬 레이어가 연속되어있는 구조를 가진다. 각각의 노드들은 다음 단계의 모든 레이어들과 [[유향 그래프|단방향 그래프]]를 이루며, 시간에 따라 달라지는 실숫값의 활성화(activation)값을 가진다. 또한 각 노드들 간 연결관계는 실숫값의 [[가중치]]를 가지며 이 값은 끊임없이 바뀐다. 노드의 종류로는 신경망 외부로부터 값을 입력받는 입력 노드, 결괏값을 산출하는 출력 노드, 입력 노드에서 출력 노드 사이에 존재하는 은닉 노드가 있다.
 
 
=== 단순 순환망 ===
[[File파일:Elman_srnn.png|링크=https://en.wikipedia.org/wiki/File:Elman_srnn.png|대체글=|섬네일|엘만 신경망의 구조도. 세 개의 레이어가 x, y, z로, 문맥 유닛이 u로 표시되어 있다.]]
엘만 신경망과 조르단 신경망을 단순 순환망(Simple recurrent network, SRN)이라 부른다.
 
조르단 신경망은 엘만 신경망과 비슷하나, 문맥 유닛이 은닉 레이어가 아닌 출력 레이어로부터 값을 받는다는 차이점이 있다. 이 경우 문맥 유닛은 상태 레이어라고 불리며, 그 내부에서도 순환망을 가진다.<ref name="bmm615" />
 
; 엘만 신경망<ref>{{cite저널 journal인용|title=Finding Structure in Time|journal=Cognitive Science|last=Elman|first=Jeffrey L.|year=1990|volume=14|issue=2|pages=179–211|doi=10.1016/0364-0213(90)90002-E}}</ref>
: <math>
\begin{align}
\end{align}
</math>
; 조르단 신경망<ref>{{Cite서적 book인용|title=Neural-Network Models of Cognition - Biobehavioral Foundations|last=Jordan|first=Michael I.|date=1997-01-01|series=Neural-Network Models of Cognition|volume=121|pages=471–495|chapter=Serial Order: A Parallel Distributed Processing Approach|doi=10.1016/s0166-4115(97)80111-2|isbn=9780444819314|journal=Advances in Psychology}}</ref>
: <math>
\begin{align}
 
=== LSTM ===
{{Main본문|LSTM}}
[[File파일:Long_Short-Term_Memory.svg|링크=https://en.wikipedia.org/wiki/File:Long_Short-Term_Memory.svg|섬네일|LSTM의 유닛]]
LSTM(long short-term memory, 장단기 메모리)는 {{Link-en|기울기 소실 문제|vanishing gradient problem}}를 해결하기 위해 고안된 [[딥 러닝]] 시스템이다. LSTM은 망각 게이트(forget gate)라 부르는 게이트를 추가적으로 가진다.<ref name="gers2002">{{Cite저널 journal인용|title=Learning Precise Timing with LSTM Recurrent Networks|journal=Journal of Machine Learning Research|last1=Gers|first1=Felix A.|last2=Schraudolph|first2=Nicol N.|url=http://www.jmlr.org/papers/volume3/gers02a/gers02a.pdf|year=2002|volume=3|pages=115–143|access-date=2017-06-13|last3=Schmidhuber|first3=Jürgen}}</ref> 이 게이트를 통해 역전파시 기울기값이 급격하게 사라지거나 증가하는 문제를 방지할 수 있다.<ref name="hochreiter1991">Hochreiter, Sepp (1991), [http://people.idsia.ch/~juergen/SeppHochreiter1991ThesisAdvisorSchmidhuber.pdf Untersuchungen zu dynamischen neuronalen Netzen], Diploma thesis, Institut f. Informatik, Technische Univ. Munich, Advisor Jürgen Schmidhuber</ref> 이로써 기존의 RNN은 먼 과거의 일로부터 학습하는 것이 산술적으로 거의 불가능했지만, LSTM은 수백만 단위 시간 전의 사건으로부터도 학습할 수 있음으로서 고주파 신호뿐 아니라 저주파 신호까지도 다룰 수 있게 되었고, 이는 곧 성능의 비약적 발전을 가져왔다.<ref name="schmidhuber20152">{{Cite저널 journal인용|title=Deep Learning in Neural Networks: An Overview|journal=Neural Networks|last=Schmidhuber|first=Jürgen|date=January 2015|volume=61|pages=85–117|arxiv=1404.7828|doi=10.1016/j.neunet.2014.09.003|pmid=25462637|s2cid=11715509}}</ref> 이로써 LSTM과 유사한 구조를 가진 신경망들도 많이 발표되고 있다.<ref name="bayer2009">{{Cite서적 book인용|url=http://mediatum.ub.tum.de/doc/1289041/document.pdf|title=Evolving Memory Cell Structures for Sequence Learning|last1=Bayer|first1=Justin|last2=Wierstra|first2=Daan|date=2009-09-14|series=Lecture Notes in Computer Science|volume=5769|publisher=Springer|location=Berlin, Heidelberg|pages=755–764|doi=10.1007/978-3-642-04277-5_76|isbn=978-3-642-04276-8|last3=Togelius|first3=Julian|last4=Schmidhuber|first4=Jürgen|journal=Artificial Neural Networks – ICANN 2009}}</ref>
 
LSTM을 쌓은 뒤 {{Link-en|CTC (딥 러닝)|Connectionist temporal classification|CTC}}로 이 신경망을 학습시키는 방식으로 실제 연구분야에 많이 사용되고 있다.<ref name="fernandez2007">{{Cite저널 journal인용|title=Sequence labelling in structured domains with hierarchical recurrent neural networks|journal=Proc. 20th International Joint Conference on Artificial In℡ligence, Ijcai 2007|last1=Fernández|first1=Santiago|last2=Graves|first2=Alex|year=2007|pages=774–779|last3=Schmidhuber|first3=Jürgen|citeseerx=10.1.1.79.1887}}</ref><ref name="graves2006">{{Cite저널 journal인용|title=Connectionist temporal classification: Labelling unsegmented sequence data with recurrent neural networks|journal=Proceedings of the International Conference on Machine Learning|last1=Graves|first1=Alex|last2=Fernández|first2=Santiago|year=2006|pages=369–376|last3=Gomez|first3=Faustino J.|citeseerx=10.1.1.75.6306}}</ref> 특히 CTC는 정렬과 인식에서 좋은 결과를 가져다주고 있다. 또한 기존의 [[은닉 마르코프 모형]](HMM)으로는 불가능했던 문맥의존언어 학습이 가능하다는 것이 밝혀졌다.<ref>{{Cite저널 journal인용|title=LSTM recurrent networks learn simple context-free and context-sensitive languages|journal=IEEE Transactions on Neural Networks|last1=Gers|first1=Felix A.|last2=Schmidhuber|first2=Jürgen<!-- the E. is a mistake -->|url=https://semanticscholar.org/paper/f828b401c86e0f8fddd8e77774e332dfd226cb05<!-- or https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=963769 -->|date=November 2001|volume=12|issue=6|pages=1333–1340|doi=10.1109/72.963769|issn=1045-9227|pmid=18249962|s2cid=10192330}}</ref>
 
=== GRU ===
{{Main본문|GRU (알고리즘)}}
[[File파일:Gated_Recurrent_Unit.svg|링크=https://en.wikipedia.org/wiki/File:Gated_Recurrent_Unit.svg|섬네일|GRU의 유닛]]
GRU(Gated recurrent units, 게이트된 순환 유닛)은 2014년에 처음으로 발명된 구조다. 처음 발표된 형태로 적용되기도 하나, 간단하게 변용되는 경우도 많다.<ref>{{citeArXiv arxiv인용|last1=Heck|first1=Joel|last2=Salem|first2=Fathi M.|date=2017-01-12|title=Simplified Minimal Gated Unit Variations for Recurrent Neural Networks|eprint=1701.03452|class=cs.NE}}</ref><ref>{{citeArXiv arxiv인용|last1=Dey|first1=Rahul|last2=Salem|first2=Fathi M.|date=2017-01-20|title=Gate-Variants of Gated Recurrent Unit (GRU) Neural Networks|eprint=1701.05923|class=cs.NE}}</ref> 출력 게이트가 존재하지 않으므로, LSTM에 비해 더 적은 수의 매개변수를 가짐에도 불구하고<ref name="MyUser_Wildml.com_May_18_2016c">{{cite web인용|url=http://www.wildml.com/2015/10/recurrent-neural-network-tutorial-part-4-implementing-a-grulstm-rnn-with-python-and-theano/|title=Recurrent Neural Network Tutorial, Part 4 – Implementing a GRU/LSTM RNN with Python and Theano – WildML|last=Britz|first=Denny|date=October 27, 2015|accessdate=May 18, 2016|newspaper=Wildml.com}}</ref> [[다성음악]] 학습이나 음성 인식 분야에서 LSTM과 유사한 성능을 가진다.<ref name="MyUser_Arxiv.org_May_18_2016c">{{citeArXiv arXiv인용|class=cs.NE|first2=Caglar|last2=Gulcehre|title=Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling|eprint=1412.3555|last1=Chung|first1=Junyoung|last3=Cho|first3=KyungHyun|last4=Bengio|first4=Yoshua|year=2014}}</ref>
 
=== 양방향 ===
{{Main본문|양방향 순환 신경망}}양방향(Bi-directional) 순환 신경망은 길이가 정해진 데이터 순열을 통해 어떤 값이 들어오기 전과 후의 정보를 모두 학습하는 방식의 알고리즘이다. 이를 위해 순열을 왼쪽에서 오른쪽으로 읽을 RNN 하나와, 오른쪽에서 왼쪽으로 읽을 RNN 하나를 필요로 한다. 이 둘의 출력값을 조합한 뒤 지도된 결과와 비교하여 학습하는 것이다. LSTM과 병용할 때 특히 좋은 성능을 낸다는 사실이 증명되었다.<ref>{{Cite저널 journal인용|title=Framewise phoneme classification with bidirectional LSTM and other neural network architectures|journal=Neural Networks|last1=Graves|first1=Alex|last2=Schmidhuber|first2=Jürgen|date=2005-07-01|series=IJCNN 2005|volume=18|issue=5|pages=602–610|doi=10.1016/j.neunet.2005.06.042|pmid=16112549|citeseerx=10.1.1.331.5800}}</ref><ref name="ThireoReczko2">{{Cite저널 journal인용|title=Bidirectional Long Short-Term Memory Networks for Predicting the Subcellular Localization of Eukaryotic Proteins|journal=IEEE/ACM Transactions on Computational Biology and Bioinformatics|last1=Thireou|first1=Trias|last2=Reczko|first2=Martin|date=July 2007|volume=4|issue=3|pages=441–446|doi=10.1109/tcbb.2007.1015|pmid=17666763|s2cid=11787259}}</ref>
 
== 응용 분야 ==

편집

2,230,035