开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践:ANN】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1067/detail/15447
ANN
内容介绍
一、人工神经网络(ANN)简介
二、神经元模型
三、单层感知器模型
四、激活函数
五、一般的人工神经元网络结构
一、人工神经网络(ANN)简介
简单理解神经网络( neural network)是模仿人脑机理、工作机制的计算系统。模仿人脑机理必须要模仿的像,那么人脑的工作机理到底是什么呢?到目前为止我们人类对大脑的了解仅有2%或3%,那么这个模仿真的是模仿吗?
还不确信。神经网络模型建立在很多神经元之上,每一个神经元又是一个学习模型。神经元有学习功能,所以变得强大。神经网络非常热门,特别是进一步发展的深度学习。
近几年因为深度学习的发展,社会已经进入人工智能时代。它背后的核心基础是神经网络。理解神经网络首先需要理解神经元。
二、神经元模型
神经网络中最基本的构成成分是神经元(neuron)模型。在生物神经网络中,即人脑的神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,会受到外部信号,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个“阈值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。
例如人的视觉、听觉、触觉,收到信号后,信号是输入数据,达到一定的量后,便会接收到信息,“兴奋”起来,然后进行反应。可以把神经元看作一个信息储存器,输入信号,接收信号到一定程度便会输出信号。下面是一个图示的神经元结构。
输入 x1、x2、x3,输入到神经元里,每一个输入与神经元核心连接时都会有有一个权重 w1、w2、w3,求和以后,加一个偏置 d,各路信号输入到神经元里面,汇总然后用函数判断,如果激励到一定程度便会输出。
之前学过分类算法,X 产生的输出 y,之前的分类算法里讲过,X 是一个二维表,里面每一行是个样本,y 是分类标记,在这个神经元结构里,X 不是二维表而是向量,里面是 x1、x2、xi,简化表示为 X。输入节点 x1、x2等,输出节点是 y,在神经元里特别之处为有权重,对应 w1、w2等,既然 x1、x2、x3用 X 表示,则权向量也可以用 W 表示,输入和权重输入以后积累到一定程度时,如何判断是否达到了一定的阈值了呢?需要用激活函数,用 sign 表示。激活函数看总值是否达到了一定的阈值,X 大于0,则输出的结果大于1,X=0, 输出值等于0,X小于0,输出值为-1。分类算法里最重要的是二元分类,即 y 取值是1和0,或者是真或假,或者正和负。那么要产生二元分类即激活函数汇总数据处理完后,最少它的值当然有无穷多个,但是希望去两个值,一个是1另一个是0。那么就可以满足二元分类的要求。在这个神经元模型里,这个激活函数是非常重要的。这个神经元结构的数据关系在1943年是由两个学者 McCulloch 和 Pitts 研究出来的。他们的首字母一个是 M 一个是 P,那么这个神经元模型叫做 M-P 神经元模型。
激活函数其它的表达形式。h 下面是 W 和 b,括号里是 x,x 就是 x1、x2 这些输入,W 是权重,是一个向量,里面有 w1、w2 等。在这个表达式里真正输入的数据是 x,w、b 是在中间产生的,以前其他的算法里只有 x,没有 w 和 b 这两个参数,这是神经网络特别要注意的地方。还有一种表达方式为 f 括号里有 W 权重,T 表示 w1×x1、w2×x2。还有一种表达方式为 w1x1、w2x2 求和以后加上偏置 b。这便是神经元的原理,也是学习神经网络的基础。
要点为 x1、x2 一组输入,可以用 X 表示,特别之处为在神经元模型里多了一个权重的概念,w1、w2、wn 等,需要将 w1x1 以及后面的 wnxn 相乘然后求和,汇总以后需要用激活函数激活,产生输出,输出在二元分类里希望产出一个一和零,什么样的函数能够产出一个二元的结果1和0呢?后面会专门讲。
三、单层感知器模型
有两层,输入层一组神经元,接收输入数据,每一个神经元代表一个输入数据,x1、x2,第二层是输出层,输出层就是一个 M-P 神经元。看一下下面这张图。
这张图和之前的单个神经元模型图很像,单个神经元是最简单的神经网络的基础,但是只有单个神经元它的功能是有限的。所以要进一步将单个神经元扩展一下,变成一个单层的感知器模型。将单个神经元和它组合在单层感知器模型里,即每一个输入节点也是一个神经元,但是在第一次输入数据时,这样的神经元只存在输入数据的功能,不像 M-P 神经元还要求和、汇总、激活函数。输入层里有很多输入节点,输入节点也是一个个神经元,但这个神经元的功能为只接受输入数据。另外一层输出层,即 M-P 神经元模型。要接受输入数据和权重,在这个神经元里面进行求和汇总,然后再加上 ∑ 函数,与一个阈值相比产生输出,
模型是内部互连节点与连接边权重的集合
输出节点根据其链接的权重对每个输入值进行求和
将输出节点与某个阈值 t 进行比较,这个也可以转换成用 ∑ 函数来处理,几下图中的公式,有多种表达方法。单层感知器模型是最简单的神经网络。前面的神经元不能作为单个的神经网络,单层感知器模型可以作为神经网络,是最简单的神经网络,只有两层,一个输入层,一个输出层。
