hi
大家好
欢迎回来
我们这一节来介绍
基于神经网络的人工智能系统
那么首先我们来看看什么是神经网络
我们谈到神经网络
当然就会想到神经网络和神经元的生物原型
也就是人脑和构成人脑的神经元
它的细胞是什么样子的
实际上我们生理学家告诉我们
人脑包含有800亿个神经元
这些神经元都每一个神经元都
类似一个很小的一个处理单元
神经元之间会按照某种方式给它进行连接
然后神经元最开始它会受到外部的刺激
然后做出一个响应的过程
再通过连接给它传播出去
然后最终完成大脑对于信息的
处理的一个过程
那么我们可以从这个图上看到
一个大脑是由很多神经元构成
那么每一个神经元都是有相同结构的
我们下面来看看
到底神经元都有哪些部分
那么我们从这张图上可以看到
神经元分为这几个部分
第一树突
第二是一个细胞的本体
第三个是一个轴突
一个长长的
然后最后有个突触
那么这个树突它是神经元的输入的通道
它会把来自于其他神经元所接受的电信号
传送到细胞的本体来进行处理
细胞整体处理完了以后
他就把相应的输出
也就是它所产生的响应的电信号
再通过轴突和突触传递到下一个神经元
所以神经元都是树突突触、树突突触这么级联在一起
当然一个树突也可以会去连接很多神经元
一个突触也会连接到更多的神经元
它形成了一个很复杂的一个神经元的网络的结构
那么这种网络结构就称之为神经网络
那么我们的计算机科学家就从
生物的模型把它做成一个数学模型
这就是人工的神经元
那么人工神经元也类似于生物上的神经元
相对于树突就会有不同的几个输入信号
会有X1 X2 X3一直到XN
会有几个输入信号
那么当中会有一个处理单元
就是神经元细胞的本体
这个处理单元就会对每一个输入
的信号就X1到XN
每一个都是数值了
进行一个加权的处理
所谓的加权处理就是
本质上它是加在一起
但是因为每一个信号的重要程度不一样
它会乘上一个权重
然后再给它加在一起
所以它是对于所有的输入信号进行求和
然后确定了一个组合的效果
然后再通过激励函数来确定它的输出
那么这个激励函数输出
会有好几个输出
当然都这个值都是相同的
那么这个输出再去连接到
下一个人工神经元的输入
那么这样整个人工神经元也能够
按照这样的一个网络的连接方式
连接成一个人工的神经网络
那么最终这个输出的信号就是它的函数值
激励函数的函数值
这个函数值会被复制成几份
以连接到下一个人工神经元里去
那么所以我们说人工神经网络
就是模仿神经元在人脑当中的一个结构的一个连接
那么一个人工神经网络可以有几个
甚至大到几百万个人工的神经元来构成
这些人工神经元排列在一系列的层当中
因为距离神经元的远近
它是连接的层次性
我们可以理出好多层出来
然后每一层之间彼此相互连接在一起
所以我们说一个完整的一个神经网络
它是由一层输入层和多层的隐藏层和一层的输出层来构成
最右边就是输出层
最左边就是一个输入层
然后再输入和输出之间的所有的
层次都称之为隐藏层
那么其实如果要对应整个的神经
生物的神经网络来讲
这个是一个简单的一个模型
那么如果按照类型来分
人工的神经网络
由于人工神经元之间的连接方式的不同
还可以分成两种
一种是稍微简单一些的
叫做前馈型的神经网络
它是一个单向多层的一个结构
也就是从输入层开始
它当中的隐藏层都只接收上一层的输出
然后再输出到下一层
所以它整个的有一个方向性
数据的流动就是从输入到隐藏再到输出
整个单向的流动整个网络当中
它不会反过来把这个输出接到上一层去
所以这种方式叫做前馈型
前馈型神经网络就相对于比较简单一些
那么它经常用于图像识别分类检测图像分割
这个在现在已经相当的成熟
那么第二种就是更复杂一些的
可能也更接近于人脑的构造的
所谓的叫做反馈型的神经网络
那么反馈型它就是一种从输出到输入
它就有一个反馈连接的一个神经网络
也就是现在这个结果
它会受到先前所有的结构的影响
他把这个输出可能会接到前面的几层去
那么这个就经常用于做语音处理文本处理问答系统
像类似于这种自然语言处理
因为自然语言处理通常都有所谓的上下文的语境
也就是说你当前讲的这句话
其实你会跟你前面讲过的话都会有相关
就是所谓的上下文
比如说有一句话
比如说你把东西放这儿
你说“这儿”这个词它是指哪
那么这个跟前面说过的话
甚至和他所处的整个的对话的过程都有关系
所以像自然语言处理当中经常会
用到反馈型神经网络
那么神经网络他是需要训练的
不是说从天上掉下来马上就有
因为主要的决定神经网络他是否可用
或者说他是否能够成功的应用
在于每一个层当中每一个人工神经元里边的
一个组合的函数
也就是生物的细胞本体
对于若干个输入
它应该如何去组合这些输入
对于每一个输入都会乘上一个权重
然后把它们加在一起
所以对于每一个人工神经元来说
每一个输入的权重就非常的重要
这就称之为人工神经网络的参数
那么参数我们可想而知
从输入当中
进行一个权重的组合
然后输出到下一层
下一层也是通过权重的组合
最终经过层层的组合
一直到最后的输出层
那么当然我们一开始我会发现
刚开始的时候
我们发现这个输出完全不是那么回事
跟我们期望得到的结果误差特别的大
比如说我们输入一堆
然后最后输出的时候
我们发现我们期望在这儿得到一个输出
但是神经网络给我们在另外一个地方输出了
这样就会产生所谓的误差
那么误差这怎么办呢
你当然就必须要去调整这每一层当中的这些参数
就是所有的权重都要去慢慢去细微的调整
当然我们知道权重的参数的组合
实在是太多了
你如果一个个去枚举的话
那么神经网络你永远构造不出来
所以我们在神经网络进行训练的时候
通常就是以误差作为主导的
所谓的叫做反向传播算法
那么反向传播本质就是通过当你
前向传递输入信号一直到输出
然后看这个误差到底是什么样子的
然后再把误差信息反向的传播到前一层去
更新网络的权重
也就是我们把如果比喻为打靶的话
我们是不断的进行修正
我们在进行瞄准的情况下一射击
本来我们想得到十环
我们发现有个七环
这七环会怎么样
我们就根据七环的位置
比如说在左上角
那好
我们就瞄准它的右下角去修正一下
那么修正就层层的往前传播
一直修正到最开始的持枪的姿势
这就是所谓的叫做反向传播
那么通过这种反向传播的这种
反馈的机制
也就是反馈越多
那么神经网络学习的结果就越准确
那么目前我们在这一章节当中所学习到的
手写数字识别
这种的典型的案例
用反向传播的神经网络的训练算法来
可以让神经网络对于手写数字识别
它的正确率能够达到99.8%
那么基本上你只要是去写
他基本上都能够认得出来
这个是在传统的这种计算机视觉算法当中
很难达到的一个
这么高的一个识别率
那么对于图像分类来说
图像识别图像分类来说
有一个叫做ImageNet
图像分类比赛
那么也是用这种神经网络的算法
那么最终通过很多的隐藏层和经过很多的这种训练
最终神经网络的算法在图像分类比赛当中
由人工智能所达到的图像的
识别的错误率最低达到了3.1%
而人类它的错误率是5%
这就说明了神经网络的人工智能的算法
它的分类的结果已经比人类还要优了
那么我们最后总结一下
对于神经网络的认识
我们说人工的神经元和人工的神经网络
它实际上是在模拟人脑的神经的结构
目的是让计算机拥有更加强大的学习能力
神经网络它的主要的学习机制就是
通过输出层当中产生的误差
来进行反向传播
来一层一层的去修改前面的这些参数
不断的修改网络的参数
使得分类的效果会越来越好
那么这个就是我们后续需要学习的具体的算法