我們前面已經把裝備都準備好了,現在要開始面對真實的世界了。人工智慧的概念其實跟人類自己的學習其實很像。先蒐集資料~大量的資料,然後根據資料進行分析然後判斷對錯。
機器學習的基礎方式可以說是非常簡單:
1.大量的數據資料:
我們蒐集到大量的資料後,將資料分為特徵和結果,以判斷人類的年齡來比喻會容易理解很多。我們通常肉眼判斷一個人的年齡會用膚質,眼袋,法令紋,雀斑等... 這些叫做特徵,這些資料要丟給機器學習我們必須要告訴它們匹配的答案。而每一筆資料的年齡欄位就會是結果。
早期的資料統計方式,我們必須要遇到一模一樣的特徵,才有辦法得到結果。但是如果是這樣的話,人工智慧是沒有價值的。所以要依靠演算法來進行分類。
2.演算法:
剛剛我們說機器學習不需要靠一模一樣的特徵就可以得到分類結果,這些就是靠演算法來完成(歡迎從這裡開始打瞌睡),演算法的作用就是將一堆資料反推成共通的判斷模式,有了這個模式你就可以在不用完全一樣的特徵中就可以做出精準的判斷。常見的演算法有:
SVM 支持向量機: 簡單的說就是把所有的資料以散布圖的概念列出後在將結果用數條線分開,某條線的一側就是某個答案。
Decision Tree決策樹: 這是一個更簡單的概念,把每個特徵拿出來作判斷,經過不斷的往下判斷得到一個運算模式。
Random Forest隨機森林: 這是一種投票式的決策樹,我們可以想像有多組的決策樹去判斷,每個決策樹再來進行投票的動作來決定結果,然後再整合成一個運算模式。這樣有個好處是,理論上應該要比前面的兩個演算法來的準確,但是有個很大的問題就是隨著決策樹的數量,會需要更大量的演算 CPU 。另外還有個盲點就是,演算的深度也不是越深越好,多了有可能會變成鑽牛角尖反而會判斷錯誤。決策樹過多也不會是絕對性的幫助(機器學習也是會出現民粹的)
簡單的說呢,並沒有一個完美的演算法,我們要不斷的去作驗證和調整出一個相對準確的演算法。然後隨著資料的增加和改變,要回頭在重新進行調整。
3.學習和測驗:決定好演算法後,我們要需要開始讓演算法針對資料去作學習。我們會把資料分為學習和測驗兩組,通常會作 70:30 的分配,把 70% 的資料拿去產生出演算法模式,然後把 30% 的資料我們送去剛剛產生出來的演算法模型中驗證,我們就可以依照這 30% 的測驗結果來判斷我們是不是選用了好的演算法。