➣ Reading Time: 31 minutes

前言

開頭先整理一下今天的內容:

我們今天一共會整理google的5種Cloud API,以下針對類型先做個簡單整理:

Google雲端上的API名稱類型用途
Cloud Vision API(image -> text)圖片辨識API
Cloud Video intelligence API(video -> text)影片辨識API
Cloud Speech API(audio -> text)語音辨識API
Cloud Translation API(text -> text)語言翻譯API
Cloud Natural Language API(text -> text)自然語言處理API

Course – How Google does Machine Learning

第五章節的課程地圖: (紅字標記為本篇文章中會介紹到的章節)
* Python notebooks in the cloud
* Module Introduction
* Cloud Datalab
* Cloud Datalab
* Demo: Cloud Datalab
* Development process
* Demo of rehosting Cloud Datalab
* Working with managed services
* Computation and storage
* Lab: Rent-a-VM
* Intro to Qwiklabs
* Intro to Renting-VM Lab
* Lab: Rent-a-VM to process earthquake data
* Lab debrief <– (昨天到這邊)
* Cloud Shell
* Third wave of cloud
* Third Wave of Cloud: Fully-Managed Services
* Third Wave of Cloud: Serverless Data Analysis
* Third Wave of Cloud: BigQuery and Cloud Datalab
* Datalab and BigQuery
* Lab Intro: Analyzing data using Datalab and BigQuery
* Lab: Analyzing data using Datalab and BigQuery
* Lab Debrief: Analyzing Data using Datalab and BigQuery
* Machine Learning with Sara Robinson
* ML, not rules
* Pre-trained ML APIs
* Vision API in action
* Video intelligence API
* Cloud Speech API
* Translation and NL
* Lab: Machine Learning APIs
* Lab: Pretrained ML APIs Intro
* Lab: Invoking Machine Learning APIs
* Lab Solution


1. Vision API in action

課程地圖
* Python notebooks in the cloud
* Pre-trained ML APIs
* Vision API in action

Cloud Vision API是google的圖片辨識的API,
可以讓我們使用單個REST API request就能得到圖片的各種檢測結果。

part 1 : case: 先看目前商業上使用Vision API的範例

Giphy:Giphy是一個app,我們能在上面搜尋GIF,並在也可以分享這些動圖。
gif的裡面有可能包含文字,而它們可透過Vision API解釋gif裡面的內容,
並藉此改進搜尋結果。

他們使用的是Vision API裡面的OCR(Optical Character Recognition)功能
這個功能讓它們可以從gif中提取出文字內容,用於幫助增進他們的搜尋體驗。

想要更了解Giphy怎麼做的,可以參考:https://engineering.giphy.com

part 2 : 我們來看Vision API裡面有哪些功能

Vision API 功能名稱用途
label detection可以告訴你這圖片是什麼
web detection在網路上搜尋相似圖片,並從這些搜尋結果中提取內容,回傳圖片更多相關資訊。
OCR (Optical Character Recognition)解析你圖片中的文字內容,告訴你圖片中哪裡有文字,甚至可以告訴你這是什麼語言。
Logo detection專門辨識公司logo用的
Landmark detection如果這圖片包含著常見的地標,他可以告訴你是什麼地標。 同時提供對應地標的經度、緯度
Crop hints可以幫助你裁剪照片,以符合你想要做的主題。
Explicit Content Detection檢測圖片中是否有不適當的內容。

※補充:
* label detection

例如:你給他看大象的圖片,他會告訴你這是大象

以整體來說,Cloud Vision API可以提供上述所有功能的圖片內容檢測。
這些功能在任何地方皆很實用,而且特別像是社群網站檢測不適當圖片內容,
我們很難人工一張一張的檢測,這時候Vision API能夠幫助我們做初步的分類,
我們只需要簡單所有圖片的子集合即可。

自己的註:這邊講到的做法個人認為非常聰明,
他們並不是直接將Vision API認定不適宜的結果,
直接進行刪除的動作,而是先取這些圖片的子集合在”人工檢查”。
這樣兩階段的作法,
對於社群上的人:大幅的減少誤判機率
對於自己訓練的ML:如果我們認為這些圖片是適合的,
我們可以直接更改label,再次強化我們的ML判定。

又能減少使用者不滿又能強化自己的ML模型,採用兩階段判定確實非常聰明。

part 3 : 我們直接來demo Vision API的功能

Vision API有提供網頁版,在開始寫code串Vision API的功能前,
我們可以先到這網站測試自己想要偵測的圖片:https://cloud.google.com/vision/
可以先偷看串完Vision API會得到什麼結果。

(這邊也是先使用影片中的範例,有興趣的朋友可以自己嘗試。)

Step 1 : 首先我們先到網址中的紅框處,可以上傳自己的圖片。
https://ithelp.ithome.com.tw/upload/images/20190912/20120424jdgJtmdOdf.png

Step 2 : 得到我們圖片分析的結果。

我們來看看我們可以得到什麼結果:
* Landmarks: 顯示了這圖中的地標在哪(71%表示信心指數,有多肯定這答案的意思),我們還可以看到下方標出了實際上地圖的位置與衛星雲圖。

https://ithelp.ithome.com.tw/upload/images/20190912/20120424C3kSJqrH6c.png
* Faces: 顯示了這張圖中哪裡有臉;還有辨識表情,像這張圖他認為圖片中的人很開心。
https://ithelp.ithome.com.tw/upload/images/20190912/20120424eGGTwgH5lq.png
* Labels: 告訴你這張圖可能的組成元素,與這張圖的標籤。
https://ithelp.ithome.com.tw/upload/images/20190912/20120424Qk6J2i2XUh.png
* Web: 如果拿這張圖到網路上搜尋類似圖片,會得到什麼結果的分析整理。
https://ithelp.ithome.com.tw/upload/images/20190912/20120424sdaNqcZLtZ.png
* Properties: 告訴你這張圖片的主色調組成。
https://ithelp.ithome.com.tw/upload/images/20190912/20120424YKUidpaJLb.png
* Safe Search: 告訴我們這張圖片是否有不適當內容,主要分成四種判定標準
* Adult: 圖片內容是否色情
* Spoof: 圖片內容是否像是meme類型的(可能有些網站要防止meme類型的內容不斷散播)
* Medical: 圖片內容是否像是做外科手術
* Violence: 圖片內容是否暴力血腥的

很明顯的,這張圖片都沒有包含以上的分類要素。

https://ithelp.ithome.com.tw/upload/images/20190912/20120424INi3LP65B5.png
* JSON: 將上面所有結果的內容包成JSON給你,也就是實際上串好API會拿到的東西。


2. Video intelligence API

課程地圖
* Python notebooks in the cloud
* Pre-trained ML APIs
* Video intelligence API

Video intelligence API是google的影片辨識的API,
可以讓我們分析一個影片內容,從一瞬間、一幀到一整個影片的分析都可以做到。

part 1 : Video intelligence API裡面有哪些功能

https://ithelp.ithome.com.tw/upload/images/20190912/20120424n4P2ko1tKM.png

Video intelligence API 功能名稱用途
label detection他會告訴你這影片中可能有什麼(代表著他的label)
Video & scene-level annotations從各個場景或整個影片”解釋”影片的內容,算上面功能的進階版
Shot Change Detection告訴你這個影片哪裡有(突然的)場景變化。
Explicit Content Detection檢測影片中是否有不適當的內容。
Regionalization使我們可以指定這個影片可以執行Video intelligence API的區域

※補充:
* Video & scene-level annotations

自己的註:要”解釋”影片可以從很多個角度切入,
例如說一個場景可以解釋出一個意義,
scene等級的功能就是在做這樣的分析,而video等級的分析就是做整部影片的解釋。
與label detection不同的是,label只會告訴你有什麼,但不會告訴你意義(沒有”解釋”)

  • Shot Change Detection
    > 例如:如果你的影片從一個風景突然特寫到一個人,他會告訴你變化的時間點。

part 2 : demo Video intelligence API的功能

Video intelligence API一樣有提供網頁版,在開始串Video intelligence API前,
我們可以先到這網站測試自己影片的結果:https://cloud.google.com/video-intelligence/

(這邊也是先使用影片中的範例,有興趣的朋友可以自己嘗試。)

example 1 : 一部影片的分析

我們先示範上傳一個影片,上傳後我們可以看到google已經為這個影片做了許多標籤:
https://ithelp.ithome.com.tw/upload/images/20190912/2012042462zsSlldkm.png

我們觀察結果,我們可以發現紅框處顯示了這影片中的label,
也就是Video intelligence API在這影片中找到的東西。
右側綠框處為這個label對應影片中的位置(秒數)。

以圖片中的上方影片正好有一隻狗出現,往下方找第一行DOG的label,
對應的紅色分布正是Video intelligence API偵測到有出現狗的片段。

以人工看影片的方式找出狗不是做不到,
但是會非常耗時且沒辦法大量快速的處理內容。
而且我們要完全確定答案的話,我們必須將整個影片都看過才行。
更何況如果我們不是要找狗而已,我們要找整個影片有哪些內容並記錄下來的話。
那人工處理這件事情的速度會非常慢。

我們可以用單一個REST API取得一個JSON格式的回覆結果,
這個畫面也是將JSON格式做一個視覺化的呈現,讓我們知道會拿到什麼東西。

example 2 : 多部影片的分析

這邊要提到的是對多部影片的分析,適用的情境例如:
我們是一家體育新聞公司,我們想要找尋棒球賽事的精采片段。
手動看手邊的每一部影片是一件耗時的工作,
我們如果使用Video API就可以很輕鬆地得到JSON結果。

https://ithelp.ithome.com.tw/upload/images/20190912/20120424nkniSnmnZI.png

我們從上方紅框處搜尋baseball,我們就可以找到baseball的影片。
而下方會自動過濾出含有baseball的影片內容,以及baseball有出現的秒數。
而且我們只要對紅點處點擊一下,我們立刻可以看到那一段影片內容。

我們可以看見使用了Video Intelligence API,
只需要幾分鐘就能幫我們處理了人工觀看影片可能需要的數小時的工作時間。


3. Cloud Speech API

課程地圖
* Python notebooks in the cloud
* Pre-trained ML APIs
* Cloud Speech API

Cloud Speech API是google的語音辨識的API,
他可以幫助我們從語音轉換成”超過100種語言”的文字稿。

part 1 : Cloud Speech API裡面有哪些功能

Speech API 功能名稱用途
Speech to text transcription只要丟語音給Cloud Speech,就可以回傳語音的文字稿。
Speech timestamps可以讓你的文字稿具有能回查演講時間的功能(點文字就能跳到該語音段落)。
Profanity filtering過濾不適當的語音內容。
Batch & streaming transcription允許傳送一個完整的語音文件,或者也可以發送連續的語音串流。最後我們將會回傳一個完整的對應文字稿。

※補充:
* Speech timestamps

也就是說,我們可以知道每一個字在speech中的開始與結束時間。

part 2 : demo Cloud Speech API的功能

Cloud Speech API一樣有提供網頁版,
我們可以先到這網站測試自己語音的分析結果:https://cloud.google.com/speech

(這邊也是先使用影片中的範例,有興趣的朋友可以自己嘗試。)

而這裡我們著重在展示Speech timestamps的功能,我們先稍微解釋一下其運作的原理:

https://ithelp.ithome.com.tw/upload/images/20190913/2012042481vWa3ZIVx.png

step1 : 從一個影片中提取出語音。
step2 : 將語音送進 Cloud Speech API 並得到文字稿與時間標記。
step3 : 我們將結果視覺化,在我們視覺化的UI中,我們可以直接搜尋文字稿對應影片的段落。

example 1 : 一部影片的分析

https://ithelp.ithome.com.tw/upload/images/20190913/20120424CmjwhnATJr.png

這個就是網頁顯示的結果,下方文字稿就是從上面影片內容擷取出的。
我們可以在下方任意點擊一段文字,就會直接跳到影片的該段落(如圖所示)。

example 2 : 多部影片的分析

https://ithelp.ithome.com.tw/upload/images/20190913/20120424RHzMIIgn4S.png

再來我們想要實現的功能是,在大量的演說影片中找到我們要的關鍵字。
我們回到主目錄,我們以搜尋Firebase作為示範,
我們可以先在上方藍框處搜尋,他會幫我們從我們所有的影片中找到符合我們的結果,
然後只要點擊對應的藍點處(如圖中的紅框處),就可以直接跳到該段影片有提到Firebase的內容。

part 3 : Cloud Translation裡面有哪些功能與demo

當我們從語音得到文字之後,我們可能會想開始嘗試分析。
有一件可能必須做的事情就是我們得先試著翻譯他,Cloud Translation可以快速地幫助您完成。

Translation API 功能名稱用途
Translate text可以翻譯100多種不同的語言
Detect language可以偵測100多種不同的語言

※補充:
* Detect language

也就是當你看不懂是哪個國家的語言的時候,他可以幫助你找到是哪個國家的。

Cloud Translation 最有名的應用就是 Google Translate,相信大家都不陌生,
Cloud Translation API能翻譯100多種不同的語言,
也就是說,如果我們現在想要做一個多國語言的服務,
自動偵測語言與翻譯語言能幫助你輕鬆地找到這是什麼國家的語言,並翻譯內容。

Cloud Translation API一樣有提供網頁版,
我們可以到這網站測試:https://cloud.google.com/translation


4. Translation and NL

課程地圖
* Python notebooks in the cloud
* Pre-trained ML APIs
* Translation and NL

(Translation的課程內容應該在上一節,但這裡是依照google課程的名稱命名的,可能命名有誤。)

Cloud Natural Language是google提供的自然語言辨識API,
我們一樣可以利用單一的REST API request得到一段文字內容的理解。

part 1 : Cloud Natural Language API裡面有哪些功能

Natural Language API 功能名稱用途
Extract entities可以從文章內容中提取entities(實體)
Detect sentiment偵測這篇文章內容中或是句子的情緒,會告訴你情緒是正面還是負面。
Analyze syntax可以分析語法,了解更多文章的語言細節,或是提取文章中的部分內容。
Classify content可以將文章內容分類到不同類別。

part 2 : Analyze syntax的demo與更詳細介紹

以下,我們將先針對Analyze syntax做更多的介紹,
我們使用一個例句 “The natural language API helps us understand text.”

https://ithelp.ithome.com.tw/upload/images/20190913/20120424JESmMu2nh4.png

我們做了一個視覺化的圖片來使我們能更了解透過API回覆的JSON內容,

  • Dependency parse tree(紅色部分),這個的功能是將所有有關係的詞彙做相互關聯,
    像是那些單詞可能與其他的單詞有關係。

  • Parse label(綠色部分),他會告訴我們每個詞在句子中的作用

    例如,在這句話裡面 helps 是 root verb(主要的動詞),API是nominal subject(主要的主詞)

  • Part of speech(黃色部分),他會告訴我們每個詞在句子中的詞性(形容詞、名詞、動詞…)

  • Lemma(黑色部分),代表這個詞的canonical form(標準形式)

    例如,在這句話裡面 helps 的 canonical form(lemma) 是 help
    這個對於計算特定單詞用於描述某些內容,在文章中所出現的次數非常有用
    你可能不希望在分析的過程中,helps 與 help 被當成兩個詞來分別計算,
    這時Lemma就可以幫助你完成這件事情。

  • Morphology (灰色部分),可以分析這個詞的Morphology(詞法)

    例如:名詞有可數、不可數的特性…,動詞有是不是第三人稱單數之類的特性…
    這個結果也會根據語言而有所不同。

part 3 : Content classification的demo與更詳細介紹

以下,我們將針對Content classification做更多的介紹,
我們拿一篇新聞文章來做分析,我們將這篇新聞的標題與第一句話丟進Natural Language API進行分類。

https://ithelp.ithome.com.tw/upload/images/20190913/201204247wsLTIWwVj.png

我們可以看到他返回的類別是baseball(上方紅框處),
我們再注意另外一件事,文章裡面並沒有提到過baseball這個詞
但google告訴我們他有99%的肯定(下方紅框處)這篇文與baseball有關。

這個API的方法總共提供了700多種可用的類別可以使用。

part 4 : case: 使用Cloud Natural Language API的企業例子

這邊我們會提到一間公司使用各種不同的Natural Language API方法在他產品中的例子。

https://ithelp.ithome.com.tw/upload/images/20190913/20120424HMJqpBUnA6.png

Wootric:一個客戶反饋的平台,他透過圖中紅框處幫助客戶收集使用者的回饋,

他們在自己應用中的各處放置這個方框,
並且要求用戶提供一個分數代表著它們的使用體驗與覺得這個應用最特別的地方。
0-10的分數很容易理解,但是如果是開放式的回饋(自己填文字的)就比較難快速理解(需要時間消化內容)。

而這個就正是他們使用natural language API的地方,
它們使用sentiment analysis來分析這個人的文字回覆情緒是否與他們提供的數字分數吻合,
然後他們使用entitiessyntax analysis取解析出最關鍵的內容(entities),
並直接反饋給適當的對象,就可以做即時的處理,而不用派一個人手動的逐條閱讀回饋內容才反饋。

例如:他們可能遇到對可用性感到憤怒的使用者,他們可以及時反應給適當的人,請他做即時的處理。
而如果沒有這樣做,我們會需要一個人手動的閱讀每一條回饋內容,並一個個反饋給適當的對象。

part 5 : demo Cloud Natural Language API的功能

Cloud Natural Language API一樣有提供網頁版,
我們可以先到這網站測試自己文字分析結果:https://cloud.google.com/natural-language/

https://ithelp.ithome.com.tw/upload/images/20190913/20120424FBc9vnOwjL.png

紅框處可以打入自己想要的句子,
我們以影片中句子作為例子:”I liked the sushi but the service was bad.”

這是從某個餐廳的評論找下來的,假設我們是經營餐廳的人,每天我們可能會收集很多評論,
我們不會想一句句的分析每個評論,我們可能只想找最正面與最負面的評論。

我們來看看Cloud Natural Language API分析的結果:

https://ithelp.ithome.com.tw/upload/images/20190913/20120424whEIr6pxFB.png

  • Entities:從這個句子的結果中,我們看到他從我們的句子中分析出了兩個entities(實體),service與sushi,並且還能夠從這兩個實體中分別分析情緒。
    我們除了可以理解整個句子的情感之外,還能分別針對兩個實體(service與sushi)查看情感。

natural language API 返回的情緒值介於-1到1,表示情緒的負面與正面。
我們可以看到service的得分為-0.9,幾乎完全是負的,表示顧客認為服務很差。
我們再來看sushi的得分為0.9,幾乎完全是正的,表示顧客非常滿意壽司。
這樣的個別實體分析是非常有價值的,整句話的情緒分析做不到這樣的細節分析。

https://ithelp.ithome.com.tw/upload/images/20190913/20120424LwmwCEynV5.png

  • Sentiment:我們再來看到整句話的情感分析,也能同樣看到上方的單個實體分析結果。

不過這個例子特別的地方在於,我們針對單個實體分析情緒,
比起分析整句話的情緒,能得到更多有用的資訊。
(sushi好而service不好,整句話只能知道是不好的。)

https://ithelp.ithome.com.tw/upload/images/20190913/20120424kTL0ZzyBiJ.png

  • Syntax:可以幫我們分析這句子的結構,因為上面已經有詳細demo過了,這邊只展示結果。

  • Categories:可以看到這句話是屬於哪一種分類。影片中沒有展示。

但我有自己試了,原來是找不到結果XD (是因為這樣才沒放在影片中嗎XD/images/emoticon/emoticon37.gif)
回傳的結果會是 “No categories found. Try a longer text input.”
照這句話的意思看來,可能是資訊量不足,還沒辦法做分類,
上方的例子畢竟是用一篇新聞的句子才能找到結果,也許是因為這句話能提供的資訊還太少吧。


參考資料


本文同步發佈在: 第 11 屆 iT 邦幫忙鐵人賽
【Day 12】 Google ML – Lesson 9 – google圖片辨識(Vision), 影片辨識(Video), 語音辨識, 語言翻譯, 自然語言辨識(NL) API功能總整理

⭐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」 贊助作者鼓勵繼續創作,讀者們「只需幫忙按讚,完全不用出錢」哦!

likecoin-steps