Deep Learning 学习随记(三)续 Softmax regression练习
上一篇講的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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自体丰胸多少钱啊?
- 下一篇: NuGet学习笔记(3) 搭建属于自己的