資源簡介
使用多項式擬合一個周期內、加入噪聲的正弦曲線。 語言:MATLAB 求解方式:由于自己寫的梯度下降函數收斂太慢,因此調用MATLAB梯度下降優化函數;后期用共軛梯度方法求解,收斂較快。代碼都在里面,但是比較亂。
代碼片段和文件信息
function?w?=?descent(X?y?lam)
INIT?=?100;
LIMIT?=?1e-3;
delta?=?1;
learn_rate?=?1e-12;
SIZE?=?size(X);
N?=?SIZE(1);
M?=?SIZE(2);
w?=?INIT?*?ones(M?1);
loss?=?1/N*(X*w-y)‘*(X*w-y)?+?lam*sqrt(w‘*w);
count?=?0;
%subplot(414)
while?delta?>=?LIMIT
????count?=?count+1;
????dw?=?2/N*X‘*X*w?-?2/N*X‘*y?+?lam*(w‘*w)^(-0.5)*w;
????w?=?w?-?learn_rate?*?dw;
????t?=?1/N*(X*w-y)‘*(X*w-y)?+?lam*sqrt(w‘*w);
????delta?=?loss?-?t
????loss?=?t;
????%scatter(countdelta);hold?on;
end
count
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????224??2015-10-17?19:53??data.txt
?????文件?????????300??2015-11-11?22:56??descent.asv
?????文件?????????499??2015-11-12?18:33??descent.m
?????文件?????????994??2015-11-12?16:18??goodlambda.asv
?????文件????????1003??2015-11-12?17:23??goodlambda.m
?????文件???????27715??2015-10-17?11:33??poly_fit_sin.jpg
?????文件?????????780??2015-10-17?20:17??poly_sin.asv
?????文件?????????781??2015-11-08?17:29??poly_sin.m
?????文件?????????206??2015-10-17?19:57??produceData.m
?????文件???????20165??2015-10-17?19:38??regularization.jpg
?????文件???????24953??2015-10-17?20:27??regularization2.jpg
?????文件????????1003??2015-11-12?18:27??test_descent.m
?????文件?????????105??2015-10-17?19:31??tmp.m
?????文件?????????993??2015-11-17?20:21??x.mat
評論
共有 條評論