我是一名高中生,我刚刚开始学习机器学习以进一步了解我的编码知识。我试用了 Octave 程序并一直在使用神经网络,或者至少尝试过。然而,在我的第一个程序中,我发现我的 Sigmoid 梯度函数陷入了僵局。当我尝试使函数对矩阵中的每个值起作用时,我不知道该怎么做。我尝试将 z 作为函数的参数,但它说“z”本身是未定义的。我对C或C++一无所知,而且我仍然是这方面的业余爱好者,如果我需要一些时间来理解,请见谅。感谢任何提供帮助的人!
我正在运行 Octave 4.4.1,我还没有尝试任何其他解决方案,因为我真的没有任何解决方案。
% Main Code
g = sigGrad([-2 -1 0 1 2]);
% G is supposed to be my sigmoid Gradient for each value of Theta, which is the matrix within it's parameters.
% Sigmoid Gradient function
function g = sigGrad(z)
g = zeros(size(z));
% This is where the code tells me that z is undefined
g = sigmoid(z).*(1.-sigmoid(z));
% I began by initializing a matrix of zeroes with the size of z
% It should later do the Gradient Equation, but it marks z as undefined before that
% Sigmoid function
g = sigmoid(z)
g = 1.0 ./ (1.0 + exp(-z));