吴恩达深度学习第一课--第二周神经网络基础作业上正反向传播推导

正向传播推导

第i个样本

输入x,通过计算得到z,然后再使用sigmoid函数得到预测值y
输入 x ( i ) x^{(i)} x(i),通过计算得到 z ( i ) z^{(i)} z(i),然后再使用sigmoid函数得到预测值 y ^ ( i ) \hat y^{(i)} y^(i),我们需要判断 y ^ ( i ) \hat y^{(i)} y^(i)与实际值y的关系。
第一,先判断维度, x ( i ) x^{(i)} x(i)(nx1),w(nx1), z ( i ) z^{(i)} z(i)(1x1), y ^ ( i ) \hat y^{(i)} y^(i)(1x1)。
接着,我们来计算 z ( i ) z^{(i)} z(i)= ( x 1 ( i ) w 1 + x 2 ( i ) w 2 + ⋯ + x n ( i ) w n ) + b (x_{1}^{(i)}w_1+x_{2}^{(i)}w_2+\dots+x_{n}^{(i)}w_n)+b (x1(i)w1+x2(i)w2++xn(i)wn)+b= ( w 1 , w 2 , … , w m ) ( x 1 ( i ) x 2 ( i ) . . . x n ( i ) ) + b (w_1,w_2,\dots,w_m)\begin{pmatrix} x_{1}^{(i)}\\ x_{2}^{(i)}\\ .\\.\\.\\\\ x_{n}^{(i)} \end{pmatrix} +b (w1,w2,,wm)x1(i)x2(i)...xn(i)+b
其中,b是实数,python中有广播功能,能使b扩展到与前式相同的维度并计算。

向量化(从个别到整体)

为了与上面做区别,字母大写。
Z = ( w 1 , w 2 , … , w m ) ( x 11 x 21 … x m 1 x 12 x 22 … x m 2 . . . . . . . . . x 1 n x 2 n … x m n ) + b = w T X + b Z=(w_1,w_2,\dots,w_m)\begin{pmatrix} x_{11}& x_{21} &\dots & x_{m1}\\ x_{12} & x_{22} &\dots & x_{m2}\\ .& . & &.\\ .& . & &.\\ .& .& &.\\ x_{1n}& x_{2n} &\dots & x_{mn}\\ \end{pmatrix} +b=w^TX+b Z=(w1,w2,,wm)x11x12...x1nx21x22...x2nxm1xm2...xmn+b=wTX+b
Y ^ = δ ( Z ) = s i g m o i d ( Z ) = ( y ^ ( 1 ) , y ^ ( 2 ) , … , y ^ ( m ) ) \hat Y=\delta(Z)=sigmoid(Z)=(\hat y^{(1)},\hat y^{(2)},\dots,\hat y^{(m)}) Y^=δ(Z)=sigmoid(Z)=(y^(1),y^(2),,y^(m))
此处使用sigmoid函数将预测值 y ^ \hat y y^分布在0~1之间,即二分法。

判断向量维度

上面的维度是单个样本的维度,下面的维度是m个样本中向量的维度;在矩阵运算中,维度尤其重要,后面判断转置和累和都是基于矩阵维度。
X(nxm),其中n是特征,m是样本,w(nx1),b实数(1x1),Z(1xm), Y ^ \hat Y Y^(1xm)。

将原始数据进行整合

吴恩达老师提供了训练集和测试集,其中,train_data_org=(129,64,64,3)–>(129,64x64x3)–>(129,12288)-> ( 129 , 12288 ) T − > ( 12288 , 129 ) (129,12288)^{T} ->(12288,129) (129,12288)T>(12288,129)
其中,给出的训练集数据格式是129个样本,64x64的宽高,3原色(红、绿、蓝),我们需要将后面三位数相乘作为特征,然后再转置得到特征x样本即nxm。
接下来处理标签,train_labels_org=(129,)–>(1,129)。
其中,给出的训练集数据格式是129个样本,我们需要使用numpy库将其转换为需要的格式。

反向传播推导

第i个样本

输入x,通过计算得到z,然后再使用sigmoid函数得到预测值y
依旧使用这幅图片,我们令a= y ^ ( i ) = δ ( z ( i ) ) = 1 1 + e − z ( i ) \hat y^{(i)}=\delta(z^{(i)})=\frac{1}{1+e^{-z^{(i)}}} y^(i)=δ(z(i))=1+ez(i)1。其中, x i x_i xi(nx1),w(nx1), z ( i ) z^{(i)} z(i)(1x1), y ^ ( i ) \hat y^{(i)} y^(i)(1x1),b实数(1x1)。
由前向传播函数得,Z= w T X + b w^TX+b wTX+b。其中,X(nxm),w(nx1),b(1x1),Z(1xm), Y ^ \hat Y Y^(1xm),A(1xm)。

损失函数

loss function:对一个样本中计算预测值和实际值的差距。L(a,y)= − y l o g 10 a − ( 1 − y ) l o g 10 ( 1 − a ) -ylog_{10}a-(1-y)log_{10}(1-a) ylog10a(1y)log10(1a)

代价函数

costs function:对m个样本中的w和b累加和后求均值。J(a,y)=J(w,b)= − 1 m ∑ i = 1 m [ y ∗ l o g a + ( 1 − y ) ∗ l o g ( 1 − a ) ] -\frac{1}{m}\sum_{i=1}^m[y*loga+(1-y)*log(1-a)] m1i=1m[yloga+(1y)log(1a)]

梯度下降法(实则是多元函数求微分)

∂ L ( a , y ) ∂ w = ∂ L ( a , y ) ∂ a ∂ a ∂ z ∂ z ∂ w \frac{\partial L(a,y)}{\partial w}=\frac{\partial L(a,y)}{\partial a}\frac{\partial a}{\partial z}\frac{\partial z}{\partial w} wL(a,y)=aL(a,y)zawz
∂ L ( a , y ) ∂ b = ∂ L ( a , y ) ∂ a ∂ a ∂ z ∂ z ∂ b \frac{\partial L(a,y)}{\partial b}=\frac{\partial L(a,y)}{\partial a}\frac{\partial a}{\partial z}\frac{\partial z}{\partial b} bL(a,y)=aL(a,y)zabz
其中,
∂ L ( a , y ) ∂ a = − y a − ( 1 − y ) ( − 1 ) 1 − a \frac{\partial L(a,y)}{\partial a}=-\frac{y}{a}-\frac{(1-y)(-1)}{1-a} aL(a,y)=ay1a(1y)(1)
∂ a ∂ z = − e − z ( − 1 ) ( 1 + e z ) 2 = e − z ( 1 + e z ) 2 = 1 1 + e z 1 + e z − 1 1 + e z = a ( 1 − a ) \frac{\partial a}{\partial z}=-\frac{e^{-z}(-1)}{(1+e^z)^2}=\frac{e^{-z}}{(1+e^z)^2}=\frac{1}{1+e^z}\frac{1+e^z-1}{1+e^z}=a(1-a) za=(1+ez)2ez(1)=(1+ez)2ez=1+ez11+ez1+ez1=a(1a)
所以,
∂ L ( a , y ) ∂ a ∂ a ∂ z = a − y \frac{\partial L(a,y)}{\partial a}\frac{\partial a}{\partial z}=a-y aL(a,y)za=ay
最后,
∂ L ( a , y ) ∂ w = ( a − y ) x − − > x ( a − y ) ; ∂ L ( a , y ) ∂ b = a − y − − > n p . s u m ( a − y ) \frac{\partial L(a,y)}{\partial w}=(a-y)x-->x(a-y);\frac{\partial L(a,y)}{\partial b}=a-y-->np.sum(a-y) wL(a,y)=(ay)x>x(ay)bL(a,y)=ay>np.sum(ay)
做点解释,前面采用微积分中的链式求导法则来算,后面根据维度做变换, ∂ L ( a , y ) ∂ w \frac{\partial L(a,y)}{\partial w} wL(a,y)维度是nx1, ∂ L ( a , y ) ∂ b \frac{\partial L(a,y)}{\partial b} bL(a,y)维度是1x1,a-y维度是1x1。

向量化(从个别到整体)

∂ L ( A , Y ) ∂ w = X ( A − Y ) − − > X ( A − Y ) T \frac{\partial L(A,Y)}{\partial w}=X(A-Y)-->X(A-Y)^T wL(A,Y)=X(AY)>X(AY)T
∂ L ( A , Y ) ∂ b = A − Y − − > n p . s u m ( A − Y ) \frac{\partial L(A,Y)}{\partial b}=A-Y-->np.sum(A-Y) bL(A,Y)=AY>np.sum(AY)
其中,A-Y的维度是1xm。
W = W − α 1 m X ( A − Y ) W=W-\alpha\frac{1}{m}X(A-Y) W=Wαm1X(AY)
b = b − α 1 m n p . s u m ( A − Y ) b=b-\alpha\frac{1}{m}np.sum(A-Y) b=bαm1np.sum(AY)
J ( w , b ) = − 1 m n p . s u m [ Y l o g A + ( 1 − Y ) l o g ( 1 − A ) ] J(w,b)=-\frac{1}{m}np.sum[YlogA+(1-Y)log(1-A)] J(w,b)=m1np.sum[YlogA+(1Y)log(1A)]
其中,J(w,b)维度是1xm,里面均是点乘(矩阵对应位置相乘)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值