崔岩的笔记——动态时间规整算法(Dynamic Time Warping,DTW)
什么是動態時間規整算法,他是用來干什么的
用于兩個時間不同的特征序列的相似度比較。
舉個例子:該算法最早的應用對象是語音識別,通過進行數據庫語音特征和說話語音特征的相似度比較進行語音識別,但每個人說話的語速有所不同。具體來說,比如數據庫存儲的語音特征是“動態時間規整”,但有些人語速較慢“動~態~時~間~規~整”,而有些人語速有的地方快有的地方慢“動態~時間~規整”。
我們通過圖像的形式表示三類人的語音特征(圖像為示例,并非真實語音特征)。
?圖1 不同語速語音特征匹配示意圖
如圖所示,藍色曲線代表了不同語速下的語音特征,紅色虛線表示部分特征對應關系,動態時間規整算法就是要找出特征對應關系,進而方便進行相似度比較。
算法實現
假設兩組特征序列A,B
①定義距離公式
距離公式的定義是整個算法中唯一需要人為給定的部分,通常將相似度計算公式作為距離公式
本例定義距離公式為特征值差值的絕對值
②計算累積距離矩陣
特征序列A,B的累積距離矩陣D如下圖所示(注意:需要按照圖中順序對A,B中的元素進行排列)
?圖2 累積距離矩陣示意圖
累積矩陣D中的第i行第j列個元素計算公式如下
非第一行第一列:
第一行:
第一列:
第一行第一列元素:
簡單來說,D[i,j]就是和的距離+元素D[i,j]左下側三個元素的最小值
③匹配并輸出匹配結果
從矩陣右上角開始,在左下三個元素中,尋找最小元素作為下一個節點,直至到達元素D[1,1]
?圖3 特征匹配示意圖
以矩陣塊1為例,匹配從右上角元素D[7,10]=12開始,左下三元素大小分別為15、12、15,則選擇元素D[6,9]=12作為下一個節點。
矩陣塊2同理。
對于第一行元素或第一列元素,因為左下側只有一個元素,則直接選擇該元素作為下一個節點。
匹配結果
我們可以根據匹配結果計算特征序列A,B的相似度,相似度計算公式同距離公式
相似度計算結果
N為特征值匹配對的數量
?
總結
以上是生活随笔為你收集整理的崔岩的笔记——动态时间规整算法(Dynamic Time Warping,DTW)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ecshop数据字典
- 下一篇: 印刷尺寸A4