새소식

부스트캠프 AI Tech 4기

[DL Basic] 1. Neural Networks & Multi-Layer Perceptron

  • -

Neural Networks 

Neural Network는 affine transformation(행렬을 곱하는)과 nonlinear transformation(activation function)이 반복적으로 일어나는 ground-truth 확률밀도함수를 근사하는 모델이라고 할 수 있다.

 

Linear Neural Networks 

  • Data: $D = \{(x_{i}, y_{i})\}_{i=1}^{N}$
  • Model: $\hat{y} = wx + b$ 
  • Loss: $loss = \frac{1}{N}  \sum_{i=1}^N (y_{i}- \hat{y}_{i})^{2}$

N개의 데이터를 잘 표현할 수 있는 모델을 선형으로 한정짓고 w와 b를 찾는 것이 목적이다.

따라서 Neural Network의 출력값과 데이터 y값의 차이(loss)를 줄이는 것이 중요하다.

 

그렇다면 w와 b 파라미터를 어떻게 찾을까?

파라미터가 어느 방향으로 움직였을 때 loss값이 줄어드는지를 찾으면 된다. → gradient descent

$$ \frac{\partial loss}{\partial w} = \frac{\partial}{\partial w} \frac{1}{N} \sum_{i=1}^N (y_{i}-\hat{y_{i}})^2 $$

$$ = \frac{\partial}{\partial w} \frac{1}{N} \sum_{i=1}^N (y_{i}-wx_{i}-b)^2 $$

$$ =- \frac{1}{N} \sum_{i=1}^N 2(y_{i}-wx_{i}-b)x_{i} $$

 

$$ w  \leftarrow  w -  \eta \frac{\partial loss}{\partial w} $$

$$ b  \leftarrow  b-  \eta \frac{\partial loss}{\partial b} $$

 

Beyond Linear Neural Networks 

딥러닝은 Neural Network를 깊게 쌓은 것이다.

그러면 Network를 깊게 쌓을려면 어떻게 해야할까?

단순히 affine transform을 계속 곱한다면 이것은 한 단 짜리 neural network와 다를 것이 없다.

x라는 입력에서 y라는 출력으로 가는 mapping이 표현할 수 있는 표현력을 극대화하기 위해서는 단순히 선형결합을 N번 반복하는게 아니라 선형결합 뒤에 activation function을 통해서 Nonlinear transform을 거치는 과정을 N번 반복해야한다.

 

Universal Approximators Theorm

hidden layer가 한 개만 있는 neural network는 대부분의 continuous function을 근사할 수 있다.

이런 것을 만족하는 neural network가 세상 어딘가에 존재한다고 말할 수 있지만 내가 학습시킨 neural network가 그러한 성질을 가질 것이라고 말해서는 안된다.

→ Neural Network가 표현력이 크다라는 의미로 해석하면 된다.

 

 

Multi-Layer Perceptron

입력이 주어져있고 그 입력을 affine transformation과 non-linear transformation을 거쳐서 hidden vector, hidden layer에서 다시 affine transformation (과 non-linear transformation)을 하는 한 단 짜리 hidden layer가 있는 두 layer의 neural network를 보통 Multi-Layer Perceptron이라고 한다.

 

https://www.allaboutcircuits.com/uploads/articles/an-introduction-to-training-theory-for-neural-networks_rk_aac_image2.jpg

 

 

Loss Function

  • Regression Task

$$ MSE = \frac{1}{N} \sum_{i=1}^{N} \sum_{d=1}^{D} (y_{i}^{(d)} - \hat{y}^{(d)})^{2} $$

 

  • Classifcation Task

$$ CE = \frac{1}{N} \sum_{i=1}^{N} \sum_{d=1}^{D} y_{i}^{(d)} log\hat{y}_{i}^{(d)} $$

 

  • Probabilistic Task

$$ MLE = \frac{1}{N} \sum_{i=1}^{N} \sum_{d=1}^{D} log N(y_{i}^{(d)} ; log\hat{y}_{i}^{(d)}, 1)  $$

 

 


부스트캠프 AI Tech 교육 자료를 참고하였습니다.

728x90

'부스트캠프 AI Tech 4기' 카테고리의 다른 글

[DL Basic] 3. CNN  (1) 2022.10.05
[DL Basic] 2. Optimization  (1) 2022.10.04
[WEEK02 마스터클래스] 최성철 마스터  (0) 2022.09.30
[WEEK02 두런두런] 변성윤 마스터  (0) 2022.09.29
[WEEK02] Tips  (0) 2022.09.29
Contents