Fork me on GitHub

常见数学概念

算法优化之道:避开鞍点

鞍点 (saddle point)的数学含义是: 目标函数在此点上的梯度(一阶导数)值为 0, 但从改点出发的一个方向是函数的极大值点,而在另一个方向是函数的极小值点。

判断鞍点的一个充分条件是:函数在一阶导数为零处(驻点)的黑塞矩阵为不定矩阵。

半正定矩阵: 所有特征值为非负。

半负定矩阵:所有特征值为非正。

不定矩阵:特征值有正有负。

典型的鞍点是函数 f(x)=x^3 中的(0,0),函数 z=x^2-y^2 的 多个鞍点 (0,0,0),(1,1,0),(2,2,))。画图表示:

    function SaddlePoint  
      
    % f(x)=x^3  
    x=-2:0.1:2;  
    y=x.^3;  
    plot(x,y);  
    axis equal;  
    text(0,0,'\leftarrow (0,0)');  
    title('f(x)=x^3');  
      
    % f(x)=x^2-y^2  
    figure (2);  
    [x,y]=meshgrid(-1:0.03:1);  
    z=x.^2-y.^2;  
    mesh(x,y,z);  
    hold on;  
    x=linspace(-1,1,5);  
    y=x;  
    z=x.^2-y.^2;   
    scatter3(x,y,z,'filled','MarkerFaceColor','r');   
    text(0,0,0,'\leftarrow');  
    xlabel('x');  
    ylabel('y');  
    zlabel('z');  
    title('f(x,y)=x^2-y^2');  
    end  



上图中的红点即为对应函数的鞍点。

  • 可导和可微的区别

  • 偏导数,方向导数,梯度的区别

posted @ 2018-01-25 16:56  ranjiewen  阅读(737)  评论(0编辑  收藏  举报