두둥

 

이 장은 "텐서플로 첫걸음" 한국어판에만 있는 챕터이다. 텐서플로를 사용하기 전에 텐서플로의 사용목적인 딥러닝에 대한 간단한 배경지식을 알려주기 위해 추가 수록되었다.

 

주로 딥러닝의 핵심인 신경망(Neural Network)에 대한 소개를 담고 있다. 몇몇 설명들을 다이제스트해보면

 

신경망이란 용어는 본래 의학이나 생물학적인 용어이므로 실제 인공 신경망(ANN, Artificial Neural Network)이 정확한 표현이라고 한다.

1957년 코넬 항공 연구소의 프랭크 로젠블라트가 고안해낸 퍼셉트론(Perceptron)이라는 인공신경망이 딥러닝의 기초 이론이다. 퍼셉트론(Perceptron)은 생물의 신경세포(neuron)를 모델링한 것이라고 보면 되며, ANN에도 그 용어가 그대로 쓰인다.

퍼셉트론은 작동 방식이 비교적 간단하다. 다항식의 계수를 찾는 일을 하는 것이 작동원리의 전부이다. 예를 들어 이항식이 있다 하면,

y = w1·x1 + w2·x2 + a

상수 a는 무시되고, w1과 w2 계수(가중치라고 부르는 모양인 듯)를 찾는 일을 각 퍼셉트론(신경세포?)들이 열심히 수행한다고 한다.

 

※ 세상 만물의 섭리가 그렇 듯 말단부는 단순하다. 하지만, 그 말단부들이 유기적으로 조합하면 인간이 이해한다는 것이 불가능한 지경이 된다. 인공신경망 역시 각 노드가 작동하는 방식은 간단하지만, 그 노드들이 수억 수조개가 모인 신경망의 형태가 갖춰지면 내부의 동작을 이해하기 보다는 데이터를 대충 던져 놓고 좋은 결과가 나오길 기다리는 수 밖에 없는 것이다. 물론, 세월이 더 흐르면 이마저도 정복될지 모르지.

 

동물의 신경망은 계층 구조를 이루고 있는데, 이를 모델링한 인공신경망 역시 최소 2계층 이상의 계층 구조를 이루고 있다. 3계층 구조 이상 부터는 특별히 심층 신경망(DNN, Deep Neural Network)이라고 부르는데, 현대에는 3계층 미만으로 구성을 하지 않기 때문에 따로 구분하는 것이 무의미해졌다.

DNN의 가장 단순한 구조는

입력계층(input layer) - 은닉계층(hidden layer) - 출력계층(output layer)

이렇게 3계층이며, 무한히 끼워 넣을 수 있는 계층은 은닉계층이다.

 

DNN의 응용 구조인 합성곱 신경망(CNN, Convolutional Neural Network)도 많이 쓰인다고 한다. 시각 데이터를 분석하거나 합성하는데 유용하다고. 

 

순환 신경망(RNN, Recurrent Neural Network)에 대해서도 간단한 언급이 있지만 역시 따로 설명은 없다. 하지만, 친절한 역자께서 RNN에 대한 내용을 특별히 부록으로 수록하셨기 때문에 나중에 살펴 볼 수 있겠다.

 

 

일전에 조사했던 음성인식(ASR) 엔진 중 딥러닝을 적용한 엔진을 보면 아래와 같이 기술이 적용되어 있다.

 

Julius - DNN

DeepSpeech - RNN

 

딥러닝이 적용된 엔진이 훨씬 우수한 인식결과를 보여준다는 사실은 포스트에 자주 언급했었다.

 

역자 분의 친절한 서문 덕분에 좀 더 부드럽게 공부를 시작할 수 있게 되었다.

Posted by JMAN