gpt4 book ai didi

Matlab:Andrew Ng 机器学习类(class)中 @(t)(costFunction(t, X, y)) 的含义

转载 作者:行者123 更新时间:2023-12-03 01:29:34 26 4
gpt4 key购买 nike

我在 MATLAB 中有以下代码:

%  Set options for fminunc
options = optimset('GradObj', 'on', 'MaxIter', 400);

% Run fminunc to obtain the optimal theta
% This function will return theta and the cost
[theta, cost] = ...
fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);

我的老师这样解释了最小化函数:

To specify the actual function we are minimizing, we use a "short-hand" for specifying functions, like @(t)(costFunction(t, X, y)). This creates a function, with argument t, which calls your costFunction. This allows us to wrap the costFunction for use with fminunc.

我实在不明白@(t)(costFunction(t, X, y)是什么意思。这两个t在做什么?什么样的表达式是吗?

最佳答案

在 Matlab 中,这称为匿名函数

采用以下行:

f = @(t)( 10*t );

在这里,我们定义了一个函数f,它接受一个参数t,并返回10*t。可以使用它

f(5) % returns 50

在您的例子中,您使用的是 fminunc ,它接受一个函数作为其第一个参数,并用一个参数来最小化过度。这可以使用调用

X = 1; y = 1; % Defining variables which aren't passed into the costFunction
% but which must exist for the next line to pass them as anything!
f = @(t)(costFunction(t, X, y)); % Explicitly define costFunction as a function of t alone
[theta, cost] = fminunc(f, 0, options);

可以通过不首先定义 f 并仅调用来缩短此过程

 [theta, cost] = fminunc(@(t)(costFunction(t, X, y)), 0, options); 
<小时/>

进一步阅读

关于Matlab:Andrew Ng 机器学习类(class)中 @(t)(costFunction(t, X, y)) 的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43961765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com