学习使用前向传播和反向传播搭建出有一个隐藏层的神经网络。
###3.1 神经网络概览
###3.2 神经网络表示
###3.3 计算神经网络的输出
gengrate 生成 compute 计算 matrix 矩阵
###3.4 多个例子中的向量化
训练样本横向堆叠构成矩阵X
a^[2](i)
【i是训练样本i,2指的是第二层】###3.5 向量化实现的解释
这就是对不同训练样本向量化的神经网络,接下来,我们目前为止我们一直都是用sigmoid函数
###3.6 激活函数(activation function)
如何使用不同种类的激活函数,simoid只是其中的一个可能选择
但 二分分类是,输出层最好用sigmoid,因为y输出介于0-1更合理
不过,sigmoid和tanh函数都有一个缺点,如果z非常大,或非常小,函数的斜率很接近0,这样会拖慢梯度下降算法
修正线性单元(ReLU)就派上用场了(z为正,斜率为1,为负,斜率为0)
在选择激活函数时有一些经验法则
还有个带泄露的ReUL(z小于0是有一个缓缓的斜率,)通常比ReUL激活函数好,不过实际中使用的频率没那么高
在实践中使用ReUL激活函数,学习速度通常会快得多,比使用tanh或sigmoid激活函数快得多,因为ReUL没有函数斜率接近0时,减慢学习速度的学习速度的效应
说一下几个激活函数
###3.7 为什么需要非线性激活函数(nonlinear activation function)?
如果用线性激活函数(linear activation function)或者叫做恒等激活函数,那么神经网络只是把输入线性组合再输出, 无论你的神经网络多少层,一直在做的只是计算线性激活函数,和没有任何的标准Logistic回归是一样的,因为两个线性函数组合的本身就是线性函数,除非你引用非线性,
###3.8 激活函数的导数
接下来讨论梯度下降的基础,如何估计,如何计算单个激活函数的导数,斜率,
###3.9 神经网络的梯度下降法 梯度下降算法的具体实现,如何处理单隐层神经网络, 提供所需的方程,来实现反向传播,或者说梯度下降算法,
keepdims = true(确保python输出的是矩阵)
###3.10 (选修)直观理解反向传播
###3.11 随机初始化
当你训练神经网络时,随机初始化权重非常重要,对于logistic回归,可以将权重初始化为零, 但如果将神经网络各参数数组初始化为0,再使用梯度下降算法(gredient descent),那会完全失效
因为我们需要两个不同的隐藏单元,去计算不同的函数,这个问题的解决方案是随机初始化所有参数,
所以,在这周的视频里,你知道如何设立单隐层神经网络,初始化参数,并用正向传播计算预测值,还有计算导数,然后使用梯度下降,反向传播