1-機器學習的基本概念

文章目錄

  • 一、機器學習的步驟
    • Step1 - Function with unknown
    • Step2 - Define Loss from Training Data
    • Step3 - Optimization
  • 二、機器學習的改進
    • Q1 - 線性模型有一些缺點
    • Q2 - 重新詮釋機器學習的三步
    • Q3 - 機器學習的擴展
    • Q4 - 過擬合問題(Overfitting)

一、機器學習的步驟


如圖所示,機器學習分為以下三步:
在這里插入圖片描述
下文按照這個步驟來進行整理


Step1 - Function with unknown

  1. 機器學習就是 “自動找到一個非常復雜的函數" ,其輸入是原始的數據(聲音信號、圖片、棋盤狀態等),通過這個函數,得到一個較好的答案(語音對應的文字、圖片展示的對象、棋子下一步走法等),如圖:
    在這里插入圖片描述

  1. 為了實現不同的目標,我們可以用機器學習去找不同的函數,這些任務有如下的分類:
    (1)Regression:the function output a scalar;找一個數,如預測明天的氣溫、PM2.5濃度;
    (2)Classification: Given options(classes),the function output the correct one;給出一個正確的選項;
    (3)Structured Learning:讓機器產生有結構性的信息(文章、圖片等);

  1. x`Model:帶有未知參數的函數,也就是我們機器學習的目標——建立一個model解決問題。在Model中我們有一些概念:
    (1)feature:來源于數據,是已知的參數。
    (2)weight:與feature相乘,代表feature的重要程度。
    (3)bias:預測值和真實值的偏差。

在這里插入圖片描述
我們用以上式子來解釋:將瀏覽信息輸入,預測未來瀏覽量。
其中 y 就是我們預測的瀏覽量, x 1 x_1 x1?是我們之前的瀏覽量,w是weight,b是bias。


Step2 - Define Loss from Training Data

  1. Loss也是一個函數,其輸入是之前提到的weigth和bias,它的輸出用來衡量這兩個數值設置的好不好。
  2. 可以通過比對估測的值和真實的值之間的差距,使用 e = ∣ y ? y ^ ∣ e = |y - \hat{y}| e=y?y^? (MAE) 或 e = y ? y ^ ) 2 e = y - \hat{y})^2 e=y?y^?)2 (MSE) 來衡量,其中真實的值叫做Label
  3. 可以用如下的圖表衡量Loss與bias和weight的關系: 在這里插入圖片描述

Step3 - Optimization

  1. 優化的目標就是找到一個讓Loss - e e e 更小的函數,我們將優化方法——梯度下降(Gradient Descent)也分為如下三步:
    (1)(Randomly)Pick an initial value w 0 w^0 w0
    (2) 取微分(bias同理):
    ? L ? W ∣ w = w 0 \frac{\partial L} {\partial W} \Bigg|_{w = w^0} ?W?L? ?w=w0?
    (3) update w w w iteratively:通過剛剛的微分,乘上學習率 η \eta η 來更新 w w w 的值,如下:
    w 1 = w 0 ? η ? L ? W ∣ w = w 0 w^1 = w^0 - \eta \frac{\partial L} {\partial W} \Bigg|_{w = w^0} w1=w0?η?W?L? ?w=w0?
    注:機器學習中需要自己設置的參數(如學習率 η \eta η),叫做hyperparameters。

  1. 我們在 w w w 到達滿意的值或者失去耐心(到達設置的移動次數)后,取定最終的值。其中我們發現,如果學習率 η \eta η 設置的較小,我們可能陷入 Local Minima 中,而找不到最優的 Global Minima。 在這里插入圖片描述
    其實它不是機器學習中的難題,后續繼續進行介紹。

二、機器學習的改進

Q1 - 線性模型有一些缺點

  1. 線性模型(Linear model)太過于簡單,對真實情況可能做不到很好的預測:
    在這里插入圖片描述

  1. 我們可以使用常數 + 多個函數來構建最終的模型:
    在這里插入圖片描述
    轉折點越多,需要的藍色function越多。如果有足夠多的function組合在一起,也許我們就能得到足夠好的模擬效果。

  1. 引入一個新的概念:激活函數(sigmoid function),其定義如下:
    y = c 1 1 + e ? ( b + w x 1 ) = c s i g m o i d ( b + w x 1 ) y = c \ \frac{1}{1 + e^{-(b + wx_1)}} = c \ sigmoid(b+wx_1) y=c?1+e?(b+wx1?)1?=c?sigmoid(b+wx1?)
    改變不同的參數有如下效果:
    在這里插入圖片描述
    新的Model——擁有更多Feature:
    y = b + ∑ i c i s i g m o i d ( b i + w i x 1 ) y = b + \sum_i{c_i}\ sigmoid(b_i + w_ix_1) y=b+i?ci??sigmoid(bi?+wi?x1?)

  1. 更加復雜的model:

在這里插入圖片描述
以上是三個sigmoid函數中的元素,我們還可以用線代知識對式子進行簡化:
在這里插入圖片描述
我們構建Model的流程就如下圖所示:
在這里插入圖片描述


Q2 - 重新詮釋機器學習的三步

  1. function with unknown:
    現在我們定義的含有未知數的函數就變成了上圖中的函數: y = b + c T σ ( b + W x ) y = b + c^T \sigma(b + Wx) y=b+cTσ(b+Wx)
    其中 σ \sigma σ 是激活函數 s i g m o i d sigmoid sigmoid,注意其中的兩個常數 b b b 是不同的值。

  2. Define Loss from Training Data
    Loss的定義沒有不同,依舊是 L = 1 N ∑ e n L = \frac{1}{N} \sum{e_n} L=N1?en?

  3. Optimization of New Model
    在新模型中,feature包含 W 、 b 、 C T W 、b、 C^T WbCT 等,我們將其全部放入一個新的矩陣 θ \theta θ 中, θ = [ θ 1 θ 2 θ 3 ] \theta = \begin{bmatrix} \theta1 \\ \theta2 \\ \theta3 \\ \end{bmatrix} θ= ?θ1θ2θ3? ?
    即將feature的元素依次放入 θ \theta θ
    現在我們引入一個新的向量 gradient(梯度)來表示優化效果:
    g = [ ? L ? θ 1 ∣ θ = θ 0 ? L ? θ 2 ∣ θ = θ 0 . . . ] g = ? L ( θ 0 ) g = \begin{bmatrix} \frac{\partial L}{\partial \theta_1} |_{\theta = \theta_0} \\ \\ \frac{\partial L}{\partial \theta_2} |_{\theta = \theta_0} \\ ... \end{bmatrix} \; g = \nabla L(\boldsymbol{\theta}^0) g= ??θ1??L?θ=θ0???θ2??L?θ=θ0??...? ?g=?L(θ0)
    逐步更新參數,取得更好的結果 θ ? = a r g m i n L \theta^* = arg\ min_{}L θ?=arg?min?L


Q3 - 機器學習的擴展

在實際的機器學習中,我們會將完整的數據集分為不同的batch分別進行訓練,每訓練完一個batch,就更新一次模型參數(即進行一次梯度下降)。

優點:
(1) 節省內存:如果你一次用整個數據集訓練(叫做 full-batch),對大數據來說會爆內存。
(2) 更快訓練:batch 可以并行計算,訓練過程更高效。
(3) 提高泛化性:每次用不同的 batch 做梯度估計,有“抖動”,反而能避免陷入局部最優。
在這里插入圖片描述


此外,激活函數還不僅僅局限于sigmoid,還有ReLU:
在這里插入圖片描述
定義:
在這里插入圖片描述


Q4 - 過擬合問題(Overfitting)

再訓練資料上模型表現的較好,但是在新資料上表現差的問題,我們稱之為過擬合(Overfitting)
在這里插入圖片描述
我們應該選擇在未訓練數據上表現更好的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/906114.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/906114.shtml
英文地址,請注明出處:http://en.pswp.cn/news/906114.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL里where條件的順序影響索引使用嗎?

大家好,我是鋒哥。今天分享關于【SQL里where條件的順序影響索引使用嗎?】面試題。希望對大家有幫助; SQL里where條件的順序影響索引使用嗎? 1000道 互聯網大廠Java工程師 精選面試題-Java資源分享網 在 SQL 查詢中,W…

計算機科技筆記: 容錯計算機設計05 n模冗余系統 TMR 三模冗余系統

NMR(N-Modular Redundancy,N 模冗余)是一種通用的容錯設計架構,通過引入 N 個冗余模塊(N ≥ 3 且為奇數),并采用多數投票機制,來提升系統的容錯能力與可靠性。單個模塊如果可靠性小于…

中級網絡工程師知識點7

1.存儲區城網絡SAN可分為IP-SAN,FC-SAN兩種,從部署成本和傳輸效率兩個方面比較兩種SAN,比較結果為FCSAN部署成本更高 2.RAID2.0技術的優勢: (1)自動負載均衡,降低了存儲系統故障率 (2&#x…

在Ubuntu24.04中配置開源直線特征提取軟件DeepLSD

在Ubuntu24.04中配置開源直線特征提取軟件DeepLSD 本文提供在Ubuntu24.04中配置開源直線特征提取軟件DeepLSD的基礎環境配置、列出需要修改的文件內容,以及報錯解決方案集錦。 基礎的編譯安裝環境 python3.8.12CUDA12gcc/g 9.5(系統自帶的g-13版本太新…

Nginx+Lua 實戰避坑:從模塊加載失敗到版本沖突的深度剖析

Nginx 集成 Lua (通常通過 ngx_http_lua_module 或 OpenResty) 為我們提供了在 Web 服務器層面實現動態邏輯的強大能力。然而,在享受其高性能和靈活性的同時,配置和使用過程中也常常會遇到各種令人頭疼的問題。本文將結合實際案例,深入分析在 Nginx+Lua 環境中常見的技術問題…

Vue.js組件開發進階

Vue.js 是一個漸進式 JavaScript 框架,廣泛用于構建用戶界面。組件是 Vue.js 的核心概念之一,允許開發者將 UI 拆分為獨立、可復用的模塊。本文將深入探討 Vue.js 組件的開發,涵蓋從基礎到高級的各個方面。 組件的基本概念 在 Vue.js 中&am…

藍橋杯19682 完全背包

問題描述 有 N 件物品和一個體積為 M 的背包。第 i 個物品的體積為 vi?,價值為 wi?。每件物品可以使用無限次。 請問可以通過什么樣的方式選擇物品,使得物品總體積不超過 M 的情況下總價值最大,輸出這個最大價值即可。 輸入格式 第一行…

深度學習之用CelebA_Spoof數據集搭建一個活體檢測-一些模型訓練中的改動帶來的改善

實驗背景 在前面的深度學習之用CelebA_Spoof數據集搭建一個活體檢測-模型搭建和訓練,我們基于CelebA_Spoof數據集構建了一個用SqueezeNe框架進行訓練的活體2D模型,采用了蒸餾法進行了一些簡單的工作。在前面提供的訓練參數中,主要用了以下幾…

2025年PMP 學習二十 第13章 項目相關方管理

第13章 項目相關方管理 序號過程過程組過程組1識別相關方啟動2規劃相關方管理規劃3管理相關方參與與執行4監控相關方參與與監控 相關方管理,針對于團隊之外的相關方的,核心目標是讓對方為了支持項目,以達到項目目標。 文章目錄 第13章 項目相…

GO語言語法---For循環、break、continue

文章目錄 1. 基本for循環(類似其他語言的while)2. 經典for循環(初始化;條件;后續操作)3. 無限循環4. 使用break和continue5 . 帶標簽的循環(可用于break/continue指定循環)1、break帶標簽2、continue帶標簽…

CSS- 4.4 固定定位(fixed) 咖啡售賣官網實例

本系列可作為前端學習系列的筆記,代碼的運行環境是在HBuilder中,小編會將代碼復制下來,大家復制下來就可以練習了,方便大家學習。 HTML系列文章 已經收錄在前端專欄,有需要的寶寶們可以點擊前端專欄查看! 點…

分布式微服務系統架構第132集:Python大模型,fastapi項目-Jeskson文檔-微服務分布式系統架構

加群聯系作者vx:xiaoda0423 倉庫地址:https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ https://github.com/webVueBlog/fastapi_plus 這個錯誤是由于 Python 3 中已經將線程的 isAlive() 方法更名為 is_alive(),但你的調試工…

react路由中Suspense的介紹

好的,我們來詳細解釋一下這個 AppRouter 組件的代碼。 這個組件是一個在現代 React 應用中非常常見的模式,特別是在使用 React Router v6 進行路由管理和結合代碼分割(Code Splitting)來優化性能時。 JavaScript const AppRout…

C語言內存函數與數據在內存中的存儲

一、c語言內存函數 1、memcpy函數是一個標準庫函數,用于內存復制。功能上是用來將一塊內存中的內容復制到另一塊內存中。用戶需要提供目標地址、源地址以及要復制的字節數。例如結構體之間的復制。 memcpy函數的原型是:void* memcpy(void* …

層次原理圖

層次原理圖簡介 層次原理圖(Hierarchical Schematic)是一種常用于電子工程與系統設計的可視化工具,通過分層結構將復雜系統分解為多個可管理的子模塊。它如同“設計藍圖”,以樹狀結構呈現整體與局部的關系:頂層展現系…

流程編輯器Bpmn與LogicFlow學習

工作流技術如何與用戶交互結合(如動態表單、任務分配)處理過 XML 與 JSON 的轉換自定義過 bpmn.js 的樣式(如修改節點顏色、形狀、圖標)擴展過上下文菜單(Palette)或屬性面板(Properties Panel&…

LWIP的NETCONN接口

NETCONN接口簡介 NETCONN API 使用了操作系統的 IPC 機制, 對網絡連接進行了抽象,使用同一的接口完成UDP和TCP連接 NETCONN API接口是在RAW接口基礎上延申出來的一套API接口 NETCONN實現原理 2.1,NETCONN控制塊 2.2,NETCONN收…

Linux搜索

假如我們要搜索 struct sockaddr_in 我們在命令終端輸入 cd/usr/include/ //進入頭文件目錄地址 /usr/include/ grep " struct sockaddr_in { " *-nir (*是在當前目錄,n 是找出來顯示行數…

2025長三角杯數學建模B題思路模型代碼:空氣源熱泵供暖的溫度預測,賽題分析與思路

2025長三角杯數學建模B題思路模型代碼,詳細內容見文末名片 空氣源熱泵是一種與中央空調類似的設備,其結構主要由壓縮主機、熱交換 器以及末端構成,依靠水泵對末端房屋提供熱量來實現制熱。空氣源熱泵作為熱 慣性負載,調節潛力巨…

ssh免密碼登錄

創建秘鑰和公鑰 ssh-keygen -t rsa 輸入上述命令后,直接按回車即可,完成后會在上面信息顯示,生成的文件路徑信息 id_rsa:秘鑰 id_rsa.pub: 公鑰 將公鑰的內容copy到遠端 將id_rsa.pub的內容拷貝到~/.ssh下的authori…