《《深度学习基础及应用》教案第3课构建神经网络(一).docx》由会员分享,可在线阅读,更多相关《《深度学习基础及应用》教案第3课构建神经网络(一).docx(7页珍藏版)》请在优知文库上搜索。
1、课题构建神经网络(一)课时2课时(90min)教学目标知识技能目标:(1)了解人工神经元模型的来源(2)掌握M-P神经元模型、单层解口器模型和多层感知器模型的结构(3)掌握常用激活函数的定义及应用素质目标:(1)提高分析问题和解决问题的能力和自信心(2)帮助学生树立履行时代使命的责任担当,激起学生报效祖国的理想情怀教学重难点教学重点:M-P神经元模型、单层感知器模型和多层感知器模型的结构教学难点:常用激活函数的定义及应用教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过A
2、PP或其他学习软件,完成课前任务,请大家提前预习本节课要讲的知识【学生】完成课前任务考勤【教师】使用APP迸行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:生物神经元的结构是怎样的?【学生】举手回答传授新知【教师】通过学生的回答引入要讲的知识,介绍神经元与感知器,以及激活函数的相关知识3.1 神经元与感知器3.1.1 生物神经元与神经元模型1 .生物神经元*【教师】通过多媒体展示“生物神经元结构”图片(详见教材),并介绍相关知识生物神经元是生物神经网络结构和功能的基本单位,由细胞体和细胞突起组成。细胞体是神经元的核心,由细胞核和细胞质等组成。细胞突起由树突和轴突组成,树突是神
3、经元的输入,可以接收刺激并将兴奋传递给细胞体;轴突是神经元的输出,可以将自身的兴奋状态从细胞体传送到另一个神经元或其他组织。神经元之间通过树突和轴突的连接点(即突触)连接。通过突触,神经元可以接收其他神经元的刺激,并且发送信号给其他神经元。生物神经元有抑制和兴奋两种状态。当神经元处于抑制状态时,轴突并不向外输出信号,当树突中输入的刺激累计达到一定程度,超过某个阈值时,神经元就会由抑制状态转为兴奋状态,同时,通过轴突向其他神经元发送信号.人们通过对生物神经网络进行研究,提出了人工神经元模型.2 .MP神经元模型【教师】通过多媒体展示“M-P神经元模型”图片(详见教材),并介绍相关知识1943年,
4、神经生理学家沃伦麦卡洛克和数学家沃尔特皮兹提出了M-P神经元模型,模拟实现了一个多输入单输出的信息处理单元.对于M-P神经元模型,它可能同时接收许多个输入信号,用七表示,用于模拟生物神经元的树突,接收来自其他神经元的信号,这些信号的来源不同,对神经元的影响也不同,因此给它们分配了不同的权重计算单元模拟生物神经元中的细胞核,对接收到的输入信号加权求和后,与产生神经兴奋的阈值相比减,得到中间值z,通过激活函数f(激活函数采用阶跃函数)模拟神经兴奋。例如,当Z的值小于O时,神经元处于抑制状态,输出为O;当Z的值大于等于O时,神经元被激活,处于兴奋状态,输出为L输出y模拟生物神经元中的轴突,将神经元的
5、输出信号传递给其他神经元。M-P神经元模型可用如下公式表示。y=f(z)=fwii-0M-P神经元模型模拟了生物神经网络,但是权重值再无法自动学习和更新,不具备学习的能力。3.1.2感知器1 .单层感知器模型感知器,也称为感知机,是由弗兰克罗森布拉特于1957年提出的。它是最简单的人工神经网络,是一种广泛使用的线性分类器。【教师】通过多媒体展示“单层感知器模型”图片(详见教材),并介绍相关知识感知器接收多个输入信号,输出一个信号,如图所示。其中,*X,当-I为输入信号,y为输出信号,叫叫,吗T为权重j为偏置。当输入信号司被送往神经元时,分别乘以各自的权重后求和,加上偏置b,再由激活函数f()处
6、理得到输出y,用如下公式表示。-i、y=fvvI=O)与M-P神经元模型需要人为确定参数不同,解口器能够通过训练自动确定参数。其训练方式为有监督学习,即需要设定训练样本和期望输出,然后调整实际输出和期望输出的差距。2 .多层感知器模型【教师】通过多媒体展示“多层感知器模型”图片(详见教材),并介绍相关知识多层感知器模型(multilayerperceptron.MLP),是在输入层和输出层之间加入了若干隐藏层,以形成能够将样本正确分类的凸域,使得神经网络对非线性情况的拟合程度大大增强,一个具有两个隐藏层的多层感知器模型的拓扑结构,最左边一列称为输入层,最右边一列称为输出层,中间两列称为隐藏层。
7、需要说明的是,在统计神经网络的层数时,输入层一般是不计入层数的。通常,将去除输入层之后的神经网络从左至右依次计数得到的总层数,称为神经网络的最终层数。因此,在图中,把输入层记为第0层,隐藏层记为第1层和第2层,输出层记为第3层,即是一个3层神经网络。多层感知器是一种前馈神经网络。前馈神经网络是一种单向多层的网络结构,数据从输入层开始,逐层向一个方向传递,直到输出层结束,各层之间没有反馈。所谓前馈”是指输入数据的传播方向为前向,在此过程中,并不调整各层的权重和偏置参数,而反向传播时,将误差逐层向后传递,从而实现使用权重和偏置参数对特征的记忆,即通过反向传播算法来计算各层网络中神经元之间的权重,反
8、向传播算法具有非线性映射能力,理论上可逼近任意连续函数,从而实现对模型的学习。前馈神经网络是应用最广泛、发展最迅速的人工神经网络之一。3 .全连接神经网络【教师】通过多媒体展示“全连接神经网络示例”图片(详见教材),并介绍相关知识与一般神经网络相比,全连接神经网络是一种特殊的神经网络。全连接指的是前一层与后一层中的结点之间全部连接起来。隐藏层中的全部结点都同时与前一层和后一层的全部结点相连接,从而形成全连接神经网络.图所示的神经网络中,每一层的每个结点与后一层的所有结点相连接,而图所示的神经网络中,有些结点是与后一层的部分结点相连接,因此,图既是前馈神经网络也是全连接神经网络,而图是前馈神经网
9、络,却不是全连接神经网络.3.2激活函数激活函数是一个非线性函数.在M-P神经元模型中,激活函数以阈值为界,一旦输入超过阈值,就激活输出,这样的函数称为“阶跃函数。因此,可以说M-P神经元模型使用了阶跃函数作为激活函数。激活函数的作用是去线性化.多层神经网络结点的计算是加权求和,再加上偏置项,是一个线性模型,将这个计算结果传给下一层的结点还是同样的线性模型。只通过线性变换,所有隐藏层的结点就无存在的意义。加入激活函数,就提供了一个非线性的变换方式,大大提升了模型的表达能力。常用的激活函数有Sigmoid函数、Tanh函数、ReLU函数和SoftmaX函数等。3.2.1 Sigmoid函数Sig
10、moid函数的定义如下。Sigmoid(x)=-1+e在TenSOrFk)W中,函数tf.nn.sigmoid(x,name=None)实现了Sigmoid函数。【例3-1绘制Sigmoid函数的图形。【参考代码】import tensorflow as tf import numpy as npimport matplotlib.pyplot as pit plt.title(f(x)=sigmoid(x)r)k.xlabel(,x,)plt.ylabel(,sigmoid(x),)x=np.arange(-l 0,10,0.1)#导入所需库僦置图形的礴暇置X轴标题#设置y轴标题峻置X的值#
11、调用住nn.sigmoid。函数求Sigmoid函数值y=tfnn.sigmoid(x)plt.plot(x,y)#绘制图形plt.show()#显示图形【运彳推果】潘运彳播果如图标.f(x)=sigmoid(x)【高手点拨】在TensorRow中,Sigmoid函数除了可以调用tf.nn.sigmoid()函数来实现外,还可以调用if.math.sigmoid。和lf.sigmoid()函数来实现。Sigmoid激活函数在神经网络发展初期使用很多,但近几年,使用Sigmoid函数作为激活函数的神经网络已经很少了。原因是神经网络在更新参数时,需要从输出层到输入层逐层进行链式求导,而Sigmoi
12、d函数的导数输出是0025的小数,链式求导需要多层导数连续相乘,这就会出现多个0的连续相乘,结果将趋于0,产生梯度消失,使得参数无法继续更新。另外,Sigmoid函数存在幕运算,计算复杂度高,训练时间长。3.2.2Tanh函数Tanh函数的定义如下。l-e2xTanh(x)=-W1+e在TenSorFIOW中,函数f.nn.ianh(x,name=None)实现了Tanh函数。【例3-2】绘制Tanh函数的图形。【参考代码】import tensorflow as tf import numpy as npimport matplotlib.pyplot as pit plt.tit!e(,f
13、(x)=Tanh(x),)plt.xlabel(x,)plt.ylabel(,Tanh(x),)x=np.arange(-10,10,0.1)#导入所需库#设置图形的标题峻置X轴标题 机婕y轴木獭#设置X的值#调用Hnn.ianh()函数求Tanh函数值 y=tf.nn.tanh(x) plt.plot(x,y)plt.show()#绘制图形#显示图形【运行结果】 程序运行结果如图所示。与Sigmoid函数一样,Tanh函数也是在神经网络中较早得到应用的激活函数。【高手点拨】在TensorFlow中,Tanh函数除了可以调用M.nn.anh()函数来实现外,还可以调用f.math.ianh()
14、和比Ianh()函数来实现.3.2.3ReLU函数ReLU函数是近几年才得到应用的激活函数.相较于Sigmoid函数和Tanh函数,ReLU函数被证明可以提供更好的结果。ReLU函数的定义如下。ReLU(x)=max(x,0)=X,x.0,0,XVo在TenSorFlOW中,函数f.nn.relu(x,name=None)实现了ReLU函数。【例3-3】绘制ReLU函数的图形。【参考代码】importtensorowas(fimportnumpyasnpimportmatplollib.pyplotaspitplt.title(f(x)=ReLU(x),)plt.xlabel(,x,)plt.
15、ylabel(,ReLU(x),)x=np.arange(-10,10,0.1)#调用HnnieIuO函数求ReLU函数值#导入所需库#设置图形的标题峻置X轴标题#设置y轴标题#设置X的值y=(f.nn.relu(x)plt.plot(x,y)plt.show()【运行结果】#绘制图形#显示图形程序运行结果如图所示。f(x)=ReLU(x)1310-8-O-10.0-7.5-5.0-2.50.02.55.07.510.0x3.2.4Softmax函数Softmax函数适用于多元分类问题,它的定义如下。X.QrSoftmax(.)=-ext其中,炉为第i个结点的输出值,C为输出结点的个数,即分类的类别个数。通过Softmax函数可以将多分类的输出值转换为范围在IOj1,且和为1的概率分布。在TensorFIow中,函数Ifmnsofimax(Iogiisexis=Nonaname=None)实现了Soft