Keras IMDb

IMDb 是一個電影相關的線上資料庫。這次要利用 IMDb 的影評文字,預測它屬於正面評價還是負面評價。 在深度學習模型中,輸入必須是數字。Keras 提供了 Tokenizer 模組,會依照英文單字出現頻率進行排序並編號:Keras Tokenizer 官方文件。 接著利用 Word Embedding 將編號清單轉換為向量清單,最後丟進 LSTM 模型進行學習。 Keras 封裝了許多方便的功能,讓文字轉數字與模型建立變得非常簡單。 這是我的 Model Summary。將數字序列轉換為 64 維的向量序列,並使用了三層隱藏層進行訓練。 準確率:0.8543 實際測試 造訪 IMDb 網站,抓取《蜘蛛人:返校日 (Spider-Man: Homecoming)》的評論進行檢驗。輸入正面評論後,模型正確辨識為正面(1 為正面,0 為負面)。 My Github

2017-07-11 · 1 min read · 34 words · KbWen · ZH

LSTM

原文網址:Understanding LSTMs 想像人在思考或閱讀文章時,並不是從零開始,而是會保留過去的記憶。RNN 就是為了解決這方面的問題而設計的。 每次訓練時,網路會保留過去的訊息並持續傳遞。而 LSTM 則是一種特殊的 RNN 形式。 The Problem of Long-Term Dependencies 在許多情況下,我們需要更多的上下文訊息,但這些關鍵資訊可能距離當前時間點非常遙遠。一般的 RNN 在處理這種長距離依賴時,容易產生梯度消失或梯度爆炸的問題。 LSTM LSTM 稱為「長短期記憶網絡」(Long Short Term Memory networks),是一種特殊的 RNN 架構。 不同於傳統 RNN 在每個 Cell 裡只包含一個 tanh 層,LSTM 增加了: input gate (輸入門) output gate (輸出門) forget gate (遺忘門) 這些閘門都是用來精準控制資料的操作。使用 sigmoid 激活函數可以看做是控制記憶與讀取資料量的多寡:0 代表不通過,1 代表全部通過。 詳細的數學推導可以參考原文。文中也介紹了 GRU——一種更為簡煉高效的 LSTM 變體。值得注意的是,現今我們從 RNN 領域獲得的優異成果,幾乎指的都是 LSTM 的應用。 在 TensorFlow 中,LSTM 已經封裝完善,呼叫即可使用。 下圖是用 LSTM (紅虛線) 去學習黑線 (x*sin(x)) 的擬合結果:

2017-06-29 · 1 min read · 66 words · KbWen · ZH