郭龍偉,關欣,李鏘
雖然互聯網中存在海量的鋼琴樂譜資源,但其難易程度不一,對于業余和初級樂器學習者來說,由于缺乏專業知識和指導,難以有效地找到與自身學習難度匹配的樂譜來學習。專業音樂學習者一般依據固定進階教材,但缺乏個性化、靈活的學習方案。此外,一些經典但難度高的樂譜,會有諸多簡化版本存在。因此,有必要對海量的鋼琴樂譜資源的難度等級進行區分。
現在絕大部分樂譜難度等級仍然依賴于專業人士主觀判斷。對于海量的數字樂譜,人工判斷難度等級會是一個耗時耗力的巨大工程。人工主觀判斷也很難穩定、可靠地把握每個難度等級之間的區別,尤其對于多類別問題。不同的人對于同一首樂譜可能會給出不同的難度等級,甚至對于同一首樂譜,同一個人在不同的時間也會給出不同的難度等級。因此,自動識別樂譜難度等級的系統具有重要的理論意義和應用價值。
為網絡中存在的數字樂譜提供難度等級標簽將會大大提高尋找合適難度等級樂譜的效率,并能提高音樂網站的用戶體驗。通常研究中將樂譜難度識別歸為模式分類問題,從符號樂譜中定義并提取難度相關特征,利用分類思想實現樂譜難度等級的識別。下面將針對不同的技術來回顧鋼琴樂譜難度等級識別領域的研究現狀。
Shih-Chuan Chiu等[1]最先開始鋼琴樂譜難度等級識別研究。由于鋼琴樂譜難度識別是一個相對較新的研究問題,現有的符號音樂特征(symbolic music feature)較少直接用于難度等級識別。所以他們首先定義8個與樂譜難度密切相關的特征,將此8個難度相關特征與語義特征一起作為特征空間。后用特征選擇算法ReliefF[2]按照特征重要程度(即各個特征對難度等級的辨別能力大小)分配權值,選擇權值最大的10個特征作為后續實現難度等級識別的特征空間。最終用3個回歸算法:多元線性回歸、逐步回歸[3]、支持向量回歸[4]實現難度等級識別。實驗中,支持向量回歸算法得到最好的效果,其R2統計量為39.9%[3]。
Véronique Sébastien 等[5]也將樂譜難度等級識別看作分類問題,他們利用無監督的聚類算法實現樂譜難度等級識別。首先定義7個難度相關特征,這些特征從MusicXML格式[6]樂譜文件提取。之后用主成分分析 (principal component analysis,PCA)將特征投影到低維空間,以降低特征維數。然后,用分層聚類(hierarchical clustering)[7]將樂譜聚成3類,即3個難度類別。
總的來說,無論是多元線性回歸還是逐步回歸都假設特征與難度等級之間為線性關系,此假設過于簡化特征與難度等級之間的實際關系。而支持向量回歸雖然可實現非線性擬合,但擬合結果尚不令人滿意。與有監督算法相比,非監督算法,如分層聚類,雖能充分利用特征與難度等級之間的自然分布關系,但無法利用已有的難度等級標簽作為先驗知識提高識別效果。例如,實驗中,原始樂譜數據是4個類別,Véronique Sébastien經過PCA降維,應用聚類算法,最終僅得到3個難度類別。
在現有有監督的回歸擬合算法識別鋼琴樂譜難度等級的研究中,支持向量回歸有最好的擬合效果(其R2統計量值為39.9%)。但支持向量回歸,更適合逼近、擬合連續分布數據,對于此離散類別的分類問題能力有限。所以本文利用一種與支持向量回歸算法原理相近,但更適用于解決分類問題的支持向量機分類算法實現數字鋼琴樂譜難度等級識別。
SVM是基于統計學習理論中經驗風險最小化原則的一種機器學習算法[8]。SVM已廣泛應用于紋理分類 (texture classification)[9]、文本分類[10]、人臉識別[11]、語音識別[12]等各個領域。理論和實踐證明,SVM對噪聲和離群點魯棒性好,泛化能力強,經過擴展可解決多分類問題[8]。
SVM實現分類的關鍵是核函數,利用核函數[13]可以將低維線性不可分的問題轉化到高維空間實現線性可分,同時避免因維數增加而導致過大的計算量。常用的核函數有線性核函數(linear kernel function)、多項式核函數 (polynomial kernel function)、高斯徑向基核函數(Gauss radical basis kernel function,GRB)等[13]。由于本研究問題的特征數目遠小于樣本數目,并且為降低分類模型的參數復雜度,本文考慮采用高斯徑向基核函數。
然而傳統的基于高斯徑向基核函數的SVM(GRB-SVM)算法假設特征不相關且權重相同,即不能根據特征對難度等級的貢獻度差別對待。而在本應用問題中,特征對難度區分的貢獻度不同。為彌補GRB-SVM不能根據特征重要程度差別對待的不足,本文結合測度學習(metric learning)理論,充分利用訓練樂譜中關于難度等級的先驗知識,從帶難度等級標簽的樂譜特征空間中有監督地學習到能更好區分鋼琴難度的投影矩陣,保留特征之間的相關關系,從而利用該矩陣改進高斯徑向基核函數,提出一種測度學習支持向量機分類算法——ML-SVM算法,實現數字鋼琴樂譜難度等級識別。
本文提出的ML-SVM樂譜難度識別算法主要包括以下3部分:基于測度學習從訓練數據中有監督的學習到能增加鋼琴樂譜難度區分度的投影矩陣;得到新的距離測度,并利用該測度改進高斯徑向基核函數,建立ML-SVM算法模型;最后利用網格搜索算法得到核函數參數的最優組合,建立分類模型,實現數字鋼琴樂譜難度等級的識別。MLSVM樂譜難度識別算法框圖,如圖1所示。

圖1 ML-SVM算法的框圖Fig. 1 The frame chart of ML-SVM algorithm
為獲取更多的鋼琴樂譜難度相關特征,本文采用文獻[1]與文獻[5]中的難度相關特征作為本文的特征空間。所以本文中的特征空間包括:文獻[1]中除指法復雜度(屬于樂譜標注層面信息,MIDI樂譜中不包含此信息),調號(key signature是元標簽信息)之外的全部難度和語義特征;文獻[5]中除去指法特征(同樣屬于標注層面特征)的全部特征,共22個特征,組成一個22維的特征向量來表示MIDI樂譜。
由于傳統的SVM算法無法根據特征對類別的辨別能力差別對待,所以本文考慮利用測度學習從訓練樂譜中有監督地學習到一個投影矩陣,充分考慮特征對難度等級的貢獻度,為特征分配不同的權重,進而得到新的距離測度DM,改進原始高斯徑向基核函數,改進后的高斯徑向基核函數為


通過矩陣M,依據特征對難度等級的區別能力及特征之間的相關關系,將特征投影到一個類別區分度更高的空間[14]。DM的構建及投影矩陣M)的學習過程如下。
本算法的關鍵在于找到最佳的特征投影矩陣L。考慮用變換矩陣(n表示特征的維數)實現特征投影:


為避免求均方并保證距離為正值,取距離的平方并用矩陣形式表示,則新的距離測度DM為



構造決策函數:

依據決策函數可以得到待分類樂譜x所屬類別[8]。其中α是拉格朗日系數,C是錯誤分類的懲罰參數,kM是改進后的高斯徑向基核函數,核函數表達式中的是測度學習得到的距離測度。
另外,原始SVM是二分類的,本文采用一對余(one versus rest)方法[8,16]將 ML-SVM擴展到多分類。主要思想是:對于一個m類分類問題,通過建立m個二分類ML-SVM模型,每一個ML-SVM模型需要訓練所有的訓練樣本,但訓練樣本中只將某一個類別記為正,其余所有類別記為負。對于待識別的樣本,依次調用訓練好的m個ML-SVM模型,計算它在各個ML-SVM模型中決策函數的值,選擇決策函數值最大的ML-SVM模型給出的類別,作為待識別樂譜難度類別。
本文算法全部用MATLAB軟件實現,所用的計算機環境為32位Windows 7操作系統,內置Intel I5-4200M處理器和4 GB的內存。
在實驗中,為更好地評估本文提出的ML-SVM算法的分類性能和泛化能力,在9類和4類難度兩個樂譜數據集中,將ML-SVM算法與邏輯回歸、基于線性核函數的SVM、基于多項式核函數的SVM、基于原始高斯徑向基核函數的SVM(均用one versus rest擴展到多分類)算法以及結合主成分分析的各個SVM算法進行對比試驗,以識別準確率作為算法性能的評價指標。每個實驗獨立重復5次,并用五折交叉驗證,取平均準確率作為最終識別準確率。同時為更全面評估識別算法性能,也給出各個算法結果的90%置信區間。
鋼琴樂譜數據集采用包含音高、節拍、時間、和弦、速度和信道等鋼琴樂譜信息的MIDI格式數字樂譜文件[17]。MIDI文件小,易于獲得。為和現有的研究作對比,我們采用了文獻[1]中包含9個難度等級,共176個MIDI文件的數據集。
另外考慮到實際鋼琴學習與教學中很多情況會將樂譜分為4個難度等級,大量音樂網站也普遍提供 4 個難度等級 (easy,beginner,intermediate,advanced)的數字樂譜,所以為更好地評估本文算法的可拓展性,切合實際應用情況,我們還從大型音樂網站8notes[18]收集到400首MIDI樂譜組成有4個難度等級的數據集,每一個難度等級有100個MIDI樂譜。為書寫及引用方便,9個難度等級的數據集簡稱為NineS數據集,4個難度等級的數據集簡稱為FourS數據集。
特征提取后,一些特征對應的值較大,而另一些特征對應的值較小,甚至相差超過兩個數量級,為避免數值較大的特征對整體分類的影響,利用Min-Max歸一化方法:

將特征向量歸一化到[0, 1]。其中min和max分別表示特征的最小和最大值,表示特征經過歸一化處理后的特征。
仿真試驗中,將ML-SVM算法與邏輯回歸(logistic regression,LR)[19],基于線性核函數的 SVM(記為L-SVM),基于多項式核函數的SVM(記為PSVM)和基于高斯徑向基核函數的SVM算法(記為GRB-SVM)[16,20-21]進行對比。每個實驗獨立重復5次,每次用5折交叉驗證,取平均準確率作為分類性能指標,同時計算出結果的90%置信區間。
各個SVM算法中核函數參數利用網格搜索算法[22],在 2–10~210內,以步長 0.5,5 折交叉驗證尋找最優的參數設置。其中L-SVM,P-SVM(多項式階數d=3)只需優化懲罰因子C,GRB-SVM與MLSVM需要優化懲罰因子C與核函數參數g(g =)的最優組合。最終的最優參數組合如表1所示。

表1 各個算法的最優參數組合Table 1 Optimal parameter combination of each algorithm
表2給出了本文提出的ML-SVM算法與LR、L-SVM、P-SVM、GRB-SVM算法在NineS數據集和FourS數據集中的識別準確率及結果的90%置信區間。從表2中可以看出,在兩個數據集上,本文提出的ML-SVM算法,識別準確率最高,分別達到68.74%和84.67%。兩個數據集中,本文提出的算法最終識別準確率均高于GRB-SVM算法,尤其在FourS數據集中,本文所提算法得到84.67%的識別準確率,相對75.63%的GRB-SVM,識別準確率有較大提高。且更窄的置信區間表明結果更穩定、顯著。基于線性核函數的SVM(L-SVM)一直表現欠佳,在兩個數據集中識別效果不如邏輯回歸(LR),基于多項式核函數的SVM(P-SVM)表現良好,在FourS數據集中識別效果僅次于本文算法。

表2 各算法的識別準確率及90%置信區間Table 2 Recognition accuracy and 90% confidence interval of each algorithm %
為進一步驗證本文所提算法的有效性,我們將ML-SVM算法與另一種主要用來實現特征降維的投影算法——主成分分析結合SVM的分類準確率進行對比。在對原始特征數據進行PCA處理時,保留原始特征95%信息量的投影特征。PCA投影處理后,最終NineS數據集中的特征降到13維,而FourS數據集的特征降到8維。之后再用基于各個核函數的SVM算法對PCA降維后的數據進行分類。實驗結果如表3所示。從表中可以看出,原始特征數據經過PCA處理后,最終各個SVM的分類準確率都有所提高。這是因為原始特征數據經過PCA投影、降維之后,可以有效減少混疊以及冗余信息,進而提高最終分類的準確率。

表3 PCA處理后,各算法的識別準確率Table 3 After features are processed by PCA, each SVM algorithm’s recognition accuracy in two data sets %
雖然原始特征數據經過PCA投影、降維處理后,利用GRB-SVM分類的準確率較之前有所提高,但分類準確率與本文提出的ML-SVM算法仍有差距,尤其在FourS數據集中,ML-SVM仍有較大優勢,這也再次驗證了本文提出的ML-SVM算法是有效的。
針對現有鋼琴樂譜難度分類主要由人工方式完成,效率不高,區別于傳統將樂譜難度等級識別歸結為回歸問題,本文直接將其建模為基于支持向量機的分類問題。并結合鋼琴樂譜分類主觀性強、特征之間普遍存在相關性等特點,利用測度學習改進高斯徑向基核函數,從而提出一種測度學習支持向量機分類算法——ML-SVM算法。經過在9類和4類難度兩個樂譜數據集上的對比實驗,結果表明本文所提算法的識別準確率優于現有算法,且有效提高了基于高斯徑向基核函數SVM的分類性能。實驗結果說明,利用測度學習理論,保留特征之間的相關關系,更適合樂譜難度識別數據與分布特點,并能夠有效識別算法的性能。未來的工作可以考慮應用半監督算法,以充分利用大量無難度標簽數據,預期將會大大提高分類器的訓練效果,進而提高算法的識別準確率。
[1]CHIU S C, CHEN M S. A study on difficulty level recognition of piano sheet music[C]//IEEE International Symposium on Multimedia. Irvine, CA, USA: IEEE, 2012: 17–23.
[2]ROBNIK-?IKONJA M, KONONENKO I. Theoretical and empirical analysis of Relief[J]. Machine learning, 2003,53(1/2): 23–69.
[3]JAMES G, WITTEN D, HASTIE T, et al. An introduction to statistical learning with applications in R[M]. New York:Springer, 2013: 59–102.
[4]SMOLA A J, SCH?LKOPF B. A tutorial on support vector regression[J]. Statistics and computing, 2003, 14(3): 199–222.
[5]SéBASTIEN V, RALAMBONDRAINY H, SéBASTIEN O, et al. Score analyzer: automatically determining scores difficulty level for instrumental e-learning[C]//Proceedings of the 13th International Society for Music Information Retrieval Conference. Porto, Portugal: ISMIR, 2012: 571–576.
[6]CASTAN G, GOOD M, ROLAND P. Extensible markup language (XML) for music applications: an introduction, the virtual score: representation, retrieval, restoration[M]. Cambridge: MIT Press, 2001: 95–102.
[7]WARD JR J H. Hierarchical grouping to optimize an objective function[J]. Journal of the American statistical association, 1963, 58(301): 236–244.
[8]丁世飛, 齊丙娟, 譚紅艷. 支持向量機理論與算法研究綜述[J]. 電子科技大學學報, 2011, 40(1): 2–10.DING Shifei, QI Bingjuan, TAN Hongyan. An overview on theory and algorithm of support vector machines[J]. Journal of university of electronic science and technology of China,2011, 40(1): 2–10.
[9]LI Shutao, KWOK J T, ZHU Hailong, et al. Texture clas-sification using the support vector machines[J]. Pattern recognition, 2003, 36(12): 2883–2893.
[10]SIMON T, KOLLER D. Support vector machine active learning with applications to text classification[J]. The journal of machine learning research, 2002, 2: 45–66.
[11]OSUNA E, FREUND R, GIROSIT F. Training support vector machines: an application to face detection[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Juan, Puerto Rico, USA: IEEE,1997: 130–136.
[12]WAN V, CAMPBELL W M. Support vector machines for speaker verification and identification[C]//Neural Networks for Signal Processing X. Proceedings of the 2000 IEEE Signal Processing Society Workshop. Sydney, NSW,Australia: IEEE, 2000, 2: 775–784.
[13]SCH?LKOPF B, SMOLA, A J. Learning with kernels[M].GMD-For Schungszentrum Information Stechnik, 1998:5–93.
[14]KULIS B. Metric learning: a survey[J]. Foundations and trends in machine learning, 2012, 5(4): 287–364.
[15]WEINBERGER K Q, SAUL L K. Distance metric learning for large margin nearest neighbor classification[J].Journal of machine learning research, 2009, 10: 207–244.
[16]HSU C W, LIN C J. A comparison of methods for multiclass support vector machines[J]. IEEE transactions on neural networks, 2002, 13(2): 415–425.
[17]MIDI Manufacturers Association. An introduction to MIDI[M]. California: MIDI Manufacturers Association,2009: 1–16.
[18]Fours set data sources[EB/OL]. [2015-07-24]. http://www.8notes.com.
[19]HOSMER D W, LEMESHOW S. Applied logistic regression[M]. New York: Wiley, 2000: 31–46.
[20]WESTON J, WATKINS C. Multi-class support vector machines, CSD-TR-98-04[R/OL]. Egham: Royal Holloway University of London, 1998: 1–10.
[21]CHANG C C, LIN C J. LIBSVM——a library for support vector machines[J/OL]. ACM transactions on intelligent systems and technology, 2011, 2(3): 27.
[22]徐曉明. SVM參數尋優及其在分類中的應用[D]. 大連:大連海事大學, 2014: 6–58.XU Xiaoming. SVM parameter optimization and its application in the classification[D]. Dalian: Dalian Maritime University, 2014: 6–58.