目录
对一天搞懂深度学习–李宏毅教程分享内容做读书笔记,对深度学习中的神经网络进行介绍
1. Introduction of Deep Learning
深度常用于语音识别、手写文字识别、围棋、对话等多个领域。
深度学习的目标是构建一个模型,这个模型就是Network就是指神经网络,深度学习就是构建这个模型的过程。构建这个模型的过程只有三步:
1.1. Neural Network - A Set of Function
首先介绍这个模型(神经网络)是什么样子的。
先介绍神经元,Neuron也是一种函数,如下所示
其中激活函数Activation Function为Sigmoid:
由多个神经元相互全连接即为全连接的反向网络Fully Connect Feedforward Network,由多层Layers组成(不同模型Layers不同),如下图所示
记作 { y 1 , . . . y M } = f ( { x 1 , . . . , x N } ) \{y_1,...y_M\}=f(\{x_1,...,x_N\}) {y1,...yM}=f({x1,...,xN})
最终的输出使用softmax激活函数进行归一化,用于将每种输出转换为概率分布
最终得到
神经网络本质就是一种函数关系,不同的input vector可得到不同的output vector
1.2. Learning Target - Define the goodness of a function
知道模型的样子之后,深度学习的目标是找到神经网络中最合适的weights和bias。
怎么定义最合适?最合适的意思是,这个模型的输出是我们想要的理想输出。所以,使用已经标记好的训练数据喂给模型,模型的输出应该是我们的理想期望值。
例如,手写识别场景下,输入左图,期望输出应该是y2为最大值(表示模型的预期输出是2),使用softmax激活函数则期望输出为 y ^ = [ 0 , 1 , 0 , . . . , 0 ] \hat{y}=[0,1,0,...,0] y^=[0,1,0,...,0]
所以,模型应该适应我们的训练数据。即给定训练数据输入 { x ^ 1 , . . . , x ^ 256 } \{\hat{x}_1,...,\hat{x}_{256}\} {x^1,...,x^256},模型的输出应该最接近我们的训练数据输出 { y ^ 1 , . . . , y ^ 10 } \{\hat{y}_1,...,\hat{y}_{10}\} {y^1,...,y^10}。
最接近的含义就是square error最小,这个square error就叫损失函数,如下,其中R就为训练样本个数
l r = ∑ i = 1 R ( y i − y ^ i ) 2 l_r=\sum_{i=1}^{R}{(y_i-\hat{y}_i)^2} lr=i=1∑R(yi−y^i)2
而且满足
{ y ^ 1 , . . . y ^ 10 } = f ( { w 1 , . . . , w N , b 1 , . . . , b M } , { x ^ 1 , . . . , x ^ 256 } ) \{\hat{y}_1,...\hat{y}_{10}\}=f(\{w_1,...,w_{N},b_1,...,b_{M}\},\{\hat{x}_1,...,\hat{x}_{256}\}) {y^1,...y^10}=f({w1,...,wN,b1,...,bM},{x^1,...,x^256})
例如上图损失函数就为 l = ( y 1 − 0 ) 2 + ( y 2 − 1 ) 2 + ( y 3 − 0 ) 2 + . . . + ( y 10 − 0 ) 2 l=(y_1-0)^2+(y_2-1)^2+(y_3-0)^2+...+(y_{10}-0)^2 l=(y1−0)2+(y2−1)2+(y3−0)2+...+(y10−0)2
那么整个模型的损失函数就为
l = ∑ i = 1 R l r l=\sum_{i=1}^{R}{l_r} l=i=1∑Rlr
所以,深度学习的终极目的是,寻找合适的 { w 1 , . . . , w N , b 1 , . . . , b M } \{w_1,...,w_{N},b_1,...,b_{M}\} {w1,...,wN,b1,...,bM}使上述 l l l最小。