2021年3月14日 星期日

Reframing 模式:Machine Learning Design Patterns #5

本文為機器學習系統設計的好書 Machine Learning Design Patterns 中介紹的第五個模式:Reframing pattern 的筆記。這個技巧是轉化機器學習模型的輸出,例如說將 regression 問題轉化成分類問題,或將分類問題轉化為 regression 問題。

例子:預測降雨的模型

降雨模型想要預測的是未來降雨量會有多少;直觀的設計會是一個 regression 問題,直接預測未來的降雨量。但問題來了:降雨量通常是個機率模型,也就是說在同樣的輸入特徵條件下有時候降雨量為 0.5 cm,有時候為 0.3 cm,但 regression 就只能輸出一個數字,無法很完整地表示一個機率模型。

因此 reframing 的技巧就是將 regression 問題轉換成分類問題,也就是把輸出轉化為不同降雨量的機率,比如說 0 至 0.1 cm 為一個分類,0.1 至 0.5 cm 為一個分類,大於 0.5 cm 為一個分類,而此問題就轉化成一個有三種可能的分類問題了。搭配 softmax 每個類別都會有一個對應機率的輸出,因此就能完美地描述一個降雨的機率模型。

另一個例子:影片推薦系統

直覺上當解決影片推薦的問題時,我們會用分類問題來解,也就是預測一個使用者喜不喜歡看這部影片,而 reframing 用在這時會將分類問題轉化成 regression 問題,轉而預測使用者會花多少時間看這一部影片,這樣可以避免機器學習模型學到的是如何增加使用者的點擊數而不是真的推薦影片。

在將 regression 轉化成分類問題的過程中,儘管在轉化成離散的機率分類過程中會失去一些精確性,但是輸出的結果卻能表示一整個機率密度函數。另外如果此機率密度函數是 bimodal 甚至 multimodal (https://en.wikipedia.org/wiki/Multimodal_distribution)的話,regression 問題只能輸出一個數字,而 reframing 成分類問題可以輸出成一個機率分布,因此就能更正確地解決機器學習問題。 

Capturing Uncertainty

當一個機率模型的 variance 很大時,這時候將 regression 轉化成分類問題能更好地將此機率模型的 uncertainty 描述出來。但相反地,當輸出的機率模型 variance 很小時,那 regression 的結果更能精確地反映這個模型。因此在實務上也要先了解輸出機率模型的分布大致地樣子再決定要不要 reframing。

限制輸出的範圍

限制輸出數字的範圍也是一種 reframing 的技巧,一般會用 sigmoid 的結果經由線性變換來限制輸出的範圍。

Multitask Learning

Multitask learning 也用了 reframing 的技巧,常見的例子是圖片的物體偵測模型,輸出包含了物體的位置(regression 問題)及物體的分類。這兩組輸出共用了大部分的參數,只有在最後幾層做的事情不一樣,因此也叫 multitask learning。

沒有留言:

張貼留言