-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathglmgrad.m
36 lines (30 loc) · 1.04 KB
/
glmgrad.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function [g, gdata, gprior] = glmgrad(net, x, t)
%GLMGRAD Evaluate gradient of error function for generalized linear model.
%
% Description
% G = GLMGRAD(NET, X, T) takes a generalized linear model data
% structure NET together with a matrix X of input vectors and a matrix
% T of target vectors, and evaluates the gradient G of the error
% function with respect to the network weights. The error function
% corresponds to the choice of output unit activation function. Each
% row of X corresponds to one input vector and each row of T
% corresponds to one target vector.
%
% [G, GDATA, GPRIOR] = GLMGRAD(NET, X, T) also returns separately the
% data and prior contributions to the gradient.
%
% See also
% GLM, GLMPAK, GLMUNPAK, GLMFWD, GLMERR, GLMTRAIN
%
% Copyright (c) Ian T Nabney (1996-2001)
% Check arguments for consistency
errstring = consist(net, 'glm', x, t);
if ~isempty(errstring);
error(errstring);
end
y = glmfwd(net, x);
delout = y - t;
gw1 = x'*delout;
gb1 = sum(delout, 1);
gdata = [gw1(:)', gb1];
[g, gdata, gprior] = gbayes(net, gdata);