📄 rbfpreimg.html
字号:
<html><head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=ISO-8859-1"> <title>rbfpreimg.m</title><link rel="stylesheet" type="text/css" href="../../../m-syntax.css"></head><body><code><span class=defun_kw>function</span> <span class=defun_out>x </span>= <span class=defun_name>rbfpreimg</span>(<span class=defun_in> model, options, init_point </span>)<br><span class=h1>% RBFPREIMG RBF pre-image by Schoelkopf's fixed-point algorithm.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Synopsis:</span></span><br><span class=help>% x = rbfpreimg( model )</span><br><span class=help>% x = rbfpreimg( model, options )</span><br><span class=help>% x = rbfpreimg( model, options, init_point )</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Description:</span></span><br><span class=help>% x = rbfpreimg( model ) it is an implementation of the </span><br><span class=help>% Schoelkopf's fixed-point algorithm to solve the pre-image </span><br><span class=help>% problem for kernel expansion wiht RBF kernel [Schol98a]. </span><br><span class=help>% The kernel expansion is given in the input structure model.</span><br><span class=help>%</span><br><span class=help>% x = rbfpreimg( model, options ) use structure options to </span><br><span class=help>% set up control parameters: </span><br><span class=help>% tmax ... maximal number of iterations.</span><br><span class=help>% eps ... minimal change in the norm of the optimized vector. </span><br><span class=help>%</span><br><span class=help>% x = rbfpreimg( model, options, init_point ) use to set up</span><br><span class=help>% starting point of the optimization otherwise it is seleceted </span><br><span class=help>% randomly.</span><br><span class=help>%</span><br><span class=help>% <span class=help_field>Input:</span></span><br><span class=help>% model [struct] Kernel expansion:</span><br><span class=help>% .Alpha [nsv x 1] Coefficients of the kernel expansion.</span><br><span class=help>% .sv.X [dim x nsv] Vectors of defining the expansion.</span><br><span class=help>% .options.ker [string] Must be equl to 'rbf'.</span><br><span class=help>% .options.arg [1x1] Argument of the RBF kernel.</span><br><span class=help>% </span><br><span class=help>% options [struct] Control parameters:</span><br><span class=help>% .tmax [1x1] Maximal number of iterations (default 1e6).</span><br><span class=help>% .eps [1x1] Minimal change of the optimized vector x.</span><br><span class=help>%</span><br><span class=help>% init_point [dim x 1] Initial point of optimization.</span><br><span class=help>% </span><br><span class=help>% <span class=help_field>Output:</span></span><br><span class=help>% x [dim x 1] Pre-image of the RBF kernel expansion.</span><br><span class=help>% </span><br><span class=help>% See also </span><br><span class=help>% RBFPREIMG2, RBFPREIMG3, RSRBF, KPCAREC.</span><br><span class=help>%</span><br><hr><span class=help1>% <span class=help1_field>About:</span> Statistical Pattern Recognition Toolbox</span><br><span class=help1>% (C) 1999-2003, Written by Vojtech Franc and Vaclav Hlavac</span><br><span class=help1>% <a href="http://www.cvut.cz">Czech Technical University Prague</a></span><br><span class=help1>% <a href="http://www.feld.cvut.cz">Faculty of Electrical Engineering</a></span><br><span class=help1>% <a href="http://cmp.felk.cvut.cz">Center for Machine Perception</a></span><br><br><span class=help1>% <span class=help1_field>Modifications:</span></span><br><span class=help1>% 4-may-2004, VF</span><br><span class=help1>% 1-July-2003, VF</span><br><span class=help1>% 30-June-2003, VF</span><br><br><hr><span class=comment>% input arguments</span><br><span class=comment>%-------------------------------</span><br><span class=keyword>if</span> <span class=stack>nargin</span> < 2, options = []; <span class=keyword>else</span> options = c2s( options); <span class=keyword>end</span><br><span class=keyword>if</span> ~isfield(options,<span class=quotes>'tmax'</span>), options.tmax = 1e6; <span class=keyword>end</span><br><span class=keyword>if</span> ~isfield(options,<span class=quotes>'eps'</span>), options.eps = 1e-12; <span class=keyword>end</span><br>[dim,nsv] = size(model.sv.X);<br><br><span class=comment>% select initial point </span><br><span class=comment>%-----------------------</span><br><span class=keyword>if</span> <span class=stack>nargin</span> == 3,<br> x = init_point;<br><span class=keyword>else</span><br> x = model.sv.X*(2*rand(nsv,1)-ones(nsv,1));<br><span class=keyword>end</span><br>old_x = x;<br><br>step=0;<br>change = inf;<br><br><span class=comment>% main loop</span><br><span class=comment>%----------------------</span><br><span class=keyword>while</span> step < options.tmax & change > options.eps,<br> <br> step = step + 1;<br> <br> k = kernel(model.sv.X, x, model.options.ker, model.options.arg );<br><br> ka = k.*model.Alpha(:);<br><br> den=sum(ka);<br> <span class=keyword>if</span> den > 0,<br> x = model.sv.X*ka/den;<br> <span class=keyword>else</span><br> <span class=comment>% reinit</span><br> x = model.sv.X*(2*rand(nsv,1)-ones(nsv,1));<br> <span class=keyword>end</span><br><br> change = sum((old_x-x).^2);<br> <br> old_x = x;<br><span class=keyword>end</span><br> <br><span class=jump>return</span>;<br></code>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -