神经网络一般架构(BP)
目录
- 专业词汇
- 1.神经网络概述
- 2.简单的神经网络
- 感知机
- 多层网络
- 3.误差逆传播算法
- 标准BP算法
- 输出层&输入层神经元个数
- 损失函数(目标函数)
- 反向梯度分配
- 累计BP算法
- 标准BP&累计BP区别
- 4.神经网络其他问题
- 过拟合的缓解
- 早停
- 正则化
- 参数初始化
专业词汇
神经网络(neural networks) 神经元(neuro)"阈值" (threshold)"激活函数" (activation function)"挤压函数" (squashig function)感知机(Perceptron)"阔值逻辑单元" (threshold logic unit)"哑结点" (dummy node) 功能神经元(functionalneuron)线性可分(linearly separable)收敛(converge) 振蔼(fluctuation)隐居或隐含层(hidden layer)"多层前馈神经网络" (multi-layer feedforward neural networks)"连接权" (connection weight)误差逆传播(error BackPropagation)梯度下降(gradient descent)累积误差逆传 播(accumulated error backpropagation)"试错法" (trial-by-error)"早停" (early stopping):"正则化" (regularization) "局部极小" (local minimum)"全局最小" (global minimum)
1.神经网络概述
- 神经网络视为包含了许多参数的数学模型,这个模型是若干个函数。
- 神经网 络"学"到的东西,蕴涵在连接权与阙值中
- [Hornik et al., 1989] 证明,只需二个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数然而,如何设置隐层神经元的个数仍是个未决问题,实际应用中通常靠"试错法" 调整.---------虽然两层能解决很多问题,但权重学习是非常困难的,所以一般分部完成,就形成了多层网络(不只两层)
2.简单的神经网络
感知机
- 感知机有两层神经元:输入层和输出层
- 输入层:接收外界输入信号后传递给下一层,不具备学习能力
- 输出层:是一层功能神经元,具有学习能力,M-P神经元,亦称"阈值逻辑单元"
训练时就是迭代训练权重参数和阈值参数
通常把阈值看作一个固定输入为-1的"哑结点",所对应的连接权重 Wn+1,这样,权重和阈值的学习就可统一为权重的学习
感知机只有输出层神经元进行激活函数处理,只拥有这一层功能神经元,学习能力非常有限,所以只能解决线性可分的问题(与,或,与非)
举个简单的例子,当输入层只有两个神经元
多次迭代后,参数影响下,会收敛与一条直线,多个神经元一样的道理会收敛于一个超平面
感知机之所以能模拟与,或,与非算法,是因为他是线性可分问题
[Minsky and Papert, 1969],若两类模式是线性可分的,即存在一个线性超平面能将它们分开
多层网络
感知机再加一个隐层就可以解决“异或”问题:原理上来看“异或”可由”与非“来组成,所以两层感知机相当于多个“与非”的组合。
多层前馈神经网络:神经元之间不存在同层连接,也不存在跨层连接
- 输入层神经元仅是接受输入,不进行函数处理
- 隐居与输出层包含功能神经元,对信号进行加工,最终结果由输出层神经元输出
3.误差逆传播算法
标准BP算法
- 感知机的学习规则对多层网络并不适用
- BP 算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络,但通常说 "BP 网络"时,一般是指用 BP 算法训练的多层前馈神经网络.
- 和基础知识里的反向传播一样,求偏导一步步分配梯度
输出层&输入层神经元个数
- 输入层神经元个数=输入向量维数(特征个数)
- 输出层神经元个数=输出向量个数
- 整个输出层是一个输出
损失函数(目标函数)
输出向量和标签向量的均方误差(这里特地加上1/2是为了后面求偏导消掉)
反向梯度分配
- 输出层的激活函数
- 最后一个隐层到输出层的权值上的梯度(第k个样本来迭代时)
这里的 f(x)是sigmoid函数
sigmoid函数有个较好的性质
这个偏导乘上学习率和-1后就是参数的更新值
- 学习率:是梯度下降走了多少,梯度是方向;太大则容易振荡,太小则收敛速度又会过慢(有时同一层的权值参数和阈值参数使用同一个学习率,不同层的在精细学习下也使用不同学习率)
- 负一:最优解的方向和该点上升的反方向
无论哪一步的参数(权重或阈值)都是一样的计算方法
累计BP算法
标准BP&累计BP区别
- 标准 BP 算法每次更新只针对单个样例?参数更新得非常频繁,而且对不同样例进行更新的效果可能出现"抵消"现象,需进行更多次数的法代.
- 累积 BP 算法 直接针对累积误差最小化,它在i卖取整个训练集 D 一遍后才对参数进行更新, 其参数更新的频率低得多
标准 BP 算法和累积 BP 算法的区别类似于随机梯度下降与标准梯度下降之间的区别.
4.神经网络其他问题
过拟合的缓解
正是由于其强大的表示能力, BP 神经网络经常遭遇过拟合,其训练误差持 续降低,但测试误差却可能上升
早停
将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值
随时监测模型对验证集的误差
正则化
基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分
- 例如连接权与阔值的平方和,增添的部分和原部分以不同的权值来组合
二两部分的比例由交叉验证法来估计
参数初始化
随机数,不能全0初始化
神经网络一般架构(BP)相关推荐
- 神经网络基础:(3)神经网络整体架构
目录 1.神经网络整体架构: 2.影响因素: 3.数据预处理 4.参数初始化
- 一般来说,神经网络的架构可以分为哪三类?
一般来说,神经网络的架构可以分为哪三类? https://www.toutiao.com/a6636224355548267015/ 什么是神经网络 神经网络是机器学习中的一种模型,是一种模仿动物神经 ...
- 如何提高bp神经网络精度,改进bp神经网络的方案
1.BP神经网络的核心问题是什么?其优缺点有哪些? 人工神经网络,是一种旨在模仿人脑结构及其功能的信息处理系统,就是使用人工神经网络方法实现模式识别.可处理一些环境信息十分复杂,背景知识不清楚,推理规 ...
- 神经网络初认识——BP神经网络(7月18,再次认识)
BP神经网络--Error back Propagtion BP网络属于多层前向神经网络,BP网络是前向神经网络的核心部分,也是整个人工神经网络体系的精华,解决非线性问题**广泛应用在分类识别,逼近, ...
- bp神经网络预测模型原理,BP神经网络预测模型
深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化. 五.DeepL ...
- bp神经网络预测模型例题,bp神经网络模型是什么
1.BP神经网络中隐藏层节点个数怎么确定最佳? 1.神经网络算法隐含层的选取 1.1 构造法 首先运用三种确定隐含层层数的方法得到三个隐含层层数,找到最小值和最大值,然后从最小值开始逐个验证模型预测误 ...
- 提高bp神经网络预测精度,bp神经网络数据预处理
bp神经网络对输入数据和输出数据有什么要求 p神经网络的输入数据越多越好,输出数据需要反映网络的联想记忆和预测能力.BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数 ...
- 提高bp神经网络预测精度,bp神经网络收敛速度慢
1.如何提高bp神经网络的预测精度啊 跟你的预测对象有很大关系. 1. 根据你的预测对象的特性选取合适的输入层.输出层和隐层神经元数目. 2. 选择合适的神经网络训练函数. 3. 保证足够的训练样本数 ...
- bp神经网络时间序列预测,bp神经网络数据预处理
怎么用已经训练好的BP神经网络进行预测下一个值? 谷歌人工智能写作项目:神经网络伪原创 bp神经网络如何用于预测 如何人工神经网络来预测下一个数值 newff函数建立BP神经网络,历史数据作为样本,例 ...
- 简述BP神经网络的流程,BP神经网络的实现包括
(1)BP算法的学习过程中有两个过程是什么?(2)写出BP神经网络的数学模型,并以20 bp(backpropagation)网络是1986年由rumelhart和mccelland为首的科学家小组提 ...
最新文章
- 查询整个数据库中某个特定值所在的表和字段的方法
- boost::core::has_single_bit的测试
- 算法:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。...
- 相机标定(二)深入理解四大坐标系与其变换关系
- 32位系统win2008+mssql2008 6G内存折腾纪实
- strictmath_Java StrictMath log10()方法与示例
- $(this)与this.id速度比较
- Kubernetes滚动更新速率控制解读
- python拆分字符串函数_Python字符串操作-拆分,切片,从HEX转换为DEC
- hadoop中遇到的问题
- Download and Install R and RStudio for win10
- MFC架构下的DirectX8
- nvivo12安装包下载
- 二重积分matlab算法,基于MATLAB的二重积分计算方法
- 【程序】STM32F407VE单片机驱动两片TJA1050 CAN收发器并进行双CAN通信
- 投影相机,透视相机,弱透视相机和仿射相机的区别和联系
- QML ComboBox 图片加文字
- 2022前端面试需要掌握的面试题
- 零基础学习CANoe Panel(16)—— Clock Control/Panel Control/Start Stop Control/Tab Control
- Spring Bean 生命周期之“我从哪里来”?懂得这个很重要