我正在尝试使用 Matlab 的“梯度”和“hessian”函数来计算符号向量函数相对于向量的导数。下面是使用 sigmoid 函数 1/(1+e^(-a)) 的示例,其中 a 是特征向量乘以权重。以下版本均返回错误。我是 Matlab 的新手,非常感谢任何建议。文档中的解决方案可能在我的眼皮底下,但我无法解决问题。预先感谢您的帮助!
%version 1
syms y w x
x = sym('x', [1 3]);
w = sym('w', [1 3]);
f = (y-1)*w.*x + log(1/(1+exp(-w.*x)));
gradient(f, w)
%version 2
syms y w1 w2 w3 x1 x2 x3 x w
x = [x1,x2,x3];
w = [w1,w2,w3];
f = (y-1)*w.*x + log(1/(1+exp(-w.*x)));
%version 3
syms y w1 w2 w3 x1 x2 x3
f = (y-1)*[w1,w2,w3].*[x1,x2,x3] + log(1/(1+exp(-[w1,w2,w3].*[x1,x2,x3])));