深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。Oh,到底是个什么鬼?
一、什么是深度学习?
1 为什么叫“深度学习”
最初的深度学习主要是指人工神经网络。
人工神经网络(下文简称“神经网络”)起源于生物学,但在发展的过程中逐渐摆脱了生物学的气质,而更加偏重统计学、信号学等内容,从而在实践应用中发挥日益重要的作用。人工智能领域的研究重心从结构化或者说高度符号化的知识、规则等构建出的 “专家系统” 转向了数据驱动的 “机器学习”,很大程度上就得益于神经网络的蓬勃发展。
下图是一个简单的神经网络:
可以看出,这个神经网络一共有三层:输入层、隐藏层和输出层。输入层和输出层是固定的,而 “隐藏层” 则是可做文章的地方,我们可以设置多层隐藏层,当隐藏层比较多时,我们就说这个神经网络比较 “深” 。“深度学习”的大名便源自与此。
为什么要用这个新名词呢?据说是神经网络的发展遇到过一些波折,后来为了图个吉利,重新开始,就换了个更逼格的名字。而且后来深度学习的内涵不断拓展,也不仅仅局限于神经网络这一个部分,并的的确确取得了不凡的进展,看来即便是搞技术,也要有一些小心机,注重一些形式才行呀。
2 深度学习包含哪些内容
至今,深度学习框架主要包含以下几种:
深度神经网络、卷积神经网络、深度置信网络和递归神经网络。
这些框架已被广泛应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域,并获取了极好的效果。
二、如何攻克深度学习
和机器学习的其它方面一样,深度学习也需要兼顾理论与实践。有了之前机器学习内容的实践经验,在深度学习算法实现上应该没有什么困难。
1 如何理解基本概念
理论部分,入门阶段推荐看一下 3Blue1Brown 的深度学习视频:B 站播放地址
这个真的是我看过的最好的教程了,没有之一。作者做的极其用心,把复杂的过程演绎成动画,进行了深入浅出的讲解。不仅仅是深度学习,作者还做了线性代数、微积分等数学知识的专题视频,相信大家也会感兴趣的。
2 实战
大名鼎鼎的 MNIST 数据集由不同人手写的数字图片及其对应的数字标注构成。它为我们提供了绝佳的实战素材。我们可以利用它和神经网络算法,训练出可以识别手写数字的深度学习模型。
数据集中的每个图片由 28x28 = 784 个像素点构成,像素的值为 0 或 1 。这 784 个像素点,便是神经网络的输入。
MNIST 数据集可以从以下地址下载:
https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz
从下一篇开始,我们将逐步实现这个模型。
欢迎关注 Evan 的博客