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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MLP 之手写数字识别

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

0. 前言

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

1. 模型

MLP 模型可以看作是在輸入空間經(jīng)過非線性變換(第一層與第二層)之后的 LR(第二層與第三層), MLP 的優(yōu)勢在于,一個經(jīng)過訓練的 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 的基礎。

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

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

用公式可以表示成:

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

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

2. 構建

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

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

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

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

    3. 值得深入的地方

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