热门标签 | 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)算法完成的,输出中的误差向后传播到隐藏层并用于确定权重变化。


推荐阅读
  • 干货 | 携程AI推理性能的自动化优化实践
    作者简介携程度假AI研发团队致力于为携程旅游事业部提供丰富的AI技术产品,其中性能优化组为AI模型提供全方位的优化方案,提升推理性能降低成本࿰ ... [详细]
  • TensorFlow入门上
    前置准备在阅读本文之前,请确定你已经了解了神经网络的基本结构以及前向传播、后向传播的基本原理,如果尚未了解,可以查看下文。神经网络初探​chrer.com也可以直接在我博客阅读Te ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • Yarn已过时!Kubeflow实现机器学习调度平台才是未来
    来源:AI前线本文约6700字,建议阅读10分钟。本文分析了建设分布式训练平台的过程中的痛点所在,为你介绍Kubeflow与其核心组件及其 ... [详细]
  • 开源真香 离线识别率高 Python 人脸识别系统
    本文主要介绍关于python,人工智能,计算机视觉的知识点,对【开源真香离线识别率高Python人脸识别系统】和【】有兴趣的朋友可以看下由【000X000】投稿的技术文章,希望该技术和经验能帮到 ... [详细]
  • 20180717不要人工智能,用SQL就够了BP神经网络与模糊神经网络在空气质量评价中的应用如何用Tensorflow.js部署简单的AI图像识别应用2018 ... [详细]
  • 快过HugeCTR:用OneFlow轻松实现大型推荐系统引擎
    一、简介Wide&DeepLearning(以下简称WDL)是解决点击率预估(CTRPrediction) ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 基于深度学习的遥感应用
    文章目录深度学习的发展过程深度学习在遥感中的应用基于深度学习的遥感样例库建设基于深度学习的遥感影像目标及场景检索基于深度学习的建筑物提取基于深度学习的密集建筑物自动检测基于深度学习 ... [详细]
  • bat大牛带你深度剖析android 十大开源框架_请收好!5大领域,21个必知的机器学习开源工具...
    全文共3744字,预计学习时长7分钟本文将介绍21个你可能没使用过的机器学习开源工具。每个开源工具都为数据科学家处理数据库提供了不同角度。本文将重点介绍五种机器学习的 ... [详细]
  • 加工|机床_工业4.0 资产管理壳学习笔记应用场景与架构
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了工业4.0资产管理壳学习笔记-应用场景与架构相关的知识,希望对你有一定的参考价值。        资产管理壳ÿ ... [详细]
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社区 版权所有