iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 2
0

在 Google,我們在幾乎所有產品中應用機器學習。

我們希望您以Google Cloud為基礎。
很多人可能會與Google服務互動 - 照片,Youtube,Gmail,收件箱。這些服務都受益於機器學習。

我們已經生產了4,000多種TensorFlow機器學習模型。你聽說沒錯,4,000。
谷歌正在生產4,000多種TensorFlow機器學習模型。 2012年,這個數字幾乎為零。
本課程涵蓋了我們的工程師如何將機器學習融入我們的產品中。

考慮機器學習服務,關於ML服務,而不僅僅是關於ML培訓,這一點非常重要。
當你向大多數人說機器學習時,他們會想到這個圖左邊的複雜管道。作為數據工程師或數據科學家,您肯定會花費大量時間。
但是,您進行機器學習的關鍵原因在於該圖的右側。您希望使用筆記本,儀表板,應用程序和報告向決策者提供這些預測。

操作機器學習模型
選擇一個經過訓練的模型,並達到我們可以提供這些預測的程度。操作機器學習模型很難,許多項目未能進入預測階段。
為了減少失敗的可能性,我們需要確保能夠以相同的方式處理批量數據和流數據。

此圖中的Cloud Dataflow,其開源是Apache Beam。 Cloud Dataflow可幫助我們以相同的方式處理批處理和流式處理。
因此,Cloud Dataflow就是一個例子,說明在Google Cloud上,您可以利用我們在構建機器學習基礎架構方面的經驗和Google的經驗。

在GCP上,關鍵服務都是無服務器的,它們都是託管基礎架構。
因此,在本課程中,我們將向您展示如何構建批處理和流數據管道。
通過在Google Cloud上構建數據管道,您可以充分利用Google為運行機器學習系統帶來的可擴展性,可靠性和純粹的工程實力。

人工智能AI和機器學習有什麼區別?
一種方法是AI是一門學科,有點像物理學。
人工智能與理論和方法有關,在這種情況下,關於構建像人類一樣思考和行動的機器的理論和方法。

機器學習是一種工具集,有點像牛頓力學定律。
正如你可以使用牛頓定律來計算球落到地面需要多長時間如果你將它從懸崖上掉下來,
你可以使用機器學習來解決某些類型的AI問題。

ML的第一階段是用示例訓練ML模型。我們將專注於此專業化的機器學習形式稱為監督學習。
一個例子包括標籤和輸入。

假設我們想要訓練機器學習模型來查看圖像並識別這些圖像中的內容。真正的答案稱為標籤。
圖像本身,圖像的像素是模型的輸入。模型本身是一種形式的數學函數
機器學習中使用的模型有一堆可調參數

當我們訓練模型時,我們正在做的是我們對模型進行微調。
因此,模型的輸出(數學函數的輸出)盡可能接近任何給定輸入的真實答案。
我們不是一次只能在一張圖像上執行此操作。我們的想法是調整數學函數,使整體而言,訓練輸入集的模型輸出盡可能接近訓練標籤。

過標記的示例,我們指的是輸入和真實答案。在對模型進行訓練之後,我們可以使用它來預測以前從未見過的圖像標籤。
機器學習模型已經從我們展示的貓圖像的具體示例推廣到關於貓是什麼以及它看起來像什麼的更一般的概念。

使機器學習模型概括化的關鍵是數據,以及大量的數據。
標記數據是成功進行機器學習的先決條件。

重要的是要意識到機器學習有兩個階段,即訓練和推理。
有時人們將預測稱為推理,因為預測似乎意味著未來的狀態。
對於像這樣的圖像,我們並沒有真正預測它是一隻貓,只是根據像素數據推斷它是一隻貓。

作為一名數據科學家,將所有精力集中在訓練的階段,這可能很誘人。但這還不夠,您需要能夠操作模型,以便您可以進行推理。
現實世界中,如果你不能使用機器學習模型,有什麼用?

( 在之前的幻燈片中,我以特定的形式繪製了數學模型。該模型由許多層依次排列組成。
輸入通過第一層,然後是第二層,然後是第三層,等等,每層都是簡單的數學函數。
因此,整個模型由一個函數,一個函數,一個函數組成,你得到了這個想法。該圖描繪了稱為神經網絡的數學模型。 )

傳統上,神經網絡模型沒有這麼多層。
神經網絡可以追溯到20世紀70年代,但它們過去只有一個隱藏層。
原因第一,計算能力,訓練深度神經網絡,具有大量層的神經網絡需要大量的計算能力。
第二個原因,他們只有一個隱藏層,數據的可用性。隨著您添加更多圖層,需要調整越來越多的權重,因此您需要更多的數據。
而第三個原因是你只有一個隱藏層,計算技巧。
事實證明,如果你只是添加圖層,你會遇到一些問題,神經網絡將需要很長時間來訓練,一些層將變為全零或它們會爆炸,並成為所有NAM或不是數。

在過去的幾年裡,神經網絡已經證明自己在各種各樣的任務中都是最好的或接近最好的,甚至過去認為機器學習無法解決的任務。
神經網絡可以顯著改善語言翻譯,圖像分類,語音理解等真正的難題。
它們的工作原理與非結構化數據問題一樣好或更好,

在這個課程中,我們將幾乎完全使用神經網絡。
我們將開始非結構化數據問題,一旦我們知道如何構建端到端管道,我們將掌握這些知識,並向您展示如何處理圖像問題,序列問題和推薦系統。

現在我們在Google內部擁有超過4,000種深度學習模型。
怎麼會有這麼多ML型號?好吧,ML是幾乎所有Google產品的一部分,無論是YouTube,Play還是Chrome或Gmail,它們都使用機器學習。
並不是說YouTube上只有一個ML模型。每個產品有幾十種ML型號。

考慮一個業務問題,比如,如何預測項目將會缺貨,並將其視為您必須構建的單個機器學習模型。
但實際上,要預測某個項目是否會缺貨,您必須構建許多機器學習模型來解決問題。
您可能必鬚根據您對業務的了解將此問題分解為更小的問題。
例如,您的第一個模型可能是預測商店位置對產品的需求,而您的第二個模型可能會預測供應商倉庫和附近商店的此商品庫存。
您可能需要第三個模型來預測它們需要多長時間來存儲您的產品,並使用它來預測您將要求重新裝滿貨架的供應商,以及何時。

這是一門教學課程,我們將向您展示如何使用單一模型進行培訓,部署和預測。
但在實踐中,您將構建許多機器學習模型來解決用例。

談到過去幾年深度學習已經取得了長足的進展,沒有什麼比Google Photos更能說明這一點。
這是Google產品,您可以將照片從相機上傳到雲端,而無需對其進行標記。 ML軟件為您標記圖像,以便您可以找到圖像。

谷歌翻譯應用程序允許您將手機攝像頭指向路牌,並為您翻譯標誌。
這是幾個非常直觀的模型組合的一個很好的例子。
一個模型找到標誌,另一個模型來讀取標誌,對其進行光學字符識別。
第三個模型,翻譯標誌或可能是第三個模型來檢測語言,第四個模型來翻譯標誌。
第五個模型疊加翻譯文本。也許甚至是第六個選擇要使用的字體的模型。

智能回復是收件箱和Gmail的一項功能,其中電子郵件程序建議對收到的電子郵件進行三種可能的響應。
在我看來,這是目前生產中最複雜的ML模型。
你為什麼這麼認為?它是序列模型的序列,換句話說,它將接收的電子郵件作為輸入,並生成對電子郵件的響應作為輸出。
正如我們稍後將在專業化中看到的那樣,文本通常被認為是一系列單詞。
這裡的機器學習模型,需要了解一小部分文本,傳入的電子郵件並預測三個不同的答案。

我們將在專業化的最後一個過程中查看序列模型。

我們研究了機器學習,並說這是一種從數據中獲得重複預測性見解的方法。
然後,我們討論了ML的兩個階段,一個訓練階段,您使用標記示例教授算法,以及預測或推理階段,您可以使用訓練模型對新數據進行推斷。
然後,我們查看了幾個來自Google產品的機器學習實例,照片,翻譯,智能回复。

Google董事會執行主席Eric Sc​​hmidt 對機器學習能解決什麼樣的問題有一個獨特的答案
ML是關於邏輯的,而不僅僅是數據。

這是下一個轉變。編程範式正在發生變化。它不是在編程計算機。
你教一台計算機學習一些東西,然後它就能做你想做的事情。”
現在,這看起來很奇怪。當你對大多數人說ML時,他們會根據數據來預測,但請注意Eric的引用中沒有關於數據的內容。
他所說的機器學習是一種取代編程的方法。

考慮搜索。當然,這是我們在谷歌的旗艦應用程序。
如果你輸入“巨人隊”,我們應該向你展示舊金山巨人隊還是紐約巨人隊?你會怎麼做?
幾年前,這就是Google搜索的工作方式。
有許多規則是搜索引擎代碼庫的一部分,用於決定向哪個體育團隊展示用戶。
如果查詢是巨人,並且用戶位於灣區,請向他們顯示有關舊金山巨人隊的結果。
如果用戶在紐約地區,請向他們顯示有關紐約巨人隊的結果。
如果他們在其他地方,請向他們展示有關高個子人的結果,
這僅適用於一個查詢。通過人們提出的大量查詢來乘以此,您可以想像整個代碼庫變得多麼複雜。
代碼庫變得笨拙,因為手寫代碼,手工編碼規則真的難以維護。
那麼,為什麼不嘗試機器學習呢?機器學習更好,因為它是自動化的。

我們可以用機器學習替換許多手工編碼規則。神經網絡最終大大提高了我們的搜索質量,而且系統可以根據用戶的實際需求不斷改進自身。
用ML取代啟發式規則,這就是ML的意義所在。

你可以用ML解決哪些問題?
答案,你今天所寫的任何規則。這不僅僅是預測分析。
Google搜索不是預測分析應用程序,但我們會使用機器學習。

機器學習是一種替代規則的方法,請注意這是一個更廣泛的答案,可以解決機器學習可以解決的問題。
當我們說谷歌是人工智能第一的公司時,這就是我們的意思。
我們將機器學習視為一種擴展,自動化和個性化的方法。

想想你今天編寫的所有啟發式規則。
如果您可以收集正確的數據,您可以使用機器學習來完成。
當您執行此操作時,您對問題的思考方式會發生變化,您不會考慮編寫規則,而是考慮基於數據來訓練模型。
您不會考慮通過添加新規則來修復錯誤報告。您可以考慮在獲取新數據時不斷訓練模型。
而不是考慮將特定規則應用於特定輸入,而是考慮大規模部署模型,以便您可以進行預測。

這如何改變我們解決新問題的方式呢?
人們不是在尋找網站,而是在地圖上尋找商家。好吧,我們可以為每一個編寫規則,但它很快變得笨拙。
那麼,讓我們看看我們如何從機器學習的角度來處理它。

首先考慮如何收集數據以使其成為ML問題。我們來看一個例子。查詢,我附近的咖啡。
機器學習背後的想法是採取一系列的例子,並將這些知識轉化為未來的預測。
多遠才算遠?餐廳的評級和服務時間需要多少?所有這些都有多重要?
我們寧願讓用戶告訴我們,而不是猜測並擁有一大堆規則。

因此,我們會查看大量數據並進行權衡。
咖啡的距離與質量,服務時間與咖啡質量等等。
但現在讓我們考慮一下距離。你從哪裡得到這些數據?
作為人工智能第一的公司,我們可以從啟發式開始,但我們這樣做的心態是,只要我們有足夠的用戶偏好數據,我們就會拋棄啟發式算法。
我們需要的是例子。
請記住,示例等於標記數據。在這裡,輸入是到商店的距離,標籤是“用戶喜歡結果還是不喜歡?
然後,我們嘗試適合我們的模型。
因此,機器學習是關於收集適當的數據,然後找到良好學習和信任示例的正確平衡。


上一篇
[Day 1] Machine Learning with TensorFlow 五門課程學習導覽
下一篇
[Day 3] 什麼是 Machine Learning (下)
系列文
Machine Learning Study 30天學習筆記19

尚未有邦友留言

立即登入留言