亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

《深度學習入門——基于Python的理論與實現》筆記心得

系統 2329 0

文章目錄

    • 第1章 Python入門
    • 第2章 感知機
    • 第3章 神經網絡
    • 第4章 神經網絡的學習
    • 第5章 誤差反向傳播
    • 第6章 與學習相關的技巧
        • 1. 各種參數更新的方法
        • 2. 權重的初始值
    • 第7章 卷積神經網絡

原書鏈接(感謝作者,書是真的經典,建議購買紙質書):https://github.com/zjcao/books/blob/master/%E3%80%8A%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%85%A5%E9%97%A8%EF%BC%9A%E5%9F%BA%E4%BA%8EPython%E7%9A%84%E7%90%86%E8%AE%BA%E4%B8%8E%E5%AE%9E%E7%8E%B0%E3%80%8B_%E4%B8%AD%E6%96%87%E7%89%88.pdf

第1章 Python入門

主要介紹了Python的定義、安裝以及簡單語法,除此之外還介紹了一下Numpy包和Matplotlib包的用法,大多為Python相關的基礎知識。

第2章 感知機

與電流做類比,簡明扼要地介紹了感知機中輸入值如何被激活,以及如何用感知機來實現:與門、與非門和或門。

引入權重和偏置的概念: w1和w2是控制輸入信號的重要性的參數,而偏置是調
整神經元被激活的容易程度(輸出信號為1的程度)的參數。

然后提到了感知機的局限性,感知機對于線性不可分(異或)問題是無法解決的,但是多層感知機可以解決。

最后還提到了,理論上: 2層感知機(嚴格地說是激活函數使用了非線性的sigmoid函數的感知機,具
體請參照下一章)可以表示任意函數

第3章 神經網絡

原文提到的值得記錄的一點是:

  • 激活函數是連接感知機和神經網絡的橋梁。
  • 實際上,如果將激活函數從階躍函數換成其他函數,就可以進入神經網絡的世界了。

接下來介紹了sigmoid函數,階躍函數以及它們的實現,并對比了兩者的不同:

  1. 首先注意到的是“平滑性”的不同。sigmoid函數是一條平滑的曲線,輸出隨著輸入發生連續性的變化。而階躍函數以0為界,輸出發生急劇性的變化。
  2. 另一個不同點是,相對于階躍函數只能返回0或1,sigmoid函數可以返回0.731 …、0.880 …等實數(這一點和剛才的平滑性有關)。

以及相同:

  1. 當輸入信號為重要信息時,階躍函數和sigmoid函數都會輸出較大的值;當輸入信號為不重要的信息時,兩者都輸出較小的值。
  2. 還有一個共同點是,不管輸入信號有多小,或者有多大,輸出信號的值都在0到1之間。

然后還介紹了另一種激活函數:ReLU函數。

3.3節 介紹了神經網絡中運算的數學基礎知識-矩陣運算并介紹神經網絡的內積。

3.4節 3.5節 介紹3層神經網絡的理論實現以及代碼實現,并介紹了輸出層的恒等函數和softmax函數。其中: 一般地,回歸問題可以使用恒等函數,二元分類問題可以使用 sigmoid函數,多元分類問題可以使用 softmax函數 。最后提到輸出的神經元數量需要根據待解決的問題來決定。對于分類問題,輸出層的神經元數量一般設定為類別的數量。

問題類型 最后一層激活 損失函數
二元分類問題 sigmoid binary_crossentropy
多分類、單標簽問題 softmax categorical_crossentropy
多分類、多標簽問題 sigmoid binary_crossentropy
回歸到任意值 mse
回歸到0~1范圍內的值 sigmoid mse或sigmoid

最后是舉一個例子,手寫數字識別的實現,再次詮釋神經網絡的神奇。

第4章 神經網絡的學習

首先介紹數據驅動的觀點,然后把數據分為 訓練數據 測試數據 ,然后介紹了兩種損失函數, 均方誤差 交叉熵誤差
《深度學習入門——基于Python的理論與實現》筆記心得_第1張圖片
《深度學習入門——基于Python的理論與實現》筆記心得_第2張圖片
然后擴展到mini-batch學習:神經網絡的學習也是從訓練數據中選出一批數據(稱為mini-batch, 小批量),然后對每個mini-batch 進行學習。比如,從60000 個訓練數據中隨機
選擇100 筆,再用這100 筆數據進行學習。這種學習方式稱為mini-batch 學習。

求所有訓練數據的損失函數的總和,以交叉熵誤差為例。
《深度學習入門——基于Python的理論與實現》筆記心得_第3張圖片
然后介紹數值微分的求解,并計算梯度。

知識點:

  1. epoch是一個單位。一個epoch表示學習中所有訓練數據均被使用過
    一次時的更新次數。比如,對于10000 筆訓練數據,用大小為100
    筆數據的mini-batch 進行學習時,重復隨機梯度下降法100 次,所
    有的訓練數據就都被“看過”了A。此時,100次就是一個epoch。

第5章 誤差反向傳播

開始作者為了介紹計算圖,舉了買蘋果的栗子,然后講到反向傳播,比較重要的有兩點,加法節點的反向傳播和乘法節點的反向傳播。
《深度學習入門——基于Python的理論與實現》筆記心得_第4張圖片
《深度學習入門——基于Python的理論與實現》筆記心得_第5張圖片
《深度學習入門——基于Python的理論與實現》筆記心得_第6張圖片
《深度學習入門——基于Python的理論與實現》筆記心得_第7張圖片
值得記錄的一點,由于Softmax對于輸出的大小關系是不會有影響的,因此在推理(測試)的時候可以不用,但是訓練的時候要用到,因為要與交叉熵組合為Softmax-with-Loss層來計算反向傳播的誤差。

然后代碼實現誤差反向傳播,其中 要更好地理解程序,一定要跟著程序跑一遍

第6章 與學習相關的技巧

這里關于學習的技巧總結起來有這幾點:

    1. 參數更新的方法
    1. 權重初始值的選取
    1. Batch Normalization(批歸一化)
    1. 正則化(權值衰減和dropout)
    1. 超參數的驗證(驗證集)

1. 各種參數更新的方法

《深度學習入門——基于Python的理論與實現》筆記心得_第8張圖片
這幾種優化方法的實驗對比:
《深度學習入門——基于Python的理論與實現》筆記心得_第9張圖片
結論:從圖6-9 的結果中可知,與SGD相比,其他3 種方法學習得更快,而且速度基本相同,仔細看的話,AdaGrad的學習進行得稍微快一點。這個實驗需要注意的地方是,實驗結果會隨學習率等超參數、神經網絡的結構(幾層深等)的不同而發生變化。不過,一般而言,與SGD相比,其他3 種方法可以學習得更快,有時最終的識別精度也更高。

2. 權重的初始值

  • 為什么不能將初始值設為0?

因為在誤差反向傳播法中,所有的權重值都會進行相同的更新。比如,在2 層神經網絡中,假設第1 層和第2 層的權重為0。這樣一來,正向傳播時,因為輸入層的權重為0,所以第2 層的神經元全部會被傳遞相同的值。第2 層的神經元中全部輸入相同的值,這意味著反向傳播時第2 層的權重全部都會進行相同的更新(回憶一下“乘法節點的反向傳播”6.2 權重的初始值 177的內容)。因此,權重被更新為相同的值,并擁有了對稱的值(重復的值)。這使得神經網絡擁有許多不同的權重的意義喪失了。為了防止“權重均一化”(嚴格地講,是為了瓦解權重的對稱結構),必須隨機生成初始值。

  • 當激活函數使用ReLU時,權重初始值使用He初始值,當激活函數為sigmoid 或tanh 等S 型曲線函數時,初始值使用Xavier 初始值。
    《深度學習入門——基于Python的理論與實現》筆記心得_第10張圖片 《深度學習入門——基于Python的理論與實現》筆記心得_第11張圖片

歸一化和正則化這里就不說了,在提到一點就是,超參數的選擇,一般說參數指的權重和偏置是可以訓練出來的,而所謂超參數是那些人為設定好的參數,所謂的調參也就是指調超參數。這里需要注意,一般把數據集分為訓練集、驗證集和測試集。

我的理解,一般先用驗證集來選取最佳的超參數,有很多方法包括網格搜索、隨機采樣又或者貝葉斯最優化。然后再用訓練集來訓練出參數,最后用測試集測試效果。

書上提到,比較理想的情況下測試集只用一次。

第7章 卷積神經網絡

其實筆者早在16年開始接觸深度學習,最開始就是學習了一些簡單的機器學習知識(主要是NG老師的課和統計學習方法),就接觸CNN,一開始是真的蒙蔽,以至于覺得圖像好難好難,這次再看,有了很大的改觀,這里更多的是心得。

《深度學習入門——基于Python的理論與實現》筆記心得_第12張圖片
其實理解上上面章節的知識,理解卷積神經網絡(CNN)真的是 特別簡單

  1. 卷積層是用來提取圖像的特征的;
  2. 全連接層就是神經網絡的全連接版!!把卷積層收集的特征,再次激活,并分類;
  3. 至于為什么一般接兩層全連接層,請看感知機兩層的效果(當然激活函數是非線性的)。當然是兩層理論上就可以處理任何非線性問題了!
  4. 還有就是,為什么要有卷積層,我的理解是,有些圖像太大,而且會有多層,所以直接神經網絡分類奇慢,所以需要卷積的方式提取特征,其實也是神經網絡的思想,只不過可以理解為局部神經網絡,并可以保留空間的信息。

最后一章深度學習就不再記錄。

最后一點感悟,理論確實要與代碼結合,代碼得去跑和理解。

最后最后,代碼要與業務結合,工程上利用理論和代碼把業務處理好才是王道!!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 婷婷开心中文字幕 | 色网站欧美| 国产精品大全国产精品 | 国产精品女在线观看 | 婷婷亚洲综合 | 青青热久久国产久精品秒播 | 亚洲酷色综合 | 国产一二三区在线 | 国产欧美日韩一区二区三区视频 | 欧美日韩在线精品成人综合网 | 国产网红自拍 | 亚洲精品成人a在线观看 | 一级床上爽高清播放 | 亚洲精品日本一区二区在线 | 欧美大香| 中日韩欧美一级毛片 | 国产一区二区三区欧美精品 | 国产小视频精品 | 亚洲va国产日韩欧美精品色婷婷 | 狠狠做深爱婷婷久久一区 | 深夜天堂 | 国产精品深夜福利免费观看 | 久久福利在线 | 青青热在线精品视频免费 | 亚洲久久影院 | 欧美区一区二区三 | 九九九色视频在线观看免费 | 久久午夜网 | 国产精品视频一区二区猎奇 | 精品久久久久久久高清 | 91精品国产综合久久精品 | 免费高清在线爱做视频 | 亚洲第一成年人网站 | 天天插天天插天天插 | 成人久久久观看免费毛片 | 久久九色 | 午夜影院0606| 国产精品手机视频 | 99热久久国产精品这里有99 | 4htv影院永久免费在线地址 | 国产在线拍|