簡體   English   中英

帶矢量化的正則化邏輯回歸

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM