深度学习简明教程

深度学习简明教程

作为机器学习的一个分支,深度学习可以说是当下相当热门的一个话题。像Google、Microsoft、IBM这样的巨头都围绕深度学习重点投资了一系列新兴项目,他们的目标是为了开发能够学习越来越多复杂任务的神经网络。但是它是如何工作的呢?本文中我们一起来进行探讨。

你有收到过垃圾邮件吗?

当下垃圾邮件过滤器早已替我们过滤掉大部分我们不想收到的电子邮件,且精度十分之高。但是并没有多少人知道这些垃圾邮件是如何与正常邮件筛选开的。因为新的垃圾邮件地址能够很容易重新注册,所以不能简单地基于发件人地址来进行过滤。第二个原因是垃圾邮件经常是通过被第三方盗取的正常账户地址进行发送的。将垃圾邮件与正常邮件分开的最佳办法是查看邮件信息中的具体内容,目前用来做这个的最有效的方法正是基于机器学习。

机器学习通过自我学习系统来不断改善自身,这些系统以一种自动化的方式来学习识别数据中的结构。通过这种方式,系统能学会一个能进行数据解释的模型,使用它我们能对未知的数据进行预测。一些有名的机器学习范例有面部识别、声音识别、文本翻译。另外,Google的无人驾驶汽车也使用了一些不同的机器学习系统来识别行人和交通信号指示。

基准原则

机器学习的基准原则相当简单,设想下我们想要建立一种能够分辨苹果和梨的机器。数字图像是由一个物体、两个称为特征的值组成的,其中这些值是通过一小段手工代码从数字图像中提取的。这些代码能提取图像中对象的颜色(从红色到绿色)以及对象的形状(从圆形到椭圆形)。现在想象一下,我们有一组包含苹果和梨的图像。对于每一个图像,如果它包含一个苹果或一个梨,我们会直接用这些图像的标签来称呼它。当我们计算训练集中图像的特性并将它们绘制出来的话,得到的结果如下图所示。

从上图我们可以看出苹果和梨的计算结果大部分都落在自己的区域,因此这两个对象类别可以通过划分成两个不同的空间(蓝色线条)来进行区分。现在如果给定一个新的对象图片,我们可以通过计算特征并检查它在空间中的位置来辨别它是一个苹果还是一个梨。本质上来说,算法已经从数据中将苹果和梨区分开了。

虽然情况看起来很乐观,但是我们也注意到如果计算的特征离两个对象的分类线(蓝色线条)接近的话,系统会出现错误,比如说绿色椭圆形的苹果以及又圆又红的梨。因此,该算法的准确度高度依赖于训练集上的样本数目,以及所使用特征的质量和数量。例如我们可以使用三分之一的特征来量化对象的结构,这样也许增加了算法的准确度,整个过程如下图所示。

深度学习

上述方法是机器学习的本质,这种方式被应用了几十年。最重要的一点是构建对象类别是可分离的高质量特征。然而有人可能会问,除了通过手工对其进行编码之外,是否有可能直接学习这些特征吗?这个确实是有可能的,而且从70年代起就已经存在了。其中一种可以用来学习特征的方法就是神经网络,神经网络是基于大脑工作方式的方法。

人工智能神经网络是基于对单个大脑细胞进行建模的人工神经元建成的,这些人工神经元代表一个单位的运算。

人工神经网络接收不同的值作为输入(例如从其他人工神经元),然后通过一个简单的方程运算产生一个单一的输出值,此输出值可以作为其他神经元的输入值。通过连接各层中的神经元,我们构筑了一个大型人工神经网络。既然单个神经元执行简单的计算行为,那么网络作为一个整体可以执行一个非常复杂的运算。下图展示了这个过程,圆代表了神经元,线条代表输出——输入神经元之间的连接。关于神经网络一件有趣的事是他们会自动学习所需的特征。可以想象有一个神经网络,通过直接学习它接收的输入图像特征(颜色、形状)将苹果和梨分开。

深度学习中的“深度”指代的是神经网络中的层级数目,深度在学习良好特征上扮演了相当重要的角色。这是因为每一层都会基于上一层的特征学会另外一系列特征。神经网络越深,其能学会的特征越复杂。想要更深入地了解神经网络的工作原理可以下图简单了解,也通过下面的链接:playground.tensorflow.org详细观看演示。

虽然神经网络可以通过自身学会特征,但是这些通常不会应用到实践中。这样做的其实有两个原因,第一是其需要大量的训练样本,第二是要学会良好的特征需要许多层级,这反过来又需要大量的计算能力。随着近几年来大数据的兴起和计算能力的增加,在实践中应用这些神经网络已经成为可能。神经网络可以学习到比手工构造更复杂的特征,因此他们往往比手工编码系统要表现优异。

应用

机器学习和深度学习是广泛适用的,它不仅限于工农业中的将梨和苹果分开的应用。例如有个系统能够通过医疗扫描学会从健康的细胞中识别癌细胞,在过去的几年中这个系统的精度有了迅速的提高。再如Facebook创造了一个类似Siri的系统,它能够以高精度分析图片的内容,还可以回答关于图像内容的问题。

虽然这些类型的系统并没有比人类表现的更好,但是存在一些专业系统,其在自身领域中早已超过人类的表现。例如,微软开发的一个应用能够高精度的识别狗的品种,比人类正确率要高。如下图所示,具体演示地址Microsoft's Fetch App Identifies Your Dog

机器学习不仅可用于分类识别,也可用于文本分析。例如一个神经网络能够被用来提取文本中的观点,可以表明文本所持观点是否积极或者消极。这是一个相当有名的技术,其应用包括自动评估产品的评论内容。

在我看来,机器学习最令人印象深刻的应用是在人工智能领域,神经网络与强化学习结合使得构筑能从自身环境中进行学习的智能agents称为可能。

最好的例子是Google Deepmind所推出的系统,它能够通过完全自主的试验和错误来学习如何玩雅达利(Atari)视频游戏。该系统就像人类玩家一样只接收屏幕输入,也只产生视频游戏控制器上的按压信号,在一些电子游戏中该系统实际上表现优于人类。具体演示地址DeepMind's DQN playing Breakout

就目前来看,深度学习日后发展的潜力可以说是相当巨大的,希望通过本文的介绍你对深度学习会有一个基本了解。

本文作者:李尊

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-08-04 13:07:04

深度学习简明教程的相关文章

深度学习必备手册(下)

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud 请收下这份关于人工智能的根目录--博客整理系列(一) 关于数据科学的那些事--博客整理系列(二) 机器学习必备手册--博客整理系列(三) 扩展眼界的都在这--博客整理系列(四) 深度学习必备手册(上)--博客整理系列(五) 深度学习的概念源于人工神经网络的研究,如果追溯深度学习的概念还是要回到2006年Hinton那篇论文,基于深信度网(DNB)提出非监督贪心逐层训练算法,未解决深层结构相关的优化难题出现的论

深度学习并非万能,你用对了吗?

[ 导读 ]深度学习随着AlphaGo大胜李世石之后被"神话",很多人认为深度学习就是挑战人类智力的"神器".可是,深度学习真的如他们想象的那般"战无不胜"吗?本文编译自hyperparameter.space,作者是Pablo Cordero,就读于加利福尼亚大学圣克鲁斯校区,主攻方向为细胞生物学和再生医学背景下的应用机器学习研究.阅读此文后,你便能够从深层理解,为什么深度学习其实并不像普通百姓想象的那般"神"了,甚至,你还

Keras之父:大多数深度学习论文都是垃圾,炒作AI危害很大

Keras之父.谷歌大脑人工智能和深度学习研究员François Chollet最新撰写了一本深度学习Python教程实战书籍<Python深度学习>,书中介绍了深度学习使用Python语言和强大Keras库,详实新颖. 近日,François Chollet接受了采访,就"深度学习到底是什么"."Python为何如此广受欢迎"."目前深度学习面临的主要挑战"等议题进行了回答.他认为,目前很多深度学习领域的论文都是无意义的,因为这些研

盘点|10条最有用的深度学习教程资源(附教程链接)

本文来源于Github blog BY omtcyfz 译者:赫鑫宇 郭昕 今天介绍一些深度学习的资源干货!个人认为这些资源对于那些刚刚进入机器学习领域准备摸索一番的小白十分有帮助.同时如果你想进一步了解神经网络算法及其应用,那请阅览本篇文章吧,相信会对你有极大的帮助! 在上干货之前,先来讲一下我把这些资源整合起来并归结到本篇文章中的初衷.在刚开始入门学习的时候,我看了大量的没有文字介绍的链接资源,我完全不知道他们中的哪一个是值得花时间研究的.所以现在我把见过的最有用的一些链接资源拿出来并配以简

深度学习零基础?没关系——面向艺术家的RNN教程

首发地址:https://yq.aliyun.com/articles/68606 更多深度文章,请关注:https://yq.aliyun.com/cloud 作者介绍:hardmaru,一位钟情于RNN的深度学习研究者,相关地址 Twitter地址:https://twitter.com/hardmaru Github地址:https://github.com/hardmaru 博客地址:http://blog.otoro.net/ 这篇文章适用于没有任何机器学习背景的读者,目标是向艺术家和

大牛的《深度学习》笔记,Deep Learning速成教程

雷锋网(公众号:雷锋网)按:本文由Zouxy责编,全面介绍了深度学习的发展历史及其在各个领域的应用,并解释了深度学习的基本思想,深度与浅度学习的区别和深度学习与神经网络之间的关系. 深度学习,即Deep Learning,是一种学习算法(Learning algorithm),亦是人工智能领域的一个重要分支.从快速发展到实际应用,短短几年时间里,深度学习颠覆了语音识别.图像分类.文本理解等众多领域的算法设计思路,渐渐形成了一种从训练数据出发,经过一个端到端(end-to-end)的模型,然后直接

使用腾讯云 GPU 学习深度学习系列之二:Tensorflow 简明原理【转】

转自:https://www.qcloud.com/community/article/598765?fromSource=gwzcw.117333.117333.117333 这是<使用腾讯云 GPU 学习深度学习>系列文章的第二篇,主要介绍了 Tensorflow 的原理,以及如何用最简单的Python代码进行功能实现.本系列文章主要介绍如何使用 腾讯云GPU服务器 进行深度学习运算,前面主要介绍原理部分,后期则以实践为主. 往期内容: 使用腾讯云 GPU 学习深度学习系列之一:传统机器学

横向对比七大深度学习框架

文章讲的是横向对比七大深度学习框架,在深度学习项目开始前,选择一个合适的框架是非常重要的事情.最近,来自数据科学公司 Silicon Valley Data Science 的数据工程师 Matt Rubashkin(UC Berkeley 博士)为我们带来了深度学习 7 种流行框架的深度横向对比,希望本文能对你带来帮助. 在 SVDS,我们的研发团队一直在研究不同的深度学习技术;从识别图像到语音,我们也在各类框架下实现了不少应用.在这个过程中,我们意识到需要一个简明的方式来获取数据.创建模型.

30个深度学习库:按Python和C++等10种语言分类

本文介绍了包括 Python.Java.Haskell等在内的一系列编程语言的深度学习库. 一.Python 1.Theano 是一种用于使用数列来定义和评估数学表达的 Python 库.它可以让 Python 中深度学习算法的编写更为简单.很多其他的库是以 Theano 为基础开发的: Keras 是类似 Torch 的一个精简的,高度模块化的神经网络库.Theano 在底层帮助其优化 CPU 和 GPU 运行中的张量操作. Pylearn2 是一个引用大量如随机梯度(Stochastic G