本笔记是吴恩达(Andrew Ng) 的【微专业】深度学习工程师系列课程笔记。
01.神经网络和深度学习之第一周——笔记1深度学习介绍
【1.1 欢迎来到深度学习微专业(Welcome)】
主要讲了什么是深度学习,深度学习能做什么?总结如下:
1.AI是新的能源,就像现在的电力一样
2.电力曾经改变了无数的行业:运输,制造,医疗,通讯等
3.人工智能会带来另一个同等巨大的转变。
这课程你将学习到什么?(What you’ll learn?)
- 神经网络与深度学习 (Neural Network and Deep Learning )
- 改善深层神经网络:超参数调整,正则化以及优化 (Improving Deep Neural Networks: Hyperparameter tuning,Regularization and Optimization )
- 结构化机器学习项目(Struct your machine learning project )
- 卷积神经网络(Convolutional Neural Networks )
- 自然语言处理:序列模型(Nature Language Processing: Building sequence Models )
【1.2 什么是神经网络?(What is a neural network?)】
一种强有力的学习算法,受大脑如何工作的启发而得到的。
Example 1 – 单神经网络
给定房地产市场上房屋大小的数据,要拟合一个能预测其价格的函数。这是一个线性回归问题,因为价格作为房屋大小的一个函数是连续的。
我们知道,价格不可能是负值,所以我们正在创建一个叫做修正线性单元(ReLU),它是从零开始的。
Note: x-房屋的尺寸 输入 ; y-价格输出
这个神经元就实现了 ReLU
函数的功能
这个小圆圈就是一个独立的神经元,你的网络实现了这个函数的功能,这个神经元所做的任务是:输入面积,完成线性运算,取不小于 0 的值,最后得到输出的预测价格。在神经网络的文献中,我们会经常看到这个函数:函数一开始是 0,然后就是一条直线,这个函数称作 ReLU(rectified linear unit, 修正线性单元)
函数,修正指取值不小于 0 的值,这就是这个函数长这样的原因。
Example 2 – 多元神经网络
房子的价格也会受到其他因素的影响,比如房间的大小、卧室的数量、邮政编码以及周边富裕程度。神经网络的作用是预测价格,它将自动生成隐藏的单元。我们只需要给出输入x,技能得到y的输出。
来看一个例子,如下图所示,我们不仅用房屋面积来预测价格,现在还有一些房屋的其它特征,知道了一些别的信息,比如卧室的数量。你可能会想到,有一个很重要的因素会影响房屋价格:就是 家庭人数
,这个房能住下一个三口之家、四口之家或五口之家,这个性质和面积大小相关,还有卧室数量能否满足家庭人数需要。你可能知道邮编(有些国家叫作邮政编码),邮编或许能作为一个特征,说明了步行化程序(意思是周边基础设施非常完善,去商店、学校等走着就可以了)。另外根据邮政编码和富裕程度(在美国是这样的)体现了附近学校的质量。我画的每一个小圈都可能是一个 ReLU
或其他非线性函数,基于房屋面积和卧室数量你可以估算家庭人口基于邮编,可以评估步行化程度和学校质量,最后你可能会想人们愿意在房屋上花多少钱和他们关注什么息息相关。在这个例子中,家庭人口、步行化程度以及学校质量都能帮助你预测房屋价格。
ReLU
函数(Rectified linear unit,ReLU),全称是 修正线性单元
,即 ReLU “修正”
指的是取不小于 0
的值,形如下图
在这个例子中 x
是指所有的输入,y
是预测的价格。把这些独立的神经元叠加起来,这些简单的预测器成为了一个稍大一点的神经网络。神经网络的一部分神奇之处在于,当你实现它之后,你要做的只是输入x
就能得到输出y
,不管训练集有多大,所有的中间过程,它都会自己完成。那么你实际上做的如下图所示:
这有四个输入的神经网络,输入的特征可能是卧室的数量
、邮政编码
和周边富裕程度
。已知这些输入的特征,神经网络的工作就是预测对应的价格。同时也注意到中间的这些圆圈,在一个神经网络中它们被叫做 隐藏单元
,它们每个的输入都同时来自四个特征。比如说,我们不会具体说第一个结点表示家庭人口或者说家庭人口仅取决于特征 x1x1
和 x2x2
;我们会说:神经网络,你自己决定这个节点是什么? 我们只给你四个输入特征,随便你怎么计算。因此我们说输入层(最左边的x
)、隐藏层(中间的一层)在神经网络中连接数是很高的,因为输入的每一个特征都连接到了中间的每个圆圈。值得注意的是,神经网络只有你喂给它足够多的关于 x
、y
的数据,给到足够的 x
、y
训练样本神经网络非常擅长于计算从x
到 y
的精确映射函数。
这就是一个基本的神经网络,你可能发现自己的神经网络在监督学习的环境下是如此有效和强大,也就是说你只要尝试输入一个x,即可把它映射成y,像我们在房价预测例子中看到的。
【1.3 用神经网络进行监督学习(Supervised Learning with Neural Networks)】
神经网络有时被媒体炒作得很厉害,考虑到它们的使用效果,有些说法还是靠谱的。事实上,到目前为止,几乎所有由神经网络创造的经济价值都基于其中一种机器学习–我们称之为 监督学习
在有监督的学习中,我们会得到一个数据集,并且已经知道我们正确的输出应该是什么样子,认为输入和输出之间是有关系的。
有监督的学习问题分为“回归”和“分类”两种问题。在一个回归问题中,我们试图通过连续输出来预测结果,这意味着我们试图将输入变量映射到一些连续函数。而在分类问题中,我们则试图在离散输出中预测结果。换句话说,我们试图将输入变量映射到离散的类别。
下面是一些监督学习的例子:
输入(x) | 输出(y) | 应用 |
---|---|---|
房子特征 | 价格 | 房地产 |
广告 | 是否点击广告?(0/1) | 在线广告 |
图像 | 对象(1,….,1000) | 图片标记 |
音频 | 转录 | 语音识别 |
英语 | 中文 | 机器翻译 |
图像、雷达信息 | 汽车位置 | 自动驾驶 |
这里有不同类型的神经网络,例如卷积神经网络(CNN)经常用于图像应用,递归神经网络(RNN)常用于一维序列数据如将英文翻译成汉语或者一些临时文件,如文本。至于自动驾驶的应用是一种混合神经网络结构。
对于表格的详解:
在监督学习中输入
x
,学习到一个函数,映射到输出y
,比如我们之前看到的应用于房价预测的例子:输入房屋的一些特征就能输出价格y
。下面是一些其他例子,这些例子中神经网络效果非常好。很可能今天通过深度学习获利最大的就是在线广告,给网站输入广告信息(有时还需要输入一些用户信息),网站会考虑是否给你看这个广告。神经网络在预测你是否会点击这个广告方面已经表现的很好了。过去几年里,计算机视觉也有很大进步,这要感谢深度学习。你输入一个图像,然后想输出一个指数,可以是从
1
到1000
来表明这张照片是 1000 个不同的图像中的某一个,可以用来给照片打标签。深度学习最近在语音识别方面的进展也是令人兴奋的,你可以将音频片段输入神经网络,它可以输出文本。
机器翻译也有很大的进步,这得感谢深度学习让你有一个神经网络能实现,输入英文句子,它直接输出一个中文句子。
在无人驾驶技术中,你输入一副图像(汽车前方的一个快照),还有一些雷达信息,基于这个训练过的神经网络,能告诉你路上其他汽车的位置,这是无人驾驶系统的关键组件。
神经网络创造这么多价值的案例中,你要机智的选择
x
和y
才能解决特定问题,然后把这个监督学习过的组件嵌入到更大型的系统中,比如无人驾驶。
下图分别为 标准的神经网络
、卷积神经网络(常用于图像处理)
、循环神经网络(适合处理一维序列数据,其中包含时间成分)
结构化与非结构化数据
结构化数据指的是具有明确含义的事物,如价格、年龄等。而非结构化的数据指的是类似像素、原始音频、文本等的事物。
你可能也听说过机器学习被应用于结构化数据(Structured Data)
和 非结构化数据(Unstructrured Data)
,下面是这些术语的含义。结构化数据
是数据的数据库
。例如在房价预测中,你可能有一个数据库或者数据列告诉你房间的大小和卧室数量,这就是结构化数据
。在预测用户是否会点击广告的例子中,你可能会有用户信息,比如年龄,还有广告信息,还有你要预测的标签 y,这就是结构化数据意味着每个特征比如说房屋大小,卧室数量,用户的年龄,都有着清晰的定义。查看上面左图。
相反,非结构化数据比如音频、视频、图像,你想要识别图像或文本中的内容。这里的特征可能是图像中的像素值或者文本中的单个单词。查看上面左图。
神经网络彻底改变了监督学习,正创造着巨大的经济价值