목적
뉴럴 네트워크란건 어떤건지?
뉴럴 네트워크중에서 가장 간단한 구조인 Multi-Layer Perceptron이 어떤건지?
딥러닝을 학습할때 학습이 어떤걸 가지는지? 알아보자.
사람의 지능을 모방하는 방법론이라고 굳이 설명할 필요는없음
우리가 하늘을 날고싶다고 해서 새처럼 날 필요가 없는것
우리가 빠르게 움직이기 위해서 치타처럼 움직일 필요가 없듯이,
인간의 뇌를 똑같이 모방할 필요가 없다.
뉴럴 네트워크도 동작방법을 모방하는것으로 시작했을지 모르지만
지금의 발전양상을 보면 뇌를 모방했던 시작점과는 너무많이 달라졌다.
비선형 연산이 반복적으로 일어나는걸 뉴럴네트워크라고 부르겠다.
가 오히려 오해를 덜 살 수 있다고 생각한다.
리니어 리그레션
W,B의 최솟값을 구할 수 있다. 하지만 많은 제약 조건이 필요하다.
목적은 loss펑션을 줄이는게 목표이니, 나의 파라미터가 어느방향으로 움직였을때 loss function이 줄어드는지를 찾는다.
loss가 음수로 변하는 파라미터를 밀게되면 바뀌게 된다.
그레디언트 디센트(감소), 어센트(증가) 하여 w와 b를 구한다.
하지만 뉴럴네트워크는 리니어한 변환 + non리니어한 변환이 포함된다.
한단만 있는게 아니라 여러 레이어가 겹칠텐데
마지막에 나오는 loss function을 전체 파라미터로 다 미분을해야하는게
back propagation 이다.
여기서 에타(n처럼생긴거)의 Stepsize 가 한번에 이동하는 스텝사이즈를 의미하는데
너무키우면 학습이 아예 되지않고, 0에 가까워도 학습이 아예안되니 적절한 stepsize를 잡는것이 중요하다.
예를들어 100차원 -> 20차원으로 가는 행렬이다.
이런 변환자체를 어파인 트랜스폼이라고 한다.
이런 행렬에대한 해석이 뭐냐면
두개의 벡터 스페이스의 변환이라고 생각하면 좋다.
네트워크의 곱 !
딥러닝은 결국 이런 네트워크를 여러개를 쌓겠다 라는 말이다.
그래서 중간에 Nonlinear transform
이런 네트워크가 표현할수있는 표현력을 최대한 극대화하기 위해서
선형결합을 랜덤반복하는게 아니라 비선형결합 변환을 거쳐
거기서 나온 결과를 다시 리니어 결합을 통해서 더많은 표현력을 가지게 만든다.
그게 보통의 뉴럴네트워크 방식이다.
그래서 어떤 넌리니어트랜스폼을 사용해야 되냐?
이런걸 만족하는 뉴럴네트워크가 있다
를 말하는거지, 내가 학습시킨 뉴럴네트워크가 이런 성질을 가지고있다 라고 생각하면 안된다.
표현력은 있지만, 찾을 수는 없다.
여러 히든레이어가 존재할 수 있다.
그럼 loss function은?
Regression Task
Classification Task
Probabilistic Task