詹雯 河南師范大學計算機與信息工程學院
近年來,很多學者開始嘗試以進化算法進行測試樂譜編寫的研究,而且已經成為了該領域的研究熱點。該方法是收到自然進化發展思想的影響而逐步形成的,屬于一種全局概率收縮。近年來,國內外很多學者都開始在音樂創新作曲中嘗試運用進化算法,而且取得的成果也是十分可喜的。然而,由于基于進化算法得到測試數據,要求全部的測試數據都需要進行插裝運行,進而實現對測試數據性能的有效分析,這就導致了所需耗費的時間是較長的。
遺傳算法是一類借鑒生物界的進化規律(適者生存,優勝劣汰遺傳機制)演化而來的隨機化搜索方法。它是由美國的J.Holland教授1975年首先提出,其主要特點是直接對結構對象進行操作,不存在求導和函數連續性的限定;具有內在的隱并行性和更好的全局尋優能力;采用概率化的尋優方法,能自動獲取和指導優化的搜索空間,自適應地調整搜索方向,不需要確定的規則。遺傳算法的這些性質,已被人們廣泛地應用于組合優化、機器學習、信號處理、自適應控制和人工生命等領域。它是現代有關智能計算中的關鍵技術。
對于音樂創新作曲問題,從本質上是可將其歸入到測試數據問題的,可將其概述為,對于測試程序,給定其特定的目標路徑,要求從程序輸入空間中找尋能夠使得輸入之后經過目標路徑的測試數據。為了能夠得到符合要求的測試數據,所需要經歷的時間是較長的,對該問題的自動求解,能夠使得測試人員所需承擔的工作量大大降低,而且音樂創新作曲效率也能夠得到極大提高,進而推動軟件質量的提高。
在近年,將進化算法運用到音樂創新作曲中,已經成為了當前音樂創新作曲領域中的重要研究方向,而且該方法的潛力也是十分巨大的。該方法的實現首先要求能夠確定最佳的適應值函數,進而使得測試數據生成問題能夠進行轉換,形成等價的函數優化問題。而且進化階段中,要求插裝后的程序在輸入測試數據后才可運行,以此方式獲得音樂節拍,因此所產生的程序運行代價是較大的。目前很多學者都對音樂創新作曲進行了深入研究,取得的研究成果也是眾多的。在本文中對于音樂節拍以遺傳進行有效模擬,以此方式使得程序運行時間得以有效控制,故此,進行測試樂譜編寫時,僅需利用較為基本的方法即可,由于在被測程序中,所對應的目標音樂節拍并不是唯一的,而每次算法運行,僅能夠對其中的一種音樂節拍進行測試,由此得到對應音樂節拍的測試數據,因此音樂節拍數量對應著算法需要進行的次數。
遺傳算法針對以往音樂計算研究中使用符號特征的不足(計算機更容易理解數字表達),以及GAN的優勢,訓練預測數據為作者下載的古典MIDI音樂,使用Tone length, Frequency, Intensity 和Timing作為特征。生成網絡結構為2層單向LSTM,對抗網絡為2層雙向LSTM,每次生成指定長度×88音階數據。
首先,要求能夠得到一定的測試數據,可將程序進行插裝以獲得真實適應值,由此得到實驗需要的樣本數據。隨后,通過樣本使得遺傳得到訓練,當訓練完成之后以這些遺傳來對音樂節拍進行大致評估,從中選擇優秀的個體,即那些具有較好適應值的,隨后進行程序運行以此方式從中得到實際的適應值水平。此外,因為在本文方法中對于音樂節拍是以遺傳進行的評估,故此,如果目標音樂節拍是相同的,只需要在初始階段對遺傳進行訓練,在后期的運行中是無須對其進行更新的。為了提高分析結果的科學性,我們需要對于各項分析指標,包括時間、覆蓋率等都利用T檢驗展開了分析。而且還需要對時間和評價次數采取歸一化處理,以確保全部的程序所得到的結果處于相同的數量級上。本文所提出的方法能夠確保算法性能的基礎上使得算法時間得到有效控制,降低時間消耗,尤其是在大規模程序中,這種時間優勢更加突出,是能夠確保時間得到極大節省的。
在本文中則通過遺傳將被測音樂節拍進行了替代,以此方式來評估音樂節拍,由此大大減少了由于程序運行而導致的時間代價。而且本文方法對于規模較大、結構較為復雜的程序具有的優勢更加突出。