深度學習(一)Logistic Regression 淺析

我們知道其實 “深度學習” 是深層神經(jīng)網(wǎng)絡的重新包裝,得益于GPU和大規(guī)模數(shù)據(jù)集的出現(xiàn)以及近幾年算法的創(chuàng)新,神經(jīng)網(wǎng)絡重新煥發(fā)了生機又碌。logistic regression 分類器可以看成一個單隱層的神經(jīng)網(wǎng)絡迹卢,若干個logistic regression單元有規(guī)律的組合就能形成可以處理復雜任務的深層神經(jīng)網(wǎng)絡,因此探討logistic regression 的運行機制對于我們理解深層神經(jīng)網(wǎng)絡有很大的好處重罪。

1-1(A simple logistic regression unit)

目前神經(jīng)網(wǎng)絡的計算主要分為2個方向:遍歷樣本進行前向傳播產(chǎn)生預測值;計算成本進行反向傳播更新參數(shù)值哀九。

(一)前向傳播(forward propagation)

1-2(常用符號定義)

為了方便我們以后討論問題剿配,我們定義了如上符號。前向傳播主要分為線性運算(z=w.T*x+b)和激活運算(a=g(z)),g指的是激活函數(shù)阅束。我們常用的激活函數(shù)有: sigmoid,? tanh, softmax,relu呼胚。在深層神經(jīng)網(wǎng)絡中我們一般采用 relu+softmax或relu+tanh,關(guān)于它們的優(yōu)缺點和應用場景可以參考:常用激活函數(shù)比較? 。在logistic regression 中我們采用 sigmoid作為激活函數(shù)息裸。

(二)成本函數(shù)(cost function)

1-3(loss function)
1-4(cost function)

在對網(wǎng)絡進行反向傳播之前蝇更,我們首先需要對前向傳播計算的輸出值和樣本的真實值之間的誤差計算損失。loss function是在單個訓練樣本上定義的呼盆,它衡量了神經(jīng)網(wǎng)絡在單個訓練樣本上的表現(xiàn)年扩;cost function是在全體樣本上定義的, 它衡量的是神經(jīng)網(wǎng)絡在全體訓練樣本上的表現(xiàn)访圃。

(三)反向傳播(back propagation)

反向傳播是神經(jīng)網(wǎng)絡進行訓練和優(yōu)化的重要環(huán)節(jié)厨幻,在訓練集上利用優(yōu)化算法最小化成本函數(shù)J(w,b)來得出最優(yōu)的參數(shù)w.b。常見的優(yōu)化算法有: GD, SGD, RMSprop, ADAM, Adadelta等等。優(yōu)化算法的比較及代碼實現(xiàn)??

1-5(反向傳播算法的向量形式)

接著我們就可以進行n次梯度循環(huán)况脆,一步步的達到最優(yōu)值平绩。下面我們將以吳恩達教授的貓臉識別為例詳解logistic regression 的代碼實現(xiàn)。

(四)代碼實現(xiàn)

1-1? sigmoid??

? ? ?sigmoid 用于神經(jīng)網(wǎng)絡的輸出層漠另,它可以將一個實數(shù)映射到(0,1)的區(qū)間捏雌,可以用來做二分類

1-6 (sigmoid 圖像)

?1-2? 代碼實現(xiàn):

1-7 (sigmoid代碼實現(xiàn))

2-1? 參數(shù)初始化

當你訓練神經(jīng)網(wǎng)絡的時候,隨機初始化權(quán)重(W)非常重要笆搓。對于有多個隱藏單元的神經(jīng)網(wǎng)絡性湿,如果將權(quán)重參數(shù)全部初始化為0,再進行梯度下降是完全無效的满败,因為所有的隱藏單元都是對稱的肤频,不管你運行多長時間的梯度下降,它們都是在計算完全一樣的函數(shù)算墨,因此在多層神經(jīng)網(wǎng)絡中宵荒,不能將權(quán)重初始化為0,由于logistic regression只有一個隱藏單元净嘀,可以將權(quán)重初始化為0报咳。對于偏置b 我們可以統(tǒng)一初始化為0。

2-2? 代碼實現(xiàn)

1-8(初始化參數(shù)代碼實現(xiàn))

3-1? 梯度循環(huán)

梯度循環(huán)分為2部分:首先進行前向傳播計算成本值挖藏;進行反向傳播計算梯度值更新參數(shù)暑刃。

3-2? 代碼實現(xiàn)

1-9(梯度循環(huán)代碼實現(xiàn))

4-1? 訓練優(yōu)化

我們可以自己嘗試設置學習率,梯度循環(huán)次數(shù)膜眠。進行多次訓練求得最優(yōu)的w岩臣,b 并且緩存w,b 作為預測模型的最終參數(shù),預測其它的照片宵膨。

4-2? 代碼實現(xiàn)

1-10(訓練優(yōu)化代碼)

5-1? 產(chǎn)生預測模型

經(jīng)過多次的訓練優(yōu)化架谎,我們就能得到使 cost function 最小的w,b(最優(yōu)解),下面我們就可以用從訓練集上學到的最優(yōu)的w,b 對測試集的照片進行預測辟躏。

5-2? 代碼實現(xiàn)

1-11(預測模型代碼實現(xiàn))

6-1? logistic regression 函數(shù)

我們已經(jīng)實現(xiàn)了logistic regression 所需的所有子函數(shù)谷扣,現(xiàn)在我們就可以把它們組合起來形成完整的logistic regression 網(wǎng)絡。

6-2? 代碼實現(xiàn)

1-12(logistic regression model)

7-1? All to all

我們可以隨意設置學習率和梯度下降循環(huán)次數(shù)鸿脓,觀察神經(jīng)網(wǎng)絡的運行結(jié)果抑钟,為了方便查看可以使用matplotlib 庫繪制cost 曲線。我設置了3個不同的學習率分別為0.018,0.012,0.006野哭,循環(huán)次數(shù)為2000次,最后用三張照片測試算法的性能幻件。

7-2? 代碼及性能展示

1-13(測試代碼)
1-14(learning_rate=0.006時的成本值)
1-15( learning_rate=0.006時的cost曲線 )
1-16(識別正確)
1-17(識別正確)
1-18(識別錯誤)

8 總結(jié)

通過以上例程拨黔,我們明白了logistic regression 運行機制。我們觀察到算法在測試集上的識別正確率約為68%绰沥,在訓練集上識別正確率約為100%篱蝇,即存在較大的偏差和方差贺待。為了提高測試集識別正確率我們可以增加訓練集的圖片數(shù)目或者采用更深層的神經(jīng)網(wǎng)絡。我們以后會用4層的神經(jīng)網(wǎng)絡來識別貓臉零截,你會發(fā)現(xiàn)測試集的識別正確率能達到82%麸塞。完整的程序及訓練數(shù)據(jù)集可以訪問我的?github

9? 引用

吳恩達教授在網(wǎng)易上的公開課(deep learning):http://study.163.com/my#/smarts

李飛飛教授(cs231n):http://study.163.com/course/courseMain.htm?courseId=1003223001

進擊的加菲貓:https://www.aiboy.pub/2017/09/10/A_Brief_Of_Optimization_Algorithms/#more

不會停的蝸牛:http://www.reibang.com/p/22d9720dbf1a

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市涧衙,隨后出現(xiàn)的幾起案子哪工,更是在濱河造成了極大的恐慌,老刑警劉巖弧哎,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雁比,死亡現(xiàn)場離奇詭異,居然都是意外死亡撤嫩,警方通過查閱死者的電腦和手機偎捎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來序攘,“玉大人茴她,你說我怎么就攤上這事〕痰欤” “怎么了败京?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梦染。 經(jīng)常有香客問我赡麦,道長,這世上最難降的妖魔是什么帕识? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任泛粹,我火速辦了婚禮,結(jié)果婚禮上肮疗,老公的妹妹穿的比我還像新娘晶姊。我一直安慰自己,他們只是感情好伪货,可當我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布们衙。 她就那樣靜靜地躺著,像睡著了一般碱呼。 火紅的嫁衣襯著肌膚如雪蒙挑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天愚臀,我揣著相機與錄音忆蚀,去河邊找鬼。 笑死,一個胖子當著我的面吹牛馋袜,可吹牛的內(nèi)容都是我干的男旗。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼欣鳖,長吁一口氣:“原來是場噩夢啊……” “哼察皇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泽台,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤什荣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后师痕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溃睹,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年胰坟,在試婚紗的時候發(fā)現(xiàn)自己被綠了因篇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡笔横,死狀恐怖竞滓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吹缔,我是刑警寧澤商佑,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站厢塘,受9級特大地震影響茶没,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晚碾,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一抓半、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧格嘁,春花似錦笛求、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至懂诗,卻和暖如春蜂嗽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背响禽。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工徒爹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荚醒,地道東北人芋类。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓隆嗅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親侯繁。 傳聞我的和親對象是個殘疾皇子胖喳,可洞房花燭夜當晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容