
業(yè)界 | 作畫、寫詩、彈曲子,AI還能這么玩
隨著深度學(xué)習(xí)的發(fā)展,算法研究已經(jīng)進(jìn)入一個(gè)新的領(lǐng)域:人工智能生成藝術(shù)作品。除了研究機(jī)器人、語言識(shí)別、圖像識(shí)別、NLP 等等這些,AI 還能作畫、寫詩、彈曲子。驚不驚喜,意不意外?
隨著深度學(xué)習(xí)取得的成功,算法研究已經(jīng)進(jìn)入了另一個(gè)人類認(rèn)為不受自動(dòng)化技術(shù)影響的領(lǐng)域:創(chuàng)造引人入勝的藝術(shù)品。
在過去的幾年中,利用人工智能生成的藝術(shù)作品取得了很大的進(jìn)步,其結(jié)果可以在 RobotArt 和英偉達(dá)舉辦的 DeepArt 大賽中看到:
雖然這些模型的技術(shù)成就令人印象深刻,但人工智能和機(jī)器學(xué)習(xí)模型能否真的像人一樣具有創(chuàng)造性仍是一個(gè)爭(zhēng)論的焦點(diǎn)。有些人認(rèn)為,在圖像中建立像素的數(shù)學(xué)模型或者識(shí)別歌曲結(jié)構(gòu)中的順序依賴性并非什么真正具有創(chuàng)造性的工作。在他們看來,人工智能缺乏人類的感知能力。但我們也不清楚人類大腦正在做什么更令人印象深刻的事情。我們?cè)趺粗酪粋€(gè)畫家或者音樂家腦海中的藝術(shù)火花不是一個(gè)通過不斷練習(xí)訓(xùn)練出來的數(shù)學(xué)模型呢?就像神經(jīng)網(wǎng)絡(luò)這樣。
盡管「人工智能的創(chuàng)造力是否是真正的創(chuàng)造能力?」這一問題在短期內(nèi)還不太可能被解決,但是研究這些模型的工作原理可以在一定程度上對(duì)這個(gè)問題的內(nèi)涵作出解釋。本文將深入分析幾個(gè)通過機(jī)器生成的頂尖視覺藝術(shù)和音樂作品。具體而言,包括風(fēng)格遷移和音樂建模,以及作者所認(rèn)為的該領(lǐng)域未來的發(fā)展方向。
風(fēng)格遷移
你對(duì)風(fēng)格遷移可能已經(jīng)很熟悉了,這可以說是最著名的一種通過人工智能生成的藝術(shù)。如下圖所示:
這究竟是怎么做到的呢?我們可以認(rèn)為每張圖片由兩個(gè)部分組成:內(nèi)容和風(fēng)格。「內(nèi)容」就是圖片中所展示的客觀事物(如左圖中斯坦福大學(xué)的中心廣場(chǎng)),「風(fēng)格」則是圖畫的創(chuàng)作方式(如梵高《星月夜》中的螺旋、多彩的風(fēng)格)。風(fēng)格遷移是用另一種風(fēng)格對(duì)一幅圖像進(jìn)行二次創(chuàng)作的任務(wù)。
假設(shè)我們有圖像 c 和 s,c 表示我們想要從中獲取內(nèi)容的圖像,s 表示我們想要從中獲取風(fēng)格的圖像。令 y^ 為最終生成的新圖像。直觀地說,我們希望 y^ 具有與 c 相同的內(nèi)容、與 s 相同的風(fēng)格。從機(jī)器學(xué)習(xí)的角度來看,我們可以將這個(gè)任務(wù)形式化定義為:最小化 y^ 和 c 之間的內(nèi)容損失以及 y^ 和 s 之間的風(fēng)格損失。
但是我們?cè)撊绾蔚贸鲞@些損失函數(shù)呢?也就是說,我們?nèi)绾螐臄?shù)學(xué)上接近內(nèi)容和風(fēng)格的概念?Gatys,Ecker 和 Bethge 等人在他們具有里程碑意義的風(fēng)格遷移論文「A Neural Algorithm of Artistic Style」(https://arxiv.org/abs/1508.06576)中提出,這個(gè)問題的答案在于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的架構(gòu)。
假設(shè)你通過一個(gè)已經(jīng)被訓(xùn)練過的用于圖像分類 CNN 來饋送圖像。由于這樣的初始化訓(xùn)練,網(wǎng)絡(luò)中的每一個(gè)后繼層都被設(shè)置來提取比上一層更復(fù)雜的圖像特征。作者發(fā)現(xiàn)圖像的內(nèi)容可以通過網(wǎng)絡(luò)中某一層的特征映射來表示。然后,它的風(fēng)格就可以用特征映射通道之間的相關(guān)性來表示。這種相關(guān)性被存在了一個(gè)名為「Gram matrix」的矩陣中。
基于這種數(shù)據(jù)表征,作者將生成圖像的特征映射與內(nèi)容圖像之間的歐氏距離相加,從而構(gòu)建內(nèi)容損失。接下來,作者將每個(gè)風(fēng)格層特征映射的 Gram 矩陣之間的歐氏距離相加,從而計(jì)算風(fēng)格損失。在這兩個(gè)損失中,每一層的重要性都是根據(jù)一組參數(shù)來加權(quán),可以對(duì)這些參數(shù)進(jìn)行調(diào)優(yōu)以獲得更好的結(jié)果。
形式上,令 y^ 為生成的圖像,并令 ?j(x) 為輸入 x 的 第 j 層特征映射。相應(yīng)的內(nèi)容損失可以被計(jì)算為:
令 Gj(x) 為 ?j(x) 的 Gtam 矩陣。相應(yīng)的風(fēng)格損失可以用以下形式計(jì)算,其中 F 表示弗羅貝尼烏斯范數(shù)(Frobenius norm):
最后,我們用權(quán)重αj 和βj 對(duì)所有 L 層求和,從而得到總的損失函數(shù):
也就是說,這意味著整個(gè)網(wǎng)絡(luò)的損失函數(shù) Ltotal 僅僅是內(nèi)容損失和風(fēng)格損失的加權(quán)組合。在這里,α_j 和 β_j 除了用來每一層加權(quán),還要控制忠實(shí)重建目標(biāo)內(nèi)容和重建目標(biāo)風(fēng)格之間的權(quán)衡。在每一步訓(xùn)練中,作者根據(jù)損失函數(shù)更新輸入的像素,然后反復(fù)進(jìn)行這種更新操作,直到輸入圖像收斂到目標(biāo)風(fēng)格圖像。
前饋風(fēng)格遷移
對(duì)于我們想要生成的每張圖像來說,解決這個(gè)優(yōu)化問題都需要時(shí)間,因?yàn)槲覀冃枰獜碾S機(jī)噪聲完美地轉(zhuǎn)化到具有特定風(fēng)格的內(nèi)容。事實(shí)上,本文的原始算法要花大約兩個(gè)小時(shí)的時(shí)間來制作一張圖像,這種情況激發(fā)了更快處理的需求。幸運(yùn)的是,Jognson 等人(https://arxiv.org/abs/1603.08155)在 2016 年針對(duì)該問題發(fā)表了一篇后續(xù)論文,該文描述了一種實(shí)時(shí)進(jìn)行風(fēng)格遷移的方法。
Johnson 等人沒有通過最小化損失函數(shù)從頭開始生成圖像,而是采取了一種前饋方法,訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)直接將一種風(fēng)格應(yīng)用到指定的圖片上。他們的模型由兩部分組成——一個(gè)圖像轉(zhuǎn)化網(wǎng)絡(luò)和一個(gè)損失網(wǎng)絡(luò)。圖像轉(zhuǎn)化網(wǎng)絡(luò)將一個(gè)常規(guī)圖像作為輸入,并且輸出具有特定風(fēng)格的相同圖像。然而,這個(gè)新模型也要使用一個(gè)預(yù)先訓(xùn)練好的損失網(wǎng)絡(luò)。損失網(wǎng)絡(luò)將測(cè)量特征重構(gòu)損失,后者是(圖片內(nèi)容的)特征表示和風(fēng)格重建損失之間的差異,而風(fēng)格重建損失則是通過 Gram 矩陣計(jì)算的圖像風(fēng)格之間的差異。
在訓(xùn)練過程中,Johnson 等人將微軟「COCO」數(shù)據(jù)集(http://cocodataset.org/#home)中的一組隨機(jī)圖像輸入到圖像轉(zhuǎn)化網(wǎng)絡(luò)中,并且用不同的風(fēng)格創(chuàng)作這些圖像(比如《星月夜》)。這個(gè)網(wǎng)絡(luò)被訓(xùn)練用于優(yōu)化來自于損失網(wǎng)絡(luò)的損失函數(shù)組合。通過這種方法生成的圖片質(zhì)量與原始圖片質(zhì)量相當(dāng),而且這種方法生成 500 張大小為 256*256 的圖片時(shí)速度比之前快了令人難以置信的 1060 倍。這個(gè)圖像風(fēng)格遷移的過程需要花費(fèi) 50 毫秒:
在未來,風(fēng)格遷移可以被拓展到其它媒介上,比如音樂或詩歌。例如,音樂家可以重新構(gòu)思一首流行歌曲(比如 Ed Sheeran 的「Shape of You」),讓它聽起來有爵士的風(fēng)格。或者,人們可以將現(xiàn)代的說唱詩轉(zhuǎn)換成莎士比亞的五步抑揚(yáng)詩風(fēng)格。到目前為止,我們?cè)谶@些領(lǐng)域還沒有足夠的數(shù)據(jù)來訓(xùn)練出優(yōu)秀的模型,但這只是時(shí)間問題。
對(duì)音樂建模
生成音樂建模是一個(gè)難題,但是前人已經(jīng)在這個(gè)領(lǐng)域做了大量工作。
當(dāng)谷歌的開源人工智能音樂項(xiàng)目「Magenta」剛剛被推出時(shí),它只能生成簡(jiǎn)單的旋律。然而,到了 2017 年夏天,該項(xiàng)目生成了「Performance RNN」,這是一種基于 LSTM 的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),可以對(duì)復(fù)調(diào)音樂進(jìn)行建模,包括對(duì)節(jié)拍和力度進(jìn)行建模。
一首歌可以被看作一個(gè)音符序列,音樂便是一個(gè)使用 RNN 建模的理想用例,因?yàn)?RNN 正是為學(xué)習(xí)序列化模式而設(shè)計(jì)的。我們可以在一組歌曲的數(shù)據(jù)集合(即一系列代表音符的向量)上訓(xùn)練 RNN,接著從訓(xùn)練好的 RNN 中取樣得到一段旋律。可以在「Magenta」的 Github 主頁上查看一些演示樣例和預(yù)訓(xùn)練好的模型。
之前 Magenta 和其他人創(chuàng)作的音樂可以生成可傳遞的單聲道旋律或者時(shí)間步的序列,在每一個(gè)時(shí)間步上,最多一個(gè)音符可以處于「開啟」?fàn)顟B(tài)。這些模型類似于生成文本的語言模型:不同的是,該模型輸出的不是代表單個(gè)詞語的獨(dú)熱向量,而是代表音符的獨(dú)熱向量。
即使使用獨(dú)熱向量也意味著一個(gè)可能生成旋律的巨大空間。如果要生成一個(gè)由 n 個(gè)音符組成的序列——意味著我們?cè)?n 個(gè)時(shí)間步的每一個(gè)時(shí)間步上都要生成一個(gè)音符——如果我們?cè)诿總€(gè)時(shí)間步上有 k 個(gè)可以選擇的音符,那么我們最終就有 k 的 n 次方個(gè)有效向量序列。
這個(gè)空間可能相當(dāng)大,而且到目前為止我們的創(chuàng)作僅僅局限于單聲道音樂,它在每個(gè)時(shí)間步上只播放一個(gè)音符。而我們聽到的大多數(shù)音樂都是復(fù)調(diào)音樂。復(fù)調(diào)音樂的一個(gè)時(shí)間步上包含多個(gè)音符。想象一下一個(gè)和弦,或者甚至是多種樂器同時(shí)演奏?,F(xiàn)在,有效序列的數(shù)量是巨大的——2^(k^n)。這意味著谷歌的研究人員必須使用一個(gè)比用于文本建模的 RNN 更復(fù)雜的網(wǎng)絡(luò):與單個(gè)詞語不同,復(fù)調(diào)音樂中每個(gè)時(shí)間步上可以有多個(gè)音符處于「開啟」?fàn)顟B(tài)。
還有一個(gè)問題,如果你曾經(jīng)聽過電腦播放的音樂——盡管是人類創(chuàng)作的音樂——它仍然可能聽上去像機(jī)器人創(chuàng)作的。這是因?yàn)椋?dāng)人類演奏音樂時(shí),我們會(huì)改變節(jié)奏(速度)或者力度(音量),讓我們的表演有情感的深度。為了避免這種情況,研究人員不得不教該模型稍稍地改變節(jié)奏和力度?!窹erformance RNN」可以通過改變速度、突出某些音符以及更大聲或更柔和地演奏來生成聽起來像人類創(chuàng)作的音樂。
如何訓(xùn)練一個(gè)能有感情地演奏音樂的模型呢?實(shí)際上有一個(gè)數(shù)據(jù)集完美適用于這個(gè)目標(biāo)。雅馬哈電鋼琴比賽數(shù)據(jù)集包括現(xiàn)場(chǎng)演出的 MIDI 數(shù)據(jù):每首歌被記錄為一個(gè)音符序列,每一個(gè)音符都包含關(guān)于演奏速度(彈奏音符的力度)和時(shí)間的信息。因此,除了學(xué)習(xí)要演奏哪些音符,「Performance RNN」還利用人類表演的信息去學(xué)習(xí)如何演奏這些音符。
最近的這些發(fā)展就好比是一個(gè)用一根手指彈奏鋼琴的六歲孩子與一個(gè)富有感情地演奏更復(fù)雜樂曲的鋼琴演奏家之間的區(qū)別。然而,還有很多工作要做:「Performance RNN」生成的一些樣本仍然一聽起來就是人工智能生成的,因?yàn)樗鼈儧]有固定的音調(diào)或者像傳統(tǒng)歌曲那樣重復(fù)主題或旋律。未來的研究可能會(huì)探索該模型能夠?yàn)楣幕蛘咂渌麡菲髯鍪裁础?
但是就目前的情況而言,這些模型已經(jīng)發(fā)展到足以幫助人們創(chuàng)造他們自己的音樂的地步。
人工智能生成藝術(shù)作品的未來
過去幾年中,機(jī)器學(xué)習(xí)和藝術(shù)的交叉研究迅速發(fā)展。這甚至成為了紐約大學(xué)一門課程的主題。深度學(xué)習(xí)的興起對(duì)這個(gè)領(lǐng)域產(chǎn)生了巨大的影響,重新喚起了人們對(duì)表示和學(xué)習(xí)如圖片、音樂、文本等大量非結(jié)構(gòu)化數(shù)據(jù)的希望。
我們現(xiàn)在正在探索機(jī)器生成藝術(shù)作品的可能性。未來,我們可能會(huì)看到機(jī)器學(xué)習(xí)成為藝術(shù)家的工具,比如為草圖上色、「自動(dòng)完成」圖像、為詩歌或小說生成大綱等。
憑借更強(qiáng)的計(jì)算能力,我們可以訓(xùn)練能夠在諸如音頻、電影或其它形式復(fù)雜的媒介上泛化的模型。現(xiàn)在已經(jīng)有可以根據(jù)任何新文本生成相應(yīng)音頻和口型同步的視頻的模型。Mor 等人的「musical translation network」能夠在樂器和音樂流派之間進(jìn)行一種聲音風(fēng)格遷移。Luan 等人展示了適用于高分辨率圖像的真實(shí)風(fēng)格遷移。這種機(jī)器生成的媒體文件的潛在應(yīng)用價(jià)值是巨大的。
我們可以無休止地討論通過人工智能生成的藝術(shù)作品是否真正具有創(chuàng)造性。但或許可以從另一個(gè)角度來看待這個(gè)問題。通過對(duì)人類的創(chuàng)造力進(jìn)行數(shù)學(xué)化建模的嘗試,我們開始對(duì)人類的藝術(shù)作品為何如此具有感染力有了更深刻的理解。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10CDA 數(shù)據(jù)分析師:商業(yè)數(shù)據(jù)分析實(shí)踐的落地者與價(jià)值創(chuàng)造者 商業(yè)數(shù)據(jù)分析的價(jià)值,最終要在 “實(shí)踐” 中體現(xiàn) —— 脫離業(yè)務(wù)場(chǎng)景的分 ...
2025-09-10