峥途 发表于 2024-11-4 15:31:33

MATLAB代价函数的两种表示方法比较

最近学习神经网络,初学代价函数,将公式转换成代码时感觉有点手生,于是好好研究了一下。
下面是两种逻辑回归代价函数的代码写法比较,个人认为还是第二种更适合平时操作,第一种比较适合初学者阅读。

%% 逻辑回归代价函数(包含正则项)的两种代码表示
function = costFunction(X,y,theta,lamda)
h = sigmoid(X*theta);
%% 第一种:矩阵法(前转*后原表示元素和)
J = -(y'*h+(1-y')*(1-h)/m + lamda*(theta'*theta)/(2*m);
%% 第二种(sum法,元素对应相乘)
J = -sum(y.*h+(1-y).*(1-h))/m+lamda*sum(theta.^2)/(2*m);

grad = X'*(h-y)/m +lamda*/m;

end
% 总体来说虽然第二种更具有可读性,
% 但第一种前后搭配更加一致,感觉更好一些

希望对初学者有帮助~

岳明辉 发表于 2024-11-9 13:50:20

页: [1]
查看完整版本: MATLAB代价函数的两种表示方法比较