커버 그림의 내용은 유튜브 인강 중에서 인기가 대단한 Sung Kim 의 시리즈 강의 중 “8-1 딥러닝의 기본 개념: 시작과 XOR 문제“에서 언급하고 있는 Rosenblatt 박사의 1958년도 뉴욕 타임즈와의 신문 인터뷰 내용이다. 세계 최초로 머신 러닝 시스템인 퍼셉트론을 만들어 발표한 Rosenblatt 박사가 아무리 장밋빛 환상에 빠져 있었다고 해도 1958년 당시 기준으로 앞으로 미래에 말할 수도 있고 볼 수도 있고 쓸 수도 있는 머신 러닝의 출현이 가능할지도 모르겠다는 언급은 불과 60년이 흐른 지금 2018년 모두 현실화 되어 있음을 알 수 있다.
이미 2018년 말에 출간했던 필자의 지난번 졸작에서도 숱하게 언급했지만 Rosenblatt 박사의 업적을 일별해 보면 물리학계의 아인슈타인 못지않은 천재적 영감을 지닌 과학자로 자리매김이 가능해 보인다.
Rosenblatt 의 퍼셉트론과 관련된 연구 내용들을 조사해 보면 1970년대 이전 머신 러닝 초창기에 머신 러닝으로 할 수 있는 범위가 무척 제한적이었으나 머신 러닝의 불모지 시대인 1970년대와 1980년대를 거쳐 가면서 싹들이 트기 시작한 걸로 보인다. 물론 필자도 아직 그 내용을 다 이해하진 못하고 있지만 1982년에 발표된 Hopfield의 네트워크 개념에서 RNN(Recurrent Neural Network)이 발현되었고 1986년에 Hinton 교수에 의해서 머신 러닝의 cost 함수의 최소화를 위한 Backprogation 계산 알고리듬이 완성되었다.
한편 뉴럴 네트워크에 관해서는 Rosenblatt 박사가 생존했던 1970년대 초에 MIT에서 인공지능을 연구했던 Minsky 교수가 퍼셉트론의 성능 한계와 연관하여 XOR 로직 문제를 풀기 위한 Multilayer 뉴럴 네트워크 구성을 언급하였으나 당시에는 웨이트 업데이트에 의한 해결이 지금의 Backprogation 알고리듬이 부재하던 시대였으므로 불가능한 걸로 여겨졌었다.
특히 언어와 관련된 RNN 분야도 1990년대 초에 들어와 LSTM(Long Short Term Memory) 알고리듬의 출현을 통해 급격한 발전이 이루어지게 되었으며 수기 숫자 인식 분야도 1990년대 후반에 LeCUN이 주도로 CNN(Convilutional Neural Network)이 완성되면서 비약적으로 발전하게 된다. 아울러 XOR 로직 문제를 스마트하게 해결할 수 있는 SVM(Support Vector Machine) 기법도 1990년 대 초에 발표되었다.
언어 모델을 바탕으로 하는 뉴럴 네트워크 구현을 고려해 보자, 언어 모델의 응용 은 두 가지로 나뉜다. 첫째, 실제와 마찬가지로 일어날 수 있는 여러 문장들을 정량적으로 수치 평가하여 문법적 의미와 정확성의 척도를 제공하도록 하자. 이런 모델은 일반적으로 기계 번역 시스템으로 사용이 가능하다. 둘째, 언어 모델을 사용하여 새로운 텍스트를 생성 할 수도 있다. 즉 셰익스피어 문학책을 사용하여 언어 모델을 훈련하면 셰익스피어와 유사한 텍스트를 생성 할 수도 있는 것이다.
RNN 의 기본적인 아이디어는 언어를 구성하는 기본 요소인 단어들의 순차적인 정보를 이용한다. RNN 분야가 아닌 MNIST 문제라든지 또는 Iris flower 데이터를 사용하는 classification 문제들에서 랜덤한 입출력 데이터들은 서로 독립적인 것으로 간주됨에 비해 RNN에서의 데이터들은 문장을 구성하는 전후 단어들이 깊이 연관되어 있다. 아울러 각 단어를 구성하는 철자들도 마찬가지일 것이다. 반드시 앞 부분을 알아야 뒷부분 에측이 가능해진다. RNN에서는 sequnce들이 아주 긴 경우에도 이론상 모든 정보 전체를 이용할 수 있지만 실제 코딩에서는 기껏해야 몇 개 안되는 스텝까지의 정보만을 사용해야 하는 제약이 따른다.
다음 그림에서 첫 번째는 RNN 의 요소를 단적으로 표현하고 있으며 이 요소를 펼치면 오른쪽과 같이 순차적인 네트워크 형태로 표현된다.
물론 이 네트워크에서 입력을 받아 처리하는 뉴럴 레이어를 어떻게 구성할 것인가 하는 문제가 RNN 연구의 핵심이 될 것이다.
'머신러닝' 카테고리의 다른 글
Hopfield Network의 전기회로, GPU 및 5세대 칩의 AI 지원기능 (0) | 2019.02.23 |
---|---|
RNN의 원조인 Hopfield Network의 정체 (0) | 2019.02.20 |
RNN(Recurrent Neural Network)의 출발점 Hopfield Network (0) | 2019.02.18 |
텐서플로우를 넘어 Keras API에 의한 뉴럴네트워크(NN)를 학습해 보자. (0) | 2019.02.17 |
엑셀 매트릭스의 행렬식(Determinant) 계산과 Adjoint Matrix (0) | 2019.02.15 |