人工智能创新实验教程 课件 第13章 感知机算法_第1页
人工智能创新实验教程 课件 第13章 感知机算法_第2页
人工智能创新实验教程 课件 第13章 感知机算法_第3页
人工智能创新实验教程 课件 第13章 感知机算法_第4页
人工智能创新实验教程 课件 第13章 感知机算法_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

宁夏大学感知机算法第十三章感知机算法2目录

CONTENT01引言02算法概述03实验数据04算法实战05本章小结01引言引言

在对机器学习的相关内容有一定了解后,我们将开始学习机器学习最重要的一个分支——深度学习(DeepLearning)。本节将讲述深度学习中一个经典的基础算法,感知机算法。本文将从算法概述讲起,首先介绍感知机算法的实现原理,接着介绍感知机算法需要用到的实验数据集,最后,通过两个简单的实验使读者能够更加直观的理解感知机算法。02算法概述算法概述6感知机简介感知机是1957年由Rosenblatt提出的一个概念,是神经网络和支持向量机(SVM)的基础。它的提出受到生物学的启发,如右图所示,人的大脑可以看作是一个神经网络,这个网络中的最小单元是神经元,许多神经元连接起来形成一个错综复杂的网络,我们称之为神经网络。

右图展示了神经元的工作机制,首先神经元接收到一些信号,如眼睛看到的光信号和耳朵听到的声音信号,这些信号会通过树突组织并最终到达细胞核,细胞核对这些信号进行综合处理,当信号达到一定阈值后就会被激活产生一个输出,形成新的信号并传输至大脑,这就是人脑的一个神经元在进行感知时大致的工作原理。算法概述7算法实现原理

在理解神经元的工作机制后,我们用算法模拟这个过程,左图表示一个感知器。从图中可以看到,一个感知器由以下部分组成:(1)输入权值。一个感知器可以接收多个输入:

每个输入上有一个权值:

此外还有一个偏置项:

(2)激活函数。感知器的激活函数可以有很多选择,比如我们可以选择下面这个阶跃函数来作为激活函数:(3)输出。感知器的输出由如下公式计算:算法概述8算法实现原理在理解感知器的工作原理后,我们用一个简单的例子来帮助理解。我们设计一个感知器,让它来实现and运算。and是一个二元函数(带有两个参数和),右图是它的真值表:为了计算方便,我们用0表示false,用1表示true。我们令,

激活函数使用前面提到的阶跃函数,这时我们就完成了一个能实现and函数功能的感知器,输入真值表的第一行,即=0,=0,计算输出:算法概述9算法实现原理事实上,感知机不仅仅能实现简单的布尔运算。它可以拟合任何的线性函数,任何线性分类或线性回归问题都可以用感知机来解决。前面的布尔运算可以看作是二分类问题,即给定一个输入,输出0(属于分类0)或1(属于分类1)。如下图左所示,and运算是一个线性分类问题,即可以用一条直线把分类0(false,红叉表示)和分类1(true,绿点表示)分开。然而,感知机却不能实现异或运算,如下图右所示,异或运算不是线性的,无法用一条直线把分类0和分类1分开。算法概述10算法实现原理

前文直接给出了权重项和偏置项的值,接下来将解释为何选取这些值,这里需要用到感知机的训练算法:将权重项和偏置项初始化为0,然后,利用下列公式迭代的修改和,直到训练完成。是与输入对应的权重项,是偏置项。事实上,可以把看作是值永远为1的输入所对应的权重。是训练样本的实际值,一般称之为label。而是感知器的输出值。是一个称为学习速率的常数,其作用是控制每一步调整权的幅度。每次从训练数据中取出一个样本的输入向量,使用感知器计算其输出,再根据上面的规则来调整权重。每处理一个样本就调整一次权重。经过多轮迭代后(即全部的训练数据被反复处理多轮),就可以训练出感知器的权重,使之实现目标函数。03实验数据实验数据12感知机算法可以解决线性分类问题,为此本书采用鸢尾花(lris)数据集设计实验,该数据集是统计学习和机器学习领域的经典数据集。数据集内包含3类共150条记录,每类各50个数据,每条记录都有4项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可以通过这4个特征预测鸢尾花卉属于(iris-setosa,iris-versicolour,iris-virginica)中的哪一品种。下图展示了该数据集的头5条数据。该数据集可以从scikit-learn库中加载。sklearn是一个Python第三方提供的非常强力的机器学习库,它包含了从数据预处理到训练模型的各个方面。使用scikit-learn中可以极大的节省我们编写代码的时间以及减少代码量,使读者有更多精力去分析数据分布、调整模型和修改超参。04案例实战算法实战14实验一:通过感知机实现逻辑与(and)运算首先,我们定义一个感知器类(class)。我们先初始化感知器,设置输入参数的个数,以及激活函数。激活函数的类型为double->double,接着我们将权重向量和偏置项初始化为0接着输入向量,输出感知器的计算结果:

然后我们输入训练数据,即一组向量、与每个向量对应的label;以及训练轮数、学习率。算法实战15实验一:通过感知机实现逻辑与(and)运算之后通过一次迭代,将所有训练数据过一遍。最后按照感知器的规则更新权重。

在完成感知器类后,我们利用它去实现and函数。首先我们定义一个激活函数,即上文所提到的阶跃函数。接着我们基于and真值表构建训练数据:

然后使用and真值表训练感知器:

最后将上述程序保存为.py文件,通过命令行执行这个程序,其运行结果为:算法实战16实验二:通过感知机算法解决鸢尾花数据集分类问题

上文中提到,感知机不仅仅能实现简单的布尔运算,还能解决任何一个线性分类问题。接下来我们将设计实验采用感知机算法解决线性分类问题。首先,我们需要从sklearn库中加载鸢尾花数据集并对其进行预处理,仅采用花萼长度、花萼宽度作为指标进行分类任务。算法实战17实验二:通过感知机算法解决鸢尾花数据集分类问题

之后,我们设置感知器的权重向量和偏置项,并将学习率初始化为0.1,之后采用随机梯度下降的方法对算法进行优化。

最后,我们通过将分类结果通过plt函数绘制在一张图上,代码展示如下:算法实战18实验二:通过感知机算法解决鸢尾花数据集分类问题本实现的可视化实验结果如上图所示,根据上图可知,感知机算法可以用来解决线性分类问题,且可以取得较为理想的结果。05本章小结本章小结20

本章作为由机器学习向深度学习的过渡章节,首先简单介绍了深度学习的背景知识并分析了深度学习的优缺点,使读者对深度学习有一个基本的了解。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论