Andrew NG 深度学习课程笔记:神经网络、有监督学习与深度学习

神经网络、有监督学习与深度学习从属于笔者的Deep Learning Specialization 课程笔记系列文章,本文主要记述了笔者学习 Andrew NG Deep Learning Specialization 系列课程的笔记与代码实现。算法

神经网络、有监督学习与深度学习

深度学习正在逐步地改变世界,从网络搜索、广告推荐这样传统的互联网业务到健康医疗、自动驾驶等不一样的行业领域。百年前的电气革命为社会带来了新的支柱产业,而现在 AI 正是新时代的电力基础,驱动社会技术的快速发展。本课程的第一部分,关注于如何构建包括深度神经网络在内的神经网络以及如何利用数据训练该网络,课程的最后将会构建出可识别动物的深度神经网络。本课程的第二部分将会讲解更多有关于深度学习实践的相关资料,包括超参数调优、正则化、如何从 Momentum Armrest Prop 以及 AD Authorization 等算法中选择合适的优化算法。第三部分将会学习如何自定义机器学习项目,如何进行数据预处理、将数据应用到模型训练、提取交叉校验的训练集与验证集等内容。第四部分将会着眼于卷积神经网络 CNN,如何构建经典的 CNN 模型。在最后的第五部分,将会学习构建序列模型(Seq2Seq 等)以解决天然语言处理相关的任务;典型的序列模型包括了 RNNs、LSTM 等。数据库

神经网络

深度学习每每关联于大规模神经网络的训练,本章咱们即来了解下何谓神经网络。以经典的房屋价格预测为例,假设咱们拥有六组房屋数据,每组包含了房屋的面积以及价格;咱们但愿寻找合适的函数来根据房屋的尺寸预测房屋价格。若是咱们采用线性回归来解决这个问题,咱们会画出一条 y = kx + b 这样的函数线,其形式以下黑色线所示:网络

咱们知道房屋的价格不可能为负数,所以咱们能够将使用 ReLU(Rectified Linear Unit)函数来描述尺寸与价格之间的关系,如上图蓝色线型所示。咱们能够将该问题抽象为输入为房间的尺寸 x,输出为房间的价格 y,而某个神经元即为接受输入而且进行合适的运算以后输出目标值的函数:架构

如上图所示便是最简单的单元神经网络,而复杂的神经网络便是由无数的神经元分层链接堆叠而成。譬如实际的房屋价格会由尺寸、卧室数目、所属区域(Zip Code)以及社区的富裕程度影响。咱们理想的神经网络便是可以自动帮咱们构建隐层(Hidden Units),即输入单元之间的关系以进行最好地预测:机器学习

给定输入以后,神经网络的任务之一便是为咱们自动构建隐层;每一个隐层单元都会输入输入层的所有特征做为输入值。函数

有监督学习

神经网络的分类不少,不过截止到目前大多数的有价值的神经网络都仍是基于机器学习中所谓的有监督学习(Supervised Learning)。在有监督学习中,咱们的训练数据集中已知了特征与结果输出之间的对应关系,而目标就是寻找正确的输入与输出之间的关系表示。譬如目前最赚钱的深度学习应用之一,在线广告中就是输入有关于网站展现的信息以及部分用户的信息,神经网络会预测用户是否会点击该广告;经过为不一样的用户展现他们最感兴趣的广告,来增长用户的实际点击率。下表即列举了几种常见的领域应用与它们的输入输出:性能

计算机视觉近年来也发展迅速,典型的应用之一便是图片标注;咱们可能随机输入一张图片来寻找与它最相近的图片。语音识别则是可以将用户输入的语音数据转化为文字表述;机器翻译则是能将不一样语言间的语句进行自由转化,譬如将某个英文段落转化为对应的中文表述。而在自动驾驶中,咱们可能会输入某张从雷达中获取的车前图片,来判断路上其余车的相对位置。而对于这些不一样的行业领域咱们也须要应用不一样类型的神经网络,譬如对上文说起的房价预测,咱们就可使用标准的神经网络;而对于图片应用则会优先考虑使用卷积神经网络(CNN)。学习

而对于序列数据,譬如随时间播放的音频流,其能够表示为一维的时间序列,咱们一般会使用 RNN 来处理这个类型的数据。而在文本处理中,咱们也经常将文本表示为字符序列,所以也每每会使用 RNN 来处理这个类型的数据。对于自动驾驶这样更为复杂的应用,咱们可能会须要同时处理图片、文本等多种类别的数据,所以会使用混合网络架构。大数据

模型训练中咱们常见的另外一组概念就是结构化数据与非结构化数据,结构化数据有点相似于关系型数据库中存放的数据;譬如上面介绍的房屋价格预测中,咱们会拥有包含了尺寸、卧室数等列的数据表,这种形式的就是所谓结构化数据。结构化数据中每一个特征,譬如房间尺寸、卧室数目、用户年龄等都有可解释的意义;而非结构化数据的典型表明,语音、文本或者图片,每每会使用像素值或者单个词做为特征向量的组成,这些特征值每每很难有实际意义的解释。人类通过长时间的进化以后可以较好地辨析非结构化数据,而利用深度学习技术,如今机器也在不断提高自身对于非结构化数据的辨析能力。优化

深度学习

深度学习背后的理论基础与技术概念已经出现了有数十年,本部分咱们即来讨论为什么直到近些年深度学习才获得了爆炸性的发展。咱们能够用下图来描述数据集的大小与算法性能(准确率、推准率等)之间的关系:

对于支持向量机、Logistics 回归这样经典的机器学习算法而言,在数据量从零递增的初始阶段,其性能会不断提高;不过很快就会触碰到天花板,此时性能很难再随着数据集的增加而提高。而伴随着移动互联网时代的到来,咱们可以从网站、移动应用或者其余安装在电子终端设备上的传感器中获取到海量的数据;这些数据在开启大数据时代的同时也为深度学习的发展提供了坚实的基础。咱们在上图中也能够看出,越是大型的神经网络随着数据量的增长,其性能提高的越快,而且其性能天花板也是越高。深度学习崛起的另外一个重要基石就是计算能力的提高,这里不只指新一代 CPU 或者 GPU 设备,还有是在许多基础优化算法上的革新,都使得咱们可以更快地训练出神经网络。譬如早期咱们会使用 Sigmod 函数做为神经网络的激活函数,随着 x 的增大其梯度会逐渐趋近于零,这就致使了模型收敛变得相对缓慢;而 ReLU 则能较好地避免这个问题,其在正无穷大时梯度值依然保持恒定。简单地从 Sigmod 函数迁移到 ReLU 即可以为模型训练带来极大的效率提高,这也方便了咱们构建出更复杂的神经网络。

相关文章
相关标签/搜索