機器學習是如何運作的?谷歌來告訴你

jopen 9年前發布 | 12K 次閱讀 機器學習
 

最近媒體報道谷歌正在利用機器學習幫助處理搜索結果,這引發了人們對于這一人工智能領域的興趣和疑問。什么是“機器學習”,機器是如何自學的呢?這里有一些 Google 內部關于機器學習的背景介紹。

機器學習是如何運作的?谷歌來告訴你

昨天 Google 為科技記者舉辦了一場活動 —— “機器學習的入門課程”。我就是其中一位與會者。盡管宣傳上說只是一些介紹,但對我和其他一些記者而言,里面的內容有相當的技術含量,難以消化。

例如,當一個演講者告訴我們機器學習中的數學是“容易的”,而且還在同一句話里提到了微積分。我不得不說,和外行相比,他們對于“容易”有著完全不同的理解。

然而,我還是對機器學習的過程和組成有了進一步的理解,涉及機器(計算機)如何學會自學,去識別物體、文字、口語詞匯和其他的東西。下面是我記錄的要點。

機器學習的組成

機器學習是如何運作的?谷歌來告訴你

機器學習系統由三個主要部分組成,包括:

  • 模型:用來預測或識別的系統。
  • 參數:模型做決定所使用的信號或因素。
  • 學習器:這個系統通過檢查預測和實際輸出的差異來調整參數,再對模型進行調整。

現在讓我把昨天 Greg Corrado 討論的東西轉換成現實世界的一個實際問題。Greg Coorado 是 Goolge 的一位資深研究科學家,也是公司深度學習團隊的共同創始人。

想象你自己是一位老師。你想確認如果學生要在考試中取得好成績,最優的學習時間會是多少。你向機器學習求助以便找到一個解決方案。是的,對于這個問題而言,可能有點大材小用。但這是一個非常簡單的說明。

構造模型

一切都要從模型開始,機器學習用它來進行預測。至少在這個特定的例子中,系統最初的模型必須由人類提供。在我們的例子中,老師可以告訴機器學習模型進行這樣的假設,即學習 5 個小時就可以取得好成績。

模型本身借助參數進行計算。這個例子中,參數是學習時間和取得的分數。假設參數像下面這樣:

  • 0 小時 = 50% 分數
  • 1 小時 = 60% 分數
  • 2 小時 = 70% 分數
  • 3 小時 = 80% 分數
  • 4 小時 = 90% 分數
  • 5 小時 = 滿分

實際上機器學習系統使用一個數學方程式來表示上述模型,事實上形成了一條預期的趨勢線。這個是昨天講座的一個例子:

機器學習是如何運作的?谷歌來告訴你

提供最初的輸入

現在模型已經確定了,需要輸入實際的信息了。比如我們的老師可能會輸入不同學生的 4 個分數,以及他們學習的小時數。

在這個例子中,結果是這些分數和模型不匹配。有的分數在預測趨勢線的上面,有的在下面:

機器學習是如何運作的?谷歌來告訴你

現在該輪到機器學習中的學習器了!

學習器進行學習

那些輸入分數的集合?這些輸入機器學習系統的數據通常被稱為“訓練集”或者“訓練數據”,因為系統中的學習器借助它們訓練自己,以便生成一個更好的模型。

學習器查看這些分數,看它們距離模型有多遠。它利用更多的數學知識來調整最初的假設。比如,上面的列表很可能被替換成這樣:

  • 0 小時 = 45% 分數
  • 1 小時 = 55% 分數
  • 2 小時 = 65% 分數
  • 3 小時 = 75% 分數
  • 4 小時 = 85% 分數
  • 5 小時 = 95% 分數
  • 6小時 = 滿分

新的預測被重新調整了,取得滿分需要更多的學習時間。

這只是流程的一個例子,當然這個例子完全是虛構的。最重要的收獲就是理解學習部分對參數進行微調,并改善模型。我稍后再討論這一點。

清洗并重復

現在輸入一個新的分數集和時間,系統重新運行。這些實際的分數和學習部分修改后的模型做比較。如果成功,這些分數會很接近預測結果:

機器學習是如何運作的?谷歌來告訴你

但是還不夠完美。所以學習器再一次調整參數,重構模型。另外一組測試數據被輸入進去。重新比較,學習器再一次調整模型。

這個循環過程會一直重復,直至得到一個最終的模型,它可以真的根據學習的小時數預測出取得的分數。

梯度下降法:如何避免機器學習失敗

機器學習是如何運作的?谷歌來告訴你

Google 的 Corrado 強調絕大多數的機器學習都是基于“梯度下降”或“梯度學習”的概念。也就是系統通過不斷的微小調整直至得到正確的答案。

Corrado 喜歡把這比喻成從一個很陡峭的山峰下來。你不會想要跳下來或者跑下來,那樣太危險了。你很可能會不小心掉下去。事實上你會很小心得一點點挪下去。

機器學習是如何運作的?谷歌來告訴你

還記得我上面提到的“數學很簡單”嗎?很顯然對于那些了解微積分和數學運算的人來說,涉及到的方程式真的很簡單。

事實上現實的挑戰是計算能力。要完成所有這些步驟,機器要花很長時間學習。但是計算機會更快更強大,機器學習之前被認為是不可能的,而現在已變得相當普遍了。

異想天開:識別貓

上面的例子非常簡單。就像上面說的,一個老師利用機器學習預測考試分數實在是大材小用。但同樣簡單的系統可以用來做復雜的事情,比如識別貓的圖片。

計算機不能像人類那樣看東西。所以它們如何能夠識別物體?就像 Google Photos 可以從我的照片中挑出很多物體一樣:

機器學習是如何運作的?谷歌來告訴你

機器學習可以做到這一點!還是同樣的原理。你利用一些可能的因素構建了一個模型,這些因素可以幫助識別圖像中的貓,比如顏色,形狀等等。接下來你輸入一個訓練集,是一些有貓的圖片,然后看這個模型工作的怎么樣。

學習器進行調整,重復訓練的循環。但識別貓和其它物體是很困難的。有很多參數可作為模型的一部分,甚至參數里還可以嵌套參數,這些參數被用來把圖片轉換成系統匹配物體的模式。

比如,最終系統是這樣找到一只地毯上的貓:

機器學習是如何運作的?谷歌來告訴你

這是一幅類似油畫的圖片,是利用 Google 發布的 DeepDream 代碼做出來的,Google 進一步 分享 了機器學習系統是如何建立模式來識別物體。

The image is really an illustration of the type of patterns that the computer is looking for, when it identifies a cat, rather than being part of the actual learning process. But if the machine could really see, it’s a hint toward how it would actually do so.

這幅圖事實上說明了,當計算機識別一只貓的時候,是在查找某種模式類型,而不是作為實際學習過程的一部分。但如果機器真的可以看到,這就提示了實際上它會如何做。

順便說一下,從我們最初的例子發展到圖像識別,模型已經不是人類而是機器創造出來的。它們自己嘗試理解一個物體是什么,通過原始的顏色、形狀和其他特性的組合來構建,然后利用訓練數據進行優化。

識別活動

進一步加大難度,想象除了識別物體還要識別活動。Google 解釋說要增加一些常識性的規定,而且人類還要引導機器學習過程,讓它理解不同的物體如何出現在一個活動上。

比如考慮這個:

機器學習是如何運作的?谷歌來告訴你

就像上面投影片里描述的,一個機器學習系統看到一個小孩、一個籃子和一個雞蛋。但一個人類看到所有這些,會知道這是尋找復活節彩蛋的活動。

RankBrain的技術內幕呢?

所有這些機器學習是如何應用到 Rank Brain 上的?Google 并沒有討論這方面的技術細節。事實上在正式討論中都沒有提及,在演講間歇中也沒有披露什么新的消息(都是一些已經公開的信息)。( 譯者注:RankBrain,是 Google 研發的一套機器學習人工智能系統,用來幫助排序搜索結果。 )詳見《 谷歌人工智能算法 RankBrain 運行原理解析 》。

為什么?當然是競爭的考量。Google 分享了很多它如何利用機器學習的信息。甚至在其他領域分享了很多技術細節。但是它對將如何在搜索上應用機器學習諱莫如深,防止泄漏很多它認為重要和獨特的信息。

想了解更多?

如果你想要進一步了解機器學習,可以參考 Google 相關研究的 博客這里 還有一些共享的研究報告和下面一個最新的視頻:

https://youtu.be/l95h4alXfAA

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!