Introduction of deep learning
从逻辑回归引导到深度学习,李宏毅教授在前一节课生动形象地给我们稍微介绍了一下神经网络的模样,今天就正式介绍一下deep learning是什么,它的发展历史,以及deep learning的三板斧,马上进入正题!
深度学习的历史发展
要了解一样东西,我们必须要先从它的历史发展开始,知道它出现的原因以及它对我们产生了什么影响。
上图已经把历史线画出来了,我就简单描述一下内容:
- 1958年:人们感觉人工智能要来了,因为linear model的出现,它可以做到一些稍微复杂的分类和预测问题,当时他们也叫这个技术为Perceptron,感知器
- 1969年:有人终于发现了linear model有缺点,研究了一下为什么“坦克与卡车”的图像分类为什么如此精确,原来是因为两组图片的拍照时间不一样,而机器是通过其亮度作为特征来分类的
- 1980年代:多层感知机,尝试使用多层的感知机(与现在的deep learning基本没有差别)
- 1986年:出现了反向传播,但是发现超过3层就不太有用了
- 1989年:有人认为,一个隐藏层就足够成为任何的function,这段时间多层感知机被各种嫌弃,所以人们才给它换了个名字,就是深度学习
- 2006年:RBM initialization被认为是大突破,这个非常复杂,用于梯度下降初始化值,最后发现复杂但是没啥用
- 2009年:知道要用GPU来加速深度学习的模型训练
- 2011年:被用在语音辨识中,发现很好用
- 2012年:赢得了ILSVRC图像比赛,做图像的人也开始用Deep Learning
深度学习的三板斧
- Step1 : 神经网络
- Step2 : 模型评估
- Step3 : 选择最优函数
你会发现其实和传统机器学习非常相似,就是把第一步从自己定义function set换成了自己设计神经网络的架构
Step1:神经网络Neural Network
之前我们说过,用逻辑回归把它们连接在一起,一个逻辑回归称之为Neuron神经元。神经网络有很多不同的连接方式,从而产生不同结构。
每一个逻辑回归(神经元)都有自己的weight和bias,我们把所有的weight和bias的集合称为network的参数 θ \theta θ。
那我们应该怎么把神经元接起来呢?是有多种方式的
完全连接前馈神经网络
feedforward叫前馈,也叫前向,顾名思义,就是信号流动是单方向的,从前面往后流向,直到输出层,其中任意两层之间的连接没有反馈。
上面的图假设神经元是sigmoid函数,已知权重和偏差是多少,直接计算结果,然后放入神经元中,计算出一个新的结果,继续往后传播
- 输入是(1,-1),知道所有的weight和bias,输出的结果
- 输入为(0,0), 知道所有的weight和bias,输出的结果
所以我们可以把一个权重和偏差都知道的神经网络看成一个function,输入是一个向量vector,输出是另一个向量vector。
如果我们不知道参数,只是知道network structure,就等于是定义了一个function set,我们可以给上面的结构的参数设置为不同的数,就是不同的function。
神经网络的特点是它可以包含以前的linear model无法包含的function,因为它的function set很大,能表达出以前不能表达的情况
- 全连接:因为layer1与layer2的神经元是两两互相连接的
- 前馈 : 传递方向是由从后(layer1)往前(layerL)传
输入是个向量 x N x_N x