Deep Learning 기초2 (Neural Net 기초)

김성훈 교수님의 “모두를 위한 머신러닝/딥러닝 강의(시즌1)”를 듣고 내용을 정리해 둔다. 참고한 문서들은 가장 아래 적어 둔다.

Introduction

Perceptron

# tensorflow example
# W1 : weight1, b1 : bias1
# 1. sum
sum1 = tf.matmul( X, W1 ) + b1
# 2. activation
layer1 = tf.sigmoid( sum1 )

Major Issues

Geoffrey Hinton’s summary of findings up to today

  • Our labeled datasets were thousands of times too small.
  • Our computers were millions of times too slow.
  • We initialized the weights in a stupid way.
  • We used the wrong type of non-linearity.

Select Activation Function

We used the wrong type of non-linearity. _ Geoffrey Hinton

# ReLU
max(0, x)
# ReLU in tensorflow
tf.nn.relu()

Weight Initialization

We initialized the weights in a stupid way. _ Geoffrey Hinton

Xavier/He initialization

# Xavier initialization (Glorot et al. 2010)
W = np.random.randn( fan_in, fan_out ) / np.sqrt( fan_in )

# He et al. 2015
W = np.random.randn( fan_in, fan_out ) / np.sqrt( fan_in / 2 )

Overfitting

Dropout

randomly set some neurons to zero in the forward pass _ Srivastava et al. 2014

tf.nn.dropout( layer, dropout_rate )

Ensemble

CNN: Convolutional Neural Networks

RNN : Recurrent Neural Networks

Acknowledgement

모두를 위한 머신러닝/딥러닝 강의

CS231n Convolutional Neural Networks for Visual Recognition

ReNom/tutorial

... ... ... ...
Back