当前位置:   article > 正文

人工智能导论-神经网络

人工智能导论-神经网络

神经网络

概述

本章主要介绍人工神经网络的基本概念,以及几种重要模型,包括“单层感知机、两层感知机、多层感知机”等。

在此基础上,介绍两种重要的基础神经网络“Hopfield神经网络、BP神经网络”。

最后,着重介绍了深度学习中最常用的“卷积神经网络”。

人脑结构

人脑由一千多亿(1011亿-1014 亿)个神经细胞(神经元)交织在一起的网状结构组成,其中大脑皮层约140亿个神经元,小脑皮层约1000亿个神经元。

人脑构造

  • 大脑-皮层(cortex)
  • 中脑(midbrain)
  • 脑干(brainstem)
  • 小脑(cerebellum)
    在这里插入图片描述

人脑神经元结构

人脑的神经元:约有1000种类型,每个神经元大约与103-104个其他神经元相连接,形成极为错综复杂而又灵活多变的神经网络。

在这里插入图片描述

工作状态:

兴奋状态:细胞膜电位 > 动作电位的阈值 → 神经冲动

抑制状态:细胞膜电位 < 动作电位的阈值

学习与遗忘:由于神经元结构的可塑性,突触的传递作用可增强和减弱 。

人脑神经元结构 – 术语

人脑神经网络是一个具有学习能力的系统,不同神经元之间的突触有强有弱,其强度是可以通过学习(训练)不断改变,具有一定可塑性。单个神经元的神经活动不具备重要性,关键是神经元之间如何组成一个复杂的网络。

神经元结构功能
细胞体 (Soma)包含细胞核和其他细胞器,是神经元的代谢中心。
细胞膜含有各种受体和离子通道,是神经元兴奋和抑制的产生部位。
树突 (Dendrite)接收来自其他神经元的信号,并将兴奋传入细胞体。
轴突(Axon)将自身的兴奋状态从胞体传送到另一个神经元或其他组织。
突触 (Synapse)神经元之间的连接“接口”,将一个神经元的兴奋状态传到另一个神经元。

人工神经网络 - 起源与概念

生物神经网络( natural neural network, NNN): 由中枢神经系统(脑和脊髓)及周围神经系统(感觉神经、运动神经等)所构成的错综复杂的神经网络,其中最重要的是脑神经系统。

人工神经网络(artificial neural networks, ANN): 模拟人脑神经系统的结构和功能,运用大量简单处理单元经广泛连接而组成的人工网络系统。

神经网络发展演进 - 三起三落

神经网络发展曲折,从单层神经网络(感知器)开始,到包含一个隐藏层的两层神经网络,再到多层的深度神经网络,一共有三次兴起过程。

在这里插入图片描述

这两个10年间人们对于神经网络的期待并不现在低,可结果都逐渐衰落。

冷静才是对待目前深度学习热潮的最好办法。如果因为深度学习火热,或者可以有 “钱景”就一窝蜂的涌入,那么最终的受害人只能是自己。

在这里插入图片描述

神经网络的学习 - 决定性能的三大要素

神经网络方法:是一种“知识表示方法和推理方法”。

神经网络知识表示:是一种隐式的表示方法,它将某个问题的若干知识通过学习表示在一个网络中。(谓词、产生式、语义网络等是显示表示法)

神经网络的学习:指调整神经网络的“连接权值或结构”,使输入和输出能满足需要。

决定人工神经网络性能的三大要素

  • 神经元的特性。
  • 神经元之间相互连接的形式 – 拓扑结构(见下页PPT)。
  • 为适应环境而改善性能的学习规则。

Hebb学习规则

1944年,赫布提出改变神经元连接强度的规则:学习过程最终发生在神经元之间的突触部位,突触的联结强度随着突触前后神经元的活动而变化,变化的量与两个神经元的活性之和成正比。当某一突触两端的神经元同时处于兴奋状态,那么该连接的权值应该增强。(教材P215给出了数学表达公式)

在这里插入图片描述

神经网络结构 - 分类

根据神经网络中神经元的连接方式,可以划分为不同类型。主要包括“前馈型、反馈型”两种。

在这里插入图片描述

前馈型( 前向型)

在这里插入图片描述

反馈型

在这里插入图片描述

神经网络结构 - 应用

在这里插入图片描述

神经元 - MP模型(单层感知机)

AI诞生之时,很容易联想到是否可借鉴人脑的构成。尽管人脑的奥秘还存在很多未知领域,但在已知领域,科学家一直在尝试让计算机模拟人脑运行。首先要做的,就是从人脑的最小单元—神经元入手,让计算机模拟它的工作机制。

1943年,麦克洛奇和皮兹发现了大脑中神经元的工作机制MP模型。

真实的人脑神经3D模拟

在这里插入图片描述

在这里插入图片描述

单层感知机 - 数学模型

图中每个中枢点可认为是一个神经元,把神经元的生物工作机制简单的绘制出来,并以此建模,得到一个计算机能识别的模型,称之为—Perceptron(感知器)。

在这里插入图片描述

可以把一个神经元细胞想象成一个有多个听筒(输入),但只有一个话筒(输出)的电话。

听筒就是神经元的树突,话筒是神经元的轴突。

单层感知机 - 激活函数(输出变换函数)

激活函数:也叫非线性激励函数、输出变换函数。

激活的概念意味着:通过某个门槛值就是1,否则是0。不恰当的比喻是考试到60分就及格,可以升级。从这个定义来看考0和59是一样的不会被激活,而60和100是一样的,都会被激活。

单层感知机的本质 - 线性分类器

感知器中的权值是通过训练得到的。因此,根据以前机器学习的知识可知,感知器类似一个逻辑回归模型,可以做线性分类任务。可以用决策分界来形象的表达分类的效果。

决策分界:就是在二维的数据平面中划出一条直线,当数据的维度是3维的时候,就是划出一个平面,当数据的维度是n维时,就是划出一个n-1维的超平面。

感知机可以被视为一种最简单形式的前馈式人工神经网络,它是一种二分类的线性分类判别模型, 其输入为实例的特征向量想(x1,x2…),神经元的激活函数f为sign,输出为实例的类别(+1或者-1),模型的目标是要将输入实例通过超平面将正负二类分离。

下图显示了在二维平面中划出决策分界的效果,也就是感知器的分类效果。

在这里插入图片描述

单层感知机 - 局限性(无法计算异或XOR)

把异或运算的两个输入当做感知器的输入值,期待感知器能把输入值加权求和,然后再用一个激活函数得到两个输入值的异或值。同样我们像刚才一样将A,B 的四个值(0,0), (0,1),(1,0),(1,1)作为X1, X2画在坐标系里(更准确的此时应该说是一个二维向量空间)。
在这里插入图片描述

请问是否可以找到一条线将红绿点分开?答案是不能。似乎感知器真不能解决这样简单的问题。

那为什么我们现在还在用这个模型呢? 答案是MLP(Multilayer perceptron),多层感知器。

两层感知机 - 明斯基的“功与罪”

1951年在普林斯顿攻读phD时,年仅24岁的Minsky发明了第一台物理的基于感知器的人工神经网络- 随机神经模拟强化计算器SNARC ( Stochastic Neural Analog Reinforcement Calculator)。在Minsky晚年接受采访时,仍然不忘拿出来show了一把。按理说他应该是感知器的发扬光大者才对。
在这里插入图片描述

但是他非常聪明,很早就发现了“单层感知器”的局限,这也体现在1969年他和 Parpet 写 的 一 本 书 中 , 书 的 名 字 叫 《Perceptrons: An Introduction to Computational Geometry》。书中提到最为典型的例子是感知器无法解决像“异或”这么简单的问题。

两层感知机 - 罗森布拉特(0到1的突破)

Minsky说过单层神经网络无法解决异或问题。但是当增加一个计算层以后,两层神经网络不仅可以解决异或问题,而且具有非常好的非线性分类效果。算力受限:不过两层神经网络的计算是一个问题,在当时算力受限的情况下,并没有一个较好的解法。1961年,Frank Rosenblatt(感知器模型的坚定支持者,也是明斯基的高中同学)就发表了论文《Perceptrons and the theory of brain mechanisms》,提出多层感 知器的概念,只是当时并没有被人注意到。非常遗憾,Rosenblatt在明斯基出版《Perceptrons: An Introduction to Computational Geometry》一书的同一年(1969年),就英年早逝(享年41岁)。甚至有人说,如果Rosenblatt在世,可能Marvin根本不会是图灵奖得主。

在这里插入图片描述

两层感知器 - 解决异或XOR问题

异或运算举例,假使我们不是做一条线,而是做两条线是不是就可以将红绿点分开了呢。

拆解一下这两条线划分的步骤,以及它如何解决了异或问题。

在这里插入图片描述
在这里插入图片描述

两层感知器 - 解决异或XOR问题

第1步:我们在单层感知器的中间加上一层隐式层,在隐式层里加上两个神经元h1, h2。

第2步:X1, X2信号经过h1感知器后,可以将点(1,0)和其他点分开。

第3步:X1, X2信号经过h2感知器后,可以将点(0,1)和其他点分开,在这里,我们对h2的激活函数

第4步:此时,h1,h2就会有三种输出,即(红,绿),(绿,绿),(绿,红),我们用0代表红色,1代表绿色,那就是(0,1), (1,1), (1,0) 就很容易分开了。这样我们就用一个多层感知器解决了异或XOR问题。

用通用的方法表示以上结构就是下图的神经网络的雏形:
在这里插入图片描述

两层感知器的本质 - 非线性分类器

从以上可看出,感知器本质上就是一个分类器,计算机首先通过学习来划出一个空间(多维向 量空间),然后根据这个学习结果来区分新的 输入是落在这个空间之外,还是之内。计算机不可能像人通过“看一眼”就能划出这个空间,它是采用的是无限逼近的方法。(比如随机给一组权重,然后看看通过这个权重算出来的值与训练给出的已知值有多大差异,直到这个差异值达到最小值,就停止逼近。)如何使计算机更快更好的逼近这个最佳权重,就是所有的基于神经网络的算法要解决的问题。(最简单的比如刚做的将单层感知器增加一层,还比如增加神经元,都可以更好更快地划出这个空间。)【右图是斯坦福网站有趣的实验,支持2层神经网络】当把一层感知器增加为两层的时候,就会画出两条线来来划出一个二维空间。在两层感知器中,通过增加神经元可以对更复杂的点分布做出分类。即,可通过多层神经元这种结构可以对一切进行分类。

在这里插入图片描述

多层感知机 - 深度学习(1到100的发展)

多层感知机通过对线性分类器的组合叠加,具有拟合非线性函数的能力。Hornik在1989年证明,当中间隐含层的神经元数量趋于无穷多时,多层感知机可以拟合任何非线性函数。

在这里插入图片描述
在这里插入图片描述

神经网络发展小结 - 算法、算力的影响

在这里插入图片描述

在这里插入图片描述

神经网络发展小结 - 扩展

理论上来说,神经元数量越多,层数越多,产生的力量越大。可借鉴互联网的网络效应,网络效应粗略可根据节点间的连接数量来确定,而网络的力量就蕴含在这些连接当中。(假设一个网络中有N的节点,最佳情况下,每两个节点都可以相连,就可以产生: N(N-1)/2次连接(1个节点可以和其他N-1个节点连接,总共就是N(N-1)个连接,但因为每个连接会重复算一次,所以要除以2))。在人类大脑里,平均每人拥有860亿个神经元,这860个神经元总共有100万亿个突触,即可以发生100万亿次连接(这里并非每两个神经元之间都有连接)。在已知领域内,大脑的所产生的力量也是蕴含在这些神经元的连接中(至于其他未知领域,相信还有很多,毕竟人脑进化了几百万年,不是我们几百年就能研究清楚的),所以你大概能知道人与人脑力的差别可能就在于:神经元的数量。神经元之间的连接,这种连接是可以被训练的。20世纪60年前关于感知器局限性的争论,然后又对AI这座大厦最底层原理做了一个简单的阐述。最大感受是:一座大厦,不管它多么宏伟,也离不开底层的一砖一瓦;一个个体,不管它多么渺小,汇聚在一起也能产生意想不到的力量。在整个人工智能的知识体系里,感知器这个小小的概念最终扛住了时间的考验,成为今天的AI的基石。

在这里插入图片描述

Hopfield网络 - 概念与原理

1982年, Hopfield的一篇论文横空出世,仿佛神经网络这匹困兽再次苏醒,也预示着神经网络在AI 领域的崛起。论文中提到的associative neural network就是后来的“Hopfield network”,它是当前学习神经网络绕不开的话题。Hopfield 并非图灵奖得主,但他对计算机AI 领域的开创性贡献却启发了三位未来的图灵奖得主( Geoffery Hiton, Bengjo, Yann Lecun)。Hopfield 所从事的领域并非计算机科学,Hopfield在物理学的的成就更为显著。在2001年, Hopfield 被授予Dirac奖(理论物理学界的诺贝尔奖)Hopfield 网络就是他从物理学角度去研究神经科学,最后却被应用于计算机科学的一个案例。

在这里插入图片描述

Hopfield网络 - 伊辛模型(Ising model)

伊辛模型:在解释物体呈现“固态、液态或者气态”,是内部粒子实现“动态平衡”的表现。就像湖里的水不变,不是因为它没有输入输出,只是因为输入输出恰好一样。类似,Hopefield网络认为,人脑记忆也是一种动态平衡。当磁体在高温时磁性会消失,而降到一定温度后,又会恢复磁性。磁性的产生是因为磁体内部粒子的磁性方向一致。高温时,粒子的磁性方向杂乱无章,彼此磁性抵消,呈现整体没有磁性的状态。

在这里插入图片描述

假设某个内容被记忆(存储)在N个神经元中。和伊辛模型类似,Hopfield认为每个神经元的状态仅仅与它相邻神经元的状态相关,同时反过来,每个神经元的状态又影响着与其相邻的神经元。

这种动态平衡是由这样一个规则在维持:当相邻两个神经元的状态相反时(相当于彼此想让对方翻转),彼此作为输入信号的权重为-1, 当相邻两个粒子状态相同时,权重为+1。

Hopfield神经网络 - 网络结构

Hopfield神经网络是反馈神经网络,其输出端又会反馈到其输入端,在输入的激励下,其输出会产生不断的状态变化,这个反馈过程会一直反复进行。假如Hopfield神经网络是一个收敛的稳定网络,则这个反馈与迭代的计算过程所产生的变化越来越小,一旦达到了稳定的平衡状态,Hopfield网络就会输出一个稳定的恒值(吸引因子(W矩阵))。对于一个Hopfield神经网络来说,关键在于确定它在稳定条件下的权重系数。原始Hopfield神经网络是个全连接网络,即网络中任意两个神经元之间都有连接,在数学上这叫完全图(complete graph)。

在这里插入图片描述

可以认为Hopfield网络里的神经元都是社交高手,跟谁都是朋友。
在这里插入图片描述

Hopfield神经网络 - 平衡状态规则

动态平衡的维持规则:当相邻两个神经元的状态相反时(相当于彼此想让对方翻转),彼此作为输入信号的权重为-1, 当相邻两个粒子状态相同时,权重为+1
在这里插入图片描述

权重计算

在这里插入图片描述

结果计算

在这里插入图片描述

Hopfield神经网络 - 求解权重矩阵

以此类推,经过这样多个权重定义,其他几个神经元的状态也能保持状态不变。因此,核心任务转换为“求解权重矩阵”。特点: 权重矩阵W 完全无需人工参与调节, 由神经元自身状态值产生, 因此,Hopefield 网络也被认为是第一个无监督式学习模型。
在这里插入图片描述

Hopfield网络 - 如何通过片段回忆整个记忆内容

要想通过片段唤起整个记忆,相当于是把片段作为一个输入值,经过某种变换之后,输出整个记忆。

在这里插入图片描述

当然,这只是4个神经元的恢复,现实中可能是成千上万个神经元参与,这个回忆过程不会一步完成,而是一个围绕记忆上下振荡的过程,但是由于W矩阵的存在,最终会恢复到记忆,就像我们回忆某个事情的时候,也要经历一些过程。

BP神经网络 - 概念

  • 定义:是一种按误差逆传播算法训练的多层前馈神经网络,是目前应用很广泛。
  • 作用:BP网络能学习和存贮大量的“输入-输出”模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
  • 学习规则:使用“最速梯度下降法”,通过反向传播来“不断调整网络的权值和阈值”,使网络的误差平方和最小。
  • 基本思想:通过计算“输出层”与“期望值”之间的误差来调整网络参数,从而使得误差变小。其思想很简单,然而人们认识到它的重要作 用却经过了很长的时间。
  • 重要性:BP算法是深度学习中求取各层梯度的核心算法,理解该算法对于理解深度学 习原理至关重要。
    在这里插入图片描述

BP神经网络 - 起源

1974年,哈佛大学沃伯斯(Paul Werbos)博士论文里,首次提出了通过误差的反向传播(BP,Backpropagation)来训练人工神经网络,但在该时期未引起重视。

在这里插入图片描述

1986 年, Rumelhart 和Hinton 等发展了反向传播BP算法,解决了两层神经网络所需要的复杂计算量问题,带动业界使用两层神经网络研究的热潮。( 参 见 他 们 发 表 在 Nature 上 的 论 文 Learning representations by back- propagating errors )

在这里插入图片描述

BP神经网络 - 算法原理

  • MLP存在问题:多层感知器在如何获取“隐层的权值”问题上遇到了瓶颈。
  • 解决思路:既然我们无法直接得到隐层的权值,能否先通过输出层得到“输出结果和期
  • 望输出的误差”来间接调整隐层的权值呢? BP算法就是采用这样的思想设计出来的。
  • 基本思想:学习过程由“信号的正向传播”与“误差的反向传播”两个过程组成。。
  • 前向传播(阶段1):从输入层开始,逐层计算输出,直至输出层。“每个神经元的输出”通过加权和和激活函数的处理得到。
  • 反向传播:在前向传播结束后,通过比较“网络输出”和“期望输出”的差异来计算误差。然后,误差以反向传播的方式逐层传递回输入层,通过调整各层间连接权重,使误差逐步减小。
  • 权值更新:在反向传播过程中,根据误差和梯度下降法,更新神经网络的权值和阈值。通过不断迭代,使得网络输出逼近期望输出,达到训练的目标。

BP神经网络 - 算法原理(通俗举例解释)

  • 前向传播:三个人在玩你画我猜的游戏,然后第一个人给第二个人描述,再将信息传递给第三个人,由第三个人说出画的到底是啥。
  • 反向传播:第三个人得知自己说的和真实答案之间的误差后,发现他们在传递时的问题差在哪里,向前面一个人说下次描述的时候怎样可以更加准确的传递信息。就这样一直向前一个人告知。

不断磨合:三个人之间的的默契一直在磨合,然后描述的更加准确。

在这里插入图片描述
在这里插入图片描述

BP神经网络 - 数学模型

BP网络结构:在输入层与输出层之间增加若干层(一层或多层)神经元,这些神经元称为隐藏层,它们与外界没有直接的联系,但其状态的改变,则能影响输入与输出之间的关系,每一层可以有若干个节点。

在这里插入图片描述

在这里插入图片描述

要解决的问题:如何获取“隐层的权值(W, b) ” 。

BP神经网络 - 前向传播

过程:从输入层开始,逐层计算输出,直至输出层。每个神经元的输出通过加权和和激活函数的处理得到。

即:构建函数模型,并计算出Loss函数 的过程。

BP神经网络 - 反向传播(反馈与调整)

过程:在已知Loss函数 的情况下,对该函数做数学优化,得到最小化Loss函数 时,各个参数(W, b) 的值。

优化技巧(梯度下降法):利用Loss函数 求得其关于所有参数(W, b) 的梯度,再基于梯度下降法更新参数。

反向传播知道如何更改网络中的权重w和偏差b,来改变代价函数Loss函数值。最终这意味着它能够计算关于(W, b) 的偏导数。

在这里插入图片描述

为计算以上w和b的偏导数,先引入一个中间变量(网络中第

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/852584
推荐阅读
相关标签