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

閱讀時間約 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


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



    avatar-img
    1會員
    37內容數
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    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
    本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
    Thumbnail
    人工智慧是什麼? 人工智慧(Artificial Intelligence, AI) 簡單來說,就是讓機器模仿人類的思考、學習和決策的能力。它就像是一個聰明的電腦程序,可以執行許多原本需要人類智慧才能完成的工作,例如: 語音辨識: 讓電腦聽懂人類的語言,像是 Siri、Google As
    我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在第四章中,將會談論以下主題: 定義機器翻譯 人類轉導與翻譯 機器轉導和翻譯 評估機器翻譯 預處理 Workshop on Machine Translati
    Thumbnail
    在機器學習領域中,監督學習、無監督學習和強化學習是三種核心方法,它們在解決不同類型的問題時發揮著重要作用。
    在人工智能的發展歷程中,早期的研究主要側重於將解決問題的規則輸入計算機,試圖通過啟蒙運動理性的思路模擬人類的智能行為。然而,這條路逐漸變得艱難,因為規則過於繁多,無法應對複雜的情境和語境。在這個背景下,一些科學家轉向了神經網絡算法,試圖模擬人腦的感知能力。
    大語言模型能夠生成文本,因此被認為是生成式人工智慧的一種形式。 人工智慧的學科任務,是製作機器,使其能執行需要人類智慧才能執行的任務,例如理解語言,便是模式,做出決策。 除了大語言模型,人工智慧也包含了深度學習以及機器學習。 機器學習的學科任務,是透過演算法來實踐AI。 特別
    這個頻道將提供以下服務: 深入介紹各種Machine Learning技術 深入介紹各種Deep Learning技術 深入介紹各種Reinforcement Learning技術 深入介紹Probabilistic Graphical Model技術 不定時提供讀書筆記 讓我們一起在未
    Thumbnail
    AI,全稱人工智慧,是指讓電腦或機器具備類似人類的智慧和能力的科學和技術。AI 可以幫助我們解決各種問題,提高效率,創造價值,甚至改變世界。但是,你知道 AI 是如何運作的嗎?你知道 AI 的歷史和未來嗎?你知道 AI 的優點和挑戰嗎?在這篇文章中,我將帶你一起認識 AI 的基本概念和發展。
    Thumbnail
    AI 是人工智能 (Artificial Intelligence) 的縮寫。它指一種模擬、模仿人類智能的技術與系統。主要使機器能夠執行需要人類智慧才能完成的任務。應用於各領域,包括自動駕駛車輛、語音助手、推薦系統、金融分析、醫學診斷、工業自動化等。不僅可提高效率和準確性,還可解決複雜的問題和挑戰。
    Thumbnail
    2023年被世人稱做生成式AI世代的元年,各式各樣的AI工具不斷湧現,改變了人們的生活。本文將詳細介紹人工智慧和機器學習的相關知識,以及各種人工智慧和機器學習的實現方法。
    Thumbnail
    本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
    Thumbnail
    人工智慧是什麼? 人工智慧(Artificial Intelligence, AI) 簡單來說,就是讓機器模仿人類的思考、學習和決策的能力。它就像是一個聰明的電腦程序,可以執行許多原本需要人類智慧才能完成的工作,例如: 語音辨識: 讓電腦聽懂人類的語言,像是 Siri、Google As
    我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在第四章中,將會談論以下主題: 定義機器翻譯 人類轉導與翻譯 機器轉導和翻譯 評估機器翻譯 預處理 Workshop on Machine Translati
    Thumbnail
    在機器學習領域中,監督學習、無監督學習和強化學習是三種核心方法,它們在解決不同類型的問題時發揮著重要作用。
    在人工智能的發展歷程中,早期的研究主要側重於將解決問題的規則輸入計算機,試圖通過啟蒙運動理性的思路模擬人類的智能行為。然而,這條路逐漸變得艱難,因為規則過於繁多,無法應對複雜的情境和語境。在這個背景下,一些科學家轉向了神經網絡算法,試圖模擬人腦的感知能力。
    大語言模型能夠生成文本,因此被認為是生成式人工智慧的一種形式。 人工智慧的學科任務,是製作機器,使其能執行需要人類智慧才能執行的任務,例如理解語言,便是模式,做出決策。 除了大語言模型,人工智慧也包含了深度學習以及機器學習。 機器學習的學科任務,是透過演算法來實踐AI。 特別
    這個頻道將提供以下服務: 深入介紹各種Machine Learning技術 深入介紹各種Deep Learning技術 深入介紹各種Reinforcement Learning技術 深入介紹Probabilistic Graphical Model技術 不定時提供讀書筆記 讓我們一起在未
    Thumbnail
    AI,全稱人工智慧,是指讓電腦或機器具備類似人類的智慧和能力的科學和技術。AI 可以幫助我們解決各種問題,提高效率,創造價值,甚至改變世界。但是,你知道 AI 是如何運作的嗎?你知道 AI 的歷史和未來嗎?你知道 AI 的優點和挑戰嗎?在這篇文章中,我將帶你一起認識 AI 的基本概念和發展。
    Thumbnail
    AI 是人工智能 (Artificial Intelligence) 的縮寫。它指一種模擬、模仿人類智能的技術與系統。主要使機器能夠執行需要人類智慧才能完成的任務。應用於各領域,包括自動駕駛車輛、語音助手、推薦系統、金融分析、醫學診斷、工業自動化等。不僅可提高效率和準確性,還可解決複雜的問題和挑戰。
    Thumbnail
    2023年被世人稱做生成式AI世代的元年,各式各樣的AI工具不斷湧現,改變了人們的生活。本文將詳細介紹人工智慧和機器學習的相關知識,以及各種人工智慧和機器學習的實現方法。