2020年3月13日 星期五

讀書筆記 - Deep Learning for Human Language Processing (Course Overview) ~ 李鴻毅教授

出處:李鴻毅教授 youtube : https://www.youtube.com/watch?v=nER51ZyJaCQ

以下圖文均出自李鴻毅教授 youtube 影片,本篇僅用於閱讀後筆記供日後快速搜尋索引使用,相關版權均為原作者所有。


深度學習與人類語言處理

本課程的目的:我們能不能讓機器跟人用人類所熟悉的語言自然互動,人類說一句話能不能讓機器聽的懂,當寫一段文字機器能不能看得懂,反之亦然,背後使用的是深度學習的技術。
一般人更熟析自然語言處理,人類在自然而然情境下發展出互相溝通的語言,相對於 (相反) 另一種語言即為人造語言如 Java, Python,自然語言一種是寫的文字另一種是說的語音
本課程也可叫「深度學習與自然語言處理」

不以此為命名的原因是因為自然語言通常 focus 在文字而非語音 (文字和語音約 9:1),但本課語音和文字為 5:5,因此本課程為深度學習與人類語言處理,語音不止語音辨識,很多語言連文字都沒有所以需要透過語音,人類民族網經計只有 56% 語言有文字,。

沒有人可以說同一段話兩次,雖然你可以說你好你好,但這兩個你好的聲音訊號都不會一模一樣。NO MAN EVER STEPS IN THE SAME RIVER TWICE FOR IT'S NOT THE SAME RIVER AND HE'S NOT THE SAME MAN ~ 古希臘哲學家赫拉克利特 (因為踩第二次的時候,河流已經改變,人也已經改變。 ref : https://tripnotice.com/blog/2016/11/16/quote_same_river_twice)

語音是用多少 K 赫茲 sample points 來調適你的語音,如一秒鐘有 16K 的 sample points。文字也很複雜 (from The Language Instinct: How the Mind Creates Language (Steven Arthur Pinker),有一本小說句子高達 13955 個字,探討最長的句子沒有義意,因為只要再最長的句子前加上該句話作者所寫,就比最長句子更長,重點在於由此可知人類的語言可以有多複雜,因句子可以擁有無窮無盡的長度。

本課程可濃縮在一張投影片內,我們要學習的模型就下面六種:
語音轉文字、文字轉語音、語音轉語音、文字轉文字、語音轉屬於什麼類別、文字轉屬於什麼類別

Model 用 Deep Network,如 End-to-End Network,seq2seq model,硬 Train 一發就可以解決語音辨識嗎? 硬 Train 一發是信念與夢想,在符合三種條件1) 問題拿來不想太多直接  Deep Learning Train 下去 2) 旁邊有人不屑的說這 Train 不起來吧 3) 最後有一個人說哇竟然 Train 出來了,真的就能解決嗎?

2014 年年底在有 seq2seq model 硬 Train 一發可解大多數人類語言相關問題,是否真的就能完全解決人類語言問題,本課程只講最新的研究發展,在硬 Train 一發可解決時,還有什麼進展。

MODEL 1 : 輸入語音到 model 輸出文字:傳統語音辨識模型相當複雜,需要把所有模型都學通並組起來,才能做語音辨識的功能,主要需要 Acoustic Model 聲學模型、一個 Language Model 語言模型還需要一個 Lexicon 辭典,以及抽好的 Input Speech,此型相當大,目前只需要一個 End-to-End Network 技術直接 Train 下去就是一個語音辨識系統,如 Pixel 4 離線時的語音辨識就是一個深度學習的語音辨識系統,一個類神經網路,只需要 80MB,且非一般的 seq2seq model,語音辨識通常稱為 ASR。
MODEL 2 : 輸入文字到 model 輸出語音:為語音合成,做一個神經網路輸入文字,輸出語音就結束,且效果很好,在 INTERSPEECH'19 1980s 流行一個句子Jelinek : 「每次我開除一個語音學家時我的語音系統就變好了」 (有相當多版本已不確定當時作者講這句話在什麼境下), Tokuda 第一次聽到用 NN 訓練出來的語音,感想是:「把做語音技術的學者開除,語音的 performance (指正確度) 就變好了」指用神經網路做出的語音合成效果驚人,直接硬 Train 一波不用做什麼研究,好像 NN 就可以解決語音技術了嗎?
但會遇到以下問題,如「發財發財發財發財」訓練完就會有抑揚頓挫,但到了「發財」時,聲音變的很奇怪 (只有財的音,發的音被蓋掉),有一定的機率會壞掉是否能解?

Google 小姐曾經發生破音 (目前 google 小姐的問題已修正,要看教授 youtube 連結),發現單一個字會破音,但如果破音的單字連在一起發音就正常,但因為是 NN 自己 Training 出來的,尚待剋服

在來是輸入一段聲音訊號,輸出一段聲音訊號,如兩個人對話透過 NN model 把兩人的語音拆開來 (Speech Separation, 雞尾酒會效應,人類有能力可以專心在你想要聽的內容 or 某個人身上),機器用了 Deep Learning 也有一定的進展 (DEMO),可用機器分離兩個人的對話,不需要訊號處理的技術,就是硬 Train 一發連 Fourier Transform (快速傅立葉變換) 都沒有用到。

也可以應用 Voice Conversion,像是柯南講話後改變成其他人的聲音

最簡單方法是把 A 和 B 找來,兩個一起說相同的句子,然後進行訓練讓機找到 A transfer to B 的函式自動學會 A 轉成 B,但此法不切實際,如要某位明星的聲音,你不可能真的能找得來那位明星,所以還要看是否能即使不同句子,只要有聲音即可訓練出來? (One-shot learning 教授說「是否要來念博班」,透過新桓結衣的聲音講出「是否要來念博班」)

Speaker Recongnition : 輸入一段聲音,判斷聲音是哪個類別,輸入一段聲音判斷出是誰講的,或是 Keyword Spotting : 檢測出句子中是否有某個關鍵字技術,如像語音助理會認 Hi Siri,表示你叫他,他要能偵測的出語音中有這個關鍵字,需要喚醒辭的技術則要不斷聽到你的聲音,但如果要機器持序的聽環境音是否有喚醒辭則要花費大量的資源,除了準確外還要注意省電。

喚醒辭的故事:2017.1 德州有一個小女孩,跟 Alexa 聊天要玩娃娃屋,Alexa 回覆好,他家就收到一個娃娃屋和高額帳單,後來上了新聞,主播說我喜歡那個「Alexa 給我買娃娃屋」的小女孩,然後就啟動電視機前的 Alexa 都要去買娃娃屋。

漢堡王想了一個廣告 (DEMO),漢堡王想要廣告華堡,詢問 google 華堡裡有什麼東西,而 Google 去看 wikipedia 的內容,且漢堡王已經在 wikipedia 輸入了華堡的內容, 但廣告上架前被改變內容由帳號 Fermachado123 (剛好 Burger King IG 帳號也是這個),所以大家都知道 Google 是內 wikipedia 的內容,於是開始大量亂改 wikipedia,後來 google 修正,當廣告播出時會有大量的人湧入查詢華堡是什麼,就把大量相同 Request 關掉讓此廣告失效。

以上說明語音功能在現今已相當普及,應用於購物和廣告。

再來如果輸入的是文字,有什麼技術來進行處理,BERT (谷歌最强 NLP 模型) 語言代表模型BERT 是 NLP 界的巨人之力之一

BERT 前身是 ELMO,後面的模行都芝麻街的人型,ERNIE 還有兩個且完全不同

ELMO 有 94 M,BERT 有 340 M,GPT-2 有 1542M 參數,到後期 T5 11G

上面講的是輸入文字,那輸出文子有什麼要注意的,可透過 RNN 把文字一個一個輸出此為 Autoregressive Model,但在 NLP 的領域有 Non-autoregressive,為什麼一個句子一定要由左而右生成,是否有更好的方法生成順序,如先產生 dream,再產生誰的 Dream,是我的,最後再輸出夢想與我之間是什麼關係以及有幾個,這樣的順序去產生句子是否有更好的方式。

輸入是文字,輸出是文字有哪些功能可用,1. 輸入 A 語言輸出 B 語言 - 翻譯,2. 輸入是長篇大論輸出是摘要 - 文章自動截取摘要,3. 輸入是問句輸出是答案 - 聊天機器人,4. 輸人文章和問題輸出是文章中問題的答案,就可以做問題回答系統。

多數 NLP 問題,有些看不出是輸入文字輸出文字的問題,均可轉化成輸入文字輸出文字,如文法剖析,讓機器讀一段文字讓機器產生一棵文法剖析樹,但可以把文法剖析樹看成是一段文字,用 seq2seq 硬 Train 文字成剖析樹文字,再用來做 syntax parsing。

Meta Learning 學習如何學習 (learning to learning),演算法是人設計的,人的智慧有限演算法的能力也有限,有沒有可能讓機器自己設計出學習演算法解更複雜問題,讓機器想出更好的演算法,在人類處理語言上處理的更好,Meta Learning 讓機器在很多任務上進行學習,規納出更好的學習方法,變成更利害的學習者,可用更少資料和時間學會。如在 Bengali, Taralog, Zulu 這些語言的找出學習語音辨識演算法,在學新語言可以學的更快更好。

Learning from unpaired Data : 如同影像上可用 Image Style Transfer 將兩種圖像的風格進行轉換,這個技術是否能應用於 Voice Conversion 可把兩人不同語音當成兩種風格在語音間換轉,長文和摘要視為不同風格間互轉,英文和中文視為不同風格間互轉,語音和文字視為不同風格間互轉。

能不能讓機器閱讀了某些文章後,把學到的知識放到模型。

Adversarial Attack : 給圖片加一些人看不出來的擾動,卻讓影像辨識系統崩壞,影像可被攻擊,語音也相同可以被攻擊,Anti-spoofing 可判斷聲音訊號是否錄音 or 語音合成的聲音,但如果加入一些人聽不出來的雜訊突破 Anti-spoofing 的防守。NLP 文字也有問題,如機器讀了文件後你問他問題機器可以幫你找出答案 (為何人要走路,機器會要運動),但如果文張都加入 why how because to kill xxx people,所有的答案都會變 to kill xxx people。

看圖辨識是什麼類別,文字語音是否能做到相同的事情 (同前面說的文章中問一個問題,並回答該文章中此問題的答案)

沒有留言:

張貼留言

How to install & specified python version or distreibtuion package version in google colab

在買了 RTX 3080 要來 挖礦...  嗯~是跑機器學習後,結果發現了 GOOGLE COLAB,其實之前在「GAN 對抗式生成網路」一書就有看到,但資訊人就是什麼都想自己安裝,在本機用 Anaconda + pyCharm 弄了 GPU 環境,結果有天從新竹回家發現家裡沒...