主要是来自UFLDL上的介绍,之前以为这个没啥用处,没管过,并且大部分涉及到矩阵求导的时候也能求出来,不过我遇到带点乘的时候,就犯晕了,用这个方法就可以完全解决,通过举例子来吧,前提是你对前馈神经网络的求导,也就是BP算法很熟悉了,我这里就直接展开来写了哈。
1:假定我们求对S的导数吧,S这里是矩阵,此处是点成,用matlab就是S.^2。最外面意思是对这个矩阵操作之后的全部的元素求和,这里涉及到相乘的(自己乘自己不算)都当做输入和权重,涉及到加法、开方这些就当做是激活函数。那么我们这个就可以展开为:(不方便画图,直接用手画出来贴上来了),上面是网络展开图,下面是自己写出来的,每层对应的权重以及输入和输出。那么我们开始写了,函数整体对每一层输入的求导我们这里用\delta表示。layer都是从第二层开始算的哈,开始了。
接下来可=可以用\delta^1直接对S求导,可以知道就是1
那么最终的答案就是
是不是很简单?!