Deep Neural Networks
Motivations
- 차원이 높고 복잡한 데이터들은 주로 비선형 관계를 가진다
- 고차원의 데이터들은 plot으로 확인하기도 어려움
- 기존의 선형 데이터 분석 기법으로는 한계가 명확하다
- Linear layer를 깊게 쌓아도 여전히 linear 모델이다
Logistic Regression
- 마지막에 sigmoid함수를 통해
- 매우 작은 값은 0에 수렴하고,
- 매우 큰 값은 1에 수렴하도록 했다.
- 비선형 함수
Adding Non-linearity
- 레이어 사이에 비선형 활성 함수를 넣어 깊게 쌓자
Network Capacity
- 깊이(depth)와 너비(width)를 넓게 할수록 신경망의 표현력은 좋아진다.
- 복잡한 형태의 함수를 배울 수 있는 능력이 생긴다.
Backpropagation
- 주어진 데이터에 대해서 출력 값을 똑같이 내는 함수를 찾고 싶다
- Loss 값을 최소로 하는 Loss Function의 입력값을 찾자
- Gradient Descent를 통해 loss를 최소화하는 신경망 파라미터를 찾을 수 있다.
- 하지만 loss를 각 레이어의 파라미터로 그냥 미분하는 것은 매우 비효율적
- 따라서 Back-propagation을 통해 반복되는 미분 과정을 효율적으로 만들 수 있다.
chain rule
- 필요한 기존 미분 값을 재활용
- 심층 신경망은 합성함수로 표현될 수 있음
- Gradient들의 곱셈들로 이루어져 있다
- 입력에 가까운 레이어의 파라미터일수록 곱셈이 늘어난다
Gradient Vanishing
- 깊은 네트워크를 구성하게 되면 점점 gradient가 작아지는 현상
- 따라서 깊은 신경망을 학습하기 어렵게 된다.
- 앞쪽 레이어의 파라미터는 업데이트 되는 크기가 매우 작기 때문