吴恩达 deep learning 第三周 浅层神经网络
神经网络概览
[]表示不同的层
表示第i个数据
神经网络的表示
简单的神经网络
表示第i层的**值
表示第i层的参数
是4*3的矩阵,4表示4个隐藏单元,3表示3个输入
计算神经网络的输出
神经网络的计算过程
向量化之后的计算过程
多个例子中的向量化
向量化的实现,通过向量化可以更快的实现神经网络的计算
**函数
几种不同的**函数
tanh**函数几乎在所有场合由于sigmoid,在做二分类的时候,输出层使用sigmoid函数
tanh和sigmoid有一个缺点就是如果z很大或者很小,那么导数的梯度可能就会很小,这就会导致梯度下降很慢
ReLU 修正性单元 缺点是当z为负的时候,导数等于零
Leaky ReLU 解决上述问题 这两者的优点是**函数的斜率和0差得很远,在实践中使用ReLU**函数,神经网络的训练会快很多,虽然ReLU有一半的斜率为0,当有足够多的隐藏单元,令z>0
为什么需要非线性**函数
如果使用线性**函数,那么神经网络只是把输入线性组合在输出
**函数的导数
Sigmoid函数的导数
Tanh函数的导数
ReLU和Leaky ReLu导数
神经网络的梯度下降
神经网络梯度下降
正向传播和反向传播
keepdims=True 保证输出的是矩阵
随机初始化
当隐藏单元的参数设置为0时,通过多次迭代隐藏单元还是对称的,都在计算完全一样的函数,这样多个隐藏单元没有意义
将w*0.01是为了尽可能的是输出小,使得z的值位于sigmoid和tanh**函数的0附近,0附近的梯度较大,可以提高神经网络的速度