热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python学习教程:初级算法第七题:加一最简单的深度学习算法——感知器的前世今生

写在前面:各位小伙伴们,又到了喜闻乐见的更新时间,最近猛料不断,先有Boston动力的“仁义”机器人反恐演习,

写在前面:

各位小伙伴们,又到了喜闻乐见的更新时间,最近猛料不断,先有Boston动力的“仁义”机器人反恐演习,紧接着MIT的狗狗们在实验室的绿茵场上集体卖萌,让我们感慨强人工智能离我们也许不远了。

最简单的深度学习算法——感知器的前世今生
作为快要秃头的我们,又该怎么看待这个快速变化的世界呢?在知识更新越来越快的现在,想要专注于当下似乎都变得艰难。其实柳猫想要告诉大家,作为一个普通人,对各种信息越是了解的多,认识的越是浅薄,为了增强自己的不可替代性,必须增加自己专业的深度,从一而终。

今天,想跟大家分享一下最早也是最简单的一个机器学习模型:感知器~

感知器的诞生——从样本中学习

神经网络的AI先驱们一直依靠着神经元的绘图以及它们相互连接的方式,进行着艰难的摸索。康奈尔大学的弗兰克·罗森布拉特是最早模仿人体自动图案识别视觉系统架构的人之一。

最简单的深度学习算法——感知器的前世今生
他发明了一种看似简单的网络感知器(perceptron),这种学习算法可以学习如何将图案进行分类,例如识别字母表中的不同字母。**算法是为了实现特定目标而按步骤执行的过程,**就像烘焙蛋糕的食谱一样。

如果我们了解了感知器如何学习图案识别的基本原则,那么在理解深度学习工作原理的路上已经成功了一半。感知器的目标是确定输入的图案是否属于图像中的某一类别(比如猫)。

最简单的深度学习算法——感知器的前世今生
上图解释了感知器的输入如何通过一组权重,来实现输入单元到输出单元的转换。权重是对每一次输入对输出单元做出的最终决定所产生影响的度量,但是我们如何找到一组可以将输入进行正确分类的权重呢?

解决这个问题的传统方法,是根据分析或特定程序来手动设定权重。这需要耗费大量人力,而且往往依赖于直觉和工程方法。另一种方法则是使用一种从样本中学习的自动过程,和我们认识世界上的对象的方法一样。需要很多样本来训练感知器,包括不属于该类别的反面样本,特别是和目标特征相似的,例如,如果识别目标是猫,那么狗就是一个相似的反面样本。这些样本被逐个传递给感知器,如果出现分类错误,算法就会自动对权重进行校正。

感知器具体算法

这种感知器学习算法的美妙之处在于,如果已经存在这样一组权重,并且有足够数量的样本,那么它肯定能自动地找到一组合适的权重。在提供了训练集中的每个样本,并且将输出与正确答案进行比较后,感知器会进行递进式的学习。如果答案是正确的,那么权重就不会发生变化。但如果答案不正确(0被误判成了1,或1被误判成了0),权重就会被略微调整,以便下一次收到相同的输入时,它会更接近正确答。这种渐进的变化很重要,这样一来,权重就能接收来自所有训练样本的影响,而不仅仅是最后一个。

最简单的深度学习算法——感知器的前世今生
感知器是具有单一人造神经元的神经网络,它有一个输入层,和将输入单元和输出单元相连的一组连接。感知器的目标是对提供给输入单元的图案进行分类。输出单元执行的基本操作是,把每个输入(xn)与其连接强度或权重(wn)相乘,并将乘积的总和传递给输出单元。上图中,输入的加权和(∑i=1,…,n wi xi)与阈值θ进行比较后的结果被传递给阶跃函数。如果总和超过阈值,则阶跃函数输出“1”,否则输出“0”。例如,输入可以是图像中像素的强度,或者更常见的情况是,从原始图像中提取的特征,例如图像中对象的轮廓。每次输入一个图像,感知器会判定该图像是否为某类别的成员,例如猫类。输出只能是两种状态之一,如果图像处于类别中,则为“开”,否则为“关”。“开”和“关”分别对应二进制值中的1和0。

感知器学习算法可以表达为:

感知器如何区分两个对象类别的几何解释

如果对感知器学习的这种解释还不够清楚,我们还可以通过另一种更简洁的几何方法,来理解感知器如何学习对输入进行分类。对于只有两个输入单元的特殊情况,可以在二维图上用点来表示输入样本。每个输入都是图中的一个点,而网络中的两个权重则确定了一条直线。感知器学习的目标是移动这条线,以便清楚地区分正负样本。对于有三个输入单元的情况,输入空间是三维的,感知器会指定一个平面来分隔正负训练样本。在一般的情况下,即使输入空间的维度可能相当高且无法可视化,同样的原则依然成立。

最简单的深度学习算法——感知器的前世今生
这些对象有两个特征,例如尺寸和亮度,它们依据各自的坐标值(x,y)被绘制在每张图上。左边图中的两种对象(加号和正方形)可以通过它们之间的直线分隔开;感知器能够学习如何进行这种区分。其他两个图中的两种对象不能用直线隔开,但在中间的图中,两种对象可以用曲线分开。而右侧图中的对象必须舍弃一些样本才能分隔成两种类型。如果有足够的训练数据,深度学习网络就能够学习如何对这三个图中的类型进行区分。

最终,如果解决方案是可行的,权重将不再变化,这意味着感知器已经正确地将训练集中的所有样本进行了分类。

但是,在所谓的“过度拟合”(overfitting)中,也可能没有足够的样本,网络仅仅记住了特定的样本,而不能将结论推广到新的样本。为了避免过度拟合,关键是要有另一套样本,称为“测试集”(test set),它没有被用于训练网络。训练结束时,在测试集上的分类表现,就是对感知器是否能够推广到类别未知的新样本的真实度量。泛化(generalization)是这里的关键概念。在现实生活中,我们几乎不会在同样的视角看到同一个对象,或者反复遇到同样的场景,但如果我们能够将以前的经验泛化到新的视角或场景中,我们就可以处理更多现实世界的问题。

利用感知器区分性别

举一个用感知器解决现实世界问题的例子。想想如果去掉头发、首饰和第二性征,比如男性比女性更为突起的喉结,该如何区分男性和女性的面部。

最简单的深度学习算法——感知器的前世今生
这张脸属于男性还是女性?人们通过训练感知器来辨别男性和女性的面孔。来自面部图像(上图)的像素乘以相应的权重(下图),并将该乘积的总和与阈值进行比较。每个权重的大小被描绘为不同颜色像素的面积。正值的权重(白色)表现为男性,负值的权重(黑色)倾向于女性。鼻子宽度,鼻子和嘴之间区域的大小,以及眼睛区域周围的图像强度对于区分男性很重要,而嘴和颧骨周围的图像强度对于区分女性更重要。

最简单的深度学习算法——感知器的前世今生
区分男性与女性面部的工作有趣的一点是,虽然我们很擅长做这种区分,却无法确切地表述男女面部之间的差异。由于没有单一特征是决定性的,因此这种模式识别问题要依赖于将大量低级特征的证据结合起来。感知器的优点在于,权重提供了对性别区分最有帮助的面部的线索。令人惊讶的是,人中(即鼻子和嘴唇之间的部分)是最显著的特征,大多数男性人中的面积更大。眼睛周围的区域(男性较大)和上颊(女性较大)对于性别分类也有着很高的信息价值。感知器会权衡来自所有这些位置的证据来做出决定,我们也是这样来做判定的,尽管我们可能无法描述出到底是怎么做到的。

感知器的扩展

感知器激发了对高维空间中模式分离的美妙的数学分析。当那些点存在于有数千个维度的空间中时,我们就无法依赖在生活的三维空间里对点和点之间距离的直觉。俄罗斯数学家弗拉基米尔·瓦普尼克(Vladimir Vapnik)在这种分析的基础上引入了一个分类器,称为“支持向量机”(Support Vector Machine)。

最简单的深度学习算法——感知器的前世今生
它将感知器泛化,并被大量用于机器学习。他找到了一种自动寻找平面的方法,能够最大限度地将两个类别的点分开(线性)。这让泛化对空间中数据点的测量误差容忍度更大,再结合作为非线性扩充的“内核技巧”(kernel trick),支持向量机算法就成了机器学习中的重要支柱。

总结——并非万能的感知器

在感知器中,每个输入都独立地向输出单元提供证据。但是,如果需要依靠多个输入的组合来做决定,那会怎样呢?这就是感知器无法区分螺旋结构是否相连的原因:单个像素并不能提供它是在内部还是外部的位置信息。尽管在多层前馈神经网络中,可以在输入和输出单元之间的中间层中形成多个输入的组合,但是在20世纪60年代,还没有人知道如何训练简单到中间只有一层“隐藏单元”(hiddenunits)的神经网络。


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • GTX1070Ti显卡怎么样?GTX1070Ti显卡首发图赏+参数解读与拆解图
    先来简单回顾一下今年的显卡市场,nvidia自从发布了帕斯卡架构新品之后,可以说是一直都主宰着高端游戏显卡市场,虽说amd也憋了一个hbm2的vega64出来,然而即使是最高贵的水 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • 未来五年的AI领域科技亮点,都在这里了
    当AI正式成长为推动世界第四次工业革命的潜在力量之一,我们的生活也在悄然发生着变化,当AI渗透到人们的生活中,引爆着一场又一场的行业变革& ... [详细]
  • 携手生态伙伴,希捷发布银河X16数据存储方案
    2019年6月26日,希捷科技在北京举办“容海量数据筑云之基石”——2019希捷科技企业级生态合作伙伴沟通会暨银河ExosX16新品发布会。在本次发布会上࿰ ... [详细]
  • 知识图谱表示概念:知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Obj ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
author-avatar
曼珠沙華的朦朧_759
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有