Review
- 신경망의 동작원리
- 데이터 전처리 및 입력
- 모델 제작 및 가중치 초기화
- 모델에 데이터를 넣고 출력값을 얻음
- 출력값과 레이블(정답지)과 비교 후 Loss 계산
- Loss를 반영하여 가중치 업데이트 -> 역전파(BackPropagation) + 경사하강법(Gradient Descent)
- 역전파 원리 및 실습
- Loss function의 계산방식
- Stochastic Gradient Descent 방법
- 경사하강법의 변형들(Adam)
- 2x2x2 neural network의 역전파 수학식
- Fashion MNIST 실습
Library
1 |
|
Loss Function
평균제곱계열
- mean_squared_error (MSE) = $\frac{1}{n}\sum_{i=1}^{n}(y_{i} - \hat{y_{i}})^{2}$
- RMSE (Root Mean Squared Error) = $\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_{i} - \hat{y_{i}})^{2}}$
- mean_absolute_error (MAE) = $\frac{1}{n}\sum_{i=1}^{n}\left \vert y_{i} - \hat{y_{i}} \right \vert$
- R-Squared (coefficient of determination) = $1 - \frac{\sum_{i=1}^{n}(y_{i} - \hat{y_{i}})^{2}}{\sum_{i=1}^{n}(y_{i} - \bar{y_{i}})^{2}} = 1 - \frac{SSE}{SST} = \frac {SSR}{SST}$
- SSE, SST, SSR: Sum of Squared
Error
,Total
,Regression
($\sum_{i=1}^{n}(\hat{y_{i}} - \bar{y_{i}})^{2}$)
- SSE, SST, SSR: Sum of Squared
- mean_absolute_percentage_error = $ \frac {1}{n}\sum {i=1}^{n}\left\vert{\frac {y{t}-\hat{y_{i}}}{y_{i}}}\right\vert $
- mean_squared_logarithmic_error = $\frac{1}{n} \sum_{i=1}^n (\log(\hat{y_i} + 1) - \log(y_i+1))^2 $
엔트로피계열
- binary_crossentropy = $ -\sum_{c=1}^{C} q(y_c) log(q(y_c)), \hspace{2em} q(y_c) \in (1, -1)$
- categorical_crossentropy = $ -\sum_{c=1}^{C} q(y_c)log(q(y_c)) $
Regularization Strategies
Overfitting
EarlyStopping
- Loss가 여러 Epoch 동안 감소하지 않으면 Overfitting으로 간주하여 학습을 중단
Weight Decay
Weight Constraint / Weight Decusion / Weight Restriction
Dropout
- 신경망의 각 레이어 노드에서 학습할 때마다 일부 노드를 사용하지 않고 학습을 진행하는 방법
- 노드 간의 연결 자체를 사용하지 않도록 만들면서 하나의 모델을 여러가지 방법으로 학습
- 지정한 비율의 뉴런을 제거
- 테스트 시에는 모든 뉴런을 사용하기 때문에 여러 Network를 Ensemble 하는 효과를 가진다.
Batch Normalization
- 중간 Feature를 그대로 사용하지 않고 변형하여 학습
1 |
|
규제방법 구현
1 |
|
Weight Decay
$L(\theta_w) = {1 \over 2} \Sigma_i (output_i - target_i)^2 + \lambda \vert\theta_w\vert$
$L(\theta_w) = {1 \over 2} \Sigma_i (output_i - target_i)^2 + \lambda \vert\vert\theta_w\vert\vert_2$
- 가중치를 감소시키는 기술로써, 애초에 큰 가중치를 갖지 못하게 만드는 기술
1 |
|
L1, L2
Norm
- 벡터의 크기를 측정하는 방법이다.
- 두 벡터 사이의 거리를 측정하는 방법이기도 하다.
L1 Norm
- 벡터 p, q 각 원소의 차이의 절대값의 합이다.
L2 Norm
- 벡터 p, q의 유클리디안 거리이다.
- q가 원점이라면 벡터 p, q의 L2 Norm은 벡터 p의 원점으로부터의 직선거리이다.
L1 Norm과 L2 Norm의 차이
- 검정색 두 점사이의 L1 Norm은 빨간색, 파란색, 노란색 선으로 표현될 수 있고, L2 Norm은 오직 초록색선으로만 표현될 수 있다.
- L1 Norm은 여러가지 path를 가지지만 L2 Norm은 Unique shortest path를 가진다.
L1 Loss
- 실제값과 예측치 사이의 차이 값의 절대값을 구하고 그 오차의 합을 L1 Loss라고 한다.
L2 Loss
- 오차의 제곱의 합으로 정의된다.
L1 Loss와 L2 Loss의 차이
- L2 Loss는 직관적으로 오차의 제곱을 더하기 때문에 Outlier에 더 큰 영향을 받는다.
- L1 Loss가 L2 Loss에 비해 Outlier에 대하여 더 Robust하다.
- Outlier가 적당히 무시되길 원한다면 L1 Loss를 사용하고, Outlier의 등장에 신경써야 하는 경우라면 L2 Loss를 사용하는 것이 좋다.
- L1 Loss는 0인 지점에서 미분이 불가능하다는 단점을 갖고 있다.
L1 Regularization
- 가장 중요한 것은 cost func에 가중치의 절대값을 더해준다는 것이다.
- 기존의 cost func에 가중치의 크기가 포함되면서 가중치가 너무 크지 않은 방향으로 학습되도록 한다.
- 이때 ${lambda}$는 Learning rate 같은 상수로 0에 가까울수록 정규화의 효과는 없어진다.
L2 Regularization
- 기존의 cost func에 가중치의 제곱을 포함하여 더함으로써 L1 Regularization과 마찬가지로 가중치가 너무 크지 않은 방향으로 학습되게 되며 이를 Weight decay라고도 한다.
- L2 Regularization을 사용하는 Regression model을 Ridge Regression이라고 부른다.
L1 Regularization, L2 Regularization의 차이와 선택 기준
- 가중치 w가 작아지도록 학습한다는 것은 결국 Local noise에 영향을 덜 받도록 하겠다는 것이며 이는 Outlier의 영향을 더 적게 받도록 하겠다는 것이다.
- a와 b에 대해서 L1 Norm과 L2 Norm을 계산하면 각각 아래와 같다.
- L2 Norm은 각각의 벡터에 대해 항상 Unique한 값을 내지만, L1 Norm은 경우에 따라 특정 Feature 없이도 같은 값을 낼 수 있다.
- L1 Norm은 파란색 선 대신 빨간색 선을 사용하여 특정 Feature를 0으로 처리하는 것이 가능하다고 이해할 수 있다.
- L1 Norm은 Feature selection이 가능하고 이런 특징이 L1 Regularization에 동일하게 적용될 수 있는 것이다.
- 이러한 특징 때문에 L1은 Sparse model에 적합하고 convex optimization에 유용하게 쓰인다.
- L1 Regularization의 경우 위 그림처럼 미분 불가능한 점이 있기 때문에 Gradient base learning에는 주의가 필요하다.
Constraints
- 참고자료
- 물리적으로 Weight의 크기를 제한하는 방법이다.
- Weight 자체를 함수를 이용하여 더 큰 경우는 임의의 값으로 변경해버리는 기술을 사용하게 된다.
1 |
|
Dropout
- 모델 자체에 Layer를 추가하는 방식으로 진행되는데, 이는 확률적으로 노드 연결을 강제로 끊어주는 역할을 한다.
- 임시로 차단하고 그 연결없이 결과를 예측하도록 하고, 해당 뉴런 없이 학습을 진행하기 때문에 과적합을 어느정도 차단할 수 있다.
1 |
|