機器學習實驗筆記

實驗1 --- 基於 RNN 的 MNIST 手寫字符識別實驗

  • 工做流

    預處理(轉化爲灰度圖) --- 卷積 --- 池化 --- 卷積 --- 池化 --- 全鏈接層 --- softmax --- 輸出網絡

  • 簡述卷積神經網絡要素:卷積核、濾波器、池化、特徵圖
  • 卷積

    利用卷積操做能夠從圖像中提取特徵ide

    另外,卷積神經網絡CNN,利用到了圖像的局部相關性,這樣能夠減小全鏈接,減小須要訓練的參數函數

    卷積核至關於一個filter, 卷積核的大小通常採用 3x3 或 5x5翻譯

    卷積操做, 至關於把卷積核做爲一個 mask, 在像素矩陣上進行滑動, 而後進行加權求和做爲特徵值, 結果保存爲新矩陣的對應像素點, 最後獲得的新矩陣就是特徵圖設計

    不一樣的卷積核, 能夠提取圖片的不一樣特徵, 能夠提高圖片分類效果圖片

  • 池化

    池化也是一種提取特徵的方式, 池化操做的過程和卷積很相似, 可是池化層還能夠起到降維的做用。根據參考資料, 這樣作的效果之一是增長特徵的魯棒性,減少過擬合get

    池化分爲平均值池化和最大值池化, 平均池化就是取這個區域的平均值做爲特徵值, 最大池化則是取最大值做爲特徵值。工作流

    池化層通常緊跟在卷積層後面。it

  • padding

    same padding , 若是滑動窗口在通過某個 stride 後超出了圖像範圍, 則須要在外面補 0 以繼續滑動提取特徵值。神經網絡

    valid padding , 超出範圍的就不要了。

  • dropout, 隨機丟棄, 防止過擬合, 同時加快訓練速度

實驗2 --- 基於 RNN 的註冊碼圖像識別實驗

  • 工做流

    預處理(轉化爲灰度圖) --- 卷積 --- 池化 --- 卷積 --- 池化 --- 全鏈接層 --- softmax --- 輸出

    整體流程與實驗1相同, 不過待識別數字從 1 個變成了 4 個(一塊兒識別), 計算量更大

實驗3 --- 基於 LSTM 的圖像識別實驗

  • 工做流

    預處理(轉化爲灰度圖, 60x160) --- 劃分爲 160 列 --- LSTM --- 全鏈接層 --- softmax --- 輸出

  • RNN

    Recurrent neural network, 循環神經網絡, 在語音識別、天然語言處理、機器翻譯、圖像描述等領域有普遍應用。

    在處理語音的時候,因爲上下文的相關性,須要把一段時間內的語音連起來進行分析,傳統的神經網絡作不到這一點。也就是說,與時間序列相關的分析和預測一般要用到RNN

    即當前的預測值考慮到了以前的運行結果。

  • 即便只有一層的RNN模型,仍可能出現梯度消失和梯度爆炸,爲何?

    一層RNN模型裏面有不少個單元,至關於有不少層的神經元,而不是隻有一個神經元。

    RNN在處理長期依賴(時間序列上距離較遠的節點)時,距離較遠的節點之間的聯繫時會涉及雅可比矩陣的屢次相乘,這會帶來梯度消失(常常發生)或者梯度爆炸(較少發生)的問題。不過問題的產生也和激活函數的選擇有關,假設選擇 y = x 做爲激活函數就不會產生梯度消失的問題,固然實際應用中不會這樣選擇激活函數。

    通常選擇 ReLU

  • LSTM與通常的RNN相比,優點在哪?

    LSTM, Long short-term memory, 長短時記憶網絡, 是一種特殊結構的 RNN, 可以解決普通 RNN 不能解決的長期依賴問題。

    普通 RNN 會記住久遠的東西, 有用的沒用的都記住了, 而且不會忘記, 這樣會致使這個網絡沒有選擇性。更合理的作法是,記住重要的,把不重要的忘記了。LSTM就是根據這種思想設計的。

    LSTM包含了三個門, Input Gate, Output Gate, Forget Gate. 這三個門是用來控制信號的, 而不是信號直接經過這幾個門進出。

    輸入信號從上圖的最下面輸進來, 而後 Input Gate 與輸入信號進行相乘, 傳給中間的 Cell. 也就是說, 若是這個輸入的信號是重要的, 那麼 Input Gate 就會讓它進來, 若是沒什麼用, 那麼 Input Gate 就不讓它進來。Forget Gate 用於衰減信號,Output Gate 用於控制輸出比例.

    經過這三個門, LSTM 能夠選出重要的信息, 幫助進行信號過濾。

  • GRU 是 LSTM 的一個變體

    • 對 memory 的控制

      LSTM: 用output gate 控制,傳輸給下一個unit

      GRU:直接傳遞給下一個unit,不作任何控制

相關文章
相關標籤/搜索