Day7 Caffe代码梳理
《21天实战Caffe》学习笔记第7天
练习题1:Caffe源码中一些宏的原始定义
NOT_IMPLEMENTED
1 |
|
INSTANTIATE_CLASS
1 |
|
练习题3:推导BNLL layer的误差反向传播公式
BNLL layer的激活函数为
$$\varphi\left(x\right)=x+\ln\left(1+e^{-x}\right),x>0$$
$$\varphi\left(x\right)=\ln\left(1+e^x\right),x\leqslant0$$
对激活函数求导
事实上,激活函数可以写成统一的形式
$$\varphi\left(x\right)=\ln\left(1+e^x\right)$$
求导
$$\varphi’\left(x\right)=\displaystyle\frac{e^x}{1+e^x}$$
计算反向误差公式
反向误差=后一层的反向误差*激活函数导数,即
$$\delta^{\left(l\right)}=\displaystyle\delta^{\left(l+1\right)}\frac{e^x}{1+e^x}$$