日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

MLP 之手写数字识别

發(fā)布時間:2025/3/21 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MLP 之手写数字识别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

0. 前言

前面我們利用 LR 模型實現(xiàn)了手寫數(shù)字識別,但是效果并不好(不到 93% 的正確率)。 LR 模型從本質(zhì)上來說還只是一個線性的分類器,只不過在線性變化之后加入了非線性單調(diào)遞增 sigmoid 函數(shù)進行一一映射。實際上,這里的非線性變換對于我們分類來說是幾乎沒有什么作用的(在分類上,它等價于線性變換之后挑選出輸出值最大的節(jié)點作為我們的預(yù)測結(jié)果),于是我們考慮用更復(fù)雜一點的帶有一個隱層的 MLP (Multi-Layer Perceptron) 模型。

1. 模型

MLP 模型可以看作是在輸入空間經(jīng)過非線性變換(第一層與第二層)之后的 LR(第二層與第三層), MLP 的優(yōu)勢在于,一個經(jīng)過訓(xùn)練的 MLP 的可以由第一層的輸入經(jīng)過非線性變換映射到另外一個線性可分的由隱層節(jié)點組成的空間里去。由于activation function 可以取很多種類型 (excluding polynomials), a two-layer net work with linear outputs can uniformly approximate any continuous function on a compact input domain to?arbitrary accuracy?provided the network has a sufficiently large number of hidden units, ?隱層這種優(yōu)良的表現(xiàn)能力,也是 deeplearning 的基礎(chǔ)。

下面我們來看看具有 3 個隱層, 1000 個隱層節(jié)點的神經(jīng)網(wǎng)絡(luò)對 cos 函數(shù)的回歸效果:

理解了前面兩篇博客,對 bp 算法有了直觀理解,明白了反向求導(dǎo)過程,再來看這個程序就變得非常簡單了。在這個程序里面,我們的 MLP 模型可以表示如下:

用公式可以表示成:

這個模型包含的參數(shù)包括:

如果利用 SGD 來學(xué)習(xí)這個模型,我們需要知道 Loss Function (程序中加入了 L1 和 L2 范式)對于每個參數(shù)的偏導(dǎo)值。?這里,我們可以采用前面已經(jīng)介紹過的 BP 算法?(BP 算法其實就是計算 ANN 中各個參數(shù)導(dǎo)數(shù)的一種快速算法,就像 FDCT 對于 DCT 的快速計算。在 Theano 庫里面,由于函數(shù)是自動求導(dǎo)的,所以在下面的代碼中我們幾乎看不到 BP 的具體實現(xiàn)過程,我猜想 BP 過程應(yīng)該是 Theano 自動完成的)。

2. 構(gòu)建

只帶有一個隱層的 MLP 的 hidden layer 到 output layer 在結(jié)構(gòu)上與 LR 沒有多大的差別。我們可以在之前的 LR 基礎(chǔ)上添加從 input layer 到 hidden layer 的結(jié)構(gòu), 就構(gòu)成了這一小節(jié)中的 MLP。于是乎,我們構(gòu)建了一個隱層節(jié)點,隱層的非線性函數(shù)設(shè)定為 tanh 函數(shù)(由 sigmoid 函數(shù)往下平移 0.5 再將值域擴大 2 倍)。對于隱層節(jié)點為 tanh 函數(shù)的神經(jīng)網(wǎng)絡(luò)來說, MLP 的權(quán)重空間具有很強的對稱性,假設(shè)某一個解是 MLP 的最優(yōu)解,那么:

  • 將任意一個隱層節(jié)點的前后權(quán)重同時乘以 -1, 輸出值不變,如果有 M 個 hidden units, 那么就有對應(yīng)的 2^M 次方個等價的解。
  • 將 M 個隱層連同它連接的權(quán)重進行不同的排列組合,最后的輸出也是等價的, 這里對應(yīng)有 M! 個等價的解。
  • 這樣,只有一個隱層的 MLP ,如果隱層節(jié)點采用 tanh 函數(shù),那么權(quán)重空間就有 M!2^M 個等價的解。

    全零向量正好處在解的對稱中心,梯度為 0, 不能作為權(quán)重的初始值,所以需要對權(quán)重進行隨機初始化,隨機范圍與 activation function 相關(guān),有論文推導(dǎo)這一范圍,暫時來不及細(xì)看。

    接著我們把剛剛建立的隱層結(jié)構(gòu)的輸出作為 LR 的輸入 (在 theano 里面實現(xiàn)十分簡潔, graph structures 的方式真是太方便啦),這樣,一個 MLP 的神經(jīng)網(wǎng)絡(luò)就搭好了。

    3. 值得深入的地方

  • 有些參數(shù)很難用梯度下降法進行優(yōu)化, partly because some parameters are discrete values and others are real-valued. 并且由于優(yōu)化的目標(biāo)函數(shù)是非凸的,尋找極小值的工作量非常大,這些問題在 Yann LeCun 的論文有很好的 overview。
  • tanh 相對于 sigmoid 函數(shù)有什么優(yōu)勢?
  • 權(quán)重初始化的范圍。如何既保證初始時梯度最大,有保障 FP 和 BP 階段信息 (variance) 良好的傳遞性?
  • learning rate 如何確定?是選擇一個常量還是選擇一個與迭代次數(shù)有關(guān)的變量?如果選常量,與什么因素有關(guān)?
  • 隱層節(jié)點數(shù)目如何確定?一般來說,輸入的 data set distribution 越復(fù)雜,需要的網(wǎng)絡(luò)“容量”越大,隱層節(jié)點數(shù)目越多。
  • Regularizaiton Parameter 如何確定才能不至于導(dǎo)致模型太 underfitting or overfitting?
  • 這是源代碼下載地址,具體細(xì)節(jié)就不介紹了。用這種方法進行手寫數(shù)字識別,在 5w 張圖片上進行 828 次迭代訓(xùn)練,正確率可以達(dá)到 98.35%, 相比 LR 模型,的確是一個很大的提升!

    ?

    ?

    ?


    參考資料:

    [1]:?deeplearning tutorial?
    [2]: PRML, Bishop, chapter 05

    ?

    from:http://www.cnblogs.com/daniel-D/

    總結(jié)

    以上是生活随笔為你收集整理的MLP 之手写数字识别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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