人工神经网络
人工神经网络(上)
神经网络的思想起源
神经元的原理
神经网络结构
正向传播算法
怎样用于实际问题
反向传播算法概述
算法的历史
几个重要的复合函数求导公式
算法的推导
算法的总结
工程实现问题
1、神经网络的思想起源
人类的大脑由大约800亿个神经元组成
这些神经元由突触与其他神经元相互谅解,交换电信号和化学信号
大脑通过神经元之间的协作完成各种功能
神经元之间的连接关系是通过进化、生长发育和后天刺激形成的
人工神经网络
受动物神经系统的启发,是一种仿生的方法。但只是简单的模仿
2、神经元的原理
先加权,再激活
3、sigmoid激活函数
定义域:负无穷->正无穷
值域:0-1
单调性:单调递增
4、神经网络结构
多层前馈型感知网络
输入层 隐含层 输出层
5、正向传播算法
完整的正向传播算法
神经网络本质上是一个多层复合函数
通过调整权重和偏置项实现不同的映射
权重和偏置项的值通过训练得到
怎样用于实际问题
分类问题-输入值为特征向量或原始数据,输出值为one-hot编码
回归问题-输出值为回归函数值
对于分类问题,分类结果为输出层神经元的最大值
对于回归问题,直接是输出层的值
分类问题-手写数字图像识别
回归问题-预测人脸关键点
神经网络直接为输入图像预测出关键点的坐标(x,y)
6、反向传播算法简介
解决神经网络参数求导问题
源自微积分中多元函数求导的链式法则
与梯度下降法配合,完成网络的训练
反向传播算法并不是用于学习整个神经网络的算法,而是仅用于计算梯度的算法
以3层网络为例:
神经网络的权重和偏置参数通过训练得到
训练的目标是最小化训练样本的预测误差
以均方误差为例(也叫欧氏距离):
也可以写为对单个样本损失的均值:
如果对所有参数的梯度值已经计算出来,则可以用梯度下降法更新:
现在的问题是目标函数是一个复合函数,每层都有权重矩阵和偏置向量,如何计算损失函数对他们的导数值?
欧氏距离损失函数的梯度值
多元函数求导的链式法则
问题1:
问题2:
问题3:
问题4:
问题5:
雅克比矩阵
又可以用下面的进行解释
反向传播
7、反向传播算法:
神经网络的训练算法可以总结为
复合函数求导+梯度下降法
梯度下降法有几种不同的实现
单样本模式
批量模式
除梯度下降法以外,还可以采用二阶技术,如牛顿法、随机梯度下降法
8、工程实现问题
激活函数值,导数值,在正向传播的时候已经计算出来,存储备用
编程语言中的向量和矩阵按行存储,因此计算公式有所变化