吴恩达 deep learning 第三周 浅层神经网络

神经网络概览

[]表示不同的层
x ( i ) x^{(i)} 表示第i个数据

神经网络的表示

简单的神经网络
a [ i ] a^{[i]} 表示第i层的激活值
w [ i ] b [ i ] w^{[i]} ,b^{[i]} 表示第i层的参数
w [ 1 ] w^{[1]} 是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附近的梯度较大,可以提高神经网络的速度

猜你喜欢

转载自blog.csdn.net/u014351944/article/details/85089603
今日推荐