gradient_vector_linear_direct.m

来自「RankNGG 算法实现. 含有dll文件。源码为matlab」· M 代码 · 共 49 行

M
49
字号
function [gradient]=gradient_vector_linear_direct(w,data)
% This function returns the gradient vecotr to be used by the nonlinear
% conjugate gradient.
%
% This is the exact version which scales as $$O(N^2)$$.
%
%% Input
%
% * w  ... d x 1 weight vector
% * data ... structure containing the data regarding the ranking task at hand [See convert_data_to_ranking_format.m]
%  Has one extra parameter data.lambda, the regularization parameter
%
%% Ouput
%
% *  gradient ... d x 1 gradient vector evaluated at w
%
%% Signature
%
% Author: Vikas Chandrakant Raykar
% E-Mail: vikas@cs.umd.edu
% Date: September 27, 2006
%
%% See also
%
% convert_data_to_ranking_format,  non_linear_conjugate_gradient, RankNCG_linear_train
%

temp=zeros(data.d,1);
for g=1:data.C
    i=data.G(g,1);
    j=data.G(g,2);
    for k=1:data.m(i)
        for l=1:data.m(j)
            diff=data.X{i}(:,k)-data.X{j}(:,l);
             temp=temp + diff * sigmoid(w'*diff);
        end
    end
end

gradient=-(-data.lambda*w-temp);

return
       
function [f]=sigmoid(z)

f=1./(1+exp(-z));

return

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?