机器学习
梯度下降
- 可导函数在任一点的梯度是
自变量空间中的一个向量
(二元函数的梯度是 xy 平面上的向量,而不是 xyz 空间里的向量) - 函数图形在这一点的切平面的法向量投影在自变量空间中,就是该点梯度的反方向。
- 某点的梯度是函数以及它的切平面在该点上升最快的方向,即方向导数最大的方向。梯度的长度(模)就是在该方向的方向导数(变化率)。
- 梯度向任何自变量空间方向的投影的长度(模)是函数在该方向上的方向导数(变化率)。
- 梯度可以是 0 向量。在梯度为 0 向量的点上各方向的变化率都为 0 。这是函数达到极大/极小值的一阶必要非充分条件(例如鞍点不是极大/极小值,但是梯度也为 0 )。
caffe 中gradient checker
- 采用的差分法
//Compute derivative of top w.r.t. each bottom and parameter input using finite differencing.
- 源码:
estimated_gradient = (positive_objective - negative_objective) / stepsize_ / 2.;
public class HelloWorld{ public static void main(String[] args){ System.out.printly("Hello World!"); } }
#include <stdio.h> using namespace std; int main(){ print("hello world!"); return 0; }