一、什么是神经网络
1、人工智能、机器学习、深度学习三者关系
人工智能包含机器学习,机器学习包含深度学习
2、人工智能
简洁的定义:努力将通常由人类完成的智力任务(规则)自动化。(所以说它包括机器学习与深度学习以及其它的领域)
例子:国际象棋程序仅包含程序员编写的硬编码规则,即用高级语言编写国际象棋的玩法等,也就是象棋怎么走,哪个棋子吃哪个棋子、怎么才能获胜等一些完整的规则体系。于是把像国际象棋这样由程序员精心编写足够多的编码规则来处理知识来实现与人类水平相当的人工智能称为符号主义人工智能。
像国际象棋这样的具有明确的逻辑问题用符号主义人工智能很容易编码。但是,如果是很难给出明确的规则来解决更加复杂、模糊的问题符号主义人工智能就很难来编码了。像图片分类、语音识别、语言翻译等很难找出一套规则来进行编码。于是就有了一种新的方法来代替符号主义人工智能,那就是机器学习
3、机器学习
首先是分析机的提出,分析机的用途仅仅是利用机械操作将数学分析领域的某些计算自动化。实际上是用机器帮助我们去实现我们已经知道的事情。
随后,人工智能先驱阿兰*图灵提出了“图灵测试”,这个思想提出,计算机是不是除了我们命令它做的任何事情之外,它能不能自己学习执行特定的问题。也就是说,不像符号主义人工智能那样,让程序员编写好一套完整的数据处理规则,而是让计算机通过观察数据自动学会这些规则。这就是图灵的这个问题引出的一种新的编程范式。输入给计算机的不再是规则和数据,而是数据和答案,输出的不再是答案,而是规则。
所以,机器学习系统是训练出来的,而不是明确的用程序编写出来的。将与某个任务相关的许多示例输入计算机学习系统功能,计算机会在这些示例中找到统计结构,从而最终找到规则将任务自动化。
4、深度学习(神经网络)
深度学习是机器学习的一个分之领域。深度学习是从数据中学习表示的一种新方法,强调从连续的层中进行学习,而深度就是指数据模型中包含多少层。而深度学习与机器学习的核心问题在于学习输入的数据的有用表示,使得输出结果接近预期输出结果。
这种分层表示几乎就是通过神经网络模型来学习得到。
5、神经网络模型
(1)感知机
定义:能够接收多个输入信号,只输出一个信号,。可以想象成很多条小河汇聚成一条大江。
工作原理:图中是一个接收两个输入信号的感知机。x1、x2表示输入信号,y是输出信号,w1、w2是权重,每一个圆圈代表神经元。输入信号被送往神经元时,先和固定的权重相乘(w1x1,w2x2),然后下一层神经元会将传过来的信号进行求和,最终输出w1x1+x2w2 = h,若h>c(c为常数)输出1,否则输出0,c称为阈值。
多层感知机:叠加了多层感知机
(2)神经网络
神经网络由多个层构成,主要分为:输入层、隐藏层(可以很多层)、输出层。
每一层由神经元构成,上一层所有神经元与下一层的每一个神经元构成一个感知机,通常会在隐藏层中添加一组偏置,来控制神经元被激活的容易程度。
(3)激活函数
我们把感知机将输入信号的总和大于某个常数c输出为1,否则输出为0的这种映射关系为h(x)函数称为激活函数。激活函数有很多,常见的有sigmoid函数、ReLu函数、tanh函数等
感知机的输出函数
(1)Sigmoid函数: (2)ReLu函数:
(4)损失函数
神经网络核心问题是使输出结果与预期结果十分接近,于是需要给定一个评定标准,即为损失函数,这个函数是就算出理想输出与实际输出之间的差距。常见的损失函数有差方误差,交叉熵误差。
差方误差函数:(yk:实际输出值,tk:理想输出值)
交叉熵误差:(yk:实际输出值,tk:理想输出值)
(5)反向传播更新权重和偏置(优化器)
学习率(learning-rate):更新权重的速度(步长)
权重更新法:随机梯度下降法(SGD)、Momentum(动量)、AdaGrad、Adam等方法
随机梯度下降法(SGD): Momentum(动量)方法:
6、全连接神经网络(DNN)
最基础的神经网络:各层之间的神经元都有关联(图4)
全连接神经网络训练步骤:
实例:构建5层全连接神经网络拟合sin函数