机器学习笔记 soft-DTW(论文笔记 A differentiable loss function for time-series)
?1 soft-DTW來由
????????DTW 算法通過動態規劃求解了兩個序列的相似度。這個過程1是離散的,不可微的。如果要將其應用作為神經網絡的損失函數,這是不行的。因為神經網絡通過對損失函數結果進行梯度下降的方法,更新參數,要求損失函數可微。
2 符號說明?
論文“A differentiable loss function for time-series”(2017 ICML)中使用了 Soft minimum 來代替 DTW minimum
? ? ? ? 對于兩個序列和,我們定義代價矩陣,其中δ是?可微代價函數(某一時刻x上的p維信息+某一時刻y上的p維信息——>一個實數值)【通常δ(·,·)可以用歐幾里得距離】?
3 soft-DTW原理
????????定義集合,為路徑上的代價和組成的集合(從(0,0)到(i,j)的最小開銷路徑的cost)
? ? ? ? ?如果是DTW,那么它的動態規劃式子為
? ? ? ? ?如1所說,由于min是一個離散的過程,不可微,所以這導致了DTW的離散。
? ? ? ? 于是Soft-DTW使用了連續的soft-min
?????????當γ=0的時候,就是DTW,否則他就是一個可微的式子
(在max函數的平滑(log-sum-exp trick)_UQI-LIUWJ的博客-CSDN博客?中,我們知道
那么這里也是類似的 ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
這里這篇論文做了一個近似
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? 也就等于? ?了? ? ? ? ? ? ? ? ? ? ?
?3.1 前向傳播
????????定義,這是一個集合,其中的每一個元素A是一個矩陣,該矩陣表示兩個時間序列x和y之間的對齊矩陣(alignment matrix)
? ? ? ? ?對于一個特定的對齊矩陣,A中只有在(1,1)到(n,m)路徑上的點(i,j),其=1,其他點的都是0。
? ? ? ? ? 以DTW中出現過的圖為例,那種情況下的A矩陣,在紅色箭頭上的(i,j),其=1,其余點的均為0DTW 筆記: Dynamic Time Warping 動態時間規整 (&DTW的python實現)_UQI-LIUWJ的博客-CSDN博客
? ? ? ? ?換句話說,中包含了所有(1,1)到(n,m)的路徑(每個路徑是一個矩陣,每個矩陣只有路徑上的元素為1)
? ? ? ? 于是矩陣內積<A,Δ(x,y)>表示這條路徑下的代價和(非這條路徑上的點乘0,這條路徑上的點乘1,再求和)
? ? ? ? 于是,soft-dtw的目標函數為
?3.1.1 算法偽代碼
如果γ=0的時候,也就退化為了DTW,這里不同的是,我們需要關注γ>0的情況
?
3.2 反向傳播
????????soft-DTW的目的是為了計算時間序列x和時間序列y之間的動態扭曲距離,y是目標序列的話,我們反向傳播計算的是對時間序列x的梯度,也即
?????????
? ? ? ? 通過鏈式法則,我們有
? ? ? ? 這里的分子和分母都是矩陣,所以線性代數筆記:標量、向量、矩陣求導_UQI-LIUWJ的博客-CSDN博客
????????
?
也就是在我們的問題中,都是一個p×m維矩陣,那么整體上是一個np×nm的矩陣(記🔺相對于x的雅可比矩陣)
?
?對于第二項
由于
同樣地根據鏈式法則有:
?定義元素
我們令?
?所以有:
當為歐幾里得距離的時候,對于任意n×m維度的矩陣,有:
?3.2.1 反向傳播的優化
?????????對于這個式子,我們進行反向傳播的時候,如果使用自動求導機制,那每一個的計算,都需要重新從開始計算,計算到為止,所以每一個都需要的時間復雜度,而每次反向傳播都需要計算一次E矩陣,所以每次反向傳播計算E就需要的時間復雜度
? ? ? ? ?于是論文中給出了一種動態規劃的方法計算E,將時間復雜度降低至
? ? ? ? ?我們知道,而只會在(i,j+1),(i+1,j+1),(i+1,j)這三項中出現,所以也只有這三項會影響到
?那么根據鏈式法則,有:
?
?而根據soft-dtw的定義:
我們有:
?(3.7)對兩邊求的偏導,有:
?
?對(3-8)式兩邊取對數,再乘以γ,于是有:
??
同理我們有
?
?所以我們可以從開始,逐個計算到,總的時間復雜度式O(mn)
?偽代碼如下
?
?
總結
以上是生活随笔為你收集整理的机器学习笔记 soft-DTW(论文笔记 A differentiable loss function for time-series)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: max函数的平滑(log-sum-exp
- 下一篇: matplotlib 笔记 imshow