日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

Deep Learning 学习随记(三)续 Softmax regression练习

發(fā)布時(shí)間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Deep Learning 学习随记(三)续 Softmax regression练习 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上一篇講的Softmax regression,當(dāng)時(shí)時(shí)間不夠,沒把練習(xí)做完。這幾天學(xué)車有點(diǎn)累,又特別想動(dòng)動(dòng)手自己寫寫matlab代碼

所以等到了現(xiàn)在,這篇文章就當(dāng)做上一篇的續(xù)吧。

回顧:

上一篇最后給出了softmax regression的代價(jià)函數(shù)和其偏導(dǎo)數(shù),當(dāng)然要實(shí)現(xiàn)的話基本也就是這兩個(gè)函數(shù)的實(shí)現(xiàn),為方便查看,這里再寫一遍:

代價(jià)函數(shù):

偏導(dǎo)數(shù):

實(shí)現(xiàn):

實(shí)現(xiàn)過程就是對(duì)MNIST手寫數(shù)字庫(kù)進(jìn)行的分類(數(shù)字從0~9共10個(gè))。

說實(shí)話,上面代價(jià)函數(shù)對(duì)于我這matlab用的不熟的人來說,著實(shí)嚇了一跳,好在看了講義,里面真是深入淺出啊,相當(dāng)于手把手教咱編程啊,太贊了~

講義里給出了代碼的基本框架,我們只需填幾個(gè)地方就行,主要就是上面代價(jià)函數(shù)和偏導(dǎo)數(shù)部分的實(shí)現(xiàn),而且這部分實(shí)現(xiàn)的一些小技巧講義里面也告訴我們了。

上面這兩個(gè)函數(shù)的代碼實(shí)現(xiàn)就幾行,是在softmaxCost.m里面實(shí)現(xiàn)的:

%% ---------- YOUR CODE HERE --------------------------------------
%  Instructions: Compute the cost and gradient for softmax regression.
%                You need to compute thetagrad and cost.
%                The groundTruth matrix might come in handy.
M = theta*data;
NorM = bsxfun(@minus, M, max(M, [], 1));  %歸一化,每列減去此列的最大值,使得M的每個(gè)元素不至于太大。
ExpM = exp(NorM);
P = bsxfun(@rdivide,ExpM,sum(ExpM));      %概率
cost = -1/numCases*(groundTruth(:)'*log(P(:)))+lambda/2*(theta(:)'*theta(:)); %代價(jià)函數(shù)
thetagrad =  -1/numCases*((groundTruth-P)*data')+lambda*theta;       %梯度

關(guān)于其中bsxfun的用法,是講義給出的,果然好用的多。

另外一個(gè)需要我們自己填寫的地方就是softmaxPredict.m:

%% ---------- YOUR CODE HERE --------------------------------------
%  Instructions: Compute pred using theta assuming that the labels start 
%                from 1.
M = theta*data;
%pred = max(M,[],1);
[Y,pred] = max(M,[],1);

這里一開始寫錯(cuò)了,pred取的是每一列的最大值了(pred = max(M,[],1)),應(yīng)該取行號(hào)(代表的是10個(gè)數(shù)字中概率最大的那個(gè)數(shù)字)然后跟label對(duì)比求正確率。

然后就是結(jié)果:

迭代了100次達(dá)到上限,結(jié)束,最后的正確率是92.250%。

ps:

講義地址:http://deeplearning.stanford.edu/wiki/index.php/Exercise:Softmax_Regression

里面有手寫數(shù)字庫(kù)等需要下載。

?另外,這代碼選項(xiàng)里怎么沒有matlab啊,看著那個(gè)轉(zhuǎn)置符號(hào)變成那樣很不爽。。。

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/bzjia-blog/p/3370869.html

總結(jié)

以上是生活随笔為你收集整理的Deep Learning 学习随记(三)续 Softmax regression练习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。