CrashCourse AI系列課程第8集:訓練語音機器人

2020-12-14 澎湃新聞

STEAM在線

以下文章來源於大小孩er ,作者墨先sen

大小孩er

創新教育產品經理&學習科學研究僧

CrashCourse AI系列課程第8集:訓練語音機器人。

我們今天的目標是編寫一個程序,讓John Green bot接到像「早上好」這樣的字詞提示後,完成句子。

像任何AI一樣,John Green bot不會真正懂得語言,但人工智慧通常在找到並複製模式方面做的很好。當我們教人工智慧系統去理解並產生語言時,實際要求它可以查找並複製某些行為中的模式。

所以要建立自然語言處理的AI模型,我們需要做四件事:

首先,收集並清理數據;

其次,建立模型;

第三,訓練模型;

第四,做出預測。

00

準備工作

說明:實際操作需科學上網和谷歌帳號,如條件不具備,可跳過這一步直接看步驟介紹。

1.打開連結:

https://colab.research.google.com/drive/1f8ik5kSPEvDCcM7R_-Wb3AjifizVEsHD

2. 登錄谷歌帳號

3. 選擇「在Playground模式下打開」。

4.跟著課程點擊左上角的「播放」按鈕,依次運行每段代碼即可(注意如不從上到下依次運行,可能會報錯)

Step 1

收集並清理數據

讓我們從第一步開始:清理數據

在這種情況下,數據是很多人類John Green談話的例子,在網上有很多這樣的對話。我們需要某種方式來處理他的講話,該怎麼做呢?

答案是:字幕。

在nerdfighteria wiki上有一個完整的字幕文件資料庫,我收集了一堆文件放進一個大文件裡。

所以如果你想讓你的人工智慧聽起來像其他人,像來自vsaucoor我的Michael,如步驟1.1所示:加載字幕文本。

數據收集通常是任何機器學習項目中最困難和最慢的部分,但是在這個例子中它非常簡單。

現在我們需要清理和準備我們的數據模型,這被稱為數據預處理。

計算機只能把數據當作數字來處理,所以我們需要把句子分成幾個單詞,然後把單詞轉換成數字。

當我們在構建一個自然語言處理程序時,「詞」這個詞可能無法囊括我們需要知道的一切,一個單詞有多少個實例也很有用。

因此,我們將使用詞法類型和詞法標記,詞彙類型是一個詞,詞彙標記是一個詞的具體實例,包括一些重複的。

例如,在這句話中:The goal of machine learning is to make a learning machine.我們有十一個詞彙標記,但只有九個詞彙類型,因為「學習」和「機器」都會出現兩次。

在自然語言處理中,標記化是將句子分割成詞彙標記列表的過程。在英語中,我們在單詞之間加空格,所以我們先把句子的空格切掉。

「Good morning Hank, it’s Tuesday.」 會變成下面的列表,並且我們會獲得五個詞彙標記。

但是,這樣會有一些問題:我們不是真的想要Hank和Tuesday後面的逗號也算一個詞彙類型。

所以,讓我們為標點符號添加一些額外的規則,幸運的是有預先編寫好的庫。使用其中一個,列表看起來像這樣:

在這種情況下,我們將有8個標記而不是5個,標記化甚至有助於將我們的縮寫「it's」分解為「it」和「撇號-s」

回顧1.1中的代碼,在符號化之前,我們有超過30000種詞彙類型。

此代碼還將我們的數據拆分為一個訓練數據集和一個驗證數據集。我們想確保模型能從訓練數據中學習,也用以前從未見過的新數據來測試它。這就是驗證數據集的目的。

在步驟1.3中,我們可以用這段代碼來計算我們的詞彙類型和詞彙標記。

看起來我們實際上有23000種獨特的詞彙類型,但是一個單詞有多少個實例也是有用的。

步驟1.4的代碼允許我們區分兩次以上的詞彙類型。

看起來我們有很多罕見的單詞——幾乎10000個單詞只出現一次!

對於人工智慧系統來說,擁有罕見的單詞是非常棘手的,因為他們想要找到並複製模式。所以他們需要很多如何使用每個單詞的例子。

對於John Green bot的人工智慧來說,僅僅使用這個數據集是很難學習的。但是如果我們利用形態學似乎是可行的。

形態學是一個單詞通過變形來匹配時態的方式,就像加上一個「ed」來構成過去時態,或者縮短或組合單詞使之成為另一個詞。

在英語中,我們可以通過一個稱為詞幹處理的過程來刪除許多額外的詞尾,如ed、ing或ly。因此,通過一些簡單的規則,我們可以清理更多的數據。

我還將通過用#或其他符號替換數字來簡化數據(step1.6;step1.7)。這應該可以關照到很多罕見的詞。

現在我們減少了3000種詞彙類型,只有8000個單詞只出現一次。

我們確實需要每個單詞的多個例子來讓我們的AI可靠地學習模式,所以我們將通過用「unk」或「未知」來替換這8000個或幾乎所有罕見的詞彙標記來簡化。

我們不希望John Green bot看到一個他不知道的詞而感到尷尬。因此,通過隱藏一些單詞(step1.8;step1.9),我們可以教John Green bot在遇到像」殭屍寶寶」這樣的一次性拼湊詞時如何繼續寫作。

現在我們終於把所有的數據都整理好了.

Step 2

建立模型

我們已經完成了預處理,可以進入第2步:為John Green bot建立模型。

首先,我們需要將句子轉換為數字列表。

我們希望每個詞彙類型都有一個單詞,所以我們將構建一個詞典,它將詞彙中的每個單詞分配給一個數字。

第二,這個模型可以同時閱讀一堆單詞,我們想利用這些來幫助John Green bot快速學習。所以我們要把我們的數據分成幾個部分,叫做批量處理。

在這裡,我們告訴模型同時讀取20個序列(每個序列有35個單詞)

我們將用一個簡單的語言模型對John Green bot進行編程,這個模型只需要幾個單詞,之後AI試圖完成句子的其餘部分。

所以需要兩個關鍵部分,一個嵌入矩陣和一個遞歸神經網絡。

正如我們上節課在自然語言處理視頻中所討論的,這是一個「編碼器-解碼器」框架。所以我們把它拆開。

嵌入矩陣是一個很大的向量列表,基本上是一個很大的數字表,其中每一行對應一個不同的單詞。

這些向量行捕獲兩個詞之間的關聯程度。如果兩個詞的用法相似,那麼它們向量中的數字應該是相似的。

但首先,我們對單詞一無所知,所以我們只是給每個單詞分配一個帶有隨機數的向量(step2.1)。

我們在訓練數據中用數字替換了所有的單詞,所以現在當系統讀取一個數字時,它只需在表中查找該行並使用相應的向量作為輸入。

第一部分完成了:單詞成為索引,然後成為向量,我們的嵌入矩陣就可以使用了。

現在,我們需要一個能夠智能地使用這些向量的模型。這就是RNN的來歷。我們在上一個視頻中也討論了遞歸神經網絡的結構,但它基本上是一個模型,通過一次合併一個新詞來慢慢地建立一個隱藏的表徵。

根據任務的不同,RNN將以不同的方式組合新知識。有了John Green bot,我們用Vlogbrothers腳本中的單詞序列來訓練RNN。

最終,我們的人工智慧試圖建立一個良好的匯總,以確保一個句子有一些整體意義,它持續跟蹤最後一個單詞,以產生一個句子,聽起來就像說英語了。

在閱讀完一個句子的最後一個單詞之後,RNN的輸出就是我們用來預測下一個單詞的內容。

這就是我們將用來訓練John Green bot的方法。所有這些都包含在代碼塊2.3中。

所以第二部分就完成了。我們有了嵌入矩陣和RNN。

Step 3

訓練模型

現在,我們準備好了第三步:訓練我們的模型。

還記得我們將數據分割成稱為批處理的片段嗎?還記得之前課程中,我們用反向傳播訓練神經網絡嗎?、

我們可以把這些片段放在一起,在我們的數據集上迭代,並對每個示例運行反向傳播來訓練模型的權重。

所以在步驟3.1中,我們定義了如何訓練我們的模型。

在步驟3.2中,我們定義了如何評估我們的模型。

在步驟3.3中,我們實際上創建了我們的模型。實際上就是訓練和評估的過程。

在訓練這個模型的每一次迭代,神經網絡將循環遍歷每一批數據——讀入、構建表徵、預測下一個單詞,然後更新猜測。這將訓練超過10次迭代,可能需要幾分鐘。

我們在每一次迭代後列印兩個數字,模型的訓練和驗證問題在於:隨著模型的學習,它意識到下一個單詞的好選擇越來越少,衡量模型的好像縮小選擇了選擇範圍。看起來這個模型是經過訓練的,它的perplexity是訓練45個,驗證72個,但是它開始的時候有幾百個perplexity !

我們可以把perplexity解釋為模型在預測正確答案之前做出的猜測的平均數。

在看過一次數據之後,該模型需要對下一個單詞進行300次以上的猜測,但現在它已經縮小到了不到50次。

儘管它遠不及完美,這是一個相當好的改進。

Step 4

做出預測

是時候看看模型能寫些什麼了,但要做到這一點,我們需要最後一個要素。

到目前為止,在人工智慧速成課程中,我們已經討論了很多關於人工智慧所能做出的最好的標籤或最好的預測,但是這對於解決某些問題並不總是有意義的。

如果你總是讓角色做一件顯而易見的事情來,那就太無聊了。

所以第四步是預測。機器可以做出一些選擇,但我們仍然可以幫助它一點點,讓我們考慮一下RNN的最後一層實際上在做什麼。

我們談論它就像它輸出一個標籤或預測,但實際上神經網絡正在產生一堆分數或概率。最有可能的單詞具有最高的概率,其次有可能的單詞具有第二高的概率,依此類推。

因為我們在每一步都得到概率,而不是每次取最好的一個祠來產生一個句子,我們可以抽取3個單詞並開始3個新句子。這三個句子中的每一個都可以再開始三個新的句子…然後我們有一個可能性的分支圖。

推理是如此重要,因為模型能產生什麼和我們想要什麼並不一定是同一件事。我們想要的是一個非常好的句子,但是模型一次只能告訴我們一個單詞的分數。

讓我們看看這個分支圖。每當我們選擇一個詞,就創建一個新的分支,並跟蹤它的分數或概率。如果我們把每一個分數乘到分支的末尾,就會看到,最上面的分支,做出了最好的分數選擇,但總的來說是一個更差的句子。

所以我們要在程序中實現一個基本的採樣器,採取一系列隨機路徑,因此我們可以根據完整句子的概率對結果進行排序,並且我們可以看到哪些句子總體上最好。

另外,當要求John Green bot生成所有這些句子時,我們需要給他一個詞來開始。

我現在要嘗試「good」,但是你可以通過在4.1中修改代碼來嘗試其他事情。

還記得我們對數據做的預處理嗎?這就是為什麼這些句子看起來有點離譜,有數字的標籤,還有我們在詞幹分析時引入的詞尾前的空格。再看看你每次用概率最高的詞得到的句子。

得到的句子並不有趣,這是因為有兩點重要的事情:

首先,數據沒有多少例子來說明如何使用每個詞。

事實上,我們在訓練中不得不刪掉很多「罕見詞彙」,因為它們只出現過一次,所以我們無法教John Green bot 識別與它們相關的任何模式。

許多最先進的模型都是通過從維基百科、大量的書籍收藏中下載數據來解決這一問題的(課程中提供了一些連結供訓練高級模型)。

第二個更大的問題是,人工智慧模型缺少我們作為人類的理解。

即使John GreenBot完美地分割了單詞並預測了聽起來像英語的句子,它仍然是John GreenBot使用諸如標記化、嵌入矩陣和簡單的語言模型來預測下一個單詞。

當人類約翰·格林寫作時,他運用他對世界的理解,就像在《超人兄弟》的視頻中一樣,他考慮漢克的觀點或是觀看的人。他不只是想預測下一個單詞的概率最高。

建立與人和世界互動的模型是自然語言處理如此令人興奮的原因,也是讓John Green bot和人類John Green 一樣生成語言需要更多工作的原因。

(網頁代碼中有一些筆記供讀者改進模型、訓練更長時間、替換提示詞和文本數據等)

(完整視頻)

關聯閱讀:

CrashCourse AI系列課程:AI概述

CrashCourse AI系列課程第1集:什麼是AI

CrashCourse AI系列課程第2集:監督學習

CrashCourse AI系列課程第3集:神經網絡和深度學習

CrashCourse AI系列課程第4集:訓練神經網絡

CrashCourse AI系列課程第5集:手寫字母識別

CrashCourse AI系列課程第6集:無監督學習

CrashCourse AI系列課程第7集:自然語言處理

(聲明:除STEAM在線原創文章外,STEAM在線分享和轉載的文章皆為促進STEAM教育在中國的傳播,僅做學習交流,非商業用途,都會註明來源,如文章、照片的原作者有異議,請聯繫後臺快速處理或刪除,謝謝支持。)

STEAM在線交流群

1000+老師、家長,優質教育內容推薦

長按二維碼聯繫

重磅 | 教育部:2023年前將實驗操作納入考試,積極探索跨學科(STEAM)教育

沙有威專欄 | 再論中小學智慧機器人教育與競賽

於曉雅專欄 | STEM教育融入綜合實踐活動應避免的誤區辨析

獨家 | 徵集100萬條留言,著名創客教育專家吳俊傑倡導設立「世界編程日」

峰會 | STEAM教育國際峰會在同濟大學召開,中外專家論道創新教育

更多STEAM教育資訊,請點擊「閱讀原文」

點個「在看」,表示朕已閱閱讀原文

原標題:《CrashCourse AI系列課程第8集:訓練語音機器人》

閱讀原文

相關焦點

  • Zheng講述關於CrashCourse.club的一切
    視頻的翻譯與製作並非輕鬆,一條十分鐘的視頻背後往往需要花費十幾個小時的努力,而這些全部出自每一位譯者對這一系列視頻的熱愛。近期,我們有幸採訪到了CrashCourse中文字幕組的網站負責人鄭先生,他向我們講述了CrashCourse.club的由來。我們感謝鄭先生及其團隊選擇這一出色的club域名,並抽出寶貴的時間向我們介紹了更多有關CrashCourse.club的故事。
  • 吳恩達deeplearning.ai五項課程完整筆記了解一下?
    自吳恩達發布 deeplearning.ai 課程以來,很多學習者陸續完成了所有專項課程並精心製作了課程筆記,在此過程中機器之心也一直在為讀者推薦優質的筆記。上個月,deep learning.ai 第五課發布,該系列課程最終結課。Mahmoud Badry 在 GitHub 上開源了五項課程的完整筆記,介紹了包括序列模型在內的詳細知識點。
  • 盤點國內排名前十強智能客服ai電銷機器人品牌商家
    智能客服ai電銷機器人的強大功能優勢讓很多企業都讚不絕口,那麼相必很多人都對智能ai電銷機器的排名榜也是非常感興趣的,在這裡就由我來和大家分享下國內排名前十強智能客服ai電銷機器人品牌商家,供大家參考!
  • 機器學習新聞綜述:2019年AI領域不得不看的6篇文章
    視頻連結:https://youtu.be/f4DgHI9J3U8令人印象深刻的是,Replica Studios僅需幾分鐘的語音錄音就可以合成任何語音副本。Google如何通過Google Dataset Search來引領數據搜索文章連結:https://lionbridge.ai/articles/how-google-is-leading-the-quest-for-data-with-google-dataset-search/獲取訓練數據是目前阻礙人工智慧進步的重要因素之一。
  • 訓練營在線課堂|人工智慧發展現狀及應用(第1集)
    上周小編我收到許多後臺留言,沒能騰出時間來參加沙龍活動的小夥伴們希望我們可以整理課程內容製作線上課程內容。今天,應廣大人民群眾的呼聲我們正式開通AI訓練營線上課堂,回顧線下課程內容,方便各位學員們複習及分享。
  • 推薦算法系統/人臉識別/深度學習對話機器人高級實戰課
    一、課程優勢本課程由網際網路一線知名大牛陳敬雷老師全程親自授課,技術前沿熱門,這個《推薦算法系統實戰、人臉識別、對話機器人等高級實戰精品系列課》來自陳敬雷在一線大型網際網路公司的多年實戰經驗總結,實實在在的重量級乾貨分享!
  • 優必選雪梨 AI 研究院何詩怡:基於課程學習的強化多標籤圖像分類...
    公開課視頻回放地址:http://www.mooc.ai/open/course/499何詩怡,北京大學計算機視覺碩士,優必選雪梨 AI 研究院學生,主要研究方向為強化學習,深度學習等。分享題目:基於課程學習的強化多標籤圖像分類算法分享提綱基於課程學習的機制,我們提出了一種強化多標籤分類的方法來模擬人類從易到難預測標籤的過程。
  • 實時語音轉錄服務初創公司Otter.ai疫情期間使用量激增五倍
    作者:華夫餅編輯:tuya出品:財經塗鴉據公司情報專家《財經塗鴉》消息,實時語音轉錄服務初創公司Otter.ai已於近期增加新的功能,提供「實時視頻會議記錄」,用戶可直接記錄和查看Otter.ai是AISense推出的一款基於人工智慧和深度學習的多人語音識別和轉錄產品。其人工智慧技術主要包括語言識別和聲音識別兩部分。語言識別能夠將歌曲和談話轉換為文本;聲音識別能辨別發言人的身份,使用人聲分離技術區分發言人,並為每個人的聲音生成獨特的聲紋配置文件,從而分辨同一個人其他所有的語音。
  • 機器人遞接物品反應慢?英偉達開發 AI 模型:數據集圖像總量逾 15...
    就目前而言,絕大多數研究著眼於將物品從機器人轉移到人類手中的挑戰,假設人類可將物品放置在機器人的抓取器中進行反向操作。不過,人類-機器人無縫遞接物品的一個挑戰便是機器人缺少可靠、連續的感知。在遞接物品過程中,物品和人手難免會相互遮擋,而且人在遞接物品時還經常同時在做其他事情,因此機器人對人手和物品狀態、位置的估計並不是很精準。
  • 賓果智慧機器人落地「KK英語」 戰略合作促「AI+幼教」深度融合
    未來幾年裡,賓果智能將作為KK英語的人工智慧技術專家,負責為其提供機器人和軟體升級服務,包括課程軟體的定製開發。目前已完成第一批產品的落地。其中,BINGO-BIII能將幼兒在教學過程中的反應等行為數據化和可視化,其教學過程中形成的行為數據,能成為AI訓練的數據源,最終可為「因人施教」提供標準化建議,以彌補幼教師資不足短板和解決幼兒師資水平參差不齊的痛點。
  • 深度體驗星戰首款AR互動機器人,語音視覺功能加身,最低1999元
    從訓練模式下可為機器人定製語言和動作,到通過基於機器人視角與3D建模構建的賈庫星球高度還原電影場面的AR遊戲交互,再到巡邏模式下可進行人臉識別與語音指令識別,我們發現白兵機器人不僅是星戰首款AR互動機器人,還是一款集IP與AI於一身的機器人。
  • 夏日專刊AI產品上新升級集錦,50餘項軟硬能力加速場景落地
    >>查看詳情ai.baidu.com/tech/face/Face-Link-Platform?&hmsr=aibanner&hmpl=8.18 智能招聘方案新增簡歷畫像功能,開放邀測依託百度 TIC 團隊在招聘方向的深耕,同時結合百度自然語言處理、百度文字識別的 AI 能力,提供多項招聘功能。
  • 北京大學化身「充電寶」 公開課程資源大放送
    【課程連結】https://www.icourse163.org/course/PKU-1205722813其他課程:西方文學作品導讀、民俗學、《孟子》精讀、語言學概論、神話與神話研究、靜園學術講座、英語演講與演示、漢語修辭學、東南亞文化、英語語音和聽說詞彙、日本文化藝術專題、現代漢字學
  • Facebook與CMU聯手打造開源框架PyRobot,LeCun站臺的機器人研發...
    Facebook希望PyRobot能加快機器人開發,通過共享代碼,數據集和模型的通用API來發展機器人研究生態系統。Facebook的AI團隊最近對機器人技術非常著迷。過去一年Facebook沒少在機器人上下苦功,從六足機器人,到Replica真實感訓練數據集,到Habitat模擬引擎,最近又推出了PyRobot。從名稱就可以看出,這是一個基於PyTorch的機器人框架。
  • 原來和你打電話的是機器人 揭秘度小滿語音機器人訓練師
    我們平時在生活中經常會接到銀行打來的各種各樣的電話,其實有很多是語音機器人撥出的,有的我們能聽出是機器人,但有的我們已經辨識不清......就拿金融科技公司度小滿金融的實踐來說,他們提供語音機器人服務,已經讓99%的用戶聽不出是機器人了。他們的機器人甚至還可以說四川普通話、河南話、山東話等中國各地方言。語音機器人在銀行的業務當中有哪些場景?
  • 戰疫| "宅"家「學」系列:對外經貿大學37門精品在線課程免費開放
    8.綜合商務英語課程連結:https://www.icourse163.org/course/UIBE-1206447838課程負責人:孫亞本期課程開放時間:2020年2月10日課程概述:緊扣社會熱點商務話題,強調語言、文化和商務的有機融合
  • Facebook開源全球最強聊天機器人Blender
    在大規模公共數據集上訓練的模型,並不能學到優秀的談話技巧。所以研究人員引入了一個新的混合技能任務(Blended Skill Talk,BST)來訓練和評估模型的對話技能,而Blender也綜合了許多Facebook之前的研究成果。
  • 某駕校引進「機器人」教練車 全程智能語音指導
    12月10日消息,據媒體報導,湖北十堰一駕校引進首批新能源車機器人教練車。機器人教練並不是有真機器人做教練,而是在一輛教練車上裝載一套智能系統,通過這臺系統的語音、電子顯示屏等裝置對學員進行教學。
  • 擊敗谷歌AI拿下「最強」稱號?Facebook AI開源聊天機器人Blender
    如今,我們對虛擬語音助手已經十分熟悉。無論是蘋果 Siri、亞馬遜 Alexa,還是百度小度,阿里巴巴天貓精靈,在提供幫助之餘,還經常扮演著被無聊人類調戲的對象。就在你來我往的博弈之間,語音助手們練就了一身反調戲的本領,甚至還會出其不意,給你驚喜。
  • 家長選課系列——如何選擇機器人/編程課程
    01機器人課程設置機器人課程按照年齡段設置,從3歲到16歲都有涉及,有些機構宣稱到18歲,但是,實際報名的學生主要集中在3-12歲,也就是幼兒園和小學生02機器人課價格機器人課程的價格相差巨大,機構眾多,價格在70元/課時-280元/課時之間。創客類機器人教育相對較低,高端品牌價格較高。