10分鐘快速入門PyTorch (3)

前面兩節(jié)講了最基本的機器學習算法,線性回歸和logistic回歸,這一節(jié)將介紹傳統(tǒng)機器學習里面最后一個算法-神經(jīng)網(wǎng)絡(luò),這也是深度學習的基石,所謂的深度學習,也可以理解為很深層的神經(jīng)網(wǎng)絡(luò)。說起這里,有一個小段子,神經(jīng)網(wǎng)絡(luò)曾經(jīng)被打入了冷宮,因為SVM派的崛起,SVM不了解的同學可以去google一下,中文叫支持向量機,因為其有著完備的數(shù)學解釋,并且之前神經(jīng)網(wǎng)絡(luò)運算復雜等問題,導致神經(jīng)網(wǎng)絡(luò)停步不前,這個時候任何以神經(jīng)網(wǎng)絡(luò)為題目的論文都發(fā)不出去,反向傳播算法的鼻祖hinton為了解決這個問題,于是就想到了用深度學習為題目。

段子說完,接下來開始我們的簡單神經(jīng)網(wǎng)絡(luò)。

Neural Network

其實簡單的神經(jīng)網(wǎng)絡(luò)說起來很簡單,先放圖為敬

1

通過圖片就能很簡答的看出來,其實每一層網(wǎng)絡(luò)所做的就是 y=W×X+b,只不過W的維數(shù)由X和輸出維書決定,比如X是10維向量,想要輸出的維數(shù),也就是中間層的神經(jīng)元個數(shù)為20,那么W的維數(shù)就是20x10,b的維數(shù)就是20x1,這樣輸出的y的維數(shù)就為20。

中間層的維數(shù)可以自己設(shè)計,而最后一層輸出的維數(shù)就是你的分類數(shù)目,比如我們等會兒要做的MNIST數(shù)據(jù)集是10個數(shù)字的分類,那么最后輸出層的神經(jīng)元就為10。

Code

有了前面兩節(jié)的經(jīng)驗,這一節(jié)的代碼就很簡單了,數(shù)據(jù)的導入和之前一樣

定義模型

class Neuralnetwork(nn.Module):
    def __init__(self, in_dim, n_hidden_1, n_hidden_2, out_dim):
        super(Neuralnetwork, self).__init__()
        self.layer1 = nn.Linear(in_dim, n_hidden_1)
        self.layer2 = nn.Linear(n_hidden_1, n_hidden_2)
        self.layer3 = nn.Linear(n_hidden_2, out_dim)

    def forward(self, x):
        x = self.layer1(x)
        x = self.layer2(x)
        x = self.layer3(x)
        x = F.softmax(x)
        return x


model = Neuralnetwork(28*28, 300, 100, 10)
if torch.cuda.is_available():
    model = model.cuda()

criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=learning_rate)

上面定義了三層神經(jīng)網(wǎng)絡(luò),輸入是28x28,因為圖片大小是28x28,中間兩個隱藏層大小分別是300和100,最后是個10分類問題,所以輸出層為10.

訓練過程與之前完全一樣,我就不再重復了,可以直接去github參看完整的代碼

這是20次之后的輸出結(jié)果,可以和上一節(jié)logistic回歸比較一下

2

可以發(fā)現(xiàn)準確率大大提高,其實logistic回歸可以看成簡單的一層網(wǎng)絡(luò),從這里我們就可以看出為什么多層網(wǎng)絡(luò)比單層網(wǎng)絡(luò)的效果要好,這也是為什么深度學習要叫深度的原因。

下一節(jié)我們將正式進入到深度學習,第一個模型將是計算機視覺領(lǐng)域的王牌模型,卷積神經(jīng)網(wǎng)絡(luò)。


本文代碼已經(jīng)上傳到了github

歡迎查看我的知乎專欄,深度煉丹

歡迎訪問我的博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容