当前课程知识点:智能时代下的创新创业实践 > 第三章智能时代的创新技术 > 3.3机器是如何学习的? > 3.38
好
我们来简单介绍一下深度学习的原理
deep learning
深度学习最开始的原型是什么呢
是感知机
perception
感知机模型是1958年
神经生物学家和数学家罗森布拉特提出来
他通过观察人的神经元的工作原理
做出了感知机
简单来说
神经元是这样工作的
一个神经元
通过树突接受其他神经元传来的冲动
当这些冲动到达一定的阈值水平
就会激活这个神经元
那么这个神经元就会把神经冲动
通过轴突传递出去
罗森布拉特受到启发
建立了一个数学模型
来模拟神经元的工作机制
为此
他发表了一篇很著名的文章
《神经动力学原理感知机和大脑机制的理论》
这就是感知机模型
我们看到在这个数学模型里
某一个神经元从其他的神经元得到冲动
这个过程被描述成了一个线性模型
每一个从其他神经元传来的冲动
都乘上了一个权重w
并且加在一起
最后通过一个激励函数传导出去
这个激励函数可以让最后的输出值
被压缩在0和1之间线性输出
我们想一想
罗森布拉特是通过哪种思维方法
得到了感知机的模型的
对
就是我们讲过的类比思维
罗森布拉特通观察神经元的工作机制
提出可以模拟人类感知能力的数学模型
这是典型的类比思维
感知机让罗森布拉特一夜爆红
但是却被人工智能另一位大佬
明斯基认为是有缺陷的
他证明了感知机不能够实现异或运算
这是感知机的重大缺陷
有的人认为是因为嫉妒
让明斯基这样做的
这宣告了感知机的失败
人工智能也进入了20年的所谓的黑暗期
感知机重新出现在人们的视线当中
是因为神经网络
Artificial neural network
我们前面曾经提到过
线性函数在分类问题上的能力是有限的
它只能解决线性可分的样本问题
当遇到线性不可分的复杂情况时
就无能为力了
这样
大家需要找到一种方法
来模拟非线性的情况
而神经网络就是这样一个创新
人们希望把感知机拼在一起
形成一个复杂的数学模型
来模拟大脑的工作
就是把多个感知机
用某种特定的方式组合的方式组合在一起
每一个神经元在数学模型上
都是线性回归函数和激励函数的一个组合
这种模拟人类大脑皮层的多层神经组织
在效果上可以模拟任何连续的函数
这就是所谓的神经网络
它包括一个输入层
一个输出层
以及中间的若干隐藏层
1982年
物理学家霍普菲尔德
提出了一种新的神经网络
可以解决一大类的模式识别问题
这种神经网络模型
在后来被称为霍普菲尔德网络
一般认为
只要有一个隐藏层的神经网络
就可以逼近任何连续的函数
那么例如
在这个全连接的神经网络里
输入是1和-1
通过权重运算和偏移量的运算
并经过各自的激励函数
可以得到第二层的两个输出
分别是0.98和0.12
再重复这个过程
直到我们在输出层得到两个输出
0.62和0.83
这就是整个神经网络的工作方式
在数学上
可以把1和-1这两个输入看成输入矩阵
两个神经元的权重看成是权重矩阵
偏移看成一个偏移矩阵
把输出看成输出矩阵
只要把输入矩阵与权重矩阵进行点积运算
并且加上一个偏移矩阵就可以得到一个输出
这样
整个运算就变成了一系列的矩阵乘法
和矩阵加法的运算了
神经网络的基本工作机制就是这样
这就是基本的神经网络数学模型
好
现在回到我们的问题
如何设计一个神经网络
当输入某个同学的霍兰德量表
6个特征值时
可以得到这位同学
与所有300个专业的匹配值呢
如何利用神经网络建立这六个特征值
与所有专业匹配度之间的关系
关键有两个方面
首先是神经网络的构建
刚才我们看到的例子里
神经网络包括输入层
输出层和2个隐藏层
那么每一层有2个神经元
而且
采用了全连接的方式
就是每一个神经元都跟
其他下一层的神经元建立连接
但是
神经网络不一定都是全连接的
它可以有完全不同的连接方式
比如某个神经网络可能只有部分神经元
与下一层的神经元建立连接
而且
有多少个隐藏层
每一层包含的神经元的数量
怎么设计也是没有固定模式的
有时候神经网络模型的选择是要看经验的
如果神经网络模型选择的不好
可能就找不到理想的数学模型了
这是用神经网络解决问题可能遇到的风险
回到我们的案例
在专业匹配的例子中
有6个特征值
因此可以在输入层设置6个神经元
那我们有多少输出呢
我们需要匹配300个专业
因此输出层是300个神经元
每个神经元对应于一个专业匹配度
隐藏层的设置就要依靠经验了
项目里我们设置了6个隐藏层
每个隐藏层是50个神经元
这样
我们就搭建了一个
由深层神经网络组成的
假设模型集合
当然
这个模型也是关于w和b的方式
这里的w是权重
b是偏移
这是第一个关键步骤
接着我们就要利用2000个样本
来找到一组w和b的组合
让损失函数最小了
我们利用了另一种数学工具
交叉熵来找到这组参数组合
如果对过程当中的具体的数学问题感兴趣
可以查看关于交叉熵的资料
当然
这个过程的运算是十分巨大的
需要借助计算机来实现
现在有许多科研机构
免费的提供这种计算资源
比如比较著名的
google的深度学习平台tensorflow
或者基于tensorflow建立的keras平台
还有caffe和xmnet等等
这些计算资源可以帮助我们
快速计算出w和b的参数组合
找到我们想要的神经网络模型
刚才
我们描述了利用
深度学习来解决问题的过程
接下来我们再做两个思考
第一个思考
用特征值的方法来找数学模型
和用神经网络来找数学模型
他们的共同点和主要区别在哪里
首先
它们都是机器学习的方法
都需要从以前的数据得到数学模型
它们之间的不同也是明显的
用特征值得到数学模型时
我们专门抽象出了
与问题最相关的特征参数
那么这个过程是必须借助行业经验的
通过行业知识来形成比较有效的数学模型
这就要求设计者不仅是数学家
也是行业专家
而神经网络的方法
则不需要任何行业经验和知识背景
只需要把神经网络设置好
把样本参数输入
等待结果就可以了
这个方法有点像现在的胶囊咖啡机
使用者不需要知道冲泡咖啡的行业知识
只需要把胶囊塞进机器
就能得到一杯冲好的咖啡
因此
我戏称这种方法为
胶囊咖啡机
这似乎是一种更有效率的方法
但是
我们也看到设置有效的神经网络
其实并不是那么容易的
一旦设置的不好
就不能够得到想要的数学模型了
另一个思考就是所谓神经网络的层级
深度学习里的这个深度
就是指网络隐藏层的层级
为什么要追求神经网络的层级呢
层级多了以后有什么好处呢
简单的说就是层级越多效果越好
从图像识别的准确率来讲
2012年
AlexNet的8层神经网络识别错误率
是16.4%
2014年的VGG的19层的
神经网络识别率它的错误率是7.3%
同年GoogleNet的21层
神经网络识别错误率是6.7%
我们看到
层级越多
也就是神经网络的层次越深
往往表现就越优秀
-0.1我们为什么设计这门课
--0.1
-0.2我们聊什么
--0.2
-0.3你们能学到什么
--0.3
-短片:AlphaGo
--Alphago
-1.1本章概述
--1.1
-1.2人与机器的本质区别
--1.21
--1.22
--1.23
-1.3我们会被智能机器抢了饭碗吗
--1.31
--1.32
--1.33
-1.4人和智能机器的和谐之道-增强智能
--1.41
--1.42
--1.43
--1.44
--1.45
--1.46
--1.47
-1.5项目指南一:如何找到好的项目
--1.51
--1.52
--1.53
--1.54
--1.55
-第一章测试
-2.1本章概述
--2.1
-2.2创业能力模型
--2.21
--2.22
--2.23
--2.34
--2.25
--2.26
--2.27
--2.28
--2.29
-2.3创新是人类的本能
--2.31
--2.32
--2.33
-2.4创新能力培养——创新心智模式
--2.41
--2.42
--2.43
--2.44
--2.45
--2.46
-2.5创新能力要素培养-思维方式
--2.51
--2.52
--2.53
--2.54
--2.55
-2.6项目指南二:创新项目的开发
--2.61
--2.62
--2.63
-2.7互联网心理学
--2.7
-第二章测试
-3.1本章概述
--3.1
-3.2机器有“智慧”吗?
--3.21
--3.22
--3.23
--3.24
--3.25
--3.26
--3.27
-3.3机器是如何学习的?
--3.31
--3.32
--3.33
--3.34
--3.35
--3.36
--3.37
--3.38
--3.39
--3.310
-3.4智能技术带来的认知升级
--3.41
--3.42
--3.43
--3.44
--3.45
-3.5项目指南三:投资者和创始人的心得经验
--3.51
--3.52
--3.53
--3.54
--3.55
-第三章测试