本系列笔记是 Coursera 在线课程 deeplearning.ai 的学习笔记,主要是对自己在听课过程中所记笔记的整理,同时参考网络上已有的学习笔记对文字进行了重新组织,提高可读性。本篇博客为第一周的学习笔记,主题是:深度学习引言。
从去年八月份开始,断断续续地上完了 Andrew Ng 的 deeplearning.ai 课程,拿到了五张证书(好像并没有什么卵用)。个人觉得这门课程可以帮助初学者快速了解深度学习这个领域的全貌,而对于有一些基础知识的人来说,可以通过这门课程来进一步夯实基础。此外,这门课的作业设计得十分精彩,很多代码具有比较高的参考价值,同时也很有趣。如果对作业感兴趣的话,可以去 Coursera 上学习原版课程,此外,网易云课堂提供了课程视频的中文字幕,如果对英文原文有听不懂的地方可以去看看。(我上的时候中文字幕还没有出完/(ㄒoㄒ)/~~)
欢迎(Welcome)
第一个视频简要举例说明了深度学习能做些什么事情,这里不作过多的阐述。下面这一段是吴恩达老师的原话(个人感觉很酷):
我认为AI是最新的电力,大约在一百年前,我们社会的电气化改变了每个主要行业,从交通运输行业到制造业、医疗保健、通讯等方面,我认为如今我们见到了AI明显的令人惊讶的能量,带来了同样巨大的转变。显然,AI的各个分支中,发展最为迅速的就是深度学习。因此现在,深度学习是在科技世界中广受欢迎的一种技巧。
通过以下五门课程,你将获取并且掌握深度学习的基本技能。
- 神经网络和深度学习(Neural Networks and Deep Learning)
- 改善深层神经网络:超参数调试、正则化以及优化(Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization)
- 结构化机器学习项目(Structuring Machine Learning Projects)
- 卷积神经网络(Convolutional Neural Networks)
- 序列模型(Sequence Models)
什么是神经网络?(What is a Neural Network)
深度学习这个术语一般是指训练多层神经网络的过程,那么神经网络究竟是什么呢?在这个视频中,将会直观地对神经网络进行介绍。
让我们以房价预测为例。假设你有一个数据集,包含了房屋的面积与价格,你可能会想要用线性回归去拟合一条直线,来根据房屋面积预测房价,然而你也许会得到这样一条线:
可以看到,为了保证价格不会为负,我们将直线弯曲了一点,让它最终在零结束。这条粗的蓝线就是你的最终函数,用于根据房屋面积预测价格。
以上函数实际上就是一个最简单的神经网络。我们把房屋的面积作为神经网络的输入 x ,通过一个节点,最终输出了价格 y ,这个节点就是一个单独的神经元。
上述函数被称为 ReLU 激活函数,它的全称是 Rectified Linear Unit ,在有关神经网络的文献中,你会经常看到这个函数。
现在,假定我们拥有更多的输入特征,如房屋面积、卧室数量、邮政编码、富裕程度等,我们应该如何来基于这些特征预测房屋面积?
我们可以基于神经元构建一个神经网络,如下图所示。输入为之前所提到的四个特征,输出为房屋面积,将神经元进行堆叠,我们就得到了一个稍大一点的神经网络,只需要提供简单的特征 x 与对应的 y ,便可以通过训练神经网络找到从 x 到 y 的精准映射函数。
处于中间的神经元被称为隐藏单元,在一个神经元网络中,隐藏单元与每个输入特征均存在着联系。
神经网络的监督学习(Supervised Learning with Neural Networks)
我们知道,机器学习大体上可以分为两类:监督学习和无监督学习。而在深度学习领域,目前为止几乎所有的经济价值都是由基于监督学习的神经网络所创造的。
监督学习即数据集是包含输出的,我们要做的就是学习一个函数来从输入 x 映射到输出 y。下图列举了一些监督学习式神经网络的应用领域。
对于不同的应用领域,我们需要不同类型的神经网络,对于房价预测和在线广告等应用,采用的是相对标准的神经网络,而对于图像领域的应用,常常使用卷积神经网络(CNN),而对于序列数据,例如音频、语言等,常常使用循环神经网络(RNN)(注意不要与递归神经网络混淆),下图给出了三种网络结构的示意图。
此外,监督学习所处理的数据可以分为结构化与非结构化两种。结构化数据,即数据以类似关系型数据库的表结构的形式展示;而非结构化数据是指音平、图像或文本等特征没有直接展示的数据,如下图所示。
从历史经验来看,与结构化数据相比,让计算机理解非结构化数据更加困难。而随着神经网络与深度学习的兴起,计算机现在能够更好地解释非结构化的数据了,例如语音识别、图像识别、自然语言处理等领域。当然,我们也不能忽略基于结构化数据的神经网络所创造的巨大经济价值。
为什么深度学习会兴起?(Why is Deep Learning taking off?)
深度学习兴起的原因主要有三点:
- 信息化社会带来的数据量的巨大提升
- 硬件更新带来更快的计算速度
- 神经网络算法的不断发展
上图表明了如果想要获得更好的表现,需要考虑以下两点:
- 训练一个规模更大的神经网络
- 拥有更大规模的已标注数据
而计算速度是实现上述表现的基础。近些年来,CPU 与 GPU 的提升为我们带来了更强大的计算能力,同时,算法方面的创新也使得神经网络能够运行的更快,例如将 sigmoid 函数替换为 ReLU 函数,使得梯度下降算法获得了巨大的提升。
另一方面,训练神经网络是一个不断迭代的过程,如图所示。现如今,更快的计算速度可以帮助我们来更快地进行迭代,从而更快地开发出新的算法。
最后,用一张图概括一下本周的内容:(图片取自Twitter)
第一周 END