[英]Regularized logistic regresion with vectorization
我正在嘗試實現正則化邏輯回歸的矢量化版本。 我找到了一篇解釋正則化版本的帖子,但我不明白。
為方便起見,我將復制以下代碼:
hx = sigmoid(X * theta);
m = length(X);
J = (sum(-y' * log(hx) - (1 - y') * log(1 - hx)) / m) + lambda * sum(theta(2:end).^2) / (2*m);
grad =((hx - y)' * X / m)' + lambda .* theta .* [0; ones(length(theta)-1, 1)] ./ m ;
我理解成本方程的第一部分,如果我是對的,它可以表示為:
J = ((-y' * log(hx)) - ((1-y)' * log(1-hx)))/m;
問題是正則化項。 讓我們更詳細地了解一下:
方面:
X = (m x (n+1))
theta = ((n+1) x 1)
我不明白為什么他讓theta
( theta_0
) 的第一項不在等式之外,而理論上正則化項是:
它必須考慮到所有的θ
對於梯度下降,我認為這個方程是等價的:
L = eye(length(theta));
L(1,1) = 0;
grad = (1/m * X'* (hx - y)+ (lambda*(L*theta)/m).
我也是新來的...
在Matlab
索引從 1 開始,在數學索引中從 0 開始(您提到的公式中的索引也是從 0 開始)。
因此,理論上,theta 的第一項也需要排除在等式之外。
至於你的第二個問題,你說得對! 這是一個等效的干凈方程!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.