<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

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

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

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

問題定位:我是如何發現在利用深度學習技術生成流行音樂時會有問題的。

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

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

泛化:如何發現生成自己模型的方法,將其應用到場景而不是音樂生成上。

以下是論智帶來的編譯:

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

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

問題所在

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

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

但是我深入了解后,對使用RNN和各種變體生成流行音樂的方法背后的邏輯產生了懷疑。這種邏輯看起來是建立在多種有關流行音樂內部結構的假設上,但我并不完全認可。

其中一個具體的假設是主旋律和和聲彼此獨立的關系。

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

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

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

解決方法

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

處理數據

關于數據,我將20首流行音樂轉換成midi格式,完整歌單可以點擊:www.popmusicmaker.com/

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

midi格式:一首歌的數字化版本

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

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

模型

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

1.從數據中隨機選擇可用的和弦音符。

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

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

4.重復步驟3,直至結尾。

步驟1~4

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

6.重復步驟1~4,直至結尾。

步驟5~6

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

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

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

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

4.第三步會繼續生成新的旋律音符,直至結尾。

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

6.重復步驟1~4。

結果評估

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

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

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

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

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

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

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

結果

結果非常有說服力。在引入自相似性矩陣之前,我的模型生成的樂曲沒有內部的重復結構。但是將輸入數據的結構進行復制,你可以看到生成的音樂出現了對應的模塊。

多倫多大學提出的神經網絡模型生成的音樂可視化后是這樣的:

對比如下:

泛化

最后我想解決的是泛化的問題。我們如何把這個由數據驅動的模型用于除生成流行音樂以外的其他場景呢?換句話說,有沒有其他的模型和我的流行音樂生成模型結構相同?

經過我的思考,我發現另一種創作確實有這種結構,即流行歌詞!

以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”是否和結尾的“shoulder”彼此獨立呢?換句話說,第一句話的最后一個單詞和第二句話的開頭單詞是否有關?

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

我覺得這一發現很奇妙!流行音樂和流行歌詞都有相似的結構,即內部都能用數據表示。你可以瀏覽我的網站:www.popmusicmaker.com試試創造自己的音樂。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4583

    瀏覽量

    99072
  • 深度學習
    +關注

    關注

    73

    文章

    5248

    瀏覽量

    119993

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

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

收藏 人收藏

    評論

    相關推薦

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

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

    【詳解】FPGA:深度學習的未來?

    憑借單位能耗的強勁性能,加上為特定應用定制架構的能力,就能讓深度學習的應用科學家受益。FPGA能滿足兩類受眾的需求,是一個合乎邏輯的選擇。本文考察FPGA
    發表于 08-13 09:33

    【米爾FZ3深度學習計算卡試用體驗】在米爾FZ3深度學習計算卡跑自己的系統

    是使用petalinux 18.1版本制作完成,因此該板卡完全能夠自定義系統并自定義相關功能。為了能夠在該板卡實現自定義深度學習計算加速系統,下面接著上一期,完成自定義系統的搭建。1
    發表于 11-27 21:21

    無線音樂門鈴相關資料分享

    無線音樂門鈴的制作在許多電子類報刊、雜志都有介紹,很多配的音樂芯片為多曲可選,在我們實際指導的制作中,很多初學者由于沒有接觸過電子焊接,結
    發表于 04-28 07:47

    深度學習存在哪些問題?

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

    深度學習模型是如何創建的?

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

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

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

    深度學習和機器學習深度的不同之處 淺談深度學習的訓練和調參

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

    利用獨創的深度學習模型,通過對大量音樂數據的學習及訓練寫出音樂作品

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

    無線音樂門鈴的電路制作

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

    深度學習的起源與先行者

    深度學習也增強了強化學習這一已存在的領域。
    發表于 07-11 16:06 ?1543次閱讀

    用體聲波諧振器制作音樂

    用體聲波諧振器制作音樂
    的頭像 發表于 01-04 11:17 ?559次閱讀
    用體聲波諧振器<b class='flag-5'>制作</b><b class='flag-5'>音樂</b>

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

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

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

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

    計算機視覺中的九種深度學習技術

    計算機視覺中仍有許多具有挑戰性的問題需要解決。然而,深度學習方法正在針對某些特定問題取得最新成果。 在最基本的問題上,最有趣的不僅僅是深度學習
    發表于 08-21 09:56 ?371次閱讀
    計算機視覺中的九種<b class='flag-5'>深度</b><b class='flag-5'>學習</b>技術
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>