Boostcamp AI Tech

[Boostcamp Day-6] DL Basic - Multi-Layer Perceptron

ju_young 2021. 8. 9. 19:42
728x90

Neural Networks

위키피디아에서는 Neural Networks를 다음과 같이 인간의 뇌에 비유하여 설명하였지만 이렇게 해석할 필요가 없다.

“Neural networks are computing systems vaguely inspired by the 
biological neural networks that constitute animal brains.”

Neural Networks는 다음과 같이 행렬곱이 비선형 함수가 반복적으로 일어나는 것으로 해석하는 것이 맞다는 의견이라고 하신다.

Neural networks are function approximators that stack affine 
transformations followed by nonlinear transformations.

Linear Neural Networks

Linear Regression이라 부르며 입력이 1차원 벡터가 들어오고 출력으로 1차원 벡터가 나가는데 이때 이 입출력 벡터끼리 연결하는 모델을 찾는 것이고 이 모델에서의 기울기와 절편을 구해야한다.

  • Data
    데이터는 2차원 공간상에 존재하므로 다음과 같은 수식으로 표현할 수 있다.
    $$
    D = {{(x_i, y_i)}}_{i=1}^N
    $$
  • Model
    1차원 함수이므로 기울기(w)와 y절편(b)를 사용하여 다음과 같은 수식이 나온다.
    $$
    \hat{y}=wx + b
    $$
  • Loss
    loss function을 최소화하는 w와 b를 구하는 것이 목적이다.
    $$
    loss = \frac{1}{N}\sum_{i=1}^N (y_i - \hat{y}_i)^2
    $$
  • backpropagation
    위에서 말한 loss를 다음과 같이 w에 대해서 편미분을 한다.

$$
\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 - w x_i - b)^2
$$

$$
= \frac{1}{N} \sum_{i=1}^N -2(y_i - w x_i - b)x_i
$$

똑같이 b에 대해서 편미분을 하면 다음과 같이 될 것이다.

$$
\frac{\partial loss}{\partial b} = \frac{\partial}{\partial b} \frac{1}{N} \sum_{i=1}^N (y_i - \hat{y}_i)^2
$$

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

$$
= - \frac{1}{N} \sum_{i=1}^N -2(y_i - w x_i - b)
$$

각각에 대해서 편미분을 하고 나면 그 값들에 stepsize 또는 learning_rate를 곱해서 빼주는 식을 update한다고 한다.

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

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

Multi dimensional

다차원 데이터를 다룬다면 다음과 같이 행렬을 사용하면 된다.

여기서 $W^T$은 두 개의 벡터공간의 변화로 해석할 수 있다. 즉,두 개의 벡터 사이에 선형 변환을 찾겠다는 의미로 생각할 수 있다.

Multi Layer Perceptron

층을 하나 더 쌓는다고 했을 때 다음과 같이 두 행렬 곱으로 수식을 계산하면 한 단짜리의 nueral network에 지나지않는다.
$$
y = W_2^T h = W_2^T W_1^T x
$$
따라서 한 번 선형모델이 반복되면 이후에 비선형 함수인 activation function을 사용하여 표현력을 극대화하는 다음과 같은 수식을 사용한다. 여기서 p가 activation function을 의미한다.
$$
y = W_2^T h = W_2^T p(W_1^T x)
$$
loss function은 각각 다음과 같이 표현될 것이다.

  • Regression Task

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

  • Classification 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} logN(y_i^{(d)};\hat{y}_i^{(d)},1)
$$

Activation functions

  • ReLU : 0보다 작으면 0을 출력하고 0보다 크면 해당 값을 출력하는 함수이다.

  • Sigmoid : 0부터 1사이의 값을 출력하는 함수이다.

  • tanh : -1부터 1사이의 값을 출력하는 함수이다.

728x90