Neural Networks
: Model Representation
아래 내용은 Andrew Ng 교수님의 강의와 자료를 기반으로 학습한 내용을 정리하여 작성하였습니다.
개인의 학습 내용이기에 잘못 해석 및 이해하고 있는 부분도 있을 수 있으니, 다양한 자료를 기반으로 참고하시는 걸 추천드립니다.
예로부터 사람의 뇌는 굉장히 신비하고 무한한 탐구의 영역이였습니다. 아직도 풀리지 않는 많은 미스터리가 존재하는 인간의 신체 중 하나이죠. 이런 뇌를 모방한 알고리즘을 개발하려는 시도가 있었습니다. 그리고 1980년대와 90년대 초반 굉장히 활발히 연구가 되었죠. 하지만 90년 대 후반에 들어서 그 열기가 점점 줄어들고 사람들의 관심이 줄어들게 됩니다. 그 이유는 나중에 설명드릴게요, 해결하지 못한 문제들이 존재해 있었거든요. 하지만 그 문제는 결국 해결되었고 Deep-Learning 이란 이름의 알고리즘으로 다시 나타나고 여러분들이 알고 있듯이 현재는 무수히 많은 곳에서 사용되어 지고 있습니다. 그럼 지금부터 Neural Networks에 대해 알아보겠습니다.
Neurons and the brain
예전부터 사람의 뇌는 신비의 영역이였죠, 그리고 많은 연구가 이뤄지지만 아직 밝혀지지 않은 부분도 상당하다고 합니다. Neural Networks는 뇌의 Neuron을 보고 모델화 하게 되었습니다.
뇌의 Neuron은 위와 같이 존재합니다 Dendrite(수상돌기)에서 입력이 들어오면 Nucleus(핵)에서 처리 후 Axon으로 결과가 다시 다음 Neuron으로 전달되나느 구조이죠. 위처럼 생긴 Neuron의 메카니즘을 모방하여 개발한게 Neural networks 입니다. Dendrite로 여러 값들이 입력될 수 있고 그 값들이 임계치를 넘어서면 signal로 Axon에서 출력되어 다음 Neuron으로 전달된다고 생각하시면 됩니다.
Model representation
Neuron을 모방한 Neural network의 model을 보시죠 아래 그림을 보시면 총 3개 (x1, x2, x3 / x0는 bias로 가상의 입력)의 feature가 가운데 주황색 원(Nucleus)로 입력되고 output으로 출력되는 매우 단순한 모델입니다. 아래 그림은 Logistic으로 써 output은 sigmoid function을 통과한 값으로 0~1사이로 나타납니다.(sigmoid function을 잘 모르시는 분은 Logistic regression 글을 참조하세요)
각 입력 x1, x2 x3에 대해 theta를 wieght 가중치라고도 합니다. (x0에 대한 가중치 theta0는 1) 위에서 살펴본 model이 단일 Neuron에 대한 model입니다. 하지만 우리의 뇌는 Neuron이 하나만 존재하는게 아니라 셀 수 없이 많은 Nueron들이 모여 있습니다. 그럼 여러 Nueron에 대한 Model을 보시죠.
위의 입력 x1, x2, x3, bias인 x0까지 그대로인 상태에서 Neuron들이 여러개로 들어난 것을 볼 수 있습니다. 이게 Neural Networks의 기본적인 model을 표현한 모양입니다. 위에서 Layer1, Layer2, Layer3으로 나뉘어져 있는데요, Layer1은 Input layer라 하고, Layer3는 Output layer입니다. 그리고 Layer2는 Hidden layer라고 합니다. 이렇게 Neural Networks는 Input, Hidden, Output Layer로 구성되어 있습니다.
수학적으로 Model을 표현해보기전에 용어에 대해 정리해보도록 하겠습니다. a는 layer j에서 unit i의 activation이며, theta는 layer j에서 layer j+1로의 function mapping을 위한 가중치의 matrix입니다. 이 부분은 조금씩 정리하면서 이해하실 수 있도록 하겠습니다.
각 layer에서 unit의 계산식은 위와 같습니다. 입력과 가중치 theta의 곱의 전체 합으로 표현되며 해당 수식을 sigmoid function을 이용하여 출력을 구합니다. 이해가 안되시면 model 그림과 수식을 함께 보면서 다시 확인해보세요. 각 Unit의 입력은 가중치가 곱해진 값의 합이되고 그에 대한 출력은 sigmoid 함수를 거친 값이 출력이 됩니다.
위의 Model에서 표현한 수식을 Vector로 더 간단히 표현할 수 있습니다. 그럼 마지막 Output Layer는 Hidden layer의 출력 값들을 이용해서 계산할 수 있으며, 최종적으로 h(x), 즉 hypothesis model을 구할 수 있습니다.
다음 글에서는 몇 가지 Model representation의 단순한 예를 살펴보겠습니다.
감사합니다.
'AI > Machine Learning' 카테고리의 다른 글
Neural Networks - Cost function / Back propagation (0) | 2018.02.05 |
---|---|
Neural Networks - Model representation example (0) | 2018.02.05 |
Non-linear hypotheses (0) | 2018.01.30 |
Solving the problem of overfitting (2) | 2018.01.25 |
Logistic Regression - Multi class classification (0) | 2018.01.23 |