2.(先修课①)Brief Introduction of De
2018-12-06 本文已影响15人
SpareNoEfforts
课程链接:https://www.youtube.com/watch?v=Dr-WRlEFefw&feature=youtu.be&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49
deep learning可以做的应用实在太多了!以下是一个趋势:Deep Learning的热度
深度学习的历程(Ups and Downs)
-
1958:perceptron(线性模型)
-
1969:指出了perceptron有局限
-
1980s:多层perceptron(Multi-layer perceptron)
-- 与当今的DNN没有实质性的差别 -
1986:反向传播(Backpropagation)
-- 通常超过3个隐藏层是没用的,测不出好的结果了 -
1989:有人发现:1个隐藏层就可以了
-
2006:RBM初始化(突破)
-- 受限玻尔兹曼机(Restricted Boltzmann Machine, RBM) -
2009:GPU
-
2011:开始在语音识别领域受欢迎起来
-
2012:在ImageNet Large Scale Visual Recognition Competition (ILSVRC)中获奖(应用于图像识别领域)
深度学习的三步骤
下面开始解说……
-
step 1:Neural Network
首先,简单介绍一下神经网络(神经网络主要包括输入,隐藏与输出层。其中,隐藏与输出的每个小圆圈表示一个神经元
如下图所示,红方框里面就是一个neuron(神经元或logistic regression)。
那么问题来了,这些神经元之间是怎么连接的呢?
最常见的连接方式是:Fully Connected Feedforward Network。
每一个神经元都有weight和bias(这是通过训练数据得到的),如下图所示:
当用户输入数据为[1,-1](两个黄色小方块的值)
权重矩阵为[1,-1; -2,1]
偏置为[1,0]
得到[4,-2],激活函数为sigmoid函数 时,
第一个隐藏层的输出为[0.98,0,12] = segma([1,-1][1,-1; -2,1]+[1,0]),
然后将[0.98,0.12]作为输入,按照 segma(输入权重+偏置)计算第二个隐藏层的输出,依次类推,直到计算出最终的输出y为止。
如果用户输入是[0,0]的话,那么最新的结果如下图所示:
所谓的深度神经网络。所谓的深,即隐藏层的个数比较多。每个人的定义不一样,深度也不一样。如下图所示,红色的百分数是错误率:
神经网络的运作,我们常常使用矩阵运算来表示。
即:
-
step 2:goodness of function
如上图,我们有一个target和一个prediction,我们要计算这两个之间的交叉熵(cross entropy),并且使得这个交叉熵越小越好。
我们有一组数据,因此我们要计算总的
-
step 3:Pick the best function
接下来,我们需要利用梯度下降法优化参数,从而得到最优模型。
你的
为什么要进行深度学习?
后续学习继续探究。