Machine learning 机器学习中的Fmncg和fminunc工作解释

Machine learning 机器学习中的Fmncg和fminunc工作解释,machine-learning,octave,Machine Learning,Octave,显然,fmincg和fminunc函数使用提供成本值(JVal)和相对于θ的梯度的成本函数给出最佳θ值。 但是这些函数的代码是如何工作的呢?我想知道这些功能的内部功能。这是关于安得烈NG机器学习课程的Coursera。 [nn_params, cost] = fmincg(costFunction, initial_nn_params, options); 这是fmincg函数的代码。它以成本函数作为输入,如下所示: costFunction = @(p) nnCostFunction(p,

显然,fmincg和fminunc函数使用提供成本值(JVal)和相对于θ的梯度的成本函数给出最佳θ值。 但是这些函数的代码是如何工作的呢?我想知道这些功能的内部功能。这是关于安得烈NG机器学习课程的Coursera。

[nn_params, cost] = fmincg(costFunction, initial_nn_params, options);
这是fmincg函数的代码。它以成本函数作为输入,如下所示:

costFunction = @(p) nnCostFunction(p, ...
                                   input_layer_size, ...
                                   hidden_layer_size, ...
                                   num_labels, X, y, lambda);
因此,fmincg返回nn_参数,它是一个展开向量,它可以转换为θ值,如下所示:

Theta1 = reshape(nn_params(1:hidden_layer_size * (input_layer_size + 1)), ...
                 hidden_layer_size, (input_layer_size + 1));

Theta2 = reshape(nn_params((1 + (hidden_layer_size * (input_layer_size + 1))):end), ...
                 num_labels, (hidden_layer_size + 1));

下一次,请花一分钟来看看如何正确格式化代码块(在这里为您完成)。感谢编辑@desertnaut。下次一定会小心的。fmincg不是GNU八度音阶或八度音阶锻造的一部分。这是安德鲁斯球场的一部分。你真的应该为回复@Andy提供一个到itThanks的链接。在coursera的机器学习课程中学习逻辑回归时,文档中提到“您将使用一个名为fminunc的倍频程/-MATLAB内置函数”。因此我觉得有必要了解其背后的功能。下次,请花一分钟时间看看如何正确格式化代码块(在这里为您完成).谢谢你的编辑@desertnaut。下次一定会小心的。fmincg不是GNU八度音阶或八度音阶锻造的一部分。这是安德鲁斯球场的一部分。你真的应该为回复@Andy提供一个到itThanks的链接。在coursera的机器学习课程中学习逻辑回归时,文档提到“您将使用一个名为fminunc的倍频程/-MATLAB内置函数。”因此我觉得有必要了解其背后的功能。