반응형
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 |