MyCloud

[Coursera] 머신러닝 4주차 강의정리 본문

Knowledge/Machine Learning

[Coursera] 머신러닝 4주차 강의정리

Swalloow 2016. 8. 10. 03:19



Neural Networks: Motivations


이전에 Logistic Regression을 통해 Quadratic model을 분류할 수 있게 되었습니다.

하지만 feature가 2~3개가 아니라 10만개가 넘는다면? Logistic Regression으로 성능을 내기 힘들게 됩니다.


대표적인 예시가 컴퓨터 비전 분야입니다.

예를 들어, 사진을 주고 이것이 자동차인지 아닌지 컴퓨터가 구분하는 것입니다.

사람이 보기에 자동차의 손잡이는 그냥 손잡이 모양이지만,

컴퓨터가 보는 손잡이는 아래와 같은 Binary code로 이루어져 있습니다.


만일 사진의 크기가 500 x 500 픽셀이라면, feature의 수는 25만이 됩니다.

여기에 흑백 사진이 아닌 컬러 사진이라면 RGB가 추가되어 75만개의 feature가 됩니다.

이러한 이유 때문에 기존의 방법과는 다른 새로운 알고리즘이 필요해진 것입니다.




Neural Networks: Intro


인간이 사진을 인식하는 과정을 생각해보면 다음과 같습니다.

사람이 눈을 통해 사진을 보면 시신경을 통해 뇌로 전달되고 사진을 판단하게 됩니다.

이와 유사한 인간의 뇌를 알고리즘으로 나타내기 위해 뉴럴 네트워크(Neural Network)가 생기게됩니다.

먼저 사람의 신경망은 다음과 같이 구성되어 있습니다.


먼저 축색돌기(Dendrite)는 다른 뉴런들로부터 정보를 받는 역할(Input)을 합니다.

그리고 세포체(Cell body)를 거쳐서 축색돌기(Axon)로 이동합니다.

축색돌기(Axon)는 다른 뉴런에 전기신호를 전달하는 역할(Output)을 합니다.


결국 한 뉴런에서 다른 세포로 신호를 전달하게 되는데,

서로 다른 뉴런과 뉴런 사이에는 시냅스(Synapse)라는 틈이 존재합니다.

이 틈을 통해 신경전달물질이 이동해서 뉴런간의 신호를 보낼 수 있습니다.




Neuron Model



뉴런 모델은 위와 같은 Input unitBias unit으로 이루어져 있습니다.

각 Input에 가중치를 곱하고 모두 더한 다음, 시그모이드 함수(Sigmoid)에 넣어 계산합니다.



+ 추가정리

Bias unit이 꼭 필요한 이유는?

Bias unit은 의미를 갖는 고정된 값입니다.

고정된 값을 부여해서 어느 한쪽으로 치우치지 않도록 방지하는 역할을 합니다.


시그모이드 함수(Sigmoid Function)를 씌우는 이유는?

1과 0으로 구분된다면 Gradient Descent를 쓸 수 없습니다.

그리고 시그모이드 함수에서 중간 값은 확률로 계산되기 때문에 확률적 의미가 있습니다.


Comments