×

    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