Softmax及两层神经网络

Softmax及两层神经网络

0.说在前面1.Softmax向量化1.1 Softmax梯度推导1.2 Softmax向量化实现2.两层神经网络2.1 反向传播推导2.2 两层神经网络实现3.作者的话0.说在前面

今天是cs231n Assignment1的最后一块,也就是继上次的softmax及两层神经网络!今天在学习神经网络反向传播的时候,觉得很有意思,就仔细琢磨了一下,结果很有帮助,对于矩阵的求导有了更深的认识,下面给出手推神经网络反向传播的求导以及softmax向量化推导及实现!Assignment2等后续内容,正在撰写中,一起来期待!下面一起来研究吧。

下期预告,链表一道题多种解法!

1.Softmax向量化

1.1 Softmax梯度推导

首先来给出Loss的公式

data loss+regularization!

推导:

X矩阵是(N,D),W矩阵是(D,C),S矩阵是(N,C),S矩阵中每一行是Li,那么XW=S表示如下公式(1)所示:

L对W求导,最后的矩阵维度为W的维度,那么L对W求导维度为(D,C),而L对S的求导维度为(N,C),S对W的求导维度为(N,D)或者(D,N),根据维度相容来选择,如果X与W均是一维的那么就是X,否则就是X转置!下面的式子记作(2)式:

X转置后维度为(D,N),而L对S求导的维度为(N,C),此时可以相乘,否则不能乘!

L对Si求导,我们知道L1只与S1有关,推出Li只与Si有关!下面的式子记作(3)式:

紧接着,我们将Li对Si求导拆分成对q求导,在由q对S求导,这里的推论结果,直接使用上次推出的结果,带入就是下面的额式子(记作(4)式):

完成(2)式得,记作(5)式:

1.2 Softmax向量化实现

具体实现的流程解释看代码注释!

2.两层神经网络

2.1 反向传播推导

2.2 两层神经网络实现

计算前向传播

前向传播可以看上面手推图结构!

计算损失函数

这里计算损失与softmax一致,可以参看上面的!

计算反向传播

具体推导看上面手推图!

这里将上面的关键点提出来,ds2表示的是dl对ds2求导,ds1表示dl对ds1求导!其余的一致!

随机选择数据集batch_size大小

方法中添加:

计算损失与梯度

方法中添加:

更新w与b

方法中添加:

预测结果

3.作者的话

如果您觉得本公众号对您有帮助,欢迎关注及转发,更多内容关注本公众号深度学习系列!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181124G009XJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券