인공 지능은 인간의 지능을 기계로 구현한 것입니다. 머신 러닝은 그러한 인공 지능을 구현하는 구체적인 접근 방법이며딥 러닝(Deep Learning)이란 완전한 머신 러닝을 실현하는 기술이 됩니다.
딥 러닝에 관해 알아보기 전, 1950년 당시 로젠 블라트(Frank Rosenblatt) 교수님에 의해 고안된퍼셉트론 이론에 대해 알아봅시다.
퍼셉트론
퍼셉트론(Perceptron, Deep Neural Network)은 인간의 뉴런을 본따서 만든 알고리즘입니다. 뉴런은 신경 세포 중 하나로, 차가운 얼음을 만졌을 때 신경 세포는 '차갑다' 라는 전기적 자극신호를 가지돌기(dendrites)를 통해 전달되어 핵(nucleus)에서는 이것이 '차갑다' 또는 '뜨겁다' 에 대한 신호값으로 변경하여 뇌로 전달하거나 다음 뉴런에게 전달하여 사람은 '내가 차가운 것을 만졌구나' 라는 인지를 하게 됩니다.
왼쪽 그림은 인간의 뉴런, 오른쪽 그림은 인간의 뉴런을 본따 만든 인공 뉴런인 퍼셉트론입니다. 어떠한 Input 값이 들어왔을 때 가중치(Weights)에 의해 전달이 되고 전달받은 값을 Sigmoid Function을 통해 이것이 '차갑다' 혹은 '뜨겁다' 라는 신호값으로 변경해주는 과정을 보여주고 있습니다.
전달하는 과정은 X값과 W값을 곱하고 b(bias)값을 더하여 Sigmoid 함수에서 처리합니다. Weights 값과 bias값은 학습을 통해 최적의 값을 찾습니다. 결국 퍼셉트론은 최적의 선을 찾는 과정입니다.
퍼셉트론 단층 레이어
퍼셉트론에게 OR Dataset과 AND Dataset을 보여주었을 때 퍼셉트론은 위와 같이 최적의 선을 그었습니다. 사람의 신경물질을 본 딴 인공 뉴런이 비교적 간단한 논리지만 OR와 AND를 이해하고 학습했다는 것이 굉장히 큰 의미가 있었습니다.
한계점과 MLP의 등장
1951년에 퍼셉트론의 한계라는 제목의 논문이 등장합니다. 내용은 XOR 논리는 퍼셉트론이 해결할 수 없다는 것을 수학적으로 증명한 논문이었습니다. 수학적으로 증명되었기에 당시 인공 뉴런은 이런 간단한 논리 조차 해결을 못하는 것이 무슨 인공 지능이냐며 사람들의 신임을 잃었습니다.
하지만 딥러닝의 아버지라 불리는 제프리 힌턴(Geoffrey Hinton) 교수는 이 한계점을 타파했습니다. 레이어가 한 개로 안되면 레이어를 여러개를 쌓아서, 즉 퍼셉트론을 여러개 쌓아 해결하자는 주장을 했습니다.
여기서 등장한 것이 레이어를 여러개 쌓는 퍼셉트론 Multi-Layer Perceptron 개념이며 1980년에 고안된 MLP를 일반인들도 알기 쉽게 네이밍을 리네이밍하여 고안한 것이 바로 '딥 러닝' 입니다.
Hypothesis & Cost Function
퍼셉트론은 우선 가설을 세우고 최적의 기울기(W)와 y절편(b)을 찾는 과정을 수행합니다.
최적의 값을 구하기 위해 퍼셉트론은 먼저 랜덤한 선을 긋습니다. 그리고 실제 정답과 랜덤하게 그은 선 사이의 차이만큼의 값을 계산합니다. 그 차이가 어느 정도인지 머신에게 전달하는 것이 딥 러닝에서 매우 중요합니다. 그러한 손실 값을 계산해주는 역할을 하는 함수가 Cost Function 입니다.
손실 값은 위와 같은 식으로 계산합니다. Wx 는 가설 값을 의미하며 y는 실제 정답 값을 의미합니다. 가설 값과 실제 정답 값의 차이를 양수로 만들기 위해 제곱한 값들을 더하고 데이터 수만큼을 나눕니다. (MSE, Mean Squared Error)