인공지능

[모두를 위한 딥러닝1] Weight의 초기값 설정하기(6주차_2)

sujin7837 2021. 2. 4. 00:48
반응형

w 값을 0으로 설정하면 미분값도 0이 되므로 gradient 값이 사라지게 됩니다. 그러므로 w 값을 0으로 설정하면 안 된다는 것을 알 수 있습니다.

 

1. forward(encoder): x 데이터셋과 weight를 이용해서 출력값을 만들어냅니다.

2. backward(decoder): forward의 출력 결과와 forward에서 이용한 동일한 weight를 이용해서 거꾸로 값을 구합니다.

3. forward에서 이용한 x값과 2번에서 구한 x값을 비교합니다.

4. 두 x값의 차이가 최소가 되도록 weight 값을 조절합니다.

 

Deep Belief Network

1. 처음 두 layer를 가지고 forward와 backward 과정을 통해 만들어낼 수 있는 weight를 학습시킵니다.

2. 다음 두 layer를 가지고 동일한 과정을 거쳐서 만들어낼 수 있는 weight를 학습시킵니다.

3. 마지막 두 layer까지 동일한 과정을 거쳐서 학습을 완료합니다.

4. 학습이 완료된 전체 네트워크를 fine tuning(약간의 조정)을 통해 완성할 수 있습니다.

 

위의 과정을 통해 초기값을 잘못 주어서 나타나는 문제를 해결할 수 있습니다.

overfitting된 경우에는 일정 수준까지는 에러가 감소하다가 어느 수준이 넘어가면 에러가 다시 증가합니다.

 

Overfitting을 방지하기 위한 해결책

1. 많은 학습 데이터

2. Regularization 

 

Regularization

1. cost + $\lambda\sum(w^2)$

 

2. Dropout

몇 개의 노드의 연결을 끊어버리는 것으로, 일부 노드들은 쉬게 한 다음 나머지 노드들을 이용해서 학습을 합니다. 그리고 마지막에 학습한 것들을 총동원해서 예측을 하는 방식입니다.

 

학습: 일부 노드만 사용

실제 모델을 사용할 때: 전체 노드를 사용

 

Ensemble

1. 각각 독립적인 Neural Network를 만듭니다.

2. 학습을 시킵니다.

3. 학습시킨 모델들을 합칩니다.

4. 합한 것을 바탕으로 예측을 진행합니다.

 

Fast Forward

 

1번의 출력을 두 layer 앞인 2번에 연결합니다. 또한 3번의 출력을 두 layer 앞인 4번에 연결합니다.

 

Split&Merge

 

Recurrent Network

 

 

 

 

반응형