{{위키데이터 속성 추적}}
{{기계 학습}}
'''순환 신경망'''(Recurrent neural network, '''RNN''')은 [[인공신경망|인공 신경망]]의 한 종류로, 유닛간의 연결이 [[순환 (그래프 이론)|순환]]적 구조를 갖는 특징을 갖고 있다. 이러한 구조는 시변적 동적 특징을 모델링 할 수 있도록 신경망 내부에 상태를 저장할 수 있게 해주므로, [[순방향 신경망]]과 달리 내부의 [[메모리]]를 이용해 [[시퀀스]] 형태의 입력을 처리할 수 있다.<ref>{{저널 인용|title=<!-- for sure correct title? not found, nor in archive.org (for 2020-02-13), nor Volume correct? 2019 is vol 47-48 and 41 from 2016--> A thorough review on the current advance of neural network structures.|journal=Annual Reviews in Control|last=Dupond|first=Samuel|url=https://www.sciencedirect.com/journal/annual-reviews-in-control|date=2019|volume=14|pages=200–230|via=}}</ref><ref>{{저널 인용|title=State-of-the-art in artificial neural network applications: A survey|journal=Heliyon|url=https://www.sciencedirect.com/science/article/pii/S2405844018332067|date=2018-11-01|volume=4|issue=11|pages=e00938|language=en|doi=10.1016/j.heliyon.2018.e00938|issn=2405-8440|doi-access=free}}</ref><ref>{{저널 인용|title=Time series forecasting using artificial neural networks methodologies: A systematic review|journal=Future Computing and Informatics Journal|url=https://www.sciencedirect.com/science/article/pii/S2314728817300715|date=2018-12-01|volume=3|issue=2|pages=334–340|language=en|doi=10.1016/j.fcij.2018.10.003|issn=2314-7288|doi-access=free}}</ref> 따라서 순환 인공 신경망은 [[필기 인식]]이나<ref>{{저널 인용|제목=A Novel Connectionist System for Improved Unconstrained Handwriting Recognition|저널=IEEE Transactions on Pattern Analysis and Machine Intelligence|성=Graves|이름=A.|성2=Liwicki|이름2=M.|url=http://www.idsia.ch/~juergen/tpami_2008.pdf|연도=2009|권=31|호=5|쪽=855–868|doi=10.1109/tpami.2008.137|pmid=19299860|성3=Fernandez|이름3=S.|성4=Bertolami|이름4=R.|성5=Bunke|이름5=H.|성6=Schmidhuber|이름6=J.|저자링크6=Jürgen Schmidhuber}}</ref> [[음성 인식]]과 같이 시변적 특징을 지니는 데이터를 처리하는데 적용할 수 있다.<ref name="sak2014">{{웹 인용|url=https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43905.pdf|제목=Long Short-Term Memory recurrent neural network architectures for large scale acoustic modeling|성=Sak|이름=Hasim|성2=Senior|이름2=Andrew|날짜=2014|웹사이트=|보존url=|보존날짜=|확인날짜=|성3=Beaufays|이름3=Francoise|url-status=}}</ref><ref name="liwu2015">{{ArXiv 인용}}</ref>

순환 신경망이라는 이름은 입력받는 신호의 길이가 한정되지 않은 [[동역학계|동적]] 데이터를 처리한다는 점에서 붙여진 이름으로, [[유한 임펄스 응답|유한 임펄스]] 구조와 [[무한 임펄스 응답|무한 임펄스]] 구조를 모두 일컫는다.<ref>{{저널 인용|title=Comparative analysis of Recurrent and Finite Impulse Response Neural Networks in Time Series Prediction|journal=Indian Journal of Computer and Engineering|last=Miljanovic|first=Milos|url=http://www.ijcse.com/docs/INDJCSE12-03-01-028.pdf|date=Feb-Mar 2012|volume=3|issue=1}}</ref> 유한 임펄스 순환 신경망은 [[유향 비순환 그래프]]이므로 적절하게 풀어서 재구성한다면 순방향 신경망으로도 표현할 수 있지만, 무한 임펄스 순환 신경망은 [[유향 그래프]]이므로 순방향 신경망으로 표현하는 것이 불가능하다.

순환 신경망은 추가적인 저장공간을 가질 수 있다. 이 저장공간이 그래프의 형태를 가짐으로써 시간 지연의 기능을 하거나 피드백 루프를 가질 수도 있다. 이와 같은 저장공간을 게이트된 상태(gated state) 또는 게이트된 메모리(gated memory)라고 하며, [[LSTM]]과 [[게이트 순환 유닛]](GRU)이 이를 응용하는 대표적인 예시이다.

== 역사 ==
RNN은 1986년 [[데이비드 럼 멜하트|데이비드 루멜하르트]]의 연구에 기반을 둔다.<ref>{{저널 인용|제목=Learning representations by back-propagating errors|저널=Nature|성=Williams|이름=Ronald J.|성2=Hinton|이름2=Geoffrey E.|날짜=October 1986|권=323|호=6088|쪽=533–536|doi=10.1038/323533a0|issn=1476-4687|성3=Rumelhart|이름3=David E.}}</ref> RNN의 특수한 예시인 홉필드 네트워크가 1982년 [[ 존 홉필드|존 홉필드]]에 의해 발명되었고, 1993년에는 신경 기억 압축기가 "Very Deep Learning"를 구현하는데 성공했는데, 1000개 이상의 레이어로 구성된 정적 RNN이 사용되었다.<ref name="schmidhuber1993">{{서적 인용|url=ftp://ftp.idsia.ch/pub/juergen/habilitation.pdf|제목=Habilitation thesis: System modeling and optimization|성=Schmidhuber|이름=Jürgen|저자링크=Jürgen Schmidhuber|연도=1993}}{{깨진 링크|url=ftp://ftp.idsia.ch/pub/juergen/habilitation.pdf }} Page 150 ff demonstrates credit assignment across the equivalent of 1,200 layers in an unfolded RNN.</ref>

=== LSTM ===
1997년 [[ Sepp Hochreiter|혹스라이터]]와 [[ 위르겐 슈미트 후버|슈미트후버]]에 의해 발명된 [[LSTM]]은 네트워크는 여러 응용분야에서 독보적인 정확성을 보여주었다.<ref name="lstm">{{저널 인용|제목=Long Short-Term Memory|저널=Neural Computation|성=Hochreiter|이름=Sepp|저자링크=Sepp Hochreiter|성2=Schmidhuber|이름2=Jürgen|저자링크2=Jürgen Schmidhuber|날짜=1997-11-01|권=9|호=8|쪽=1735–1780|doi=10.1162/neco.1997.9.8.1735}}</ref>

2007년을 전후로, LSTM은 [[음성 인식]] 분야에서 기존의 전통적인 모델들을 아득히 능가하는 성능을 보여주었다.<ref name="fernandez2007keyword">{{서적 인용|url=http://dl.acm.org/citation.cfm?id=1778066.1778092|title=An Application of Recurrent Neural Networks to Discriminative Keyword Spotting|last1=Fernández|first1=Santiago|last2=Graves|first2=Alex|year=2007|series=ICANN'07|publisher=Springer-Verlag|location=Berlin, Heidelberg|pages=220–229|isbn=978-3-540-74693-5|last3=Schmidhuber|first3=Jürgen|journal=Proceedings of the 17th International Conference on Artificial Neural Networks}}</ref> 2009년에는 CTC(Connectionist temporal classification) 기술로 훈련시킨 LSTM이 처음으로 [[필기 인식|필기체 인식]] 시합에서 승리를 거둠으로써, 패턴 인식 분야에 독보적인 기능을 가지고 있음이 증명되었다.<ref name="schmidhuber2015">{{저널 인용|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><ref name="graves20093">{{저널 인용|title=Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks|last1=Graves|first1=Alex|last2=Schmidhuber|first2=Jürgen|url=https://papers.nips.cc/paper/3449-offline-handwriting-recognition-with-multidimensional-recurrent-neural-networks|year=2009|editor-last=Bengio|editor-first=Yoshua|publisher=Neural Information Processing Systems (NIPS) Foundation|pages=545–552|editor-first2=Dale|editor-last3=Lafferty|editor-first3=John|editor-last4=Williams|editor-first4=Chris editor-K. I.|editor-last5=Culotta|editor-first5=Aron|editor-last2=Schuurmans}}</ref> 2014년에는 중국의 검색엔진인 [[바이두]]가 기존의 음성 인식 알고리즘은 전혀 사용하지 않고 오직 CTC로 훈련된 RNN만으로 [https://catalog.ldc.upenn.edu/LDC2002S09 Switchboard Hub5'00 speech recognition dataset] 벤치마크를 갱신했다.<ref name="hannun2014">{{ArXiv 인용|last1=Hannun|last7=Prenger|eprint=1412.5567|title=Deep Speech: Scaling up end-to-end speech recognition|date=2014-12-17|first9=Shubho|last9=Sengupta|first8=Sanjeev|last8=Satheesh|first7=Ryan|first6=Erich|first1=Awni|last6=Elsen|first5=Greg|last5=Diamos|first4=Bryan|last4=Catanzaro|first3=Jared|last3=Casper|first2=Carl|last2=Case|class=cs.CL}}</ref>

LSTM은 또한 큰 단어에 대한 음성 인식과<ref name="sak20142">{{웹 인용|url=https://static.googleusercontent.com/media/research.google.com/en/pubs/archive/43905.pdf|title=Long Short-Term Memory recurrent neural network architectures for large scale acoustic modeling|last1=Sak|first1=Haşim|last2=Senior|first2=Andrew|year=2014|last3=Beaufays|first3=Françoise|확인날짜=2020-10-08|archive-date=2019-09-22|archive-url=https://web.archive.org/web/20190922234538/https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43905.pdf}}</ref><ref name="liwu20152">{{ArXiv 인용|last1=Li|first1=Xiangang|last2=Wu|first2=Xihong|date=2014-10-15|title=Constructing Long Short-Term Memory based Deep Recurrent Neural Networks for Large Vocabulary Speech Recognition|eprint=1410.4281|class=cs.CL}}</ref> [[음성 합성]]<ref name="fan2015">Fan, Bo; Wang, Lijuan; Soong, Frank K.; Xie, Lei (2015) "Photo-Real Talking Head with Deep Bidirectional LSTM", in ''Proceedings of ICASSP 2015''</ref> 분야에서도 발전을 이루어 현재 [[구글 안드로이드]]에서 응용되고있다.<ref name="schmidhuber2015" /><ref name="zen2015">{{웹 인용|url=https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43266.pdf|title=Unidirectional Long Short-Term Memory Recurrent Neural Network with Recurrent Output Layer for Low-Latency Speech Synthesis|last1=Zen|first1=Heiga|last2=Sak|first2=Haşim|year=2015|website=Google.com|publisher=ICASSP|pages=4470–4474}}</ref> 2015년에는 구글의 음성 인식 능력이 CTC 기반 LSTM을 통해 49%가량 향상되었다.<ref name="sak2015">{{웹 인용|url=http://googleresearch.blogspot.ch/2015/09/google-voice-search-faster-and-more.html|title=Google voice search: faster and more accurate|last1=Sak|first1=Haşim|last2=Senior|first2=Andrew|date=September 2015|last3=Rao|first3=Kanishka|last4=Beaufays|first4=Françoise|last5=Schalkwyk|first5=Johan}}</ref>

또한 [[기계 번역]],<ref name="sutskever2014">{{저널 인용|title=Sequence to Sequence Learning with Neural Networks|journal=Electronic Proceedings of the Neural Information Processing Systems Conference|last1=Sutskever|first1=Ilya|last2=Vinyals|first2=Oriol|url=https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf|year=2014|volume=27|pages=5346|arxiv=1409.3215|bibcode=2014arXiv1409.3215S|last3=Le|first3=Quoc V.}}</ref> [[언어 모델|언어 모델링]],<ref name="vinyals2016">{{ArXiv 인용|last1=Jozefowicz|first1=Rafal|last2=Vinyals|first2=Oriol|last3=Schuster|first3=Mike|last4=Shazeer|first4=Noam|last5=Wu|first5=Yonghui|date=2016-02-07|title=Exploring the Limits of Language Modeling|eprint=1602.02410|class=cs.CL}}</ref> 다국어 언어 처리 분야에서의 기록도 우수한 능력으로 연달아 갱신했다.<ref name="gillick2015">{{ArXiv 인용|last1=Gillick|first1=Dan|last2=Brunk|first2=Cliff|last3=Vinyals|first3=Oriol|last4=Subramanya|first4=Amarnag|date=2015-11-30|title=Multilingual Language Processing From Bytes|eprint=1512.00103|class=cs.CL}}</ref> [[합성곱 신경망]]과 함께 응용되어 [[자동 이미지 캡셔닝]] 분야에서도 커다란 향상을 일으켰다.<ref name="vinyals2015">{{ArXiv 인용|last1=Vinyals|first1=Oriol|last2=Toshev|first2=Alexander|last3=Bengio|first3=Samy|last4=Erhan|first4=Dumitru|date=2014-11-17|title=Show and Tell: A Neural Image Caption Generator|eprint=1411.4555|class=cs.CV}}</ref> LSTM을 돌리는데 필요한 막대한 계산량에 따른 하드웨어의 부담을 줄이기 위해 하드웨어 가속기를 사용해 LSTM을 가속하고자 하는 연구도 꾸준히 진행되고 있다.<ref>"A Survey on Hardware Accelerators and Optimization Techniques for RNNs", JSA, 2020 [https://www.researchgate.net/publication/343006357_A_Survey_on_Hardware_Accelerators_and_Optimization_Techniques_for_RNNs PDF]</ref>

== 구조 ==

=== 완전순환(Fully recurrent) ===
[[파일:Recurrent_neural_network_unfold.svg|섬네일|기초적인 순환 신경망의 구조]]
RNN은 [[인공 뉴런|뉴런과 유사한]] 노드들이 이룬 레이어가 연속되어있는 구조를 가진다. 각각의 노드들은 다음 단계의 모든 레이어들과 [[유향 그래프|단방향 그래프]]를 이루며, 시간에 따라 달라지는 실숫값의 활성화(activation)값을 가진다. 또한 각 노드들 간 연결관계는 실숫값의 [[가중치]]를 가지며 이 값은 끊임없이 바뀐다. 노드의 종류로는 신경망 외부로부터 값을 입력받는 입력 노드, 결괏값을 산출하는 출력 노드, 입력 노드에서 출력 노드 사이에 존재하는 은닉 노드가 있다.

이산 시간 데이터로 [[지도 학습]]을 하는 경우, 단위시간 한 번에 실수 벡터 하나가 입력 노드로 들어온다. 또한 매 순간 입력 노드를 제외한 모든 노드들은, 각자 연결된 노드들로부터 활성화값을 각 연결의 가중치와 함께 가중합으로 받아, 비선형 함수를 통해 활성화값을 계산한 뒤 저장한다. 지도 학습을 위해 주어진 데이터는 특정 순간마다 출력 노드 값이 이루어야 하는 값(target)을 알려준다. 매 순간마다 신경망이 생성한 출력값과, 원래 이루었어야 하는 값 사이의 편차의 합으로 오차를 정의한다. 이 오차를 줄이는 방향으로 신경망의 학습이 이루어진다. 일례로 음성 인식을 통해 발음된 숫자를 알아맞추는 프로그램을 생각해보자. 이 경우 최종 출력값은 숫자를 분류하기 위한 레이블이 될 것이다.

[[강화 학습]]의 경우, 아무도 출력 값이 어떠해야한다는 정보를 가르쳐주지 않는다. 대신 RNN의 성능을 평가하기 위한 {{Link-en|적합성 함수|fitness function}}나 보상 함수가 출력값을 받아들인 뒤, 액츄에이터를 통해 환경에 영향을 줌으로써 입력값을 변화시킨다. 점수가 있는 게임을 플레이하는 인공지능을 만들 때 이런 기술을 사용할 수 있다.

=== 단순 순환망 ===
[[파일:Elman_srnn.png|대체글=|섬네일|엘만 신경망의 구조도. 세 개의 레이어가 x, y, z로, 문맥 유닛이 u로 표시되어 있다.]]
엘만 신경망과 조르단 신경망을 단순 순환망(Simple recurrent network, SRN)이라 부른다.

엘만 신경망은 세 개의 레이어와 문맥 유닛으로 이루어져 있으며, 문맥 유닛들은 1로 고정된 가중치와 함께 은닉 레이어와 연결되어 있다.<ref name="bmm615">Cruse, Holk; [http://www.brains-minds-media.org/archive/615/bmm615.pdf ''Neural Networks as Cybernetic Systems''], 2nd and revised edition</ref> 학습이 이루어질 때마다 입력값이 순방향으로 되먹임되고, 은닉 레이어가 전 단계에 가지고 있던 값이 문맥 유닛에 저장된다. 따라서 신경망은 과거의 상태를 저장할 수 있게됨으로써 일반적인 [[다중계층 퍼셉트론]]보다 우수한 예지력을 가지게 되는 것이다.

조르단 신경망은 엘만 신경망과 비슷하나, 문맥 유닛이 은닉 레이어가 아닌 출력 레이어로부터 값을 받는다는 차이점이 있다. 이 경우 문맥 유닛은 상태 레이어라고 불리며, 그 내부에서도 순환망을 가진다.<ref name="bmm615" />

; 엘만 신경망<ref>{{저널 인용|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}
h_t &= \sigma_h(W_{h} x_t + U_{h} h_{t-1} + b_h) \\
y_t &= \sigma_y(W_{y} h_t + b_y)
\end{align}
</math>
; 조르단 신경망<ref>{{서적 인용|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}
h_t &= \sigma_h(W_{h} x_t + U_{h} y_{t-1} + b_h) \\
y_t &= \sigma_y(W_{y} h_t + b_y)
\end{align}
</math>

위 식에서 기호들은 각각 다음을 의미한다.

* <math>x_t</math>: 입력 벡터
* <math>h_t</math>: 은닉 레이어 벡터
* <math>y_t</math>: 출력 벡터
* <math>W</math>, <math>U</math>, <math>b</math>: 매개변수 행렬과 벡터
* <math>\sigma_h</math>, <math>\sigma_y</math>: [[활성화 함수]]

=== LSTM ===
{{본문|LSTM}}
[[파일:Long_Short-Term_Memory.svg|섬네일|LSTM의 유닛]]
LSTM(long short-term memory, 장단기 메모리)는 [[기울기 소실 문제]]를 해결하기 위해 고안된 [[딥 러닝]] 시스템이다. LSTM은 망각 게이트(forget gate)라 부르는 게이트를 추가적으로 가진다.<ref name="gers2002">{{저널 인용|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">{{저널 인용|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">{{서적 인용|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">{{저널 인용|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">{{저널 인용|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>{{저널 인용|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 ===
{{본문|게이트 순환 유닛}}
[[파일:Gated_Recurrent_Unit.svg|섬네일|GRU의 유닛]]
GRU(Gated recurrent units, [[게이트 순환 유닛]])은 2014년에 처음으로 발명된 구조다. 처음 발표된 형태로 적용되기도 하나, 간단하게 변용되는 경우도 많다.<ref>{{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>{{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">{{웹 인용|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|archive-date=2021-11-10|archive-url=https://web.archive.org/web/20211110112626/http://www.wildml.com/2015/10/recurrent-neural-network-tutorial-part-4-implementing-a-grulstm-rnn-with-python-and-theano/|url-status=dead}}</ref> [[다성음악]] 학습이나 음성 인식 분야에서 LSTM과 유사한 성능을 가진다.<ref name="MyUser_Arxiv.org_May_18_2016c">{{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>

=== 양방향 ===
{{본문|양방향 순환 신경망}}양방향(Bi-directional) 순환 신경망은 길이가 정해진 데이터 순열을 통해 어떤 값이 들어오기 전과 후의 정보를 모두 학습하는 방식의 알고리즘이다. 이를 위해 순열을 왼쪽에서 오른쪽으로 읽을 RNN 하나와, 오른쪽에서 왼쪽으로 읽을 RNN 하나를 필요로 한다. 이 둘의 출력값을 조합한 뒤 지도된 결과와 비교하여 학습하는 것이다. LSTM과 병용할 때 특히 좋은 성능을 낸다는 사실이 증명되었다.<ref>{{저널 인용|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">{{저널 인용|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>

== 응용 분야 ==
순환 신경망의은 다음과 같은 분야에서 응용될 수 있다.

* [[기계 번역]]<ref name="sutskever20142">{{저널 인용|title=Sequence to Sequence Learning with Neural Networks|journal=Electronic Proceedings of the Neural Information Processing Systems Conference|last1=Sutskever|first1=Ilya|last2=Vinyals|first2=Oriol|url=https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf|year=2014|volume=27|pages=5346|arxiv=1409.3215|bibcode=2014arXiv1409.3215S|last3=Le|first3=Quoc V.}}</ref>
* [[로봇 제어]]<ref>{{서적 인용|title=A System for Robotic Heart Surgery that Learns to Tie Knots Using Recurrent Neural Networks|last1=Mayer|first1=Hermann|last2=Gomez|first2=Faustino J.|date=October 2006|pages=543–548|doi=10.1109/IROS.2006.282190|isbn=978-1-4244-0258-8|last3=Wierstra|first3=Daan|last4=Nagy|first4=Istvan|last5=Knoll|first5=Alois|last6=Schmidhuber|first6=Jürgen|journal=2006 IEEE/RSJ International Conference on Intelligent Robots and Systems|citeseerx=10.1.1.218.3399|s2cid=12284900}}</ref>
* [[시계열]] 예측<ref>{{저널 인용|title=Evolino: Hybrid Neuroevolution/Optimal Linear Search for Sequence Learning|journal=Proceedings of the 19th International Joint Conference on Artificial Intelligence (IJCAI), Edinburgh|last1=Wierstra|first1=Daan|last2=Schmidhuber|first2=Jürgen|url=https://www.academia.edu/5830256|year=2005|pages=853–858|last3=Gomez|first3=Faustino J.}}</ref><ref>{{ArXiv 인용|last=Petneházi|first=Gábor|title=Recurrent neural networks for time series forecasting|date=2019-01-01|eprint=1901.00069|class=cs.LG}}</ref><ref>{{저널 인용|title=Recurrent Neural Networks for Time Series Forecasting: Current Status and Future Directions|journal=International Journal of Forecasting|last1=Hewamalage|first1=Hansika|last2=Bergmeir|first2=Christoph|year=2020|arxiv=1909.00590|doi=10.1016/j.ijforecast.2020.06.008|last3=Bandara|first3=Kasun|s2cid=202540863}}</ref>
* [[음성 인식]]<ref>{{저널 인용|title=Framewise phoneme classification with bidirectional LSTM and other neural network architectures|journal=Neural Networks|last1=Graves|first1=Alex|last2=Schmidhuber|first2=Jürgen|year=2005|volume=18|issue=5–6|pages=602–610|doi=10.1016/j.neunet.2005.06.042|pmid=16112549|citeseerx=10.1.1.331.5800}}</ref><ref>{{서적 인용|url=http://dl.acm.org/citation.cfm?id=1778066.1778092|title=An Application of Recurrent Neural Networks to Discriminative Keyword Spotting|last1=Fernández|first1=Santiago|last2=Graves|first2=Alex|year=2007|series=ICANN'07|publisher=Springer-Verlag|location=Berlin, Heidelberg|pages=220–229|isbn=978-3540746935|last3=Schmidhuber|first3=Jürgen|journal=Proceedings of the 17th International Conference on Artificial Neural Networks}}</ref><ref name="graves2013">{{저널 인용|title=Speech Recognition with Deep Recurrent Neural Networks|journal=Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on|last1=Graves|first1=Alex|last2=Mohamed|first2=Abdel-rahman|year=2013|pages=6645–6649|arxiv=1303.5778|bibcode=2013arXiv1303.5778G|doi=10.1109/ICASSP.2013.6638947|isbn=978-1-4799-0356-6|last3=Hinton|first3=Geoffrey E.|s2cid=206741496}}</ref>
* [[음성 합성]]<ref>{{저널 인용|title=Speech synthesis from neural decoding of spoken sentences|journal=Nature|last1=Chang|first1=Edward F.|last2=Chartier|first2=Josh|date=24 April 2019|volume=568|issue=7753|pages=493–498|language=en|bibcode=2019Natur.568..493A|doi=10.1038/s41586-019-1119-1|issn=1476-4687|pmid=31019317|last3=Anumanchipalli|first3=Gopala K.|s2cid=129946122}}</ref>
* 시계열 오류 검출<ref>{{저널 인용|title=Long Short Term Memory Networks for Anomaly Detection in Time Series|journal=European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning — ESANN 2015|last1=Malhotra|first1=Pankaj|last2=Vig|first2=Lovekesh|url=https://www.elen.ucl.ac.be/Proceedings/esann/esannpdf/es2015-56.pdf|date=April 2015|last3=Shroff|first3=Gautam|last4=Agarwal|first4=Puneet|access-date=2020-10-08|archive-date=2020-10-30|archive-url=https://web.archive.org/web/20201030224634/https://www.elen.ucl.ac.be/Proceedings/esann/esannpdf/es2015-56.pdf}}</ref>
* 리듬 학습<ref name="peephole2002">{{저널 인용|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|last3=Schmidhuber|first3=Jürgen}}</ref>
* 작곡<ref>{{서적 인용|title=Learning the Long-Term Structure of the Blues|last1=Eck|first1=Douglas|last2=Schmidhuber|first2=Jürgen|date=2002-08-28|series=Lecture Notes in Computer Science|volume=2415|publisher=Springer|location=Berlin, Heidelberg|pages=284–289|doi=10.1007/3-540-46084-5_47|isbn=978-3540460848|journal=Artificial Neural Networks — ICANN 2002|citeseerx=10.1.1.116.3620}}</ref>
* 문법 학습<ref>{{저널 인용|title=Learning nonregular languages: A comparison of simple recurrent networks and LSTM|journal=Neural Computation|last1=Schmidhuber|first1=Jürgen|last2=Gers|first2=Felix A.|year=2002|volume=14|issue=9|pages=2039–2041|doi=10.1162/089976602320263980|pmid=12184841|last3=Eck|first3=Douglas|citeseerx=10.1.1.11.7369|s2cid=30459046}}</ref><ref name="peepholeLSTM">{{저널 인용|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|url=ftp://ftp.idsia.ch/pub/juergen/L-IEEE.pdf|year=2001|volume=12|issue=6|pages=1333–1340|doi=10.1109/72.963769|pmid=18249962|access-date=2020-10-08|archive-date=2020-07-10|archive-url=https://web.archive.org/web/20200710122825/ftp://ftp.idsia.ch/pub/juergen/L-IEEE.pdf|url-status=}}</ref><ref>{{저널 인용|title=Kalman filters improve LSTM network performance in problems unsolvable by traditional recurrent nets|journal=Neural Networks|last1=Pérez-Ortiz|first1=Juan Antonio|last2=Gers|first2=Felix A.|year=2003|volume=16|issue=2|pages=241–250|doi=10.1016/s0893-6080(02)00219-8|pmid=12628609|last3=Eck|first3=Douglas|last4=Schmidhuber|first4=Jürgen|citeseerx=10.1.1.381.1992}}</ref>
* [[필기 인식]]<ref>{{저널 인용|title=Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks|journal=Advances in Neural Information Processing Systems 22, NIPS'22|last1=Graves|first1=Alex|last2=Schmidhuber|first2=Jürgen|year=2009|publisher=MIT Press|location=Vancouver (BC)|pages=545–552}}</ref><ref>{{서적 인용|url=http://dl.acm.org/citation.cfm?id=2981562.2981635|title=Unconstrained Online Handwriting Recognition with Recurrent Neural Networks|last1=Graves|first1=Alex|last2=Fernández|first2=Santiago|year=2007|series=NIPS'07|publisher=Curran Associates Inc.|pages=577–584|isbn=9781605603520|last3=Liwicki|first3=Marcus|last4=Bunke|first4=Horst|last5=Schmidhuber|first5=Jürgen|journal=Proceedings of the 20th International Conference on Neural Information Processing Systems}}</ref>
* 인간 행동 인식<ref>{{저널 인용|title=Sequential Deep Learning for Human Action Recognition|journal=2nd International Workshop on Human Behavior Understanding (HBU)|last1=Baccouche|first1=Moez|last2=Mamalet|first2=Franck|year=2011|series=Lecture Notes in Computer Science|volume=7065|publisher=Springer|location=Amsterdam, Netherlands|pages=29–39|doi=10.1007/978-3-642-25446-8_4|isbn=978-3-642-25445-1|last3=Wolf|first3=Christian|last4=Garcia|first4=Christophe|last5=Baskurt|first5=Atilla|editor-first2=Bruno|editor-last2=Lepri|editor-last1=Salah|editor-first1=Albert Ali}}</ref>
* 단백질간 상동성 발견<ref>{{저널 인용|title=Fast model-based protein homology detection without alignment|journal=Bioinformatics|last1=Hochreiter|first1=Sepp|last2=Heusel|first2=Martin|year=2007|volume=23|issue=14|pages=1728–1736|doi=10.1093/bioinformatics/btm247|pmc=|pmid=17488755|last3=Obermayer|first3=Klaus|doi-access=free}}</ref>
* 단백질의 세포내 배치 분석<ref name="ThireoReczko">{{저널 인용|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>
* [[비즈니스 프로세스]] 관리 및 예측<ref>{{서적 인용|title=Predictive Business Process Monitoring with LSTM neural networks|last1=Tax|first1=Niek|last2=Verenich|first2=Ilya|year=2017|series=Lecture Notes in Computer Science|volume=10253|pages=477–492|arxiv=1612.02130|doi=10.1007/978-3-319-59536-8_30|isbn=978-3-319-59535-1|last3=La Rosa|first3=Marcello|last4=Dumas|first4=Marlon|journal=Proceedings of the International Conference on Advanced Information Systems Engineering (CAiSE)|s2cid=2192354}}</ref>

== 각주 ==
{{각주}}

== 더 읽어보기 ==

* {{서적 인용|title=Recurrent Neural Networks for Prediction: Learning Algorithms, Architectures and Stability|last1=Mandic|first1=Danilo P.|last2=Chambers|first2=Jonathon A.|year=2001|publisher=Wiley|isbn=978-0-471-49517-8|lastauthoramp=yes}}

== 외부 링크 ==
* [https://github.com/zhongkaifu/Seq2SeqSharp Seq2SeqSharp] LSTM/BiLSTM/Transformer recurrent neural networks framework running on CPUs and GPUs for sequence-to-sequence tasks ([[:en:C_Sharp_(programming_language)|C#]], [[:en:.NET_Framework|.NET]])
* [https://github.com/zhongkaifu/RNNSharp RNNSharp] CRFs based on recurrent neural networks ([[:en:C_Sharp_(programming_language)|C#]], [[:en:.NET_Framework|.NET]])
* [http://www.idsia.ch/~juergen/rnn.html Recurrent Neural Networks] with over 60 RNN papers by [[:en:Jürgen_Schmidhuber|Jürgen Schmidhuber]]'s group at [[:en:Dalle_Molle_Institute_for_Artificial_Intelligence_Research|Dalle Molle Institute for Artificial Intelligence Research]]
* [http://jsalatas.ictpro.gr/weka Elman Neural Network implementation] for [[:en:WEKA|WEKA]]
* [http://deeplearning4j.org/recurrentnetwork Recurrent Neural Nets & LSTMs in Java] {{웨이백|url=http://deeplearning4j.org/recurrentnetwork |date=20180721111002 }}
* [https://gammastorm.github.io/TheBrain/Brain.html an alternative try for complete RNN / Reward driven] {{웨이백|url=https://gammastorm.github.io/TheBrain/Brain.html |date=20180324162216 }}

{{전거 통제}}

[[분류:인공지능]]
[[분류:인공신경망]]