0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度學習制作音樂時存在某些邏輯上的問題

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-09-24 09:48 ? 次閱讀

編者按:本文來自數(shù)據(jù)科學家Haebichan Jung,他發(fā)現(xiàn)用深度學習制作音樂時存在某些邏輯上的問題,并用數(shù)據(jù)方法創(chuàng)建自己的模型解決了這一問題。本文分為四部分:

問題定位:我是如何發(fā)現(xiàn)在利用深度學習技術(shù)生成流行音樂時會有問題的。

解決方法:我如何創(chuàng)建了一個原始的音樂生成機器,只需要簡單方法就能與深度學習相媲美。

結(jié)果評估:我是如何建立一套評估體系,用數(shù)學方法證明“我的音樂比深度學習生成的方法聽起來更像流行音樂”的。

泛化:如何發(fā)現(xiàn)生成自己模型的方法,將其應(yīng)用到場景而不是音樂生成上。

以下是論智帶來的編譯:

我創(chuàng)建了一個簡單的概率模型,可以生成流行音樂。有了客觀評判尺度之后,我認為模型生成的音樂聽起來更接近流行音樂的風格。我是如何做到的呢?其中最主要的原因是我關(guān)注到了流行音樂的核心:主旋律(melody)和和聲(harmony)之間的數(shù)據(jù)關(guān)系。

主旋律是人聲部分,是曲調(diào)。和聲是伴奏、和弦。在鋼琴曲中,主旋律由右手演奏,左手負責和弦

問題所在

在研究二者的關(guān)系之前,讓我們首先對這一問題下個定義。我最初開始這個項目時,只是單純想用深度學習生成流行音樂。然后我就接觸到了LSTMs,這是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò),是用于文本和音樂生成的流行工具。

另一位數(shù)據(jù)科學家Sigureur Skúli曾寫過一篇教程,講述了如何用LSTM神經(jīng)網(wǎng)絡(luò)和Keras生成音樂。地址:towardsdatascience.com/how-to-generate-music-using-a-lstm-neural-network-in-keras-68786834d4c5

但是我深入了解后,對使用RNN和各種變體生成流行音樂的方法背后的邏輯產(chǎn)生了懷疑。這種邏輯看起來是建立在多種有關(guān)流行音樂內(nèi)部結(jié)構(gòu)的假設(shè)上,但我并不完全認可。

其中一個具體的假設(shè)是主旋律和和聲彼此獨立的關(guān)系。

例如,2017年,多倫多大學的研究人員Hang Chu等人曾發(fā)表文章:Song From Pi: A Musically Plausible Network for Pop Music Generation。其中作者認為:“假設(shè)和弦是獨立于給定的旋律的……”基于這一論斷,作者搭建了一個復雜多層的RNN模型,主旋律在它所在的層中可以生成音符,而在和弦層中音符是自動生成的。除了彼此獨立,該模型是依靠主旋律生成和弦的,這就意味著和弦的音符生成是取決于主旋律的。

Hang Chu等人的RNN模型,每一層用于生成歌曲的不同部分

我覺得這種模型很奇怪,因為他并沒有模仿人類創(chuàng)作歌曲的方法。我本人曾學過鋼琴,就個人而言,我是不會在創(chuàng)作主旋律音符時不考慮和弦的。因為和弦音符既定義了旋律,也對旋律有所限制。西方流行音樂有一個很重要的特質(zhì):和弦是決定主旋律的關(guān)鍵。用數(shù)據(jù)科學語言表達,我們可以說某一有條件的概率控制了主旋律和和聲之間的數(shù)據(jù)關(guān)系。

解決方法

首先,我研究了控制不同類型音符之間關(guān)系的預定概率。其中一個例子就是上文中提到的旋律與和聲之間的“垂直”關(guān)系。

處理數(shù)據(jù)

關(guān)于數(shù)據(jù),我將20首流行音樂轉(zhuǎn)換成midi格式,完整歌單可以點擊:www.popmusicmaker.com/

利用一個名為music21的Python庫,主要通過馬爾科夫過程處理了midi文件,提取出作為輸入的不同類型的音符之間的數(shù)據(jù)關(guān)系。具體來說,我會計算我的音符之間的轉(zhuǎn)移概率(transition probability)。這表示,當音符從前一個過渡到下一個時,我們可以計算其中的概率(下文會繼續(xù)深入講解)。

midi格式:一首歌的數(shù)字化版本

首先,我會提取旋律音符和和弦音符之間“垂直”的轉(zhuǎn)移概率。同時我也會根據(jù)數(shù)據(jù)集計算旋律與和弦音符之間“水平”的轉(zhuǎn)移概率。下表就是三種不同類型的音符所計算出的不同轉(zhuǎn)移概率矩陣:

由上至下分別是三種不同的過渡概率:旋律和和弦音符之間的概率;旋律音符之間的概率;和弦音符之間的概率

模型

利用這三種概率矩陣,我的模型可以遵循以下步驟運行:

1.從數(shù)據(jù)中隨機選擇可用的和弦音符。

2.用上表中第一種概率矩陣,基于和弦音符選擇旋律音符。

3.用上表中第二種概率矩陣,基于旋律音符選擇和弦音符。

4.重復步驟3,直至結(jié)尾。

步驟1~4

5.用上表中第三種概率矩陣,基于此前的和弦音符選擇新的和弦音符。

6.重復步驟1~4,直至結(jié)尾。

步驟5~6

為了詳細解釋這一過程,我們用具體例子代替。

1.機器隨機選擇了伴奏音符F。

2.音符F可以選擇四個旋律音符。利用第一種轉(zhuǎn)移概率矩陣,它可能會選擇旋律音符C(因為有24.5%的概率可能被選到)。

3.之后,旋律音符C會進入第二種概率矩陣,選擇下一個旋律音符,它可能會選A(概率有88%)。

4.第三步會繼續(xù)生成新的旋律音符,直至結(jié)尾。

5.和弦音符F會轉(zhuǎn)入第三個矩陣,選擇下一個和弦音符。根據(jù)表中的概率,它可能會選擇和弦音符F或和弦音符C。

6.重復步驟1~4。

結(jié)果評估

接著就是最難的部分了——如何對不同模型進行評估。在文章開頭,我曾說這個簡單的概率模型能超越神經(jīng)網(wǎng)絡(luò),但如何將我的模型和來自神經(jīng)網(wǎng)絡(luò)的模型進行比較呢?如何用客觀事實說明我生成的音樂的確更接近流行風格呢?

為了回答這個問題,我們首先要明確流行音樂的定義。我是從數(shù)據(jù)角度出發(fā)的,但是流行音樂還有另一個重要的決定因素,即要看在一首歌曲中,開頭、中間和結(jié)尾部分(前奏、主歌、副歌、橋段、尾奏等各個部分)都是如何重復的。

例如迪士尼電影《冰雪奇緣》的主題曲《Let it go》中的“Let it go, let it go, can’t hold it back anymore…”就是處于整首歌的中間部分而不是開頭或結(jié)尾,并且這一部分在整首歌里重復了三次。

知道了這一點,我們可以使用一種名為“自相似性矩陣”的工具,它可以通過數(shù)學方法將歌曲的前奏、中間主歌和尾奏進行可視化。下方是電影《曾經(jīng)(Once)》的歌曲《Falling Slowly》的自相似性矩陣。

每個小方塊表示每個音符在四個節(jié)拍中演奏的可視化

在上方動圖中,第一個藍色的大方塊表示歌曲的開頭部分,第二個黃色方塊表示歌曲的另一個片段。第一和第三個方塊都是藍色,是因為它們有相同的自相似性。第二和第四也是如此。

接著,我對數(shù)據(jù)庫中的20首歌曲全部進行了可視化處理。

結(jié)果

結(jié)果非常有說服力。在引入自相似性矩陣之前,我的模型生成的樂曲沒有內(nèi)部的重復結(jié)構(gòu)。但是將輸入數(shù)據(jù)的結(jié)構(gòu)進行復制,你可以看到生成的音樂出現(xiàn)了對應(yīng)的模塊。

多倫多大學提出的神經(jīng)網(wǎng)絡(luò)模型生成的音樂可視化后是這樣的:

對比如下:

泛化

最后我想解決的是泛化的問題。我們?nèi)绾伟堰@個由數(shù)據(jù)驅(qū)動的模型用于除生成流行音樂以外的其他場景呢?換句話說,有沒有其他的模型和我的流行音樂生成模型結(jié)構(gòu)相同?

經(jīng)過我的思考,我發(fā)現(xiàn)另一種創(chuàng)作確實有這種結(jié)構(gòu),即流行歌詞!

以Edward McCain的《I’ll be》為例,其中一段是這樣的:

I’ll be your cryin’ shoulder

I’ll be love suicide

I’ll be better when I’m older

I’ll be the greatest fan of your life

讓我們把這段歌詞分解,用同樣的機器學習泛化語境。我們可能會將“I’ll be”作為語言模型的第一個輸入,這一二元模型會生成“your”、“crying”和“shoulder”。

之后就是重要的問題:開頭短語“I’ll be”是否和結(jié)尾的“shoulder”彼此獨立呢?換句話說,第一句話的最后一個單詞和第二句話的開頭單詞是否有關(guān)?

我覺得沒有關(guān)系。雖然以“shoulder”結(jié)尾,但開頭的“I’ll be”是基于前幾句話的規(guī)律,它們形成了重復,說明這幾句話之間的開頭都有相似的關(guān)系。

我覺得這一發(fā)現(xiàn)很奇妙!流行音樂和流行歌詞都有相似的結(jié)構(gòu),即內(nèi)部都能用數(shù)據(jù)表示。你可以瀏覽我的網(wǎng)站:www.popmusicmaker.com試試創(chuàng)造自己的音樂。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標題:論作曲的能力,深度學習打不過簡單的概率方法

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA做深度學習能走多遠?

    。FPGA的優(yōu)勢就是可編程可配置,邏輯資源多,功耗低,而且賽靈思等都在極力推廣。不知道用FPGA做深度學習未來會怎樣發(fā)展,能走多遠,你怎么看。 A:FPGA 在深度
    發(fā)表于 09-27 20:53

    Nanopi深度學習之路(1)深度學習框架分析

    學習,也就是現(xiàn)在最流行的深度學習領(lǐng)域,關(guān)注論壇的朋友應(yīng)該看到了,開發(fā)板試用活動中有【NanoPi K1 Plus試用】的申請,介紹中NanopiK1plus的高大優(yōu)點之一就是“可運行
    發(fā)表于 06-04 22:32

    深度學習存在哪些問題?

    深度學習常用模型有哪些?深度學習常用軟件工具及平臺有哪些?深度學習
    發(fā)表于 10-14 08:20

    深度學習模型是如何創(chuàng)建的?

    嵌入式系統(tǒng)已被證明可以降低成本并增加各個行業(yè)的收入,包括制造工廠,供應(yīng)鏈管理,醫(yī)療保健等等。本文將介紹有關(guān)深度學習嵌入式系統(tǒng)的信息。深度學習模型是如何創(chuàng)建的?創(chuàng)建
    發(fā)表于 10-27 06:34

    什么是深度學習?使用FPGA進行深度學習的好處?

    ) 來解決更復雜的問題,深度神經(jīng)網(wǎng)絡(luò)是一種將這些問題多層連接起來的更深層網(wǎng)絡(luò)。這稱為深度學習。目前,深度學習被用于現(xiàn)實世界中的各種場景,例如
    發(fā)表于 02-17 16:56

    深度學習和機器學習深度的不同之處 淺談深度學習的訓練和調(diào)參

    近年來,深度學習作為機器學習中比較火的一種方法出現(xiàn)在我們面前,但是和非深度學習的機器學習相比(我
    發(fā)表于 05-02 10:30 ?4295次閱讀

    利用獨創(chuàng)的深度學習模型,通過對大量音樂數(shù)據(jù)的學習及訓練寫出音樂作品

    具體來說,他們的技術(shù)核心是層次化深度學習網(wǎng)絡(luò)結(jié)構(gòu)和生成式對抗學習方式,特點是可以讓生成的樂曲賦有多樣性、悅耳性及可自定義性。由此,他們可以讓即使沒有任何音樂基礎(chǔ)的用戶都能通過簡單地選擇
    的頭像 發(fā)表于 08-15 09:09 ?3728次閱讀

    無線音樂門鈴的電路制作

    無線音樂門鈴的制作在許多電子類報刊、雜志都有介紹,很多配的音樂芯片為多曲可選,在我們實際指導的制作中,很多初學者由于沒有接觸過電子焊接,結(jié)
    的頭像 發(fā)表于 02-11 15:09 ?1.2w次閱讀
    無線<b class='flag-5'>音樂</b>門鈴的電路<b class='flag-5'>制作</b>

    深度學習在嵌入式設(shè)備的應(yīng)用

    下面來探討一下深度學習在嵌入式設(shè)備的應(yīng)用,具體如下:1、深度學習的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究,包含多個隱層的多層感知器(MLP) 是一種原
    發(fā)表于 10-20 17:51 ?1次下載
    <b class='flag-5'>深度</b><b class='flag-5'>學習</b>在嵌入式設(shè)備<b class='flag-5'>上</b>的應(yīng)用

    ESP32深度強化學習

    電子發(fā)燒友網(wǎng)站提供《ESP32深度強化學習.zip》資料免費下載
    發(fā)表于 12-27 10:31 ?0次下載
    ESP32<b class='flag-5'>上</b>的<b class='flag-5'>深度</b>強化<b class='flag-5'>學習</b>

    使用Arduino制作基于音樂的項目

    電子發(fā)燒友網(wǎng)站提供《使用Arduino制作基于音樂的項目.zip》資料免費下載
    發(fā)表于 01-05 10:54 ?0次下載
    使用Arduino<b class='flag-5'>制作</b>基于<b class='flag-5'>音樂</b>的項目

    使用深度學習方法對音樂流派進行分類

    電子發(fā)燒友網(wǎng)站提供《使用深度學習方法對音樂流派進行分類.zip》資料免費下載
    發(fā)表于 02-08 10:02 ?1次下載
    使用<b class='flag-5'>深度</b><b class='flag-5'>學習</b>方法對<b class='flag-5'>音樂</b>流派進行分類

    什么是深度學習算法?深度學習算法的應(yīng)用

    。 在深度學習中,使用了一些快速的算法,比如卷積神經(jīng)網(wǎng)絡(luò)以及深度神經(jīng)網(wǎng)絡(luò),這些算法在大量數(shù)據(jù)處理和圖像識別上面有著非常重要的作用。 深度學習
    的頭像 發(fā)表于 08-17 16:03 ?2002次閱讀

    深度學習框架是什么?深度學習框架有哪些?

    高模型的精度和性能。隨著人工智能和機器學習的迅猛發(fā)展,深度學習框架已成為了研究和開發(fā)人員們必備的工具之一。 目前,市場上存在許多深度
    的頭像 發(fā)表于 08-17 16:03 ?2577次閱讀

    計算機視覺中的九種深度學習技術(shù)

    計算機視覺中仍有許多具有挑戰(zhàn)性的問題需要解決。然而,深度學習方法正在針對某些特定問題取得最新成果。 在最基本的問題上,最有趣的不僅僅是深度學習
    發(fā)表于 08-21 09:56 ?524次閱讀
    計算機視覺中的九種<b class='flag-5'>深度</b><b class='flag-5'>學習</b>技術(shù)