|
a |
|
b/combinedDeepLearningActiveContour/minFunc/logistic/LogisticDiagPrecond.m |
|
|
1 |
function [m] = LogisticHv(v,w,X,y) |
|
|
2 |
% v(feature,1) - vector that we will apply diagonal preconditioner to |
|
|
3 |
% w(feature,1) |
|
|
4 |
% X(instance,feature) |
|
|
5 |
% y(instance,1) |
|
|
6 |
|
|
|
7 |
sig = 1./(1+exp(-y.*(X*w))); |
|
|
8 |
|
|
|
9 |
% Compute diagonals of Hessian |
|
|
10 |
sig = sig.*(1-sig); |
|
|
11 |
for i = 1:length(w) |
|
|
12 |
h(i,1) = (sig.*X(:,i))'*X(:,i); |
|
|
13 |
end |
|
|
14 |
|
|
|
15 |
% Apply preconditioner |
|
|
16 |
m = v./h; |
|
|
17 |
|
|
|
18 |
% Exact preconditioner |
|
|
19 |
%H = X'*diag(sig.*(1-sig))*X; |
|
|
20 |
%m = H\v; |