目录

  • 专业词汇
  • 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)相关推荐

  1. 神经网络基础:(3)神经网络整体架构

    目录 1.神经网络整体架构: 2.影响因素: 3.数据预处理 4.参数初始化

  2. 一般来说,神经网络的架构可以分为哪三类?

    一般来说,神经网络的架构可以分为哪三类? https://www.toutiao.com/a6636224355548267015/ 什么是神经网络 神经网络是机器学习中的一种模型,是一种模仿动物神经 ...

  3. 如何提高bp神经网络精度,改进bp神经网络的方案

    1.BP神经网络的核心问题是什么?其优缺点有哪些? 人工神经网络,是一种旨在模仿人脑结构及其功能的信息处理系统,就是使用人工神经网络方法实现模式识别.可处理一些环境信息十分复杂,背景知识不清楚,推理规 ...

  4. 神经网络初认识——BP神经网络(7月18,再次认识)

    BP神经网络--Error back Propagtion BP网络属于多层前向神经网络,BP网络是前向神经网络的核心部分,也是整个人工神经网络体系的精华,解决非线性问题**广泛应用在分类识别,逼近, ...

  5. bp神经网络预测模型原理,BP神经网络预测模型

    深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化. 五.DeepL ...

  6. bp神经网络预测模型例题,bp神经网络模型是什么

    1.BP神经网络中隐藏层节点个数怎么确定最佳? 1.神经网络算法隐含层的选取 1.1 构造法 首先运用三种确定隐含层层数的方法得到三个隐含层层数,找到最小值和最大值,然后从最小值开始逐个验证模型预测误 ...

  7. 提高bp神经网络预测精度,bp神经网络数据预处理

    bp神经网络对输入数据和输出数据有什么要求 p神经网络的输入数据越多越好,输出数据需要反映网络的联想记忆和预测能力.BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数 ...

  8. 提高bp神经网络预测精度,bp神经网络收敛速度慢

    1.如何提高bp神经网络的预测精度啊 跟你的预测对象有很大关系. 1. 根据你的预测对象的特性选取合适的输入层.输出层和隐层神经元数目. 2. 选择合适的神经网络训练函数. 3. 保证足够的训练样本数 ...

  9. bp神经网络时间序列预测,bp神经网络数据预处理

    怎么用已经训练好的BP神经网络进行预测下一个值? 谷歌人工智能写作项目:神经网络伪原创 bp神经网络如何用于预测 如何人工神经网络来预测下一个数值 newff函数建立BP神经网络,历史数据作为样本,例 ...

  10. 简述BP神经网络的流程,BP神经网络的实现包括

    (1)BP算法的学习过程中有两个过程是什么?(2)写出BP神经网络的数学模型,并以20 bp(backpropagation)网络是1986年由rumelhart和mccelland为首的科学家小组提 ...

最新文章

  1. 查询整个数据库中某个特定值所在的表和字段的方法
  2. boost::core::has_single_bit的测试
  3. 算法:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。...
  4. 相机标定(二)深入理解四大坐标系与其变换关系
  5. 32位系统win2008+mssql2008 6G内存折腾纪实
  6. strictmath_Java StrictMath log10()方法与示例
  7. $(this)与this.id速度比较
  8. Kubernetes滚动更新速率控制解读
  9. python拆分字符串函数_Python字符串操作-拆分,切片,从HEX转换为DEC
  10. hadoop中遇到的问题
  11. Download and Install R and RStudio for win10
  12. MFC架构下的DirectX8
  13. nvivo12安装包下载
  14. 二重积分matlab算法,基于MATLAB的二重积分计算方法
  15. 【程序】STM32F407VE单片机驱动两片TJA1050 CAN收发器并进行双CAN通信
  16. 投影相机,透视相机,弱透视相机和仿射相机的区别和联系
  17. QML ComboBox 图片加文字
  18. 2022前端面试需要掌握的面试题
  19. 零基础学习CANoe Panel(16)—— Clock Control/Panel Control/Start Stop Control/Tab Control
  20. Spring Bean 生命周期之“我从哪里来”?懂得这个很重要

热门文章

  1. Android开发关键知识点讲解
  2. 程序员2019可以看的书单
  3. 华为鲲鹏HCIA考试-练习03
  4. Android网页爬虫
  5. 软件工程之七——软件维护
  6. activiti适配人大金仓数据库修改方法
  7. 2021天水高考成绩查询,2021天水高考成绩查询入口
  8. ACM-ICPC 2018 南京赛区网络预赛 Skr 马拉车+字符串hash+hash表
  9. 小程序制作预算_科普:小程序制作一个需要多少钱?
  10. 第三个计算机时代为,计算机三个时代的各自特点?