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

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

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

如何利用非監(jiān)督學(xué)習(xí)實現(xiàn)了不同音樂間的樂器、體裁和風(fēng)格間的轉(zhuǎn)換

nlfO_thejiangme ? 來源:未知 ? 作者:李倩 ? 2018-06-16 16:09 ? 次閱讀

Facebook上月末發(fā)表了一篇名為“A Universal Music Translation Network”的文章(原文鏈接在文末),詳細闡述了如何利用非監(jiān)督學(xué)習(xí)實現(xiàn)了不同音樂間的樂器、體裁和風(fēng)格間的轉(zhuǎn)換。相信小伙伴們或多或少地了解過這篇論文。

但是如果從音樂家的角度來看這個過程是如何進行的呢?本文將從四個不同的層次帶領(lǐng)我們更深入地理解這篇論文中所描述的方法,看看到底是什么神奇的魔力將長笛的悠揚轉(zhuǎn)換為了鋼琴的動聽的。

level-0:新手

對于新手來說想要快速實現(xiàn)風(fēng)格轉(zhuǎn)換,傅里葉變換將是一個不錯的手段。利用頻譜分析將會迅速的找出對應(yīng)的和弦和音符并在新的樂器上演奏出來。事實上傳統(tǒng)的處理方法提供了一系列這樣的手段:通過解碼器與基于本征樂器的樂器歸一化方法或者復(fù)調(diào)方法來實現(xiàn)。每一種樂器都有獨特的音符集和時域瞬態(tài)特征,但困難的是即使對于單一樂器來說,其頻譜包絡(luò)在不同的音高下并不服從同峰值模式。同時還有不同的泛音和諧頻需要處理。所有的這些使得音樂在不同樂器間的風(fēng)格轉(zhuǎn)換十分困難。

level-1:深度學(xué)習(xí)專業(yè)的同學(xué)

如果擁有一點樂理基礎(chǔ)的話,可以使用CNN模型通過MIDI格式的音樂生成的label來學(xué)習(xí)音樂的表達和轉(zhuǎn)錄。MIDI是一種在合成器中常用的數(shù)字音樂,每一個鍵被按下或者抬起都意味著一次事件的觸發(fā)??梢酝ㄟ^如MAPS一樣的數(shù)據(jù)集來實現(xiàn)復(fù)調(diào)鋼琴音樂的轉(zhuǎn)錄問題。

level-2:NLP學(xué)者將如何處理呢?

NLP學(xué)者最有可能使用的方法應(yīng)該是sequence to sequence模型了,但這種方法需要同時追蹤原始樂器和目標樂器的發(fā)音序列。

level-3:直接學(xué)習(xí)轉(zhuǎn)換和鄰域歸一化

對于十分優(yōu)秀的音樂家來說,他們會明白每一種樂器之間的細微差別是MIDI所不能捕捉到的,而這個問題就是facebook文章中的創(chuàng)新所在。研究人員借鑒了wavenet的自回歸架構(gòu)并充分利用它將這一問題轉(zhuǎn)換為了“下一個音符是什么”的類似問題,從而將其變成了一個非監(jiān)督問題來解決。

wavenet本質(zhì)上使用隨學(xué)習(xí)過程不斷擴大的卷積得到了增加的感受野,從而可以得到更好的預(yù)測結(jié)果和包含更為豐富特征的隱含空間。這些特征抓住了人類聲音和樂器聲音的本質(zhì),就像cnn中抽取的圖像特征一樣。此時如果你想要通過學(xué)習(xí)一個自回歸模型來預(yù)測鋼琴的下一個音調(diào),你只需要簡單的學(xué)習(xí)一對兒wavenet編碼器和解碼器。編碼器將把原始的音樂序列投射到隱含空間中,而解碼器將盡力理解隱含空間的中的數(shù)值并解碼成下序列的下一個值。

是不是很奇妙?如果一個模型可以編碼鋼琴但解碼成其他樂器是不是就可以實現(xiàn)音樂在不同樂器間的轉(zhuǎn)換啦?這就是FacebookAI研究人員的努力。他們利用一個相同的編碼器對多種樂器進行編碼,而后利用不同的解碼器實現(xiàn)不同樂器的解碼,實現(xiàn)了多種樂器之間的風(fēng)格互轉(zhuǎn)。那么它是如何工作的呢?下面讓我我們來具體看一看。

多個樂器間共享同一個解碼器會迫使這個解碼器去學(xué)習(xí)音樂間的相同特征。但對于解碼器來說,我們需要告訴它這到底是什么樂器,需要解碼的目標域是什么。這就需要對于不同樂器的域訓(xùn)練特殊的解碼器來實現(xiàn)。論文中使用了對抗的方法來實現(xiàn)這一目標。由于通用的潛在空間希望去尋找通用的特征而忽略了每種樂器的特殊性,而混淆矩陣則希望分割共同特征中不同的表達并盡可能的實現(xiàn)不同的類別特征。通過特殊與一般之間的對抗得到了兩個性能強大的編碼和解碼模型。值得注意的是要想同時獲得兩個性能優(yōu)異的編解碼模型,需要仔細地選擇正則化系數(shù)來實現(xiàn)。

讓我們來看看這個模型的損失函數(shù)。具體的訓(xùn)練過程是這樣的,首先在不同樂器的域中選取一個樣本sj,隨后利用隨機變調(diào)來避免模型無腦地對數(shù)據(jù)進行記憶。論文中對0.25-0.5s長的樣本使用了-0.5-0.5的半步變調(diào),可以用O(sj,r)來表示,其中r是隨機種子。你也許會對這一步感到疑惑,但使用過谷歌magenta模型或者瞬時生成模型的人都會有這樣的經(jīng)歷,有的時候模型會像鸚鵡學(xué)舌一樣簡單的重復(fù)記憶下的序列,簡直是公然的過擬合了。而這就是數(shù)據(jù)增強和偏移過程的關(guān)鍵所在,也是訓(xùn)練多種樂器的編碼器關(guān)鍵所在。

隨后增強數(shù)據(jù)通過wavenet編碼器中擴大的卷積層轉(zhuǎn)換到了隱含空間中,并通過對應(yīng)的解碼器Dj還原到了其對應(yīng)的樂器空間中并預(yù)測出了下一個音符輸出。研究人員通過交叉熵比較實際的下一個輸出和預(yù)測的下一個輸出來計算損失函數(shù)。其中第一項代表重建誤差要盡可能的小,而第二項領(lǐng)域分類的誤差則用于盡可能的分開不同域的特征,這也是網(wǎng)絡(luò)進行對抗訓(xùn)練的表現(xiàn)。作為一個對抗模型,一個監(jiān)督的正則項通過后編碼的特征矢量用于預(yù)測不同的域。它被稱為域混淆網(wǎng)絡(luò)(Domain Confusion Network)。

網(wǎng)絡(luò)在實際工作過程中,輸入的一個交響樂片段會被轉(zhuǎn)換和翻譯為一種特殊的樂器,但這個模型最令人驚嘆的能力還不止于此。當(dāng)輸入一種模型從未見過的樂器時,通過自動編碼和解碼過程它依然可以完美的工作!這證明了模型中的編碼器確實可以提取出音樂中的一般化特征并在隱含空間中表示出來,及時沒有見過這個樂器。這是很多生成算法的核心概念,像GANs和變分自編碼都利用這一思想創(chuàng)造了很多迷人的工作。

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

    關(guān)注

    3

    文章

    1429

    瀏覽量

    54759
  • 傅里葉變換
    +關(guān)注

    關(guān)注

    6

    文章

    441

    瀏覽量

    42600
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5503

    瀏覽量

    121170

原文標題:深度解析Facebook的音樂轉(zhuǎn)換AI模型

文章出處:【微信號:thejiangmen,微信公眾號:將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    監(jiān)督學(xué)習(xí)-Hierarchical clustering 層次聚類python的實現(xiàn)

    【深度學(xué)習(xí)基礎(chǔ)-17】監(jiān)督學(xué)習(xí)-Hierarchical clustering 層次聚類-python實現(xiàn)
    發(fā)表于 04-28 10:07

    如何用卷積神經(jīng)網(wǎng)絡(luò)方法去解決機器監(jiān)督學(xué)習(xí)下面的分類問題?

    人工智能下面有哪些機器學(xué)習(xí)分支?如何用卷積神經(jīng)網(wǎng)絡(luò)(CNN)方法去解決機器學(xué)習(xí)監(jiān)督學(xué)習(xí)下面的分類問題?
    發(fā)表于 06-16 08:09

    基于半監(jiān)督學(xué)習(xí)的跌倒檢測系統(tǒng)設(shè)計_李仲年

    基于半監(jiān)督學(xué)習(xí)的跌倒檢測系統(tǒng)設(shè)計_李仲年
    發(fā)表于 03-19 19:11 ?4次下載

    基于半監(jiān)督學(xué)習(xí)框架的識別算法

    人體行為識別是計算機視覺研究的熱點問題,現(xiàn)有的行為識別方法都是基于監(jiān)督學(xué)習(xí)框架.為了取得較好的識別效果,通常需要大量的有標記樣本來建模.然而,獲取有標記樣本是一個費時又費力的工作.為了解決這個
    發(fā)表于 01-21 10:41 ?1次下載

    英偉達通過利用GAN及無監(jiān)督學(xué)習(xí),實現(xiàn)場景的四季轉(zhuǎn)換

    英偉達近期在GAN相關(guān)研究和應(yīng)用方面進展迅猛,在前一陣的成果展示中,通過利用生成對抗網(wǎng)絡(luò)(GAN)及無監(jiān)督學(xué)習(xí)兩種深度學(xué)習(xí)技術(shù),實現(xiàn)場景
    發(fā)表于 05-16 15:55 ?2557次閱讀

    你想要的機器學(xué)習(xí)課程筆記在這:主要討論監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)

    with experience E(一個程序從經(jīng)驗E中學(xué)習(xí)解決任務(wù)T進行某一任務(wù)量度P,通過P測量在T的表現(xiàn)而提高經(jīng)驗E(另一種定義:機器學(xué)習(xí)是用數(shù)據(jù)或以往的經(jīng)驗,以此優(yōu)化計算機程序的性能標準。) 不同類型的機器學(xué)習(xí)算法:主要
    發(fā)表于 12-03 17:12 ?553次閱讀

    如何用Python進行無監(jiān)督學(xué)習(xí)

    監(jiān)督學(xué)習(xí)是一種用于在數(shù)據(jù)中查找模式的機器學(xué)習(xí)技術(shù)。無監(jiān)督算法給出的數(shù)據(jù)不帶標記,只給出輸入變量(X),沒有相應(yīng)的輸出變量。在無監(jiān)督學(xué)習(xí)中,算法自己去發(fā)現(xiàn)數(shù)據(jù)中有趣的結(jié)構(gòu)。
    的頭像 發(fā)表于 01-21 17:23 ?4261次閱讀

    機器學(xué)習(xí)算法中有監(jiān)督和無監(jiān)督學(xué)習(xí)的區(qū)別

    監(jiān)督學(xué)習(xí)的好處之一是,它不需要監(jiān)督學(xué)習(xí)必須經(jīng)歷的費力的數(shù)據(jù)標記過程。但是,要權(quán)衡的是,評估其性能的有效性也非常困難。相反,通過將監(jiān)督學(xué)習(xí)算法的輸出與測試數(shù)據(jù)的實際標簽進行比較,可以很容易地衡量
    的頭像 發(fā)表于 07-07 10:18 ?5772次閱讀

    最基礎(chǔ)的半監(jiān)督學(xué)習(xí)

    導(dǎo)讀 最基礎(chǔ)的半監(jiān)督學(xué)習(xí)的概念,給大家一個感性的認識。 半監(jiān)督學(xué)習(xí)(SSL)是一種機器學(xué)習(xí)技術(shù),其中任務(wù)是從一個小的帶標簽的數(shù)據(jù)集和相對較大的未帶標簽的數(shù)據(jù)中學(xué)習(xí)得到的。SSL的目標是
    的頭像 發(fā)表于 11-02 16:08 ?2655次閱讀

    監(jiān)督學(xué)習(xí)最基礎(chǔ)的3個概念

    有趣的方法,用來解決機器學(xué)習(xí)中缺少標簽數(shù)據(jù)的問題。SSL利用未標記的數(shù)據(jù)和標記的數(shù)據(jù)集來學(xué)習(xí)任務(wù)。SSL的目標是得到比單獨使用標記數(shù)據(jù)訓(xùn)練的監(jiān)督學(xué)習(xí)模型更好的結(jié)果。這是關(guān)于半
    的頭像 發(fā)表于 11-02 16:14 ?2969次閱讀
    半<b class='flag-5'>監(jiān)督學(xué)習(xí)</b>最基礎(chǔ)的3個概念

    為什么半監(jiān)督學(xué)習(xí)是機器學(xué)習(xí)的未來?

    揭示添加無監(jiān)督數(shù)據(jù)可以提高模型泛化和性能。事實上,在非常多的場景中,帶有標簽的數(shù)據(jù)并不容易獲得。半監(jiān)督學(xué)習(xí)可以在標準的任務(wù)中實現(xiàn)SOTA的效果,只需要一小部分的有標記數(shù)據(jù) 數(shù)百個訓(xùn)練
    的頭像 發(fā)表于 11-27 10:42 ?3910次閱讀

    監(jiān)督學(xué)習(xí):比監(jiān)督學(xué)習(xí)做的更好

    監(jiān)督學(xué)習(xí)是人工智能領(lǐng)域的第一種學(xué)習(xí)類型。從它的概念開始,無數(shù)的算法,從簡單的邏輯回歸到大規(guī)模的神經(jīng)網(wǎng)絡(luò),都已經(jīng)被研究用來提高精...
    的頭像 發(fā)表于 12-08 23:32 ?1414次閱讀

    機器學(xué)習(xí)中的無監(jiān)督學(xué)習(xí)應(yīng)用在哪些領(lǐng)域

    監(jiān)督學(xué)習(xí)|機器學(xué)習(xí)| 集成學(xué)習(xí)|進化計算| 監(jiān)督學(xué)習(xí)| 半監(jiān)督學(xué)習(xí)| 自
    發(fā)表于 01-20 10:52 ?4970次閱讀
    機器<b class='flag-5'>學(xué)習(xí)</b>中的無<b class='flag-5'>監(jiān)督學(xué)習(xí)</b>應(yīng)用在哪些領(lǐng)域

    監(jiān)督學(xué)習(xí)的一些思考

    監(jiān)督學(xué)習(xí)的流行是勢在必然的。在各種主流有監(jiān)督學(xué)習(xí)任務(wù)都做到很成熟之后,數(shù)據(jù)成了最重要的瓶頸。從無標注數(shù)據(jù)中學(xué)習(xí)有效信息一直是...
    發(fā)表于 01-26 18:50 ?1次下載
    自<b class='flag-5'>監(jiān)督學(xué)習(xí)</b>的一些思考

    深度學(xué)習(xí)中的無監(jiān)督學(xué)習(xí)方法綜述

    應(yīng)用中往往難以實現(xiàn)。因此,無監(jiān)督學(xué)習(xí)在深度學(xué)習(xí)中扮演著越來越重要的角色。本文旨在綜述深度學(xué)習(xí)中的無監(jiān)督學(xué)習(xí)方法,包括自編碼器、生成對抗網(wǎng)絡(luò)、
    的頭像 發(fā)表于 07-09 10:50 ?736次閱讀