解決機器學習問題

使用預測機器學習或生成式 AI 方法,確認問題能得到最佳解決後,即可以機器學習術語來定出問題。完成以下工作,即可定出機器學習術語的問題:

  • 定義理想結果和模型的目標。
  • 識別模型的輸出內容。
  • 定義成效指標。

定義理想結果和模型的目標

理想的結果為何不侷限於機器學習模型?換句話說,您希望產品或功能執行的確切任務為何?這與您先前在「指出目標」一節中定義的陳述式相同。

明確定義您希望模型採取的行動,藉此將模型的目標連結至理想的結果。下表說明假設應用程式的理想結果,以及模型的目標:

應用程式 理想結果 模型的目標
「天氣」應用程式 計算特定地理區域的降水量 (以六小時為單位遞增)。 預測特定地理區域的六小時降水量。
時尚應用程式 生成多款襯衫設計。 透過文字和圖片產生三種襯衫設計,文字代表樣式和顏色,圖片則是襯衫類型 (T 恤、鈕扣、馬球類型)。
影片應用程式 推薦實用影片。 預測使用者是否會點擊影片。
郵件應用程式 預測電子郵件是否為垃圾郵件。
財務應用程式 匯總多個新聞來源的財務資訊。 針對過去七天的主要財務趨勢產生 50 字的摘要。
地圖應用程式 計算交通時間。 預測在兩個地點之間移動所需的時間。
銀行服務應用程式 識別詐欺交易。 預測交易是否由持卡人完成。
餐廳應用程式 依餐廳菜單辨識料理類型。 預測餐廳的類型。
電子商務應用程式 針對公司產品產生客戶服務回覆。 使用情緒分析和機構知識庫產生回覆。

找出所需的輸出內容

您選擇的模型類型取決於問題的具體情況和限制。模型的輸出應完成在理想結果中定義的工作。因此,第一個問題是「我需要哪種輸出內容才能解決問題?」

如果您需要將事物分類或進行數值預測,建議您使用預測性機器學習。如果您需要產生新的內容或產生與自然語言理解相關的輸出內容,建議使用生成式 AI。

下表列出預測式機器學習和生成式 AI 輸出的結果:

表 1:預測式機器學習
機器學習系統 輸出範例
分類 二進位 將電子郵件分類為垃圾郵件或非垃圾郵件。
多類別單一標籤 在圖片中將動物分類。
多類別多標籤 將圖片中的所有動物分類。
數值 單維迴歸 預測影片可能會獲得的觀看次數。
多維度迴歸 預測個人的血壓、心率和膽固醇等級。
表 2:生成式 AI
模型類型 輸出範例
文字
總結文章。

回覆客戶評論。

將文件從英文翻譯成中文。

撰寫產品說明。

分析法律文件。
圖片
製作行銷圖片。

為相片套用視覺效果。

產生產品設計變化版本。
音訊
產生特定口音的對話。

產生特定類型的短片,例如爵士樂。
影片
產生寫實逼真的影片。

分析影片片段並套用視覺效果。
多重模組 產生多種輸出內容,例如含有說明文字的影片。

分類

「分類模型」會預測輸入資料屬於哪個類別,例如輸入是否應歸類為 A、B 或 C。

分類模型正在進行預測。

圖 1:進行預測的分類模型。

您的應用程式可能會根據模型的預測結果來做出決定。舉例來說,如果預測是 A 類別,則執行 X;如果預測是 B 類別,則執行 Y;如果預測是 C 類別,則寫 Z。在某些情況下,預測「是」應用程式的輸出內容。

產品程式碼會使用模型的輸出結果來做出決定。

圖 2. 分類模型的輸出內容會在產品程式碼中用來做出決定。

迴歸

迴歸模型可用來預測數值。

迴歸模型正在進行預測。

圖 3:用於進行數值預測的迴歸模型。

您的應用程式可能會根據模型的預測結果來做出決定。例如,如果預測值落在 A 範圍之間,請進行 X;如果預測落在 B 範圍之內,則執行 Y;如果預測落在 C 範圍之內,則請 Z。在某些情況下,預測結果「是」應用程式的輸出。

產品程式碼會使用模型的輸出結果做出決定。

圖 4. 在產品程式碼中使用迴歸模型的輸出來做出決定。

請考量下列情境:

您想根據預測的熱門影片快取影片。換句話說,如果模型預測到影片會很熱門,您可以快速為使用者提供該影片。為此,請使用更有效且昂貴的快取。其他影片則需要使用不同的快取您的快取條件如下:

  • 如果系統預測影片的觀看次數為 50 次以上,建議您使用昂貴的快取。
  • 如果系統預測某部影片的觀看次數介於 30 至 50 次之間,您就可以使用便宜的快取。
  • 如果系統預測影片觀看次數少於 30 次,就不會快取影片。

您會認為迴歸模型是正確的做法,因為您會預測到數值 (亦即瀏覽次數。)但是,在訓練迴歸模型時,您會瞭解到,對於觀看次數為 30 次的影片,預測會產生相同的損失 (28 和 32)。換句話說,雖然應用程式對 28 和 32 的預測結果會大同小異,但模型會認為兩種預測結果都一樣出色。

正在訓練的模型並評估其損失情況。

圖 5. 訓練迴歸模型。

迴歸模型不知道產品定義的門檻。因此,如果應用程式行為因迴歸模型的預測有些微差異而產生重大變化,您應考慮改為實作分類模型。

在此情境中,分類模型會產生正確的行為,因為分類模型對 28 的預測,對 28 的預測損失比 32 來得高。理論上,分類模型預設會產生閾值。

這種情形會著重在兩個重點:

  • 預測決策。如果可以,請預測應用程式將做出的決定。在該影片範例中,分類模型會判斷將影片分類至「無快取」、「便宜的快取」和「昂貴的快取」時,會預測我們的決定。從模型中隱藏應用程式行為會導致應用程式產生錯誤的行為。

  • 瞭解問題的限制條件。如果應用程式根據不同的門檻採取不同動作,請判斷這些門檻是固定還是動態。

    • 動態門檻:如果門檻是動態值,請使用迴歸模型,並在應用程式程式碼中設定門檻。如此一來,您可以輕鬆更新門檻,同時讓模型進行合理的預測。
    • 固定門檻:如果門檻是固定的,請使用分類模型,並根據門檻限制為資料集加上標籤。

    一般來說,大部分快取佈建作業都是動態的,且門檻會隨時間改變。因此,由於這是快取問題,因此最好使用迴歸模型。不過,許多問題的門檻固定固定,讓分類模型成為最佳解決方案。

接著來看看另一個範例。如果您建構的是天氣應用程式,其理想結果是讓使用者瞭解應用程式在未來六小時會下雨的程度,您可以使用迴歸模型來預測標籤 precipitation_amount.

理想結果 理想標籤
告知使用者接下來六小時的下雨量。 precipitation_amount

在天氣應用程式範例中,標籤會直接解決理想的結果。但在某些情況下,理想結果與標籤之間並不會呈現一對一的關係。以影片應用程式為例,理想結果是推薦實用的影片。然而,資料集裡沒有名為 useful_to_user. 的標籤

理想結果 理想標籤
推薦實用影片。 ?

因此,您必須找到 Proxy 標籤。

Proxy 標籤

「Proxy 標籤」:用來取代資料集內以外的標籤。如果無法直接測量想預測的內容,就必須使用 Proxy 標籤。在影片應用程式中,我們無法直接測量使用者是否對影片實用。如果資料集具備 useful 功能,且使用者標記了所有認為實用的影片,這種做法會非常好,但由於資料集不需要,我們需要替代 Proxy 標籤以提供實用性。

實用的 Proxy 標籤,可能是使用者要分享或喜歡影片。

理想結果 Proxy 標籤
推薦實用影片。 shared OR liked

Proxy 標籤不會直接測量您要預測的內容,因此請小心謹慎。例如,下表概述了推薦實用影片中潛在的 Proxy 標籤問題:

Proxy 標籤 問題
預測使用者是否會點選「喜歡」按鈕。 多數使用者絕對不會點選「喜歡」。
預測影片是否會受歡迎。 非個人化。部分使用者可能不喜歡熱門影片。
預測使用者是否會分享影片。 部分使用者不會分享影片。有些觀眾分享影片是因為他們「不」喜歡。
預測觀眾是否會點選播放。 盡量提高誘餌式點擊。
預測觀眾觀看影片的時間長度。 相較於短片,長片的成效更是不同。
預測使用者會重複觀看這部影片的次數。 比較「可重複觀看」的影片類型,而非無法重複觀看的影片類型。

沒有任何 Proxy 標籤是理想的替代結果。而且都會有潛在的問題。請選擇最符合用途的問題類型。

測驗您的瞭解程度

某間公司想在自家的健康與身心健康應用程式中使用機器學習技術,協助打造更美好的環境。您覺得他們需要使用 Proxy 標籤來達成目標嗎?
是的,公司需要尋找 Proxy 標籤。您無法直接評估快樂和身心健康等類別。而是針對其他某些功能取得概略值,例如每週運動時數、從事嗜好或與好友互動的時間。
否,公司不需要使用 Proxy 標籤。滿意度和身心健康可直接測量。

產生

在大部分情況下,您不會訓練自己的生成式模型,因為這樣做需要大量的訓練資料和運算資源。請改為自訂預先訓練的生成式模型。如要取得生成式模型以產生您想要的輸出,您可能需要使用下列一或多項技術:

  • Distillation:建立大型模型時,如要建立較小版本,請從大型模型產生合成加標籤資料集,然後用來訓練較小的模型。生成式模型通常較為巨大,並會耗用大量資源 (例如記憶體和電力)。蒸餾作業可讓模型使用較少且資源較少的模型,預估較大模型的效能。

  • 微調有效率地調整參數。如要提升特定工作上的模型效能,您必須在資料集上進一步訓練模型,該資料集包含您想要產生的輸出類型範例。

  • 提示工程:如要讓模型執行特定工作或以特定格式產生輸出內容,請將您想執行的工作告知模型,或是說明您希望輸出的格式。也就是說,提示可以包含自然語言指示,說明如何執行任務,或是具有所需輸出內容的說明範例。

    例如,如果您希望文章的簡短摘要,可以輸入下列內容:

    Produce 100-word summaries for each article.
    

    如果您想讓模型針對特定讀數層級產生文字,可以輸入下列內容:

    All the output should be at a reading level for a 12-year-old.
    

    如果您想讓模型以特定格式提供輸出內容,可以說明輸出的格式 (例如「將結果格式化為資料表」),或是提供範例來示範工作。例如,您可以輸入下列內容:

    Translate words from English to Spanish.
    
    English: Car
    Spanish: Auto
    
    English: Airplane
    Spanish: Avión
    
    English: Home
    Spanish:______
    

蒸餾和微調,更新模型的參數。提示工程不會更新模型的參數。而是協助模型學習如何根據提示內容產生所需的輸出內容。

在某些情況下,還需要測試資料集才能根據已知值評估生成模型的輸出內容,例如檢查模型摘要是否與人工產生的資料相似,或是模型的摘要是否良好。

生成式 AI 也可用於實作預測式機器學習解決方案,例如分類或迴歸。舉例來說,由於自然語言有深厚的知識,大型語言模型 (LLM)通常可以執行文字分類工作,勝過針對特定工作訓練的預測機器學習。

定義成效指標

定義您將用來判斷機器學習實作是否成功的指標。成功指標定義了您關心的重點,例如參與度或協助使用者採取適當行動,例如觀看他們認為實用的影片。成功指標與模型的評估指標不同,例如準確率精確度喚回度AUC

舉例來說,天氣應用程式的成功和失敗指標可以定義如下:

成功 使用者開啟「會下雨嗎?」功能的頻率比之前高出 50%。
失敗 使用者開啟「會下雨嗎?」功能的頻率不會與之前相同。

影片應用程式指標可以定義如下:

成功 使用者在網站上停留的時間平均多出 20%。
失敗 和過去相比,使用者在網站上的平均停留時間不增加。

我們建議您為自己的成效指標設定明確的目標,然而,高目標可能會在成功和失敗之間造成差距。例如,使用者在網站上停留的平均時間比以前多出 10%,是成效或失敗都一樣。未定義的資料間距不重要。

重要的是,模型是否走向更近 (或超過) 的成功定義。舉例來說,在分析模型效能時,請考慮以下問題:改善模型是否會讓您更接近定義的成功標準?例如,一個模型的評估指標可能相當出色,但並未接近成功標準,這表示即便模型擁有很棒,也不符合您定義的成功條件。另一方面,模型的評估指標可能不佳,但更接近成功標準,這表示改善模型將越接近成功。

在判斷模型是否值得改善時,您可以考慮以下維度:

  • 效果不夠好,但請繼續保持。這個模型不應用於實際工作環境,但隨著時間經過一段時間後可能會大幅改善。

  • 夠了,接著繼續:此模型可在實際工作環境中使用,且可能進一步改善。

  • 品質夠好,但行之有急。這個模型處於實際工作環境,但可能非常良好。

  • 品質不夠好,不會有任何影響。這個模型不應該用於實際工作環境,而且可能有大量訓練。

決定改善模型時,請重新評估資源增加的情況 (例如工程時間和運算成本),以證明模型可以達到的改善效果。

定義成功和失敗指標後,您需要決定評估指標的頻率。舉例來說,您可以在導入系統後六天、六週或六個月的時間內評估成功指標。

分析失敗指標時,請試著找出系統失敗的原因。舉例來說,模型可能正在預測使用者會點擊哪些影片,但模型可能會開始建議吸引使用者參與的誘餌式點擊標題。以天氣應用程式為例,模型可能準確預測何時會下雨,但地理區域過大。

測驗您的瞭解程度

某時裝公司想銷售更多服飾。有人建議使用機器學習技術來判斷該公司應製造哪些服飾。他們認為自己可以訓練模型,以便判斷服飾類型穿著的衣服。訓練模型之後,他們想要將模型套用到自己的目錄來決定要製作的服飾。

他們該如何以機器學習術語找出問題所在?

理想結果:決定要製造哪些產品。

模型的目標:預測哪些服飾報導穿著時尚。

模型輸出:二元分類、in_fashionnot_in_fashion

成功指標:售出自家服飾的 70% 以上。

理想結果:決定訂購的布料和用品數量。

模型的目標:預測每個要製造的項目數量。

模型輸出:二元分類、makedo_not_make

成功指標:售出自家服飾的 70% 以上。

理想的結果不是決定訂購多少布料和數量。以便我們判斷商品是否應該製造。因此,模型的目標可解決錯誤的目標。