Google Magenta 創作音樂背後的原理,與 AlphaGo 相似嗎?

vc
vc
Sep 5, 2017 · 7 min read

於2014年,DeepMind 開始以深度神經網絡[1]為基礎的 AlphaGo 研究計劃。往後三年內,先後擊敗樊麾、李世乭[2] (이세돌) 及柯潔[3]等頂尖職業棋士,引起不少人對深度神經網絡的關注。在這三年裡,不僅圍棋界風雲變色,繪畫、作曲、編劇等偏重藝術創作性質的範疇,亦受到很大的衝擊。今次我們先來看看機器學習[4]的基本原理,這類技術在音樂創作上的最新發展,了解一下專用型人工智能[5] (narrow artificial intelligence) 應用在不同範疇,例如音樂創作及圍棋時的異同。

還記得中學時期,熱學中的波以耳定律 (Boyle’s Law; V=k/p) 嗎?這條公式是用來解釋氣體的體積 (V) 及壓力 (p) 之間的關係,這亦是一個簡單的線性模型,模擬兩個可測量的變數 (V及1/p) 的線性關係。當中係數 k 的數值,需要靠一連串嚴謹的實驗的結果估算出來。機器學習也就是用這種做法,先以一些數學模型來形容要解決的問題中可測量變數之間的關係,之後利用大量已測量的數據來估算模型中係數的數值。以 AlphaGo 為例,深度神經網絡是當中的數學模型,而一個個棋局上的棋子位置及最終的勝負都是可測量的變數。

在熱學公式的例子中,每次實驗結果的數據都會推算出一個係數 k 的估值,如果我們相信 k 是一個實數及公式是正確無誤,那些推算出來的 k 的估值會集中在一個單一數值附近。現在我們嘗試用另一個方式來估算k的數值,我們可以預設 k 為任何一個數值,可以是1.67,又可以是5.21等等,在與實驗結果一同放進公式後,會發現推算出的結果 (即是體積 V) 與實際數值 (即實驗時記錄的體積) 有差異,重新設定 k 為另一個數值,並重覆以上的步驟來計算各自的總差異,總差異越小,便代表設定的 k 的數值越接近 k 的真實數值。

從以上的例子中,我們意識到估算的誤差能夠讓我們找到係數的真實數值。現今的技術,例如 back propagation、stochastic gradient descent 及 evolution strategies[6],都依靠誤差指引下次係數數值的估算的方向,減少找尋真實數值的時間。由此可見,已有的數據對找尋係數真實數值很重要,換句話說,亦即是對成功訓練神經網絡很重要。將以上這類做法套用到音樂世界裡時,我們需要的第一樣元件是樂曲數據庫,第二樣是描繪樂曲內各項變數之間關係的數學模型。

以機器學習技術作曲始於上世紀五十年代,Lejaren Hiller 及 Leonard Issacson 於1957年利用 Markov chain 寫成的 Illiac Suite[7],被公認為第一首機器寫成的樂曲。

Illiac Suite (1949) by Lejaren Hiller

Peter Todd et al. 於1989年首次利用遞歸神經網絡 (recurrent neural network; RNN) 寫成三小段模仿巴赫作曲風格的樂曲,神經網絡開始被用於音樂創作中。

After Bach (1989) by Peter Todd et al.

大家認為以上的樂曲聽起來,有沒有甚麼令人在意的地方?有沒有不自然的地方?在早年的技術中,例如寫成 Illiac Suite 的是一種偏重依賴規則的生成系統,這類系統很局限於規則的表達能力及規則集的完整性,由於規則多由人手編成,所以局限性較大。要突破這個局限,各種音樂上的規則及關係都需要盡量脫離人手擴充這個耗時的步驟,遞歸神經網絡背負著這個目的來開拓機器作曲這一範疇。普遍遞歸神經網絡雖然能夠學習相鄰音符及和弦間在時序上的關係,但卻缺乏對一首樂曲的整體概念[8],而 long short term memory (LSTM) 及 gated recurrent unit (GRU) 這類針對長時間關係的神經網絡,正正嘗試彌補這個缺陷。

Google 於2016年中開展一個名為 Magenta 的專案,專門研究與美術及音樂有關的深度神經網絡技術。從根本上,我們可以把樂曲想像成一連串音符的發展,在此之上,我們也可以進一步,把樂曲抽象地想像成一連串和弦、甚至是樂句的發展。把抽取得來的抽象的特徵,結合到特徵及目標變數之間的關係的學習,是深度神經網絡的強項,促使機器能夠處理好較抽象較全面的關係。

Magenta 最新一項實驗成果,是在今年6月公布的名為 Performance RNN 的遞歸神經網絡,它可以生成節奏及強弱程度豐富多變的樂曲,就像演奏家為了強調樂曲上某些部分的感情,演奏時的速度及強弱與樂譜上標記的稍異那般,使整個生成的樂曲比較像帶有感情。

Performance RNN 結構

因為樂曲有時序,各種音樂特徵在時序上的關係對生成音樂尤其重要。如圖中所展示,利用當刻前若干時間的音高、節奏、強弱、音符密度及音高頻率分佈來推測當刻的音高、節奏及強弱,利用精於學習時序上關係的遞歸神經網絡作為模型來做推測,重覆這個步驟就可以一步步地產生出樂曲。大家可以聆聽以下幾段利用Performance RNN生成的樂曲,自行定斷生成音樂的質素。

Performance RNN (2017) by Magenta
Performance RNN sample #1 by Magenta
Performance RNN sample #5 by Magenta
Performance RNN sample #8 by Magenta

不論 Performance RNN 或 AlphaGo 在各目的應用範疇內的實力如何,兩者都展示了若干的相似性。

AlphaGo 與 Performance RNN 的異同

從兩者簡化後的架構圖中,可以看得出兩者大概分成三部分。首先,要令深度神經網絡理解得到,就需要利用編碼器將數據編成它可以理解的樣子,這個步驟必不可少。之後,深度神經網絡就為想要解決的問題提供答案,當然整個程序可以到此為止,但它給出的答案其實未必夠好,而能提升答案質素的方法,就是要求深度神經網絡同時提供多個答案以供篩選,所以最後,兩者都包含一個搜尋最佳答案的部分。

最後,我們聽一聽 Aiva 生成的樂曲,與 Performance RNN 生成的比較一下。

Op. 22 for Piano Solo (2017) by Aiva

參考資料

[1] 深度神經網絡是結合神經網絡及深度學習的一門技術。

[2] https://en.wikipedia.org/wiki/AlphaGo_versus_Lee_Sedol

[3] https://en.m.wikipedia.org/wiki/AlphaGo_versus_Ke_Jie

[4] 機器學習是人工智能分支之一,泛指機器通過自我調整來適應環境變化的技術。

[5] 專用型人工智能指應用在特定範疇的人工智能,相對的是通用型人工智能 (general artificial intelligence)。

[6] Salimans, Tim, et al. “Evolution strategies as a scalable alternative to reinforcement learning.” arXiv preprint arXiv:1703.03864 (2017).

[7] Hiller, Lejaren, and Leonard Maxwell Isaacson. Experimental Music. Composition with an Electronic Computer. McGraw-Hill Book Company, 1959.

[8] Eck, Douglas, and Juergen Schmidhuber. “A first look at music composition using lstm recurrent neural networks.” Istituto Dalle Molle Di Studi Sull Intelligenza Artificiale 103 (2002).

躬行學社

躬行學社中的躬行,取自陸游《冬夜讀書示子聿》,「紙上得來終覺淺,絕知此事要躬行」,深信實踐是學習的必經之途。

vc

Written by

vc

躬行學社

躬行學社中的躬行,取自陸游《冬夜讀書示子聿》,「紙上得來終覺淺,絕知此事要躬行」,深信實踐是學習的必經之途。

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade