1)
= #layers 输入层是第0层,输出层是第
层。
2)
= #units of
-th
layer
=0,1,⋯,
。
3)
第
层的激活函数输出
=1,⋯,
。
,注意每层的激活函数也应用上标法表示。输入x记为
,把输出层
记为
。
4)
表示第
层的权重
=1,⋯,
。用于计算
。
Getting your matrix dimensions right
当实现深度神经网络的时候,检查代码是否有错的方法就是拿出一张纸核算算法中矩阵的维度。
和
向量化维度不变,但
,
以及
的维度向量化后会发生变化。
1)对于单个训练样本,输入x的维度是(
,1),
=
,表示输入层特征数目。
第
层的权重
维度是(
,
),
=1,⋯,
。
亦是。
第
层常数项
维度是(
,1),
=1,⋯,
。
亦是。
第
层
维度是(
,1),
=1,⋯,
。
亦是。
第
层
维度是(
,1),
=1,⋯,
。
亦是。
2)对于m个训练样本,输入矩阵X的维度是(
,m)
和
的维度与只有单个样本是一致的,在运算
时,
会被当成(
,m)矩阵进行运算,这是因为python的广播性质。
第
层
维度是(
,m),
=1,⋯,
。
亦是。
第
层
维度是(
,m),
=1,⋯,
。
亦是。
why deep representations
神经网络从左到右,神经元提取的特征从简单到复杂。特征复杂度与神经网络层数成正相关。特征越来越复杂,功能也越来越强大。
1)人脸识别
(之后的课程里,会讲专门做这种识别的卷积神经网络)
第一层(特征探测器或者边缘探测器):边缘检测,从原始图片中提取出人脸的轮廓与边缘。这样每个神经元得到的是一些边缘信息("|"或"—"等方向上的边缘)
第二层(面部探测器):将前一层的边缘进行组合,组合成人脸一些局部特征,比如眼睛、鼻子、嘴巴等。(比如说,可能有一个神经元会去找眼睛的部分,另外还有别的在找鼻子的部分,然后把这许多的边缘结合在一起,就可以开始检测人脸的不同部分)
后几层:将这些局部特征组合起来,融合成人脸的模样。
随着层数由浅到深,神经网络提取的特征也是从边缘到局部特征到整体,由简单到复杂。可见,如果隐藏层足够多,那么能够提取的特征就越丰富、越复杂,模型的准确率就会越高。
2)语音识别系统
(解决的是如何可视化语音)
浅层的神经元能够检测一些简单的音调,然后较深的神经元能够检测出基本的音素,更深的神经元就能够检测出单词信息。如果网络够深,还能对短语、句子进行检测。
3)电路理论(circuit theory)
——从计算量的角度体现深层神经网络优于浅层神经网络
4)神经网络跟人脑机制
神经网络实际上可以分成两个部分:正向传播过程和反向传播过程。神经网络的每个神经元采用激活函数的方式,类似于感知机模型。这种模型与人脑神经元是类似的,可以说是一种非常简化的人脑神经元模型。如下图所示,人脑神经元可分为树突、细胞体、轴突三部分。树突接收外界电刺激信号(类比神经网络中神经元输入),传递给细胞体进行处理(类比神经网络中神经元激活函数运算),最后由轴突传递给下一个神经元(类比神经网络中神经元输出)。
人脑神经元的结构和处理方式要复杂的多,神经网络模型只是非常简化的模型。人脑如何进行学习?是否也是通过反向传播和梯度下降算法现在还不清楚,可能会更加复杂。这是值得生物学家探索的事情。也许发现重要的新的人脑学习机制后,让我们的神经网络模型抛弃反向传播和梯度下降算法,能够实现更加准确和强大的神经网络模型。
2.
Forward and Backward Propagation in a Deep Network
正向传播过程分析:
可以看成由每一个单独的列向量
堆叠得到,
=(
)
Building blocks of deep neural networks
第
层的流程块图正向传播过程和反向传播过程:
整体的流程块图正向传播过程和反向传播过程:
3.
Parameters vs Hyperparameters
Parameters
:w、b
Hyperparameters
:learning rate
a
(学习率)、iterations(梯度下降法循环的数量)、
L
(隐藏层数目)、
(隐藏层单元数目)、choice of activation function(激活函数的选择)都需要你来设置,这些数字实际上控制了最后的参数w 和
b
的值,所以它们被称作超参数。之后我们也会介绍一些其他的超参数,如momentum、mini batch size、regularization parameters等等。
如何寻找超参数的最优值?
利用
Idea<—>Code<—>Experiment
这个循环,尝试各种不同的参数,实现模型并观察是否成功,然后再迭代。
选择超参数一定范围内的值,分别代入神经网络进行训练,测试cost function随着迭代次数增加的变化,根据结果选择cost function最小时对应的超参数值。
1.Deep L-layer neural networkOverview深层神经网络其实就是包含更多的隐藏层神经网络。有一些函数,只有非常深的神经网络能学会,而更浅的模型则办不到。命名神经网络的层数时,我们不参考输入层,只参考隐藏层和输出层的个数。notation1)= #layers 输入层是第0层,输出层是第层。2)= #units of -thlayer =0,1,⋯,。3)第层的激活函数输出=1,⋯,。,注意每层的激活函数也应用...
之前一章讲了 浅层
神经网络
,这一章讲的是
深层
神经网络
深层
神经网络
与浅层
神经网络
的区别是:隐藏层比浅层
神经网络
多,从命名规则上来说,有1,2,5个隐藏层的
神经网络
可以称为1 hidden layer,2 hidden layers,5 hidden layers
深层
神经网络
中的正向传播与之前举例的浅层
神经网络
一样,只是层数变得更多了,如下所示:
对于每一层的正向...
深度
神经网络
(Deep Neural Networks, 以下简称DNN)是
深度学习
的基础
DNN网络结构
DNN内部的
神经网络
层可以分为三类,输入层,隐藏层和输出层,如下图示例,一般来说第一层是输入层,最后一层是输出层,而中间的层数都是隐藏层。
一般说到
神经网络
的层数是这样计算的,输入层不算,从隐藏层开始一直到输出层,一共有几层就代表着这是一个几层的
神经网络
,例如上图就是一个三层结构的
神经网络
...
select first_value()over(partition by grade order by
course
desc) as t1 from
course
_table