赞
踩
loss function:一个样本的损失
cost function:将所有样本的值加在一起
在logistic Regression中一般直接使用带log 函数的,不使用均方误差
均方误差容易使得结果变得不收敛(convent function)。
slope (斜率)= height / width = derivatives
对应tensorflow中的graph的概念
应用chain rule 链式法则进行求导。
https://www.jianshu.com/p/498f7bf488a2
对单个样本而言,逻辑回归Loss function表达式:
z
=
w
T
x
+
b
z=w^Tx+b
z=wTx+b
y = a = σ ( z ) y=a=σ(z) y=a=σ(z)
L ( a , y ) = − ( y l o g ( a ) + ( 1 − y ) l o g ( 1 − a ) ) L(a,y)=−(ylog(a)+(1−y)log(1−a)) L(a,y)=−(ylog(a)+(1−y)log(1−a))
反向传播过程:
前面过程的da、dz求导:
不要用sigmoid(),除了对与output layer
tanh(z) 比sigmod(z) 函数好
relu() 二分输出比较好
leaky Relu()一般比较好,但是不常用
使用激活函数的原因是因为:这样才会变成非线性。线性的函数意义不大。
对m个样本来说,其Cost function表达式如下:
Cost function 关于w和b的偏导数可以写成所有样本点偏导数和的平均形式:
以本节中的浅层神经网络为例,我们给出神经网络的梯度下降法的公式。
注意:w不能随机化为0,这样会让神经网络每一次层中对称的神经元变为一样的。
原因:由于两个隐藏神经元的参数设置为相同的大小,那么两个隐藏神经元对输出单元的影响也是相同的,通过反向梯度下降去进行计算的时候,会得到同样的梯度大小,所以在经过多次迭代后,两个隐藏层单位仍然是对称的。无论设置多少个隐藏单元,其最终的影响都是相同的,那么多个隐藏神经元就没有了意义。
W = np.random.rand((2,2))* 0.01
b = np.zero((2,1))
给其乘以0.01是为了在使用sigmod函数时方便训练,在0处的导数大,训练速度快。
tanh可以不乘。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。