➣ Reading Time: 13 minutes

前言

今天就廢話不多說直接來進入 How Google does Machine Learning 的課程吧~

這次鐵人賽的30天中,我目前所寫文章的所有課程目錄如下:

Course – How Google does Machine Learning

裡面又有五大章節,今天就先從第一章節開始看吧
第一章節的課程地圖:(紅字標記為本篇文章中會介紹到的章節)
* Introduction to specialization
* Introduction
* Intro to ML on GCP Specialization
* Specialization Agenda
* Why Google?
* Why Google?
* Why Google Cloud?
* Latest from Google
* Module 1 Quiz


1. Intro to ML on GCP Specialization

課程地圖

  • Introduction to specialization
    • Introduction
      • Intro to ML on GCP Specialization

此章節有一個影片,介紹了 Google Cloud Platform (GCP)的服務,
另外有提到未來會使用於機器學習的程式語言是python(在GCP上),
以及提到 Google BigQuery 的服務與 Open Source 的 Tensorflow 的整合,
替整個數據研究與機器學習對於公司組織應用上更加的便利了

(以自己的經驗來說,將整個機器學習的服務移至雲端,
這樣確實能在買硬體的成本應該能省下不少錢,
而且需要時再訂閱也不擔心買了硬體擱置不用的問題。)


2. Specialization Agenda

課程地圖
* Introduction to specialization
* Introduction
* Specialization Agenda

這章提到了 GCP 上的 ML 整體的運作流程,
主要分別五大步驟,影片中提到的圖片如下
(不確定有沒有版權問題,有的話我再將圖拿掉)

https://ithelp.ithome.com.tw/upload/images/20190903/20120424kG6I2u2vF1.png

2.1. Why ML?

影片中提到這章節也許單純的介紹會無聊會讓你想直接跳下章學習(笑,真懂XDD)
但有一句話提到這張的重點,我們還是必須清楚整個 GCP上的ML的架構
這樣未來在使用時你才能夠在大方向的掌握使用上的進程。

The big picture is very important for you to be able to get buy-in from the rest of the organization.

2.2. ML with Tensorflow

想藉由完成TensorFlow完成Machine Learning,至少需要兩件事情,
1. 準備”好的”資料集
1. 使用TensorFlow建立你的機器學習模型

影片中有特別提到準備”好的”資料集是一個不能忽略的重點,
有許多訓練好的模型結果最後的產品失敗(甚至是某些企業都會失敗),
這時候通常原因都是需要回來檢查我們的資料集

2.3. Improving ML Accuracy

這個章節會灌輸你一大堆能精進ML模型結果準確度的想法與觀念
然而不同的情況自然會使用不同的想法與對應方式,
所以這章節更多是教觀念,幫助我們在之後面對更多 Machine Learning 上面的問題,
而且還提到需要花時間去消化觀念並能運用到code中,不可只知其觀念名。

2.4. ML at scale

這個章節主要會提到如何讓訓練完成的ML模型進入產品化的階段,
這個部分可能又比前面還要更加的困難,許多企業級的ML projects也經常失敗在此處。

Operationalizing a Machine Learning model 大概又可以分成以下幾步驟
1. training it at scale in a distributed way
1. serving out the predictions
1. building a Machine Learning model end to end

而在此章節將依照以下順序講解:
1. how to train, deploy
1. predict with ML models in a way that they’re production ready
1. delve back into Machine Learning theory

最後會回到 Machine Learning的理論講解,
不過ML理論本身是多屬於heuristic(啟發式)的,
也就是我們幾乎只能仰賴一些工具與技巧。

因此我們將介紹一些工具跟技巧,提供的範例主要是在訓練圖片時有效,
但這些也有助於在處理時間序列數據或文本數據更佳有效。

2.5. Specialized ML models

最後這章節會介紹一些能建立 powerful recommendation systems 的方法,
Recommendation systems是一種ML model,
指的是你怎麼建立你個人化的演算法的方式
大多數ML工程師也會在職涯的某些階段中會逐漸建立起來這樣的個人化演算法。

事實上這部影片認為,也許最後只會有一種ML system被大家所建,
但在建立powerful recommendation engines之前,
我們都會反覆碰到前四章所學的東西,不論是對工具與技巧的理解等等,

我們可能在各種不同的地方學習ML,但儘管如此,細節也有可能完全不同,
所以當你在碰到的新的ML教材時,也不要完全跳過他,將他視為有用的複習課程,
並在一次確定自己還記得這些部分中提出的想法。


3. Why Google?

課程地圖
* Introduction to specialization
* Why Google?
* Why Google?

影片中提到了一些machine learning與我們日常的關係,
特別是以下的圖片中的應用大家應該都不陌生。
https://ithelp.ithome.com.tw/upload/images/20190903/20120424PNJpFcR9jv.png

此外一個驚人的事實是,近幾年使用machine learning逐漸上升,
就連google已推出了突破4000個有關於machine learning應用的產品。
(近幾年的飆升真的滿驚人的)
https://ithelp.ithome.com.tw/upload/images/20190903/201204241nftYyPAxw.png


4. Why Google Cloud?

課程地圖
* Introduction to specialization
* Why Google?
* Why Google Cloud?

影片中提到一般人認為的ML服務(ML serving, not just ML training)可能像下圖,
很多人可能花了非常大量的時間再處理圖片的左半部,
然而,ML service最主要的核心應用的卻是在圖片的右半部

Google有提到,training data(batch data)與streaming data的相容性
會是一個影響訓練模型成功機率的關鍵因素
他們嘗試能在batch data與streaming data的進行一樣的處理方式以減少失敗的機會。

https://ithelp.ithome.com.tw/upload/images/20190903/20120424CIdKtDr9RU.png

ML的簡圖,基本上也代表著訓練的每個階段,
而這部分透過GCP的服務,很多東西都已經先準備好了,
我們可以用GCP的系統,具有彈性、可靠,且非常好的工程能力
https://ithelp.ithome.com.tw/upload/images/20190903/20120424pMqg4oQ7yD.png


5. Module 1 Quiz

不知道是不是因為英文的關係…我覺得有點難,
有幾題考得滿細的,不過忘記答案的話可以回去課程找答案,
這章應該幾乎都考很介紹的東西,所以感覺超級像背科(背他介紹的東西XDDD

不過都幾乎快把整個影片翻譯完的我,當然就直接交了/images/emoticon/emoticon37.gif

耶依~ Module 1 Quiz結束囉~
https://ithelp.ithome.com.tw/upload/images/20190903/201204246dFc6F8lUg.png


本文同步發佈在: 第 11 屆 iT 邦幫忙鐵人賽
【Day 2】 Google ML – Lesson 1 – Introduction to specialization – 讓你的ML在Google雲端平台運行的五大階段


參考資料

⭐Google Machine Learning 相關文章整理⭐:
1.訂閱課程【Google ML】1 – Google ML – 參賽原因 與 就先從認識 coursera 與訂閱課程開始第一天吧
⭐ML 基礎知識篇⭐:
1.基礎ML知識什麼是ML? 為什麼ML最近才紅起來? 可參考:【Day 3】
2.設計ML問題如何設計一個ML問題?可參考:【Day 4】
3.ML與一般算法比較比較一般算法與ML算法,看出ML的優勢。可參考:【Day 11】
⭐ML 應用策略篇⭐:
1.ML的成功策略使用ML要成功,常需要的關鍵策略。可參考:【Day 5】
2.ML各階段與比重分配企業運行ML時,在ML的各階段應該放的比重與心力。可參考:【Day 6】
3.ML失敗的常見原因大部分企業使用ML卻失敗的前十大主因。可參考:【Day 6】
4.企業如何引入MLML在企業運行的五大階段與注意事項。 可參考:【Day 7】
⭐GCP 認識篇⭐:
1.在GCP上運行ML的階段在GCP上運行ML大概有哪五大階段? 可參考:【Day 2】
2.GCP上ML的介紹GCP上ML的介紹。可參考:【Day 8】【Day 11】
3.已訓練好的ML模型已訓練好的ML模型。建議可直接使用,不需要再自己訓練。如:Vision API(圖片辨識), Video intelligence API(影片辨識), Speech API(語音辨識), Translation API(語言翻譯), Natural Language API(自然語言處理)。介紹:【Day 4】詳細整理與比較:【Day 12】lab實作:【Day 14】
⭐GCP 上的 lab 實作篇⭐:
1.Lab 事前準備Lab 0 – 在GCP上開始lab前的事前準備與注意事項。可參考:【Day 9】
2.GCP上使用 VMLab 1 – 在GCP上分析地震資料與製圖,並儲存在雲端。可參考: 【Day 10】
3.BigQuery 與 DatalabLab 2 – 使用 BigQuery 與 Datalab 視覺化分析資料。可參考:【Day 13】
4.google ML APIsLab 3 – 使用google已訓練好的ML模型進行實作。如:Vision API(圖片辨識), Video intelligence API(影片辨識), Speech API(語音辨識), Translation API(語言翻譯), Natural Language API(自然語言處理)。可參考:【Day 14】
⭐ML中的不同學習種類⭐:
1.【Day 15】 監督式學習(Supervised Learning) 與 非監督式學習(Unsupervised Learning) 的介紹和比較
⭐訓練「一個」ML模型⭐:
(這裡以 監督式學習(Supervised Learning) 為例)
1. (訓練前)決定資料集與分析資料你想要預測的是什麼資料? 這邊需要先知道 example、label、features的概念。介紹可參考:【Day 15】而我們這次作為範例的訓練資料集介紹在:【Day 19】
2. (訓練前)決定問題種類依據資料,會知道是什麼類型的問題。regression problem(回歸問題)? classification problem(分類問題)? 此處可參考:【Day 16】與進階內容:【Day 17】
3. (訓練前)決定ML模型(ML models)依據問題的種類,會知道需要使用什麼對應的ML模型。回歸模型(Regression model)? 分類模型(Classification model)? 此處可參考:【Day 18】神經網路(neural network)? 簡介於:【Day 25】
4.(模型裡面的參數)ML模型裡面的參數(parameters)與超參數(hyper-parameters) 此處可參考:【Day 18】
5. (訓練中) 調整模型評估當前模型好壞損失函數(Loss Functions):使用損失函數評估目前模型的好與壞。以MSE(Mean Squared Error), RMSE(Root Mean Squared Error), 交叉熵(Cross Entropy)為例。此處可參考:【Day 20】
6. (訓練中) 調整模型修正模型參數以梯度下降法 (Gradient Descent)為例:決定模型中參數的修正「方向」與「步長(step size)」此處可參考:【Day 21】
7. (訓練中) 調整腳步調整學習腳步透過學習速率(learning rate)來調整ML模型訓練的步長(step size),調整學習腳步。(此參數在訓練前設定,為hyper-parameter)。此處可參考:【Day 22】
8. (訓練中) 加快訓練取樣與分堆設定batch size,透過batch從訓練目標中取樣,來加快ML模型訓練的速度。(此參數在訓練前設定,為hyper-parameter)。與迭代(iteration),epoch介紹。此處可參考:【Day 23】
9. (訓練中) 加快訓練檢查loss的頻率調整「檢查loss的頻率」,依據時間(Time-based)與步驟(Step-based)。此處可參考:【Day 23】
10. (訓練中) 完成訓練(loop) -> 完成重覆過程(評估當前模型好壞 -> 修正模型參數),直到能通過「驗證資料集(Validation)」的驗證即可結束訓練。此處可參考:【Day 27】
11. (訓練後)訓練結果可能問題「不適當的最小loss?」 此處可參考:【Day 28】
12. (訓練後)訓練結果可能問題欠擬合(underfitting)?過度擬合(overfitting)? 此處可參考:【Day 26】
13. (訓練後)評估 – 性能指標性能指標(performance metrics):以混淆矩陣(confusion matrix)分析,包含「Accuracy」、「Precision」、「Recall」三種評估指標。簡介於:【Day 28】詳細介紹於:【Day 29】
14. (訓練後)評估 – 新資料適用性泛化(Generalization):對於新資料、沒看過的資料的模型適用性。此處可參考:【Day 26】
15. (訓練後)評估 – 模型測試使用「獨立測試資料集(Test)」測試? 使用交叉驗證(cross-validation)(又稱bootstrapping)測試? 此處可參考:【Day 27】
16.(資料分堆的方式)(訓練前) 依據上方「模型測試」的方法,決定資料分堆的方式:訓練用(Training)、驗證用(Validation)、測試用(Test)。此處可參考:【Day 27】
⭐從所有ML模型的訓練結果中,找到「最好的」ML模型⭐:
( 原因:「訓練好一個模型」不等於「找到最好的模型」 )
1.(訓練模型)【Day 27】 使用「訓練資料集(Training)」訓練模型(調整參數),也就是「上方表格」在做的內容
2.(結束訓練)【Day 27】 訓練到通過「驗證資料集(Validation)」結束訓練(未達到overfitting的狀態前)
3.(模型再調整)【Day 27】 超參數(hyperparameters)調整或神經網路的「layer數」或「使用的node數」(一些訓練前就會先決定的東西)
4.(loop)【Day 27】 (模型再調整)後,重複上述(訓練模型)、(結束訓練),完成訓練新的模型
5.(找到最佳模型)【Day 27】 從「所有訓練的模型」中,找到能使「驗證用資料集(Validation)」最小的loss,完成(找到最佳模型)
6.(決定是否生產)【Day 27】 可以開始決定要不要將此ML模型投入生產。此時我們可以使用「獨立測試資料集(Test)」測試? 使用交叉驗證(cross-validation)(又稱bootstrapping)測試?
⭐訓練 ML 模型的小實驗⭐:
1.【Day 24】 TensorFlow Playground 的簡介與介面介紹
2.【Day 24】 learning rate 的改變對訓練過程的影響
3.【Day 25】 使用神經網路(neural network)分類資料
4.【Day 25】 觀察batch size如何影響gradient descent
⭐30天內容回顧與課程索引, 參賽心得, 未來計畫與感謝⭐:
1.【Google ML】30 – 30天內容回顧與課程索引, 參賽心得, 未來計畫與感謝
⭐【喜歡我的文章嗎? 幫忙按讚除了鼓勵外,我也會將部分所得捐出!
如果喜歡我的文章,請幫我在下方【按五下Like】 (Google, Facebook 免費註冊),會由 「LikeCoin」 贊助作者鼓勵繼續創作,扣除掉網站本身經營的成本 (可惜目前還是虧本的),我會將 【50% 收益全部捐出】 並公開發文,讀者們「只需幫忙按讚,完全不用出錢」哦!

likecoin-steps