반응형

drop out




NN 에서 drop out 기법은 여러 입력 변수들 중에서 일부 뉴런들을 disable 시키고 나머지 내용들로 학습시킵니다.


주의점 : 학습할때만 dropout 시킴!!!!



방법 


dropout_rate = tf.placeholer("float")

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

L1 = tf.nn.dropout(_L1, dropout_rate)




TRAIN:

   sess.run(optimizer, feed_dict={X:batch_xs, Y: batch_ys, dropout_rate:0.7})


EVALUATION:

  print "Accuracy:", accuracy.eval({X: mnist.test.images, Y:mnist.test.labels, dropout_rate:1})





앙상블

똑같은 NN을 여러개 구성 해놓고 같은 training data로 각각의 NN에 트레이닝 시키고 나서

나중에 합치게 되면 성능개선이 3~5% 이상 올라간다.


이유 : W 초기 값이 random이기 때문에 똑같이 구성된 NN이라 하더라도 트레이닝 동작이 달라지게 됨.

이로 인해서 서로 약간씩 다른 결과가 나오는데 이를 합치게 되면 더 많은 traning data로 training한 효과가 나오게 됨.





[김성 모두를 위한 딥러닝 강좌]

https://www.youtube.com/watch?v=wTxMsp22llc&index=32&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm


'머신러닝 & 텐서플로 & 파이썬' 카테고리의 다른 글

adam and gradient descent optimizer  (0) 2018.01.29
Softmax  (0) 2018.01.26
초기값  (0) 2018.01.26
Sigmoid , ReLU  (0) 2018.01.26
tensorboard: 학습 모니터  (0) 2018.01.26

+ Recent posts