深度學習_(時間)序列模型筆記(RNN,BPTT)_常見的序列模型、循環神經網路的分類、根據時間反向傳播
序列模型 比方以下一些句子用詞含意,會因為在不同語意場景中,都需要根據上下文來解讀。 需要結合前後數據進行分析的類型就稱做序列。 我要去'掛'號看醫生。(預約看診) 你有沒有'掛'失手機?(報失) 新年時家裡都會'掛'燈籠。(懸掛裝飾) 我肚子不舒服,要去"方便"一下。(這裡的"方便"指的是上廁所) 你什麼時候"方便"?我們可以約出來見個面。(在這裡,"方便"指的是有空的時候。) 常見的序列模型 聲音(音波) 影片 情感分析(句子文本之間) 基因序 動作識別 time step(時間步) 序列中每個基礎的數據單位 每一個時間步都是由多個特徵組成(每個時間步的特徵數量也必相同。) 每個序列時間步長度不同 每個時間步中根據先後出現時間有各自的編號。 循環神經網路被發展出來的原因? 傳統神經網路或捲積神經網路,它們缺點是無法將特徵分享到不同位置上,也無記憶能力。 所謂無記憶能力也可以理解為,當前時刻的輸出和下一時刻的輸入,它們之前無關係。 每次輸入的數據,其time step與數據長短會不一致。 循環神經網路RNN(Recurrent Neural Network) Recurrent Neural Network Model用於解決序列問題、處裡序列資料(Sequence Data)的神經網路 比方:自然語言、和時間順序有關的股價預測...等等 想像一下在騎車、開車時候,會考慮不同位置、移動速度的行人、汽機車在未來時間點產生的變化,再去決定前進的路,這是人類大腦根據序列關係所做出之判斷。 優點: 參數共享(整個模型共享同一套參數) 每一時刻皆有輸出 特性: 中間隱藏層具備了循環機制 循環神經網路傳播過程 當第一個被轉換成機器可以讀的向量時,隨後RNN逐個處理向量序列。 RNN先將前一個隱藏層狀態傳送給序列下一步。 隱藏狀態也就充當了神經網路記憶單元,包括網路之前所見過的數據資訊。 接續對隱藏狀態做處理,輸入和先前隱藏狀態組合成的向量。 向量會涵蓋 當前輸入(底下) 跟 先前輸入(左邊進來) 的資訊 向量經過激活函數tanh之後,輸出最新的隱藏狀態(網路記憶)。 Tanh激活函數主要用在幫助 調節流經過網路的數值,會將範圍限縮到-1~+1之間。 ...