본문 바로가기
  • 紹睿: 자유롭고 더불어 사는 가치있는 삶
Study/모두를 위한 딥러닝 시즌1

Lec10-2, 3: Weight 초기화 잘해보자/ Dropout, model 앙상블

by 징여 2018. 5. 23.
반응형

여태까지 우리 초기화를 random(-1~1)으로 두고 학습을 시켰다.


먼저, weigth 초기값을 0으로 두자! chain rule 사용시 weigth가 사용되는데, 이렇게 되면 계속 기울기가 다 0이 되어버린다.

왜 weigth 초기값이 중요한지 알겠는가! gradient가 사라져 버렷!


그러면 weight 초기값을 어떻게 주어야 될까?


2006년, "A Fast Learning Algorithm for Deep Belief Nets" 에서는 Restricted Boatman Machine(RBM)이 사용 된다.


RBM STRUCTURE


먼저, Forward로 weight를 구해본다!

그 다음,Backward로 x hat값을 구해본다!


그러면, 앞 forward의 x값과 backward의 x hat값이 같아지도록 weight를 구한다!?


layer가 많이 있을때는, 앞의 2개씩 layer를 encoder, decoder weight를 학습시켜 계속 진행한다.


&Pre-training

x라는 값이 주어졌을때, 2개의 layer만 가지고 RBM을 돌린다. 그 다음, 2개의 layer를 가지고 또 ... weight를 학습시킴... 마지막 까지, weight를 구하며 초기 weight를 지정해주게 된다


ㅡㅡ 복잡하구만.. 





또 다른 방법으로는 

- Xavier initialization: 몇개의 입력(fan_in)이고, 몇개의 출력인가(fan_out)에 따라 구하면된다.


W = np.random.randn(fan_in, fan_out)/np.sqrt(fan_in)


2015년 버전

W = np.random.randn(fan_in, fan_out)/np.sqrt(fan_in/2)





Overfiitting

학습 데이터에게만 완벽한 애들!!!!!!!!!!


training data에서는 100퍼가 되지만, test data에서는 정확도가 떨어지는 경우! overfitting이 되었다고 생각하면 된다.(응용력이 읍다니 ㅋㅋㅋㅋㅋㅋ)

보통은 layer가 많을 수록 overfitting이 될 확률이 높당.


오버피팅을 피하기 위해서 Regularization을 이용하는데, L2 regularization을 사용하는데, 

l2reg = 0.001 * rf.reduce_sum(tf.square(W))로 표현하면된다.



NN에서는 Dropout을 사용하는데, 그냥 그만두는 거.....를 얘기한다 (2014)

NN을 힘들게 다 엮어 놨는데, 학습할때 임의로 몇개의 node를 죽여버리는것을 이야기한다(랜덤하게) 죽어!



출처:https://cdn-images-1.medium.com/max/1044/1*iWQzxhVlvadk6VAJjsgXgg.png



dropout_rate = tf.placeholder("float")

_L1 = tf.nn.relu(tf.add(tf.matmul(X, W1), B1))

L1 = tf.nn.dropout(_L1, dropout_rate) // 보통은 0.5을 많이 사용한다고 한다.


주의해야될 점은 dropout은 학습할때만, 이용하는 것이고, 실전에서는 dropout_rate를 1로 바꾸어야 한다!




Ensemble


학습할 수 있는 장비가 많을때 보통사용한다!


Training set -> learning model

Training set -> learning model

Training set -> learning model

Training set -> learning model

Training set -> learning model

...


여러개를 각각 학습시켜서 마지막에 얘들을 합치는거!

전문가 1명이 아니라, 전문가 여~~~~럿을 이용해서 하는거라고 생각하면 된당 ㅋㅋ

앙상블을 이용하면, 2~4/5% 까지 성능이 향상 된다.. 좋넹

반응형

댓글