深度学习入门

1. 引言

机器学习技术为现代社会的许多领域提供了强大的技术支持:从网络搜索到社交网络的内容过滤,再到电子商务网站的产品推荐。机器学习技术正越来越多的出现在消费级产品上,比如照相机和智能手机。 机器学习系统可用于识别图像中的对象,将语音转换成文本,选择搜索结果的相关项,以及匹配新闻、帖子或用户感兴趣的其他东西。 类似的应用越来越多,它们都使用了一种叫做深度学习的技术。

一些你可能不知道的优质公众号!

深度学习(也称为深层结构学习、层次学习或深度机器学习)是基于对数据中的高级抽象进行建模的算法,它属于机器学习的分支。最简单的例子,你可以有两组神经元:接收输入信号的神经元和发送输出信号的神经元。当输入层接收到输入时,它将输入的修改版本传递给下一层。在深层网络中,输入和输出层之间有很多层(层并不是由神经元构成,这里只是为了帮助你思考),这些层允许算法使用多个处理层,这些层包含了多个线性和非线性变换。

近来,深度学习技术使得机器学习发生了革命性的变化,并出现了很多伟大的成果。 它们大大改进了语音识别、视觉对象识别、对象检测以及许多其他领域(如药物发现和基因组学)的技术。 “深度学习”这个术语最早由Dechter(1986)引入机器学习,由Aizenberg等人(2000)引入人工神经网络(NN)。 深度学习的进一步普及得益于由Alex Krizhevsky发明的被称为“AlexNet”的卷积网络架构的出现。“AlexNet”在2012年的ImageNet比赛中击败了其他所有的图像处理算法,开创了在图像处理中使用深度学习架构的先河。

2. 深度学习架构

生成式深度架构,旨在描述用于模式分析或合成目的的观测数据或可见数据的高阶相关特性,以及描述可见数据及其关联类的联合统计分布的特征。在后一种情况下,使用贝叶斯规则可以将这种类型的架构变成辨别式深度架构。

辨别式深度架构,旨在直接提供模式分类的辨别力,通常通过描述基于可见数据种类的后验分布来描述。

混合式深度架构,其目的是辨别,但通常辅以通过更好的优化或规则化的生成架构的结果,或者是其辨别标准被用来学习类别1中的任何一个深度生成模型的参数

尽管深度学习架构的分类很复杂,但在实践中经常用到的有深度前馈网络、卷积网络和循环网络。

3. 深度前馈网络

前馈网络,通常被称为前馈神经网络或多层感知器(MLP),它是典型的深度学习模式。前馈网络的目标是逼近某个函数f。例如,对于一个分类器,y=f(x)表示的是将输入x映射到类别y。前馈网络定义了一个映射 y=f(x;θ),并学习能产生最佳逼近函数的参数θ的值。简单来说,网络可以定义为输入、隐藏和输出节点的组合。数据从输入节点流入,在隐藏节点中进行处理,然后通过输出节点产生输出。信息流经从x评估的函数,通过用于定义f的中间计算,最后到输出y。该网络中没有反馈连接,其中模型的输出反馈到自身,因此模型被称为前馈网络。该模型如图[1]所示。

图[1]:前馈神经网络

4. 卷积神经网络

在机器学习中,卷积神经网络(CNN或ConvNet)是一种前馈人工神经网络,其神经元之间的连接模式是受动物视觉皮层组织的启发而发明出来的。个别皮质神经元对受限区域的刺激响应称为**感受野**。不同神经元的感受野部分重叠,这使得这些感受野像瓦片一样平铺。单个神经元对其感受野内的刺激的反应可以用卷积运算近似地数学化。卷积网络的灵感来自于生物学,是多层感知器的变体。它在图像和视频识别、推荐系统和自然语言处理中具有广泛的应用。

LeNet是第一个卷积神经网络,它推动了深度学习领域的发展。自1988年以来,Yann LeCun的这项开创性工作多次成功迭代后成为了LeNet5。当时的LeNet架构主要用于字符识别,如阅读邮政编码、数字等等。

图[2]:一个简单的卷积神经网络模型

ConvNet有四个主要组件,如图2所示: 1. 卷积层 2. 激活函数 3. 池化层 4. 完全连接层

4.1 卷积层

卷积层基于术语“卷积”,它是对两个变量执行数学运算(f*g),以产生第三个变量。 它与互相关类似。 卷积层的输入是一幅 m x m x r 的图像,其中m是图像的高度和宽度,r是通道数,例如,对于RGB图像,r = 3 。 卷积层有大小为n x n x q的k个过滤器(或内核),其中n小于图像的维度,并且q小于等于通道数r,并且每个内核都可以不同。

4.2 激活函数

要实现复杂的映射函数,需要有非线性的激活函数,这样引入非常重要的非线性属性,使之能够近似于任何函数。激活函数对于压缩来自神经元的无界线性加权和也是非常重要的。这对于避免在处理层次上积累高值非常重要。有很多经常被用到的激活函数,比如Sigmoid、tanh和ReLU。

4.3 池化层

池化是一个基于样本的离散化过程。它的目标是对输入表示(图像、隐藏层输出矩阵等等)进行降采样,减少其维度,并允许对包含在子区域中的特征进行假设。这样做的部分原因是为了提供一种抽象的表示形式来避免过度拟合。同样,它通过减少要学习的参数个数来降低计算成本,并为内部表示提供基本的转化恒定性。比较突出的池化技术有:最大池化,最小池化和平均池化。

图[3]:2*2过滤器的最大池化示例

4.4 完全连接层

术语“完全连接”意味着上一层中的每个神经元都连接到下一层的每个神经元。完全连接层是传统的多层感知器,它使用softmax激活函数或输出层中的任何其他类似函数。

5. 循环神经网络

在传统的神经网络中,我们假设所有的输入(和输出)是相互独立的。但是对于许多的任务来说,这是一个很糟糕的假设。如果你想预测一个句子中的下一个单词,你最好知道哪些前面的单词是什么。 RNN之所以称为循环,因为它们对序列的每个元素执行相同的任务,而输出依赖于先前的计算。还有一种理解RNN的方法,我们可以认为它有“记忆”的,它会捕获到截至目前计算出来的所有信息。RNN中有循环,这使得在读入输入时能够跨神经元传递信息。在图[4]中,x_t是某种输入,A是RNN的一部分,h_t是输出。RNN有一些特殊的类型,比如LSTM、双向RNN,GRU等等。

图[4]:RNN模型

RNN可用于NLP、机器翻译、语言建模、计算机视觉、视频分析、图像生成、图像字幕等,这是因为在RNN中可以放置任意数量的输入和输出,并让它们一一对应、多对多对应。它架构存在多种形式,如图[5]所示。

图[5]:RNN描述了对矢量序列的操作

6. 应用

在深度学习领域已经有了很多的研究,并且有很多特别的问题都使用深度学习模型得到了解决。这里有一些深度学习方面的优秀应用:

6.1 黑白图像彩色化

深度学习可用于参照照片中的对象及其上下文来对图像进行着色,就像人类进行着色一样。这个应用需使用非常大的卷积神经网络和监督层,通过添加颜色来重现图像。

6.2 机器翻译

文本翻译可以在没有对序列进行任何预处理的情况下进行,它允许算法学习单词之间的依赖关系及其与另一种语言之间的映射。大型LSTM循环神经网络的堆叠网络可用于机器翻译。

6.3 照片中物体的分类及检测

该任务是将照片中的对象归类到已知的对象组中去。在样例评测中,通过使用非常大的卷积神经网络能够获得非常好的结果。 Alex Krizhevsky等人在ImageNet分类中取得的突破性成果,被称为AlexNet。

6.4 自动手写生成

给定一个手写示例语料库,然后为给定的单词或短语生成新的笔迹。在笔迹样本被创建时,笔迹将作为一系列的坐标提供给笔。通过这个语料库,算法会学习笔的运动与字母之间的关系,然后生成新的示例。

6.5 自动打游戏

在这个应用中,模型将学习如何仅基于屏幕上的像素点来玩电脑游戏。这在深度增强模型领域中是一个非常难的任务,因为这个,DeepMind(现在是Google的一部分)赢得了很高的声誉。

6.6 生成模型聊天机器人

使用基于序列的模型来创建聊天机器人,该机器人在很多真实的对话数据集上进行训练,并学会生成自己的答案。要了解更多的详细信息,请访问这个链接。

7. 总结

从本文可以得到这样的结论:深度学习模型可以用于各种任务,因为它能够模拟人脑。截止目前,专家们已经在这方面做了大量的研究,而且在不久将还有许多研究工作要做。尽管目前还存在信任问题,但在不久的将来,这个问题将会变得更加明朗。


原文发布于微信公众号 - 机器学习算法与Python学习(guodongwei1991)

原文发表时间:2018-06-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

学界 | 新型池化层sort_pool2d实现更快更好的收敛:表现优于最大池化层(附代码实现)

选自Hackernoon 作者:Sahil Singla 机器之心编译 参与:黄小天、路雪 近日,Sahil Singla 在 Medium 上发表了一篇题为《...

36312
来自专栏算法channel

机器学习:XGBoost 安装及实战应用

《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来...

4357
来自专栏GAN&CV

3D卷积简介

注:本文首发在微信公众号-极市平台。如需转载,请联系微信Extreme-Vision

3373
来自专栏CVer

[计算机视觉论文速递] 2018-04-17

[1]《Towards Improved Cartoon Face Detection and Recognition Systems》

1052
来自专栏机器之心

学界 | 三维对抗样本的生成方法MeshAdv,成功欺骗真实场景中的分类器和目标检测器

作者:Dawei Yang,Chaowei Xiao,Bo Li,Jia Deng,Mingyan Liu

854
来自专栏专知

深度学习入门指南:初学者必看!

机器学习技术为现代社会的许多领域提供了强大的技术支持:从网络搜索到社交网络的内容过滤,再到电子商务网站的产品推荐。机器学习技术正越来越多的出现在消费级产品上,比...

3435
来自专栏AI星球

从零开始用Python搭建超级简单的点击率预估模型

本篇是一个基础机器学习入门篇文章,帮助我们熟悉机器学习中的神经网络结构与使用。 日常中习惯于使用Python各种成熟的机器学习工具包,例如sklearn、Te...

1784
来自专栏专知

【深度学习】一文教你如何确定好的“学习率”

【导读】近日,数据科学家Hafidz Zulkifli发布一篇文章,主要讲解了深度学习中的“学习率”,以及如何利用学习率来提高深度学习模型的性能并减少训练时间。...

3265
来自专栏ATYUN订阅号

如何配置神经网络中的层数和节点数

人工神经网络有两个重要的超参数,用于控制网络的体系结构或拓扑:层数和每个隐藏层中的节点数。配置网络时,必须指定这些参数的值。

832
来自专栏视觉求索无尽也

【调参经验】图像分类模型的调参经验前言调参经验与我交流

用深度学习做图像分类任务也有近一年时间了,从最初模型的准确率只有60%到后来调到有80%,再到最后的90%+的准确率,摸索中踩了很多坑,也总结出了一些经验。现在...

1002

扫码关注云+社区