前言
以前一直是调用,从来都是知其然而不知其所以然,不太好,正好最近一直在使用yolov5,又很想搓一个自然语言聊天机器人,就决定学一学:
Part1 理论基础
1.1 正向传播
输入为矩阵,对矩阵进行仿射变换后加上激活函数,反复几层之后输入,经过Softmax输出结果。用交叉熵损失判断其模型好坏,并进行下一步操作
1.2 反向传播
首先明确反向传播即损失值对网络中仿射变换参数的改变
对于softmax层,反向传播softmax层输出预测与实际的差值
对于仿射变换层,引入正则化惩罚项:reg与学习率:epsilon来约束反向传播
这个时候对于一般仿射变换:
H = W*X +B
与其反向传播的输入值dW,dB
有 dW = dW + reg * W
更新W与B有:
W = W – epsilon * dW
B = B – espsilon * dB
这样就能实现反向传播在仿射变换中的流动了