污力_机器学习

吴恩达course1-神经网络与深度学习

2017-09-07  本文已影响100人  捡个七
  • 日常感谢Andrew Ng的视频 !
  • 大部分截图来自吴恩达的课件

01-什么是神经网络


以预测房价来举例,在一个x轴表示房子面积,y轴表示房价的坐标图中,标示出6所房屋的信息(如图红×所示),然后通过线性拟合的方式作出一条斜线,因为房价不可能为负,所以前半段数据是为零的。整体就能得出蓝线所示的线性方程。我们称这个方程为"ReLU方程"(ReLU:Rectified Linear Unit修正线性单元)。
我们可以把房屋的特征加上上面拟合得到的函数看成是一个非常简单的神经网络。如下图所示:

输入x是房子面积,输出y是房价,中间的“神经元”圆圈是ReLU方程。

可以把上面的单一神经元看成是单独的一块乐高积木,我们可以用这块积木堆叠出复杂的多元神经网络。接着上面预测房价的例子,我们知道影响房价的因素不单单是房子面积,还有房间数目,邮编,区域的富裕程度等各种因素。房子面积和房间数目会影响家庭规模,邮编又影响着步行化的程度,邮编和区域的富裕程度影响着学校的质量。而家庭的规模,步行化的程度和学校的质量都将影响房价,结合这些特征就能预测出房价。这样就构成如下图的多元神经网络:


图中的每个小圆圈都可以看成是ReLU函数。从图中可以看出家庭规模,步行化的程度和学校的质量处于中间层。神经网络神奇的一点是:当你实现它之后,可以把中间层类似的看成黑盒,这样我们不用去管中间层是什么,中间的训练集有多大,只要从左边输入多个变量x,右边就会得到相应的输出y。所有的中间过程神经网络都会自动完成。
实际实现的多元神经网络如下图所示:

也就是说,当你给出输入,神经网络的工作就是预测出对应的输出。
要注意,处于神经网络中间层的各个元素被称为隐藏单元,它们也可被定义成其他影响房价的因素,这可以由我们自己来定义,而且也不单单由其中两项输入的内容所决定。所以,中间层和输入层的连接数是很高的。因为每个隐藏单元都和输入层的各个元素产生关联。
还值得注意的是,在神经网络中,你喂给它足够多的关于x,y的数据,给到足够多的训练样本,神经网络就非常擅长于计算从x到y的精准映射函数。

02-用神经网络来进行监督学习

在监督学习中,我们输入一个x,就能得到对应的输出y。如第一节课提到的预测房价的例子:输入房子的各种特征,我们就能预测到输出的房价。还有在线广告也是个很好的例子:通过呈现的广告以及用户的信息等等,可以判断用户是否会点击广告。还有其他的图像识别,语音识别,机器翻译和自动驾驶等等应用。其中房价预测和在线广告的用的是标准的神经网络(Standard NN);而图像识别用的是卷积神经网络(CNN);语音识别和机器翻译是一维序列数据,它们用的是循环神经网络(RNN);最后的无人驾驶比较复杂,用的是混合的神经网络。

data.png

03-为什么深度学习会兴起

1).一张图表明深度学习/神经网络兴起的原因--规模推动深度学习发展

注意要到达图中黑点所示的效果要做到以下两点:
1) 能够训练出规模足够大的神经网络
2) 拥有大量的标签数据

2).规模推动深度学习发展的具体原因

3).训练神经网络的过程


神经网络的训练过程就是上图所示的循环过程,如果训练十分庞大的数据的话会花费很长的时间。然而更快的计算能力能够加快迭代和证明新的算法。

04-二分分类

单元格中的值表示将用于创建n维数的特征向量的像素强度。在模式识别和机器学习中,特征向量代表一个对象,在这种情况下,是猫或不是猫。要创建一个特征向量,像素强度值将被“展开”或“重塑”每种颜色。输入特征向量的维数为nx= 64×64×3 = 12288,如下图所示。


特征向量.png

05-Logistic Regression

06-Gradient Desent 梯度下降法

07-向量化

向量化的原因就是避免使用过多的for循环,以造成程序运行的缓慢。毕竟一般来说,我们都是要训练很庞大的数据的。

08-浅层神经网络

09-激活函数

神经网络中使用的激活函数不只有sigmoid函数(σ(z)),还有很多其他激活函数,我们用g(z)来表示。整个神经网络的计算就如下图所示:


常用的激活函数

为什么要使用非线性的激活函数
因为可以验证隐藏层用线性方程的话会与没有隐藏层的效果是一样的,使用线性方程只是一直重复计算线性方程。

10-浅层神经网络的梯度下降法

11-随机初始化

如果神经网络中的w,b全都初始化为0,那么多层隐藏就没有意义了。
所以我们要对w,b进行随机初始化。操作如下:

随机初始化
如上图,为什么是使用0.01,而不是100?
因为z=wx+b,对于tanh函数和sigmoid函数来说(图中的函数图形),当w增大时,z也会增大,z越来越大时,函数就会处于平滑区,梯度几乎不变,这样学习就会变得缓慢。

12-深层神经网络

有多个隐藏层的神经网络称为深层神经网络,如下图所示:

神层神经网络

如图所示,包含输入层(x1,x2,x3)--layer"0";五个隐藏层--layer"1",layer"2",layer"3",layer"4",layer"5"和一个输出层--layer"6"
所以有这些表示:


这里写图片描述

13-核对深层神经网络的矩阵核数

14-为什么用深层表示?

深度表示的直观理解

如上图所示,当检测一张人脸图片时,神经网络的第一层会探测一些边界的特征;再下一层神经网络就会探测出人的眼睛,眉毛,嘴巴等特征;随着深度的增加,就能够识别出局部或全部的人脸。
或者当对一段音频进行可视化的时候,第一层网络会试着探测出低层次音频波形的一些特征;再下一层网络就能够识别出一些音节;随着深度的增加就能够识别一些单词甚至能够识别整个句子。
还有对于为什么使用深度神经网络的解释是来自电路理论的:



非正式的:有一些方程可以用一个“小”(隐藏单元比较少)的L层深层神经网络进行计算,较浅的网络则需要指数级更多的隐藏单元来进行计算。

15-搭建深层神经网络块

16-深层神经网络的前向传播和反向传播

17-超参数VS参数

神经网络中的参数有w[1],b[1],w[2],b[2] ·····而学习速率α,隐藏层的数量,隐藏单元的数量等等这些都控制着最终的w,b的值,这些决定参数的参数称之为超参数。
在实际操作中,对于超参数的选择,我们要经过以下的循环操作,然后根据最终的实验结果的好坏,选取合适的超参数。

上一篇 下一篇

猜你喜欢

热点阅读