AI模型訓練,如何選出正確的演算法和數據特徵?

【若水導讀】選擇AI數據與演算法,三個提醒:
1. 選擇特徵,看見數據裡的「見樹不見林」
2. 掌握4個考量,選擇適合的AI演算法
3. 建立企業的AI工具箱(Tool Box)

《2021 AI數據處理實戰攻略》系列文,若水邀請到前趨勢科技 (Trend Micro)資深技術經理張佳彥,分享多年來每天管理人工智慧團隊、AI專案的落地實戰經驗。

AI業界,流傳著一句話︰「AI的數據和特徵,決定了機器學習 (Machine Learning) 的上限。而AI模型和演算法,只是逼近這個上限而已」,可見AI數據的特徵,對機器學習有相當大的影響。AI人工智慧的開始,該怎麼選AI數據特徵和演算法?

有了數據和模型,AI人工智慧要學什麼特徵?

討論怎麼選擇特徵之前,可能有人會想,既然找特徵這麼費工,為什麼不全部採用深度學習 (Deep Learning) 就好了?

深度學習 (Deep Learning) 讓AI自行透過數據去學習和預測,不用選特徵,乍看之下好像比較輕鬆。但其實,深度學習並不好訓練,再加上有太多複雜因素需要考慮,所以除非你的商業問題,已經被證實比較適合用深度學習來解決,否則不建議一開始就從深度學習入手。

過往在找AI數據特徵時,工程師通常會先從專家經驗(Expert Rule)著手,用人類的知識為該領域的數據抓出特徵。只不過專家經驗並非萬能,侷限在於,人類的認知可能過於主觀「見樹不見林」,或是選出的特徵覆蓋率低,有時候100筆AI數據裡面,專家所抓出的特徵,可能只命中其中一筆而已。

此時,如果能綜觀來看數據,從中取出一些具代表性的特徵,有助於改善特徵不夠精確的情況。要取出代表性的特徵,可以用統計學的方式,也可以用深度學習的方式來解。因為統計學本身就是一種從大數據 (Big Data) 中抽樣,取出可以代表整體特徵的一種概念,所以可以做到「見樹又見林」。至於深度學習,則是可以透過神經網路或自動編碼器 (AutoEncoder) 的中間層輸出,來當作代表性的特徵 (Deep Representation) 使用,一樣有辦法找出代表性特徵。

決定好代表性的特徵,接著工程師就會開始煩惱,該選哪種演算法?

( 圖片來源 : Unsplash )

該選哪一種,線性或邏輯演算法?

網路上的參考資料,通常都建議從最簡單的線性迴歸 (Linear Regression) 或邏輯迴歸 (Logistic Regression) 演算法入手。

不過,回到決定演算法的初衷,需要思考選擇的演算法,可以為我做到什麼?基本上,工程師會希望一個好的演算法,盡量具備以下優點:

1. 可彈性對應各種特徵:

即使特徵變化很大,如果這個演算法都可以因應,工程師就可以減少做特徵工程或特徵分類的負擔。

2.可判斷哪個特徵重要:

如先前提到,特徵選擇是AI模型訓練很重要的一環。如果演算法可以幫工程師找出哪一個特徵比較重要,就能在製作第一個模型時,減少特徵選擇的負擔,也能幫助我們更了解數據及問題。

3.從初始問題開始驗證

在「訓練AI模型,需要多少數據?」篇,我們提到,模型複雜度以及數據量,和商業問題息息相關。一個可以調整參數的模型,有助於評估需要多少數據、欲解決的商業問題有多複雜。

4.從初始問題開始驗證

在POC階段,需要快速且大量的實驗和調整,演算法速度快,就能做更多實驗;演算法輸出結果穩定,當數據或特徵有細微變動或雜訊時,模型表現也會相對穩定,容易判讀結果。

思考過這些點,就會發現,其實太簡單的線性或邏輯演算法,都無法符合上述需求。但是,太複雜的深度學習 (Deep Learning) 也顯得大材小用。所以,我會建議一開始在做POC時,先用Tree Base演算法來處理。​

(圖片來源:若水國際)

演算法無優劣,建立AI工具箱

不同演算法,就像是不同的工具,各有各的優劣。沒有任一個演算法,可以在所有問題上都能得到最好的結果。​

(圖片來源:論文, Google數據科學家的Twitter)

上圖左是美國賓州大學的一篇針對生物相關資料集,比較不同演算法的研究報告,可以看到雖然Gradient Boosting Classifier,可以在最多的51個資料集上得到最好的表現,但是不同的演算法還是能在其他數據集上有更好的表現。​

上圖右是2019年Google 數據科學家在推特上發布一項,關於Kaggle舉辦的眾多比賽中,前五名隊伍使用演算法框架的調查結果,可以看出雖然最多隊伍利用深度學習框架Keras得到好成績,但是Tree base的LightGBM和XGBoost,分別有第二和第三多的隊伍使用。​

如果你的商業問題,已經被證實可以用特定類型的演算法,達到很好的表現,那就先嘗試那種演算法去做POC。若否,那就使用最基礎的方法,一個一個演算法下去嘗試。​

總之,讓你的第一個模型簡單一點,而且建立正確的AI數據處理流程,才是重點。​

接觸機器學習以來,每天都有新的演算法出爐,讓人看得眼花繚亂。因此,很建議企業花半年左右的時間,建立自己的「AI工具箱」,幫各種屬性的演算法做分類。建立AI工具箱,不一定要全部試用過才算,但至少分類完畢後,會更了解哪些演算法有哪些特性,當新的演算法問世,才能快速類比兩者之間的異同。

AI工具箱不只對工程師有益,對專案管理者來說,也是必要的知識。即使建構上會花一些時間,有了AI工具箱,在選用演算法時會更有底氣,明確知道該先嘗試哪一類的演算法,整體專案效率也會更高。​

介紹完數據特徵和演算法的選擇,接下來要和大家分享,如果AI模型學歪了,該如何校正?下一篇AI數據實戰攻略,期待再見。

相關延伸閱讀

歡迎分享給你的朋友,或進一步閱讀系列文章。

Back to Top
Close