热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

TensorFlow从0到1之浅谈感知机与神经网络(13)

最近十年以来,神经网络一直处于机器学习研究和应用的前沿。深度神经网络(DNN)、迁移学习以及计算高效的图形处理器(GPU)的普及使得图像识别、语音识别甚至文本生成领域取得了重大进展

最近十年以来,神经网络一直处于机器学习研究和应用的前沿。深度神经网络(DNN)、迁移学习以及计算高效的图形处理器(GPU)的普及使得图像识别、语音识别甚至文本生成领域取得了重大进展。

神经网络受人类大脑的启发,也被称为连接模型。像人脑一样,神经网络是大量被称为权重的突触相互连接的人造神经元的集合。

就像我们通过年长者提供的例子来学习一样,人造神经网络通过向它们提供的例子来学习,这些例子被称为训练数据集。有了足够数量的训练数据集,人造神经网络可以提取信息,并用于它们没有见过的数据。

神经网络并不是最近才出现的。第一个神经网络模型 McCulloch Pitts(MCP)(http://vordenker.de/ggphilosophy/mcculloch_a-logical-calculus.pdf)早在 1943 年就被提出来了,该模型可以执行类似与、或、非的逻辑操作。

MCP 模型的权重和偏置是固定的,因此不具备学习的可能。这个问题在若干年后的 1958 年由 Frank Rosenblatt 解决(https://blogs.umass.edu/brain-wars/files/2016/03/rosenblatt-1957.pdf)。他提出了第一个具有学习能力的神经网络,称之为感知机(perceptron)。

从那时起,人们就知道添加多层神经元并建立一个深的、稠密的网络将有助于神经网络解决复杂的任务。就像母亲为孩子的成就感到自豪一样,科学家和工程师对使用神经网络(https://www.you tu be.com/watch?v=jPHUlQiwD9Y)所能实现的功能做出了高度的评价。

这些评价并不是虚假的,但是由于硬件计算的限制和网络结构的复杂,当时根本无法实现。这导致了在 20 世纪 70 年代和 80 年代出现了被称为 AI 寒冬的时期。在这段时期,由于人工智能项目得不到资助,导致这一领域的进展放缓。

随着 DNN 和 GPU 的出现,情况发生了变化。今天,可以利用一些技术通过微调参数来获得表现更好的网络,比如 dropout 和迁移学习等技术,这缩短了训练时间。最后,硬件公司提出了使用专门的硬件芯片快速地执行基于神经网络的计算。

人造神经元是所有神经网络的核心。它由两个主要部分构成:一个加法器,将所有输入加权求和到神经元上;一个处理单元,根据预定义函数产生一个输出,这个函数被称为激活函数。每个神经元都有自己的一组权重和阈值(偏置),它通过不同的学习算法学习这些权重和阈值:


TensorFlow从0到1之浅谈感知机与神经网络(13)
 

当只有一层这样的神经元存在时,它被称为感知机。输入层被称为第零层,因为它只是缓冲输入。存在的唯一一层神经元形成输出层。输出层的每个神经元都有自己的权重和阈值。

当存在许多这样的层时,网络被称为多层感知机(MLP)。MLP有一个或多个隐藏层。这些隐藏层具有不同数量的隐藏神经元。每个隐藏层的神经元具有相同的激活函数:


TensorFlow从0到1之浅谈感知机与神经网络(13)
 


上图的 MLP 具有一个有 4 个输入的输入层,5 个分别有 4、5、6、4 和 3 个神经元的隐藏层,以及一个有 3 个神经元的输出层。在该 MLP 中,下层的所有神经元都连接到其相邻的上层的所有神经元。因此,MLP 也被称为全连接层。MLP 中的信息流通常是从输入到输出,目前没有反馈或跳转,因此这些网络也被称为前馈网络。

感知机使用梯度下降算法进行训练。前面章节已经介绍了梯度下降,在这里再深入一点。感知机通过监督学习算法进行学习,也就是给网络提供训练数据集的理想输出。在输出端,定义了一个误差函数或目标函数 J(W),这样当网络完全学习了所有的训练数据后,目标函数将是最小的。

输出层和隐藏层的权重被更新,使得目标函数的梯度减小:


TensorFlow从0到1之浅谈感知机与神经网络(13)
 

为了更好地理解它,想象一个充满山丘、高原和凹坑的地形。目标是走到地面(目标函数的全局最小值)。如果你站在最上面,必须往下走,那么很明显你将会选择下山,即向负坡度(或负梯度)方向移动。相同的道理,感知机的权重与目标函数梯度的负值成比例地变化。

梯度的值越大,权值的变化越大,反之亦然。现在,这一切都很好,但是当到达高原时,可能会遇到问题,因为梯度是零,所以权重没有变化。当进入一个小坑(局部最小值)时,也会遇到问题,因为尝试移动到任何一边,梯度都会增加,迫使网络停留在坑中。

正如前面所述,针对增加网络的收敛性提出了梯度下降的各种变种使得网络避免陷入局部最小值或高原的问题,比如添加动量、可变学习率。

TensorFlow 会在不同的优化器的帮助下自动计算这些梯度。然而,需要注意的重要一点是,由于 TensorFlow 将计算梯度,这也将涉及激活函数的导数,所以你选择的激活函数必须是可微分的,并且在整个训练场景中具有非零梯度。

感知机中的梯度下降与梯度下降的一个主要不同是,输出层的目标函数已经被定义好了,但它也用于隐藏层神经元的权值更新。这是使用反向传播(BPN)算法完成的,输出中的误差向后传播到隐藏层并用于确定权重变化。


推荐阅读
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 在2019中国国际智能产业博览会上,百度董事长兼CEO李彦宏强调,人工智能应务实推进其在各行业的应用。随后,在“ABC SUMMIT 2019百度云智峰会”上,百度展示了通过“云+AI”推动AI工业化和产业智能化的最新成果。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 当前物联网领域十大核心技术解析:涵盖哪些关键技术?
    经过近十年的技术革新,物联网已悄然渗透到日常生活中,对社会产生了深远影响。本文将详细解析当前物联网领域的十大核心关键技术,包括但不限于:1. 军事物联网技术,该技术通过先进的感知设备实现战场环境的实时监测与数据传输,提升作战效能和决策效率。其他关键技术还包括传感器网络、边缘计算、大数据分析等,这些技术共同推动了物联网的快速发展和广泛应用。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 理工科男女不容错过的神奇资源网站
    十一长假即将结束,你的假期学习计划进展如何?无论你是在家中、思念家乡,还是身处异国他乡,理工科学生都不容错过一些神奇的资源网站。这些网站提供了丰富的学术资料、实验数据和技术文档,能够帮助你在假期中高效学习和提升专业技能。 ... [详细]
  • 图像分割技术在人工智能领域中扮演着关键角色,其中语义分割、实例分割和全景分割是三种主要的方法。本文对这三种分割技术进行了详细的对比分析,探讨了它们在不同应用场景中的优缺点和适用范围,为研究人员和从业者提供了有价值的参考。 ... [详细]
  • 深度森林算法解析:特征选择与确定能力分析
    本文深入探讨了深度森林算法在特征选择与确定方面的能力。提出了一种名为EncoderForest(简称eForest)的创新方法,作为首个基于决策树的编码器模型,它在处理高维数据时展现出卓越的性能,为特征选择提供了新的视角和工具。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 专业人士如何做自媒体 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 本文介绍了实现人工智能的多种方法,并重点探讨了当前最热门的技术——通过深度学习训练神经网络。文章通过具体实例详细解释了神经网络的基本原理及其应用。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
author-avatar
huangxianghuo127
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有