本系列是紀錄我學習機器學習的過程與想法,主要是跟著Hung-yi Lee 的機器學習課程進行學習。如果有任何理解錯誤或想討論的地方,歡迎聯繫我~
簡單來說,機器學習就是訓練機器尋找Function的一段過程,而這個Function可以幫助我們解決我們遇到的問題,或是幫助我們預測問題的答案。
像是語音轉換,就是讓機器學習幫助我們將一段語音訊號轉換成文字。
或是圖片辨識,機器幫助我們辨識一張圖片的內容物。
那機器學習本身也分成幾種類別:
那尋找Function的過程,我們也能區分為三個步驟:
EX: Y = bx + w
2. 定義一個Loss Function L(b, w),幫助我們計算出預測的值與訓練資料(label)有多少落差(Bias),藉此可以知道我們的參數設置好不好。
*模型的預測值與實際值之間的誤差,稱為Model Bias
*針對不同的輸入資料,模型輸出的變化 (變異性) 分佈稱之為 Variance。
計算誤差可以有不同的方式,根據我們的需求決定(不僅限):
使用流程:
a. 先假設忽略參數b, 就可以產生一個w的曲線error surface。
b. 隨機選定一個初始值W0,將W0微分,得到W0的斜率。
c. 如果得到的斜率是負的,代表曲線是項下的 → 增加w值如果相反,則減少w值
那要增加或減少多少w值呢? -> 由learning rate決定。重複上述a~c的流程,直到我們找到最小的loss值為止(由自己設定更新的次數)。
*由自己設定的參數被稱為hyperparameter。
但在重複更新w的過程中,我們有可能遇到Local Minima 問題:
local minima就是當我們不斷計算微分值之後,當我們遇到微分後的值為0,會以為是最低點。 -> 事實上只是曲線其中一個最低點,卻不是整個曲線中最低的位置,也就不是Loss最小值。這是屬於Gradient Decent特有的問題。(其他文章補充後備註上解法位置)
將以上a~c的方法套用在兩個參數(b,w)上,各別將參數進行微分。藉此不斷更新其兩個參數值。藉此,我們就能了解error surface上的移動狀況。
以上就被稱為機器“訓練”的過程。