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

閱讀時間約 3 分鐘

本系列是紀錄我學習機器學習的過程與想法,主要是跟著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上的移動狀況。


raw-image


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



    1會員
    37內容數
    留言0
    查看全部
    發表第一個留言支持創作者!
    dab戴伯的沙龍 的其他內容
    static 關鍵字主要用於管理記憶體,可用在variables, methods, blocks, nested classed。加上static關鍵字的物件,會在啟動程式當下就會賦予記憶體位置給此物件,後續無論實例化多少次,記憶體的位置都相同。 以class舉例,static class 與
    在Android 編譯成功後,在out/target/product/generic會產生與系統對應的映像檔,分別是ramdisk.img關於root文件系統, system.img關於主要的包及庫, userdata.img關於用戶數據,分別對應的目錄為root, system, data映像檔簡
    主要在使用這兩種類型時常常會忘記,所以簡單整理一下內容 Stack Stack<Character> stack = new stack<>(); 屬於LIFO的特性,也就是先進後出的概念,因此所有動作通常是發生在top,可以想像成放球的瓶子,只有頂端一個開口可以拿最上面的那顆球。 可以使用
    物件導向的概念不外乎-> 封裝、繼承、多型、抽象、介面 封裝:在初始化一個class時,將內容物用private的方式包起來,而另外提供接口去給外界使用,可達到保護其資料隱私。 private: 只有自己類別的成員能夠存取 public: 任何人都可以調用 protected: 其父類與子類
    概要 在一個Android程序開始時,只會啟動一個Process(進程),關於此程序中的Activity與Service都會跑在這個Process之內。 而一個Process之中也會有很多個Thread,當一個Process被創造時,也會同時創造出一個Thread(Main Thread),所有
    Activity生命週期 onCreate: 第一次開啟時會進入的流程,只會執行一次 onStart: 將Activity的頁面可視化,並將UI物件初始化使其可和使用者互動 onResume:使用者進行互動時在這個階段,直到使用者切換頁面之後,切換成onPause。 onPause : 有其
    static 關鍵字主要用於管理記憶體,可用在variables, methods, blocks, nested classed。加上static關鍵字的物件,會在啟動程式當下就會賦予記憶體位置給此物件,後續無論實例化多少次,記憶體的位置都相同。 以class舉例,static class 與
    在Android 編譯成功後,在out/target/product/generic會產生與系統對應的映像檔,分別是ramdisk.img關於root文件系統, system.img關於主要的包及庫, userdata.img關於用戶數據,分別對應的目錄為root, system, data映像檔簡
    主要在使用這兩種類型時常常會忘記,所以簡單整理一下內容 Stack Stack<Character> stack = new stack<>(); 屬於LIFO的特性,也就是先進後出的概念,因此所有動作通常是發生在top,可以想像成放球的瓶子,只有頂端一個開口可以拿最上面的那顆球。 可以使用
    物件導向的概念不外乎-> 封裝、繼承、多型、抽象、介面 封裝:在初始化一個class時,將內容物用private的方式包起來,而另外提供接口去給外界使用,可達到保護其資料隱私。 private: 只有自己類別的成員能夠存取 public: 任何人都可以調用 protected: 其父類與子類
    概要 在一個Android程序開始時,只會啟動一個Process(進程),關於此程序中的Activity與Service都會跑在這個Process之內。 而一個Process之中也會有很多個Thread,當一個Process被創造時,也會同時創造出一個Thread(Main Thread),所有
    Activity生命週期 onCreate: 第一次開啟時會進入的流程,只會執行一次 onStart: 將Activity的頁面可視化,並將UI物件初始化使其可和使用者互動 onResume:使用者進行互動時在這個階段,直到使用者切換頁面之後,切換成onPause。 onPause : 有其
    你可能也想看
    Google News 追蹤
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    Thumbnail
    本文會利用sklearn引入breast_cancer datasets來訓練,在處理數據的部份,特徵工程用兩種方式去做處理,分別是特徵選取與特徵萃取的方式去做比較。 特徵選取的方法中,使用了KNN 分類器來選出最重要的兩個特徵 特徵萃取的方法中,使用了PCA降維
    Thumbnail
    前言 上一篇討論到如何訓練出模型,此篇將說明Streamlit建立的簡單Web應用程式的解說 Streamlit網頁App_貓狗辨識 連結 程式碼Github連結 [機器學習]CNN學習MNIST 手寫英文字母資料,用網頁展現成果_模型訓練篇 如何連動github與stramlit可以參考
    Thumbnail
    streamlit與github連動程式庫,呈現即時預測手寫英文字母 整理了一下,先前學的機器學習利用Colab來訓練出能辨識手寫A~Z英文字母的模型,使用的模型是CNN(Convolutional Neural Network,CNN)模型 訓練好的模型,當然是要拿來應用,成果呈現
    Thumbnail
    Sequential Feature Selection(SFS) 用中文來解釋為,逐一特徵選取訓練,找出最重要的特徵,以提高模型的性能和效率 SFS 的一些用途包括: 維度縮減: 在高維度數據中,許多特徵可能是多餘或不重要的,使用 SFS 可以找到最能代表數據的特徵,從而減少計算和記憶體需求
    Thumbnail
    在數據科學和機器學習中,特徵工程是提高模型性能的關鍵步驟之一,通過創建新特徵或轉換現有特徵,我們可以更好地捕捉數據中的信息,提高模型的預測能力。然而,當處理大數據集時,特徵工程可能變得耗時,而且若是在研發階段,特徵其實是需要快速迭代去產生並且做後續的實驗,這也是近期遇到的問題,因此想在這篇文章實作多
    Thumbnail
    機器學習(Machine Learning,ML)已經在各個領域實現了令人印象深刻的成就,但同時也帶來了一系列重大的倫理挑戰。本文將深入探討這些挑戰,包括AI的偏見和公平性問題、隱私保護和數據安全,以及AI倫理的國際標準。 AI的偏見和公平性問題 1. 偏見的數據: ML模型的訓練數據可能包含偏
    Thumbnail
    在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
    Thumbnail
    Google 一直致力於透過機器學習改善自家翻譯系統的準確度,利用人工智慧的力量提升機器翻譯品質,並於今年八月發表新機器學習模型 Universal Transformer。隨著機器學習模型不斷演進,AI 處理翻譯時的邏輯和策略也與真人譯者越來越相似。 原文連結
    Thumbnail
    兼回答觀眾來信問題 經過上一次的文章之後,棒棒的觀眾們依然有問題丟過來 有些觀眾的問題都滿認真的,也不好像其他節目一樣 在節目上講講就沒了,所以依然用文章的方式帶給大家一點東西。 我們先來看看觀眾疑問: 1. 是不是機器人預測的結果,都是依照revenue? 特徵是什麼? 特徵提取又是什麼?
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    Thumbnail
    本文會利用sklearn引入breast_cancer datasets來訓練,在處理數據的部份,特徵工程用兩種方式去做處理,分別是特徵選取與特徵萃取的方式去做比較。 特徵選取的方法中,使用了KNN 分類器來選出最重要的兩個特徵 特徵萃取的方法中,使用了PCA降維
    Thumbnail
    前言 上一篇討論到如何訓練出模型,此篇將說明Streamlit建立的簡單Web應用程式的解說 Streamlit網頁App_貓狗辨識 連結 程式碼Github連結 [機器學習]CNN學習MNIST 手寫英文字母資料,用網頁展現成果_模型訓練篇 如何連動github與stramlit可以參考
    Thumbnail
    streamlit與github連動程式庫,呈現即時預測手寫英文字母 整理了一下,先前學的機器學習利用Colab來訓練出能辨識手寫A~Z英文字母的模型,使用的模型是CNN(Convolutional Neural Network,CNN)模型 訓練好的模型,當然是要拿來應用,成果呈現
    Thumbnail
    Sequential Feature Selection(SFS) 用中文來解釋為,逐一特徵選取訓練,找出最重要的特徵,以提高模型的性能和效率 SFS 的一些用途包括: 維度縮減: 在高維度數據中,許多特徵可能是多餘或不重要的,使用 SFS 可以找到最能代表數據的特徵,從而減少計算和記憶體需求
    Thumbnail
    在數據科學和機器學習中,特徵工程是提高模型性能的關鍵步驟之一,通過創建新特徵或轉換現有特徵,我們可以更好地捕捉數據中的信息,提高模型的預測能力。然而,當處理大數據集時,特徵工程可能變得耗時,而且若是在研發階段,特徵其實是需要快速迭代去產生並且做後續的實驗,這也是近期遇到的問題,因此想在這篇文章實作多
    Thumbnail
    機器學習(Machine Learning,ML)已經在各個領域實現了令人印象深刻的成就,但同時也帶來了一系列重大的倫理挑戰。本文將深入探討這些挑戰,包括AI的偏見和公平性問題、隱私保護和數據安全,以及AI倫理的國際標準。 AI的偏見和公平性問題 1. 偏見的數據: ML模型的訓練數據可能包含偏
    Thumbnail
    在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
    Thumbnail
    Google 一直致力於透過機器學習改善自家翻譯系統的準確度,利用人工智慧的力量提升機器翻譯品質,並於今年八月發表新機器學習模型 Universal Transformer。隨著機器學習模型不斷演進,AI 處理翻譯時的邏輯和策略也與真人譯者越來越相似。 原文連結
    Thumbnail
    兼回答觀眾來信問題 經過上一次的文章之後,棒棒的觀眾們依然有問題丟過來 有些觀眾的問題都滿認真的,也不好像其他節目一樣 在節目上講講就沒了,所以依然用文章的方式帶給大家一點東西。 我們先來看看觀眾疑問: 1. 是不是機器人預測的結果,都是依照revenue? 特徵是什麼? 特徵提取又是什麼?