mlphess.m

来自「有关PPCA的计算程序」· M 代码 · 共 52 行

M
52
字号
function [h, hdata] = mlphess(net, x, t, hdata)%MLPHESS Evaluate the Hessian matrix for a multi-layer perceptron network.%%	Description%	H = MLPHESS(NET, X, T) takes an MLP network data structure NET, a%	matrix X of input values, and a matrix T of target values and returns%	the full Hessian matrix H corresponding to the second derivatives of%	the negative log posterior distribution, evaluated for the current%	weight and bias values as defined by NET.%%	[H, HDATA] = MLPHESS(NET, X, T) returns both the Hessian matrix H and%	the contribution HDATA arising from the data dependent term in the%	Hessian.%%	H = MLPHESS(NET, X, T, HDATA) takes a network data structure NET, a%	matrix X of input values, and a matrix T of  target values, together%	with the contribution HDATA arising from the data dependent term in%	the Hessian, and returns the full Hessian matrix H corresponding to%	the second derivatives of the negative log posterior distribution.%	This version saves computation time if HDATA has already been%	evaluated for the current weight and bias values.%%	See also%	MLP, HESSCHEK, MLPHDOTV, EVIDENCE%%	Copyright (c) Ian T Nabney (1996-2001)% Check arguments for consistencyerrstring = consist(net, 'mlp', x, t);if ~isempty(errstring);  error(errstring);endif nargin == 3  % Data term in Hessian needs to be computed  hdata = datahess(net, x, t);end[h, hdata] = hbayes(net, hdata);% Sub-function to compute data part of Hessianfunction hdata = datahess(net, x, t)hdata = zeros(net.nwts, net.nwts);for v = eye(net.nwts);  hdata(find(v),:) = mlphdotv(net, x, t, v);endreturn

⌨️ 快捷键说明

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