关于梯度下降的基本思想
Posted greenduck
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于梯度下降的基本思想相关的知识,希望对你有一定的参考价值。
请注意本文的神经网络的结构略不同于以往的神经网络。在这里,只有点与点的连线上会有激活函数,一个节点本身是不会有运算的。
看了网上大部分文章和3B1B的视频,BP算法用到的就是链式法则。但由于数学家喜欢把一件事情复杂化,程序员喜欢用矩乘来优化复杂度,BP算法就看上去有些难以理解。
最近看了CNN,自己难以写出像样的代码,就尝试结构化了神经网络。
定义神经网络为:
一个有l层的DAG,第一层为输入层,共size_input个点。第二层为输出层,共size_output个点。
连边的顺序为从第l层的点连向第l+1层的点。
每条边定义三个函数(这里假设我们需要调整的参数是一元的):f(x,k),dx(x,k),dk(x,k),分别是输入的函数、f(x,k)关于输入x的导数、f(x,k)关于参数k的导数。
边的输出作用传到另一个点上时使用加法。当第l层的所有输出都算完了,计算下一层输出。直到达到输出层。
以上图为例,第一个节点的输入为x=2,在f(x,k)的作用下变为x:=2*2+1=5。
以上是关于关于梯度下降的基本思想的主要内容,如果未能解决你的问题,请参考以下文章