2024-04-27|閱讀時間 ‧ 約 23 分鐘

機器學習基本概念簡介(上)

    本系列是紀錄我學習機器學習的過程與想法,主要是跟著Hung-yi Lee 的機器學習課程進行學習。如果有任何理解錯誤或想討論的地方,歡迎聯繫我~

    機器學習是什麼?

    簡單來說,機器學習就是訓練機器尋找Function的一段過程,而這個Function可以幫助我們解決我們遇到的問題,或是幫助我們預測問題的答案。

    像是語音轉換,就是讓機器學習幫助我們將一段語音訊號轉換成文字。

    或是圖片辨識,機器幫助我們辨識一張圖片的內容物。

    那機器學習本身也分成幾種類別:

    1. Regression: 此種機器的function輸出為數值。
    2. Classification: 此種機器的function幫助我們進行分類。
    3. Structure Learning: 讓機器學習創造有結構性的答案。EX: 寫文章


    那尋找Function的過程,我們也能區分為三個步驟:

    1. 找一個函數,作為讓機器預測的Function,通常在使用Function需要有足夠的Domain Knowledge 才能知道哪種Function比較適合。

    EX: Y = bx + w

    2. 定義一個Loss Function L(b, w),幫助我們計算出預測的值與訓練資料(label)有多少落差(Bias),藉此可以知道我們的參數設置好不好。

    *模型的預測值與實際值之間的誤差,稱為Model Bias

    *針對不同的輸入資料,模型輸出的變化 (變異性) 分佈稱之為 Variance。

    計算誤差可以有不同的方式,根據我們的需求決定(不僅限):

    1. MSE: mean square error (y- y')²
    2. MAE: mean absolute error |y - y'|


    1. Optimization: 想辦法讓loss最小,最常使用的方法Gradient Descent。

    使用流程:

    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上的移動狀況。



    以上就被稱為機器“訓練”的過程。



    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.