機器學習在現在AI越來越盛行的時代占了很重要的比重, 一般人看到的大多是已完成的產品或是概念, 背後使用的方法其實才是關鍵。機器學習在算法上也區分不同的兩個類別,分別為監督學習與非監督學習。 常見機器學習方法歸類如下:
監督學習
|
非監督學習
|
決策樹
|
聚類
|
神經網路
|
自組織映射
|
隨機森林
|
關聯分析
|
迴歸分析
|
奇異值分解
|
K近鄰
|
|
樸素貝葉斯
|
|
在監督學習中,一般使用已標記的數據集來進行訓練, 監督學習主要用於分類和建立迴歸關係; 而非監督學習使用未標記的數據進行訓練,目的是為了從數據中發現一些結構或模式, 大部分使用在聚類與降維上。
認識機器學習:神經網路方法
今天要來介紹監督學習中大家很常聽到, 且發展歷史悠久的神經網路,在JMP中使用的是ANN(artificial neural network) 人工神經網路方法, 以人體比擬就是神經元概念,神經元包含細胞體、樹突、軸突,樹突主要功能是接收來自其他神經元的信號,這些信號會透過突觸傳遞到樹突上,樹突將接收到的信號整合後傳遞給神經元細胞體進一步處理 ,軸突主要負責傳遞神經元的輸出信號。當神經元被激活,它會通過軸突傳遞信號到其他神經元,突觸是兩個神經元之間的接觸點,透過它,神經元之間可以通過神經傳導物質來傳遞信號,而每個突觸都有一個特定的強度相當於神經網路的權重。(圖1)
圖1
在神經網路(圖1-2)中,感知器(Perceptron)是一個重要的組成部分,它包含輸入、加權加總、激活函數(Activation functions)、輸出,當中輸出=激活函數(∑i(wi×xi)+b),wi為權重,xi為輸入值,b為偏差(bias),以下為單層神經網路示意圖,激活函數為線性函數時的簡單多元線性回歸表達式(圖2)。
圖2: 激活函數為線性函數時的簡單多元線性回歸表達式
3種JMP內使用的激活函數
- TanH::雙曲正切函數是一種S型函數, 介於-1和1之間,它是logistic函數中心化及尺度化版本,其中x是輸入變量的線性組合(圖3),其輸出中心化,當Y是分類變量或是非線性關係時,可以使用它當激活函數,也是常用的激活函數,其兩端極端值-1和1區域梯度接近0, 有可能會減慢學習速度。
圖3: 線性組合
- Linear: 又稱恆等函數, 不會經過變數轉換過程(圖4)也就是說:變數呈現線性關係,通常使用場景在於降低輸入變量的維度。
圖4:
- Gaussian: 高斯函數:, 它屬於徑向基底函數 (Radial Basis Function),它是非線性的函數,反應平面為高斯平面時適用(圖5),缺點是權重更新的速度慢,影響訓練的效率和效果,相比Tanh使用頻率較低。
圖5-1:
圖5-2:
接下來針對神經網路在JMP中如何設定進行說明: (圖6)
圖6
一開始的Validation Method用來評估訓練集和驗證集的模型解釋能力,給定KFold跟Holdback兩種交叉驗證方法,因為KFold利用了所有的數據下去驗證同時提供多個估計有助於模型評估穩定性,對於小樣本也可以避免偏差的結果,執行時間較長,Holdback執行時間短,但是數據驗證會存在比較高的變異。
底下的Number of Tours代表重啟模型訓練過程的次數,避免模型落入局部最優值,而不是全區最優,而在隱藏層的設定,JMP標準版提供了單層的隱藏層設置,JMP Pro提供雙層隱藏層的設置,使用較多隱藏層通常是為了探索複雜的非線性關係,當資料結構較複雜或是資料有層次及順序性,如變數有不同的類型、資料來源眾多;而多個節點設置是為了學習更多模式,當輸入變數越多,所需要設置的節點就需要提升。
對於過擬合,JMP提供Penalty Method如下:
- (Squared): 假定大部分輸入變量都對模型有影響時可使用。
- (Absolute) or(Weight Decay): 有很多的輸入變量, 但預期只有一部分變量會影響到模型時可使用。
JMP也提供了在變數轉換的選項,如Transform Covariates,將輸入變數轉換成近似常態分佈,轉換的好處可以讓訓練更快的收斂,避免梯度消失1的問題等,同樣對於輸出變量是偏斜分布、厚尾等情況,可以使用Robust Fit的選項,避免異常值的影響。
擬合模型的流程
綜合以上的敘述,簡單描述擬合模型的流程:
使用likelihood概似函數加上penalty懲罰函數,背後搭配quasi-Newton迭代法又稱BFGS2法,找到讓損失函數加上penalty函數(如果有考慮)達到最小的點(圖7)去調整參數權重,一般來說使用交叉驗證大概20-50次可以找到最小點。
圖7
JMP在擬合模型時,還有一個Boosting的方法可以選擇,有學習率Learning rates介在0和1之間以及定義擬合的模型個數可調整,他是由許多一系列小模型所加成起來成最終的模型, 每個小模型都是根據前一個模型誤差下去擬合,同時考慮擬合模型的個數以及交叉驗證後是否整體的模型解釋度無法再提升而停止,對於小模型而言,一般只會設定單層隱藏層以及一到兩個節點,其優點是提高模型的準確度。(圖8)
學習率與模型個數的設定大抵是學習率越接近1, 模型個數設定要越小,使用Boosting方法設定小模型越複雜就失去加成的意義,JMP也不允許設定兩層隱藏層搭配Boosting的方法。
圖8
微影/蝕刻案例分享
底下引用2022 JMP Discovery Summit的例子3,微影/蝕刻階段有時出現側壁缺陷(圖9), 需要搭配掃描式電子顯微鏡SEM(Scanning Electron Microscope)去看線寬是否有在規格內, 通常很難抓到異常, 因為很難剛好量測到缺陷的位置。因此,使用開源軟體先將影像轉換為影像數據指標,再以JMP進行分析及建模,此時對應的Y為好或壞的類別型變量,X對應的是各個影像數據指標(圖10) (指標說明可參考最後的連結),
圖9
圖10
第一步將Y與X變量選入(圖11)
圖11
第二步選取KFold,避免小樣本估計偏差,單層隱藏層以及TanH激活函數,將相關的輸入變量進行變數轉換(圖12)
圖12
第三步確定誤分辨率、預測缺陷準確率以及Rsquare等指標(圖13)
第四步根據預測刻畫器找出影響權重大的參數(圖14)
(圖14)
第五步將預測公式儲存並查看權重 (圖15)
(圖15)
最後總結一些在神經網路上設定JMP的經驗法則,如下:
- 線性的激活函數通常與輸入變量搭配, 而輸出變量通常搭配非線性的激活函數,尤其是變量過多想縮減維度時。
- 當節點越多可能會過度擬合,保持隱藏層的節點數小於等於輸入變量的數目可以作為一個起始設置點。
- 小型的神經網路模型背後運算速率較佳且穩定性較好,如果預測精準度與大型模型差不多,以小型模型為主。
- 當輸入變量的隱藏層的節點數或隱藏層過多時,可能會引入不必要的複雜性,導致模型過擬合,可以搭配交叉驗證方法來確認並調整設置。
- 盡可能排除異常點,可以避免估計偏誤,讓預測可以更有效率。
- 數據的平衡性能讓預測精準度提升,如Y是類別型變量時,盡可能每個類別數量一致。
神經網路,作為一種常見的監督學習方法,我們在這篇文章中總結了神經網路的主要組成部分和訓練過程,包括感知器、激活函數和模型配置等。歡迎免費試用 JMP 30天,為您的企業開展不一樣的AI機器學習模型。
推薦閱讀:
參考資料
- Use Case: JMP in the Building of an Image Analysis Pipeline (2022-US-30MP-1096)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.