本文参考了很多张军老师《计算智能》的第二章知识。

本文来源:https://blog.csdn.net/qq_44186838/article/details/109181453

神经网络

本文面向神经网络小白,大佬阔以退出了哈哈。

1.1.1 基本原理

神经网络(Neural Network,NN)一般也称为人工神经网络(Artificial Neural Network,ANN)。


上述图中的轴突树突细胞体等,看了难免会回忆当初高中。

这里就不赘述相关生物知识了,放张生物神经元与人工神经元关系对照表以及人工神经元结构及功能示意图。

从图中我们也大致可以看出人工神经元是如何模仿生物的神经元进行工作的。

1.1.2 研究进展

这就没啥好说的了,反正大家应该也都知道现在神经网络和深度学习有多么火了哈哈。

1.2 神经网络的典型结构

按网络的结构区分
前向网络
反馈网络

按学习方式区分
监督(有教师)学习网络
无监督(无教师)学习网络

按网络的性能区分
连续型和离散型网络
随机型和确定型网络

按突触性质区分
一阶线性关联网络
高阶非线性关联网络

按对生物神经系统的层次模拟区分
神经元层次模型
组合式模型
网络层次模型
神经系统层次模型
智能型模型

1.2.1 单层感知器网络

单层感知器是最早使用的,也是最简单的神经网络结构,由一个或多个线性阈值单元组成。

由于这种网络结构相对简单,因此能力也非常的有限,一般比较少用。

1.2.2 前馈型网络

前馈型网络的信号由输入层到输出层单向传输。

每层的神经元仅与其前一层的神经元相连,仅接受前一层传输来的信息。

是一种非常广泛使用的神经网络模型,因为它本身的结构也不太复杂,学习和调整方案也比较容易操作,而且由于采用了多层的网络结构,其求解问题的能力也得到明显的加强,基本上可以满足使用要求。

1.2.3 前馈内层互联网络

这种网络结构从外部看还是一个前馈型的网络,但是内部有一些节点在层内互连。

1.2.4 反馈型网络


这种网络结构在输入输出之间还建立了另外一种关系,就是网络的输出层存在一个反馈回路到输入层作为输入层的一个输入,而网络本身还是前馈型的。

这种神经网络的输入层不仅接受外界的输入信号,同时接受网络自身的输出信号。输出反馈信号可以是原始输出信号,也可以是经过转化的输出信号;可以是本时刻的输出信号,也可以是经过一定延迟的输出信号。

此种网络经常用于系统控制、实时信号处理等需要根据系统当前状态进行调节的场合。

1.2.5 全互联网络


全互联网络是网络中所有的神经元之间有相互间的连接。

HopfiledBoltgmann网络都是这种类型。

1.3 神经网络的学习算法


讲实话,这里面有不少学习规则是我自始至终没有听说过的。所以学习一下新知识也未尝不可。

1.3.1 学习方法

说到这,就让我想到我另外一篇博客:https://blog.csdn.net/qq_44186838/article/details/107748555
这篇介绍的可要详细多了。

那这里我们简单提一下:

Supervised learning 监督学习
是有特征(feature)和标签(label)的,即便是没有标签的,机器也是可以通过特征和标签之间的关系,判断出标签。

Unsupervised learning 无监督学习
只有特征,没有标签。

Semi-Supervised learning 半监督学习
使用的数据,一部分是标记过的,而大部分是没有标记的。和监督学习相比较,半监督学习的成本较低,但是又能达到较高的准确度。

Reinforcement learning 强化学习
强化学习也是使用未标记的数据,但是可以通过一些方法知道你是离正确答案越来越近还是越来越远(奖惩函数)。

1.3.2 学习规则

Hebb学习规则
简单理解就是,如果处理单元从另一个处理单元接受到一个输入,并且如果两个单元都处于高度活动状态,这时两单元间的连接权重就要被加强。
Hebb学习规则是一种没有指导的学习方法,它只根据神经元连接间的激活水平改变权重,因此此这种方法又称为相关学习或并联学习。

Delta(δ\deltaδ)学习规则
Delta规则是最常用的学习规则,其要点是改变单元间的连接权重来减小系统实际输出与应有的输出间的误差。
这个规则也叫Widrow-Hoff学习规则,首先在Adaline模型中应用,也可称为最小均方差规则。

BP网络的学习算法称为BP算法,是在Delta规则基础上发展起来的,可在多层网络上有效地学习。

梯度下降学习规则
梯度下降学习规则的要点为在学习过程中,保持误差曲线的梯度下降。
误差曲线可能会出现局部的最小值,在网络学习时,应尽可能摆脱误差的局部最小值,而达到真正的误差最小值 。
目前我们接触到的很多降低损失函数值的算法利用的就是梯度下降的学习规则。而梯度下降具体也有很多种类别,感兴趣的可以自行去了解哦。

Kohonen学习规则
该规则是由Teuvo Kohonen在研究生物系统学习的基础上提出的,只用于没有指导下训练的网络。

后向传播学习规则
后向传播(Back Propagation,BP)学习,是应用非常广泛的神经网络学习规则。

概率式学习规则
从统计力学、分子热力学和概率论中关于系统稳态能量的标准出发,进行神经网络学习的方式称概率式学习。
误差曲线可能会出现局部的最小值,在网络学习时,应尽可能摆脱误差的局部最小值,而达到真正的误差最小值 。

竞争式学习规则
竞争式学习属于无监督学习方式。这种学习方式是利用不同层间的神经元发生兴奋性联接以及同一层内距离很近的神经元间发生同样的兴奋性联接,而距离较远的神经无产生抑制性联接。
竞争式学习规则的本质在于神经网络中高层次的神经元对低层次神经元的输入模式进行竞争识别。

1.4 BP神经网络

1.4.1 基本思想

BP神经网络也称:后向传播学习的前馈型神经网络(Back Propagation Feed-forward Neural Network,BPFNN/BPNN),是一种应用最为广泛的神经网络。

在BPNN中,后向传播是一种学习算法,体现为BPNN的训练过程,该过程是需要教师指导的;前馈型网络是一种结构,体现为BPNN的网络构架。

反向传播算法通过迭代处理的方式,不断地调整连接神经元的网络权重,使得最终输出结果和预期结果的误差最小。

BPNN是一种典型的神经网络,广泛应用于各种分类系统,它也包括了训练和使用两个阶段。由于训练阶段是BPNN能够投入使用的基础和前提,而使用阶段本身是一个非常简单的过程,也就是给出输入,BPNN会根据已经训练好的参数进行运算,得到输出结果。

1.4.2 算法流程


其实这个本质上与感知机的原理是有相似之处的。

(1)先是初始化网络权重,即参数的值。通常取值范围是-1.0~1.0。

(2)然后向前传播,计算每一层的输出(k层的输出即为k+1层的输入)。

(3)然后反向误差传播,什么意思呢?就是通过与预期输出的比较得到每个输出单元的误差,且得到的误差需要从后往前传播,前面一层的误差可以通过和它连接的后面的一层所有单元的误差计算所得,从后往前依次得到每一层每一个神经元的误差。

(4)然后进行网络权重与神经元偏置的调整。


其中l为学习率,通常取0-1之间的常数。

可能有些同学不太了解学习率,这里我简单讲一下。

其实学习率可以看做你每次要利用多少个误差点(即真实值与预测值不同的数据),学习率越低,损失函数的变化速度就越慢,容易过拟合。虽然使用低学习率可以确保我们不会错过任何局部极小值,但也意味着我们将花费更长的时间来进行收敛,特别是在被困在局部最优点的时候。而学习率过高容易发生梯度爆炸,loss振动幅度较大,模型难以收敛。
一个经验规则是将学习率设置为迭代次数t的倒数,也就是1/t。

(5)判断结束
当输出误差我们能够接受或者迭代达到我们规定的阈值时,选取下一个样本,继续重复(2)-(5)的工作,否则,迭代次数加1,然后转到(2)利用当前样本继续训练。

1.5 进化神经网络

对于某一具体问题,人工神经网络的设计是极其复杂的工作,至今仍没有系统的规律可以遵循。

目前,一般凭设计者主观经验与反复实验挑选ANN 设计所需的工具。

这样不仅使得设计工作的效率很低,而且还不能保证设计出的网络结构和权重等参数是最优的,从而造成资源的大量浪费和网络的性能低下。

这样就导致了我们成为了“无情的调参机器人”。

而进化神经网络,就可以帮助我们解决这样的问题。

使用进化算法去优化神经网络,通过进化算法和人工神经网络的结合使得神经网络能够在进化的过程中自适应地调整其连接权重、网络结构、学习规则等这些在使用神经网络的时候难以确定的参数,从而形成了进化神经网络(Evolutionary Neural Networks,ENN/EANN)。

进化算法和神经网络的结合给神经网络指明了新的发展方向,对突破神经网络结构复杂、参数难调等问题起到了重大的作用。

1.6 神经网络的应用

无处不在。。。

结束语

由于博主能力有限,博文中提及的信息,也难免会有疏漏之处。希望发现疏漏的朋友能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。同时如果有更好的方法也请不吝赐教。

如果有什么相关的问题,也可以关注评论留下自己的问题,我会尽量及时发送!

然后如果这些内容对你有所帮助的话,阔以点赞关注哦!

一文搞懂什么是神经网络Neural Network【详细介绍】相关推荐

  1. 一文搞懂RNN(循环神经网络)

    基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ...

  2. 一文搞懂 神经辐射场(Neural Radiance Fields,NeRF)

    NeRF 简介 输入输出 优缺点 原理 结构 pytorch实现 第三方库进行 NeRF 的实现 自行实现 相关名词解释 辐射场 多层感知机(MLP) 点的密度 体积渲染 体积纹理 渲染方程 简介 神 ...

  3. 一文搞懂毕业论文格式规范【超详细!!!】

    首先,需要明确的是,在正式写出我们毕业论文或者科技报告之前,我们应该对文章的格式规范进行调整.方便我们操作. 下面我们就随机以某种格式毕业论文来演示: 1. 要求 1.1 字号 论文题目:按具体规 章 ...

  4. 一文搞懂k近邻(k-NN)算法(一)

    原文链接 一文搞懂k近邻(k-NN)算法(一) 前几天和德川一起在学习会上讲解了k-NN算法,这里进行总结一下,力争用最 通俗的语言讲解以便更多同学的理解. 本文目录如下: 1.k近邻算法的基本概念, ...

  5. 一文搞懂BN、LN、IN、GN的区别

    一文搞懂BN.LN.IN.GN的区别 批归一化(BN)已经成为许多先进深度学习模型的重要组成部分,特别是在计算机视觉领域.它通过批处理中计算的平均值和方差来规范化层输入,因此得名.要使BN工作,批大小 ...

  6. 一文搞懂 Python 的 import 机制

    一.前言 希望能够让读者一文搞懂 Python 的 import 机制 1.什么是 import 机制? 通常来讲,在一段 Python 代码中去执行引用另一个模块中的代码,就需要使用 Python ...

  7. python语言语句快的标记是什么_一文搞懂Python程序语句

    原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...

  8. 一文搞懂 Java 线程中断

    转载自   一文搞懂 Java 线程中断 在之前的一文<如何"优雅"地终止一个线程>中详细说明了 stop 终止线程的坏处及如何优雅地终止线程,那么还有别的可以终止线程 ...

  9. 一文搞懂HMM(隐马尔可夫模型)-Viterbi algorithm

    ***一文搞懂HMM(隐马尔可夫模型)*** 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度.熵越大,系统越无序,意味着系统结构和运动的不确定和无规则:反之,,熵越小,系统越有序, ...

  10. 一文搞懂如何使用Node.js进行TCP网络通信

    摘要: 网络是通信互联的基础,Node.js提供了net.http.dgram等模块,分别用来实现TCP.HTTP.UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录. 本文分享自 ...

最新文章

  1. IDE to AHCI/RAID 蓝屏补丁
  2. 安装mq的时候,计算机用户名是中文名的解决办法
  3. java继承的性质_java 继承的特性
  4. c语言 段错误 指针,求教为什么指针动态申请了空间,scanf的时候还会段错误
  5. 20200927:Java和Cpp中栈与队列的区别
  6. 为RedHat系统安装发布版的PostgreSQL数据库
  7. js读取cookie,js添加cookie,js删除cookie
  8. 最大子段和问题【思路及实现】
  9. 2014 计算机学科 排名,2014QS世界大学学科排名:计算机学科排行榜
  10. 微信红包最多能发多少钱?微信红包200元上限解除
  11. 制作后台首页详细步骤
  12. 拉钩网爬取所有python职位信息
  13. python修改游戏数据_python1.2-----pywin32模块/语音合成,窗口闪烁以及修改游戏数据的技巧...
  14. 关于api-ms-win-crt-runtimel1-1-0.dll缺失引发的解决方案
  15. 使用阿里云的图片识别成表格ocr(将图片表格转换成excel)
  16. 服务器 台式机性能比较,服务器与台式机的区别
  17. SAP采购订单控制价格是否可以修改增强 LV69AFZZ
  18. 【原创纯手打】如何使用Vue写微信朋友圈中的留言回复功能(附源码)
  19. 2018 AFCTF 可怜的RSA
  20. 小学计算机资格证教案模板,小学数学教师资格证教学设计通用模板

热门文章

  1. 单片机复位电路的简谈
  2. 数据分析/运营——数据异常的排查方法
  3. micropython 固件编译关于 spi psram opi qspi 的设置
  4. 为什么压缩卷明明显示有许多空间却无法分出空余空间?
  5. 用微信公众号做淘宝优惠券查券和返利机器人的详细设置教程
  6. python testng_自动化测试框架TestNG
  7. python用正则写银行系统_python使用正则表达式(Regular Expression)方法超详细
  8. MY-IKuai-1
  9. 从青云上市,看中国云计算小巨头的“屠龙”之路
  10. 阿里云实践训练营第七天——Class6 NAS快速搭建个人网盘