Brief Introduction of Deep Learning
· Deep learning 的历史
深度学习从发现开始起起伏伏,直到2012年,在ILSVRC image competition中深度学习的技术得到了广泛的关注。
图1· Deep learning的步骤
深度学习的步骤与机器学习类似,也可以看成三个步骤
图2Step 1:Neutral Network
深度学习是有多层的神经网络构成。假设输入一组数据,如图4 input layer,然后通过设置好的权重(weight)与偏差(bias),通过SIGMOID函数(激活函数,将数据转化为非线性,且范围在1.-1之间)会得到一组输出值,这个过程如图3所示。
图3用矩阵计算表示如下:
激活函数 *(用权重矩阵*输入值向量+偏差向量)
多层的神经网络,会通过不同的规则来连接,不同的连接方式又会又不同的神经网络结构。这里以fully connect feedforward network为例,每一层的每一个数据都会传输到下一层的每一个数据,这叫做fully(矩阵的乘法运算,但是要用权重矩阵*输入值),从输入正向传播叫feedforward。
一个神经网络结构由Input Layer,Hidden Layers,Output Layer组成,如图4。Deep表示many hidden layers。一般很多层的神经网络结构,都不适用Fully connect,而是需要特定的结构。
图4通过一个例子来更直观的说明神经网络的工作原理,如图5所示,是一个手写数字的识别问题。输入数据为一个256维的向量,是这个数字的像素点,通过构建神经网络,输出一个10维的向量,这个向量表示了是0-9数字的概率。
图5Step 2:Goodness of Function
第一步是用神经网络,找到可用的函数表达式,第二步需要定义什么样的函数表达式(神经网络)是好用的。
假设需要辨识手写1,输入像素点向量后,会得到预测值,通过计算预测值与真实值之间的差距,可以得到cross entropy,不断调整使得该值越来越小。
不断的输入有标签的数据,可以得到将所有的误差值相加,可以得到Total Loss,接下来的任务就是找到使得Total Loss最小的function,即找到该function对应的参数值。
求解的方法与之前机器学习相同,还是采用梯度下降的方法。要求损失函数的最小值,则在该店对L进行微分如果小于0就向右移动,大于0则向左,直到微分值为0,这样就可以得到一个局部最优解。学习率μ决定了每次移动的距离。
通过每一层的迭代,直到每一层对应的使得损失函数最小的参数值。
梯度下降是一个很有用的工具,Alpha Go也是通过梯度下降来计算损失函数最小的。但是由于在深度学习中,计算较为复杂,可以选用Pytorch,TensorFlow
Notes:
· 深度学习的训练集大小:
· 深度学习的计算资源
· 深度学习的算法优化:
网友评论