基于神经网络的中文文本情感检测(三) 神经网络基础与发展历史

基于神经网络的中文文本情感检测(三) 神经网络基础与发展历史

  • 作者:Geticsen
  • 时间:2020-05-06
  • 336人已阅读
简介 说到神经网络,我们首先反应到的应该是这是人工智能的一部分,机器学习的一个分支。

实现人工智能的哲学基础

1 人的智能(认知,思考,决策等)是一个过程的处理

2 机器处理的也是过程处理

所以在原理上来说人工智能是可能实现的,但是这只是解决了人工智能的先决条件,怎么实现如何实现到现在也没有完整的解决方案,都还在探索中,于是在人工智能的发展中诞生了三大流派

一、符号主义(symbolicism)-数理逻辑

    符号主义学派认为人工智能源于数学逻辑,人类认知和思维的基本单元是符号,而认知过程就是在符号表示上的一种运算。

符号主义致力于用某种符号来描述人类的认知过程,并把这种符号输入到能处理符号的计算机中,从而模拟人类的认知过程,实现人工智能。

符号主义的发展大概经历了几个阶段:推理期(20世纪50年代–20世纪70年代),知识期(20世纪70年代—-)。“推理期”人们基于符号知识表示、通过演绎推理技术取得了很大的成就;“知识期”人们基于符号表示、通过获取和利用领域知识来建立专家系统取得了大量的成果

二、连接主义(connectionism)-仿生学

    连接学派通过算法模拟神经元,并把这样一个单元叫做感知机,将多个感知机组成一层网络,多层这样的网络互相连接最终得到神经网络。
这一学派认为人工智能源于仿生学,特别是人脑模型的研究。联结主义学派从神经生理学和认知科学的研究成果出发,把人的智能归结为人脑的高层活动的结果,强调智能活动是由大量简单的单元通过复杂的相互连接后并行运行的结果。我们可以根据要解决的实际问题来构建神经网络,进而用数据不断训练这一网络,调整连接权重来模拟智能。

    20世纪60~70年代,连接主义,尤其是对以感知机(perceptron)为代表的脑模型的研究出现过热潮,由于受到当时的理论模型、生物原型和技术条件的限制,脑模型研究在20世纪70年代后期至80年代初期落入低潮。直到Hopfield教授在1982年和1984年发表两篇重要论文,提出用硬件模拟神经网络以后,连接主义才又重新抬头。1986年,鲁梅尔哈特(Rumelhart)等人提出多层网络中的反向传播算法(BP)算法。进入21世纪后,连接主义卷土重来,提出了“深度学习”的概念。

三、行为主义(actionism)-控制论

    是一种基于“感知—行动”的行为智能模拟方法。行为主义学派认为,行为是有机体用以适应环境变化的各种身体反应的组合,它的理论目标在于预见和控制行为。行为主义是20世纪末才以人工智能新学派的面孔出现的,引起许多人的兴趣。这一学派的代表作首推布鲁克斯( Brooks)的六足行走机器人,它被看作新一代的“控制论动物”,是一个基于感知-动作模式的模拟昆虫行为的控制系统。


现在三大人工智能主义相互影响相互促进。神经网络是连接主义,下面我们开始神经网络的原理与发展历史介绍。

连接主义-神经网络的原理与发展

神经网络的发展历史

    第一代神经网络,第一代神经网络又称为感知器,在1950年左右被提出来,它的算法只有两层,输入层输出层,主要是线性结构。它不能解决线性不可分的问题,对稍微复杂一些的函数都无能为力,如异或操作。

    第二代神经网络,为了解决第一代神经网络的缺陷,在1980年左右Rumelhart、Williams等人提出第二代神经网络多层感知器(MLP)。和第一代神经网络相比,第二代在输入层之间有多个隐含层的感知机,可以引入一些非线性的结构,解决了之前无法模拟异或逻辑的缺陷。第二代神经网络让科学家们发现神经网络的层数直接决定了它对现实的表达能力,但是随着层数的增加,优化函数愈发容易出现局部最优解的现象,由于存在梯度消失的问题,深层网络往往难以训练,效果还不如浅层网络。

    第三代神经网络,2006年Hinton采取无监督预训练(Pre-Training)的方法解决了梯度消失的问题,使得深度神经网络变得可训练,将隐含层发展到7层,神经网络真正意义上有了“深度”,由此揭开了深度学习的浪潮,第三代神经网络开始正式兴起。

神经网络原理

    计算机学习(机器学习)的主要任务是分类,其实语音识别对话也是一个分类的过程,语音对话先分类语音到每一个字上,对字(或者词)分类出来的语句(所有词或者字的集合也就是句子)进行分类得出情感,在语料库中匹配对应的回答分类最终返回语音回答与控制分类(打开/关闭软件等操作),在以上例子中其实只涉及到分类。

那神经网络如何完成分类呢??接下来开始了解

感知器——一代神经网络

    image.png

    感知器的结构很简单,就是,1输入 --->2加权计算 --->3经过激活函数--->4输出,简单的理解就是输入经过计算后输出(经过激活函数的输出会落在某一个数值区间,我们规定数值区间内的分段也就是分类)

举几个简单的例子。

image.png


下面是感知机其他的几个例子

image.png

这里我们很容易看出感知机因为其只能处理线性的分类(因为感知机分类是一个二分类问题其只能画一条线所以没办反完成非线性问题),在机器学习的过程中其实也是只调节感知机中的权重从而来改变感知机的分类所划线的斜率以及截距用于更好的拟合分类。

 多层感知器——二代神经网络

多次感知机就解决了以上的问题,其原理在于单个的感知机只能画一条分界线,那么我们增加感知机的数量与层数就可以画出更多的分界线(此时的分界线连接起来不一定是直线了,只要感知器够多也可以模拟近似的曲线),多层感知机原理图如下:

image.png

 深度神经网络——三代神经网络

多层感知机组成的网络训练成为很大的问题于是又为了解决这个问题创建了深度神经网络

image.png

通过逐层预训练,和新的激活函数逐渐解决了难以训练与梯度消失的问题。虽然多层感知机解决了单个感知机不能异或的问题,但是这种全连接的感知机不能处理分类事物之间有联系的问题(因为同一层之间没有连接,同一层的感知机只和前一层后一层有权值连接),所以后面又诞生了cnn(循环神经网络)

image.png

循环神经网络因为解决了序列之间的相关性(如对话前后文,句子词与词直接的联系等)所以广泛被引用于语音识别,文本检测等。

神经网络的优化算法

大家耳熟能详的优化方法有梯度下降法(Gradient Descent)、随机梯度下降法(Stochastic Gradient Descent)、Adam方法等等

优化算法就是一种能够帮我们最小化或者最大化目标函数(有时候也叫损失函数)的一类算法。而目标函数往往是模型参数和数据的数学组合。例如给定数据X XX和其对应的标签Y YY,我们构建的模型是一个线性模型f(x)=Wx+b f(x)=Wx+bf(x)=Wx+b,有了模型后,根据输入x xx就可以得到预测输出f(x) f(x)f(x),并且可以计算出预测值和真实值之间的差距,这个就是损失函数。我们的目的是找到合适的W,b W, bW,b时上述的损失函数的值达到最小,损失值越小,则说明我们的模型越接近于真实情况。计算出损失就可以反向传播错误并修改错误的权重。

通过上面的描述可以知道,模型的内参(W,b W, bW,b) 在模型中扮演着非常重要的角色,而这些内参的更新和优化就用到我们所说的优化算法,所以优化算法也层出不穷,而一个好的优化算法往往能够更加高效、更加准确的训练模型的内参。

    

文章评论

Top