Post List

2020년 7월 29일 수요일

ML(머신러닝)과 inference(추론) 최대한 빨리 공부해보기(3) (수정중)

자율주행, 혹은 robotics에서 어떤 기술이 필요할까 생각하면서 바로 CNN, 이미지/영상 처리를 볼까 생각하다가 그래도 Neural Network한번 보고 넘어가야겠다고 생각을 고쳐먹었다. 계속 이전 포스팅을 정리하지 못하고 넘어가는 느낌이지만 어쩔수 없다 생각한다.

Neural Network
Non-linear Hypothsis

지금까지 우리는 hypothesis가 linear하다는 가정하에 진행을 해왔다. 하지만 어떤 복잡한 문제는 linear하지 않을것이다. 예를들어 집값을 결정할 때 집값에 영향을 주는 feature가 100개라 가정하자. 이때 hypothesis가 linear하다는 전제가 없으면 feature space 가 너무 넓어진다. 기존 linear hypothesis를 구하는 방식을 2차, 3차,...n차로 확장하는 것은 연산량의 증가만 야기하고 복잡한 함수에 맞추다가 overfitting 문제가 발생할 수 있다.

그래서 Neural Network는 뭐가 다른다는 것일까? 유튜브 강의를 보다가 뭔가 intuition이 온 것 같다. 사실 예전에 학부강의에서 XOR classification에 대해 설명 듣긴 했지만 한귀로 듣고 흘려보냈는데...

위 그림과 같이 데이터가 분포할 때 함수로서 데이터들을 구분하기는 어렵다. 그에 비해 AND 나 OR의 경우 쉽게 구할 수 있는데 예시를 보도록하자.
만약 우리가 위처럼 AND, OR의 weight들을 찾았다 가정해보자.
결국 아이디어는 간단한 분류기들을 잘 합성한다면 복잡한 형태의 분류기를 만들 수 있다는 것이다. 이는 우리가 어떤 문제에 접근할 때 말도안되는 함수를 찾아내기보단, 네트워크의 weight을 구하는 것이 효율적이다라는 관점을 보여주는 것 같다(맞나?).

Machine Learning With Neural Network

NN을 이용해 학습을 한다고 하자. 결굴 근본은 cost function을 최소화하는 weight을 찾는 것인데 이제 이 weight들은 네트워크 layer 사이의 간선, 즉 행렬값을 찾는 것과 같아진다.

만약 위와 같은 네트워크에 대한 학습이 끝났을 땐, 5x4, 5x6, 4x5의 크기의 행렬이 구해져있을 것이다. Cost function과 back propagation을 온전히 이해해야 '학습'에 대해 안다고 말할텐데 cost function 이 굉장히 복잡하고 back propagation 역시 직관적으로 와닿지 않으니 일단 보류하고 CNN으로 넘어가보자.

댓글 없음:

댓글 쓰기