AI 技术讲座精选:菜鸟学深度学习(一)

【AI100 导读】在本系列中,你将会学习如何利用深度学习解决那些比较简单的问题。在解决问题的过程中,你不仅会学到深度学习中的某一种类型,也可以在 Keras 和 Tensorflow 这两种著名的深度学习程序库中编写代码。本文为本系列的第一部分,主要内容是谈论 basics 和 gotchas 中的深度学习。

深度学习的势头已经持续一段时间了,最近人们已经将深度学习运用到了各种不同的领域中。

在本系列中,你将会学习如何利用深度学习解决那些比较简单的问题,即在图像中检测一个单独的物体(如猫或狗等)。在解决问题的过程中,你不仅会学到深度学习中的某一种类型,也可以在 Keras 和 Tensorflow 这两种著名的深度学习程序库中编写代码。在此,我不打算谈论深度学习背后的数学知识。本系列总共由两部分组成:第一部分谈论 basics 和 gotchas 中的深度学习;第二部分我们将看看如何在 Keras 中创建自己的模型。

那么什么是深度学习?为什么称作深度?系统是否真的在学习?

先讲一段小历史。深度学习其实是神经网络比较酷的另一种叫法,而神经网络自上世纪60年代起便已出现。如果你不了解什么是神经网络,无需为其所困,稍后我会在本文中做出解释。

大约在2006年,一位非常出色的名叫 Geoffrey Hinton 的家伙和其他人一起发表了一篇论文。在这篇论文中,他们运用了神经网络中的某一类型,十分有意思。2012年,Hinton 的两个学生赢得一场比赛(即 ILSVRC,Large Scale Visual Recognition Challenge——大规模的视觉识别挑战),而且比赛成绩是第二名的两倍好。这向全世界表明了,Hinton 的工作成果可以解决非常有趣的问题。

我们正在努力解决图像分类的难题。在分类的过程中,我们试图获取图像并尽力了解图像内容的含义。当前范围将解决方案限制到了仅对含一种类型的物体图像进行处理,图像将是猫或狗。为了简单起见,我们目前不会对狗坐在车里的图像进行分类。

在神经网络中,存在n个神经元,这些神经元以线性的方式彼此互连。输入的图像将会从输入端开始传输,而后经由网络进行分类,最后将分好的类输出。网络训练其实就是将大量类型不一的图像作为输入,使其输出时在归好类的情况下分别贴上不同的标签。

卷积神经网络横截面的基本图像

神经网络如同简单的数学公式,如下所示:

x * w = y

假设 x 是你的输入图像,y 是神经网络分类后的输出。x 是常数,因为只有一组固定的图像;而神经网络的目的是为了得到某种输出结果。因此,我们只能改变 w,在此我们将 w 称为单神经元层的权重。训练过程包括两部分:正向传递和反向传播。在正向传递中,我们将图像作为输入(x)提供给网络,然后网络生成一些 y’ 输出类。y’ 与 y 的接近程度就是网络的误差。在反向传播中,网络试图通过调整权重 w 来减少误差,大量 lingo 会调用 w 作为其超参数、内核或是过滤器。神经网络的问题在于,某一层的所有数据会毫无保留的传递到下一层,而且所有层都是这样的情况。为解决这个问题,我们将用到卷积神经网络。那什么是卷积?请看下面的介绍。

卷积层(Convolutional Layer)

神经网络是完全连接的,这意味着一个神经元层能将整个数据集传递到下一层,下一层将处理全部的数据……这适用于简单的图像,如 8x8 或 36x36 的图像,但实际图像通常有 1024x768 那么大,这时计算量将非常巨大。图像在本质上是静止的,这意味着图像某一部分的数值统计与任何其它部分都相同。因此在某一个区域中学习到的特征可以在另一个区域中进行类似的模型匹配。

在一个大图像中,我们只截取其中的一小部分,并使其通过大图像的所有点。当通过任意一点时,我们都可以将其看做是一个独立的小区间。你可以这样去想象,对于下一层神经元而言,一大盒的数据变成了现在变成了一小盒。这有助于加快计算速度但同时又不会损失数据的精度。通过大图像的每个小区间都会转化成小的过滤器,随后会在反向传播数据的基础上得以配置(我们稍后会介绍)。

池层(Pooling Layer)

接下来是池化。池化只是图像的下采样,再次帮助处理器更快地处理东西。当下我们可以运用的池化技术有很多。其中一个就是最大池,我们通常会取其中一部分特征的最大像素值,而后求出池化的算数平均数、众数和中位数。请注意,此处我们要计算得出的,并不是最大像素,而是算数平均数、众数和中位数。池化使得网络在形状、大小和尺寸上不发生改变。通常来说,最大池是最重要的。

最大池化的一个简单示例,其中我们在每个彩色正方形中取最大像素值。

激活层(Activation Layer)

单个神经元表现为线性分类器,神经元有能够在输入数据的某些连续部分开启或关闭的性能,我们把这一属性称为激活。激活函数在本质上是数学函数,其行为表现与阀门非常类似。我们假设当压力足够大时阀门便会打开,就如同压力锅的作用原理一样。让激活函数变为真值的数据,会将神经元标记为激活状态。基于神经网络中的所有被激活的神经元,我们对一个图像进行分类。目前我们有很多可用的激活函数,但 ReLu 是其中最为有名的。至于为什么会选择 ReLu,在此不做赘述,不过我会很快写另外一篇谈论不同激活函数的文章。

反向传播(Backpropagation)

反向传播是我们能尝试将误差降低的过程。这里所说的误差指的是 y 与 y’ 之间的差。这会帮助 w 适应那些我们所提供给网络的数据集。我们会利用渐变下降过程执行反向传播,努力将 y 与 y’ 之间的误差值缩小到零。

接下来是什么?

上面提到的文献对于 CNNs(卷积神经网络)的应用来说已经足够了。当你在实施阶段遇到困难时,可以阅读更多与该特定主题有关的信息。

本文作者 Debarko De 是一名计算机科学工程师,目前在 Practo 工作。在这之前曾在 Facebook 上班,先后从事平台游戏和手机游戏的工作。

本文由 AI100 编译,转载需得到本公众号同意。


编译:AI100

原文链接:https://hackernoon.com/supervised-deep-learning-in-image-classification-for-noobs-part-1-9f831b6d430d


原文发布于微信公众号 - AI科技大本营(rgznai100)

原文发表时间:2017-03-06

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SIGAI学习与实践平台

机器学习中的最优化算法总结

对于几乎所有机器学习算法,无论是有监督学习、无监督学习,还是强化学习,最后一般都归结为求解最优化问题。因此,最优化方法在机器学习算法的推导与实现中占据中心地位。...

2493
来自专栏目标检测和深度学习

94页论文综述卷积神经网络:从基础技术到研究前景

机器之心编译 参与:Panda 卷积神经网络(CNN)在计算机视觉领域已经取得了前所未有的巨大成功,但我们目前对其效果显著的原因还没有全面的理解。近日,约克大...

3837
来自专栏大数据文摘

目标检测101:一文带你读懂深度学习框架下的目标检测

1714
来自专栏量化投资与机器学习

基于 RNN、LSTM 的股票多因子预测模型

前言 在机器学习如何应用到量化投资的系列文章中,今天我们专门来介绍一篇来自国信证券的研究报告,来从券商角度分析这个问题。 对于最直接的问题:能否利用神经网络,要...

1.4K7
来自专栏数据派THU

10大深度学习架构:计算机视觉优秀从业者必备(附代码实现)

? 来源:机器之心 作者:FAIZAN SHAIKH 本文长度为3000字,建议阅读5分钟 本文包括深度学习领域的最新进展、keras 库中的代码实现以及论文...

3349
来自专栏CVer

[计算机视觉论文速递] 2018-05-08

[1]《DCAN: Dual Channel-wise Alignment Networks for Unsupervised Scene Adaptation...

1221
来自专栏磐创AI技术团队的专栏

数据挖掘和机器学习的面试问题

【磐创AI导读】:本文主要分享了机器学习需要注意的几个面试问题。想要学习更多的机器学习知识,欢迎大家点击上方蓝字关注我们的公众号:磐创AI。

1003
来自专栏机器之心

教程 | 可视化CapsNet,详解Hinton等人提出的胶囊概念与原理

选自freecodecamp 作者:Nick Bourdakos 机器之心编译 参与:Pedro、思源 CapsNet 将神经元的标量输出转换为向量输出提高了表...

4075
来自专栏ATYUN订阅号

在Python中进行机器学习,随机数生成器的使用

随机性一直是机器学习的重中之重。随机性一直作为工具或特征,出现在数据准备和学习算法中,将输入数据映射到输出数据以作出预测。为了理解机器学习中的统计方法,你必须了...

1384
来自专栏华章科技

94页论文综述卷积神经网络:从基础技术到研究前景

导读:卷积神经网络(CNN)在计算机视觉领域已经取得了前所未有的巨大成功,但我们目前对其效果显著的原因还没有全面的理解。近日,约克大学电气工程与计算机科学系的 ...

792

扫码关注云+社区

领取腾讯云代金券