機器學習(吳恩達)

一, 機器學習

????????機器學習定義: 計算機能夠在沒有明確的編程情況下學習

? ? ? ??特征:?特征是描述樣本的屬性或變量,是模型用來學習和預測的基礎。如: 房屋面積, 地理位置

????????標簽:?監督學習中需要預測的目標變量,是模型的輸出目標。如:?房屋價格

????????樣本: 如:?{面積=100㎡, 臥室=3, 位置=市中心, 價格=500萬},?數據集中的一個獨立實例,?包含一組特征及對應的標簽。

樣本向量形式:

獨熱編碼舉例:

1.1 機器學習的分類

????????1) 監督學習:?根據帶標簽的數據訓練模型,預測新樣本的標簽。如回歸, 分類

回歸應用: 房價預測

分類算法: 根據年齡和腫瘤大小判斷腫瘤良/惡性

????????2) 無監督學習:?從未標注數據中發現潛在結構或模式。如聚類,?異常檢測,?降維(大數據集壓縮成更小的數據集, 并可能少地丟失信息)

聚類: 谷歌新聞示例

? ? ? ? 3) ?半監督學習:?結合少量標注數據和大量未標注數據進行訓練。如醫學圖像分析

? ? ? ? 4)??強化學習:?通過與環境交互學習策略,最大化累積獎勵。如游戲AI, 自動駕駛

1.2 監督學習算法

1.2.1 線性回歸?

第i個數據特征:

????????損失函數(Loss Function)?:衡量單個樣本的預測值與真實值的差異。

????????成本函數(Cost Function)?:衡量整個訓練集的平均損失。

平方誤差損失:

平方誤差成本函數: 一定是凸函數,確保只有一個全局最小值

模型(y=wx)與成本函數示例 (左圖w=-0.5、0、0.5、1時的情況):

模型(y=wx+b)下的成本函數:

模型與J(w,b)的平面等高線:

????????學習率(α)?:控制模型參數更新步長的超參數。?

?學習率的取值的兩種情況:

? ? ? ? 1) 學習率過大:參數更新步長過大,可能導致損失值震蕩甚至發散。

? ? ? ? 2) 學習率過小:收斂速度極慢,可能陷入局部極小值。

示例:

梯度下降公式:

推導過程:

梯度算法演示:

兩個特征的多元線性回歸舉例:

特征縮放:? 加速模型收斂。有如下方法:

標準化(Z-Score標準化):

標準差:

歸一化(Min-Max縮放):

標準化與歸一化的區別:?

舉例 (標準化前后的數據集) :

? ??

1.2.2 邏輯回歸

????????通過線性組合特征與參數,結合Sigmoid函數將輸出映射到概率區間(0-1),用于解決分類問題?(尤其是二分類)。

Sigmoid函數模型:?

圖形:

對數損失函數(交叉熵損失):

對應圖形:??

????????為什么不使用均方誤差(MSE)作為損失函數:?當預測值接近 0 或 1 時, 梯度接近于0,?權重幾乎無法更新。?

? ?

對應成本函數:

為什么選擇對數損失函數:

????????1) 概率視角:最大似然估計(MLE)

????????2) 優化視角:凸性

梯度下降算法:

與線性回歸梯度算法的區別: 模型定義不同:

線性回歸與邏輯回歸區別:?

1.2.3 正則化??

解決過擬合情況:

????????1) 收集更多數據

????????2) 僅用特征的一個子集

????????3) 正則化

欠擬合(高偏差), 適中, 過擬合(高方差)

正則化項:??

添加正則化項后的梯度算法:

????????原理: 通過在損失函數中添加與模型參數相關的懲罰項,限制參數的復雜度,從而提升模型的泛化能力。 (使得W盡可能小以此使得函數趨于平滑)

? ? ? ? λ過大:?參數被過度壓縮,模型過于簡單,無法捕捉數據中的有效規律。

? ? ? ? λ過小:?正則化作用微弱,模型過度依賴訓練數據中的噪聲或局部特征。

? ? ? ? 備注: 只要正則化得當, 更大的神經網絡總是更好的。

例圖:

根據交叉驗證誤差找到適合的λ:

λ取值與交叉驗證誤差及訓練集誤差的關系:

1.2.4 決策樹?

????????一種樹形結構的監督學習模型,通過遞歸劃分特征空間,對樣本進行分類或回歸。

遞歸分裂過程:?

  1. 從根節點開始,計算所有特征的分裂指標(如信息增益)。
  2. 選擇最優特征作為當前節點的分裂特征。
  3. 根據特征的取值將數據集劃分為子集,生成子節點。
  4. 對每個子節點遞歸執行步驟1-3,直到滿足停止條件。

停止條件:?

  • 節點樣本數小于預設閾值。
  • 所有樣本屬于同一類別。
  • 特征已用完或分裂后純度提升不顯著。

?????????預剪枝:?在樹生長過程中提前終止分裂。如設置最大深度

?信息熵:度量數據集的混亂程度。值越小分類越明確。圖為二分類情況

?示例圖:

推廣多分類:

信息增益:特征分裂后熵的減少量。值越大特征越重要。圖為二分類舉例:

多分類推廣:?

符號含義:

二分類分裂決策舉例:?

??決策樹處理處理連續值特征:

? ? ? ? 1)??特征排序: 從小到大排序

? ? ? ? 2)?候選分割點生成:相鄰值的中間點作為候選分割點。

????????3)??計算分裂指標:?計算分裂后的信息增益(分類)或均方誤差(回歸)。

? ? ? ? 4)?選擇最優分割點

? ? ? ? 5)?遞歸分裂

示例圖: 選擇分裂點(分類)

示例圖: 選擇分類點(回歸, 預測值為葉子結點的平均值)

隨機森林

?????????通過構建多棵決策樹,結合投票(分類)或平均(回歸)實現預測。

?訓練步驟

? ? ? ? 1) Bootstrap抽樣:從D中有放回地抽取N個樣本,形成子集D_{t}?。

? ? ? ? 2) 構建決策樹:在D_{t}上訓練一棵CART(分類與回歸樹)樹,每次分裂時僅考慮m個隨機選擇的特征。m=math.sqrt(總特征數)? ? ?

? ? ? ? 3) 保存模型:將訓練好的樹ht?加入森林。

? ? ? ??4)?預測:?

? ? ? ? ? ? ? ?· 多數投票法(分類):每棵樹對樣本預測一個類別,最終選擇得票最多的類別。

? ? ? ? ? ? ? ?· 平均值(回歸):所有樹的預測結果取平均。

????????放回抽樣:?每次從總體中隨機抽取一個樣本后,?將該樣本放回總體,確保它在后續抽取中仍有可能被再次選中。

基尼系數公式:

符號含義:

????????作用:衡量數據集的不純度。基尼系數越小,數據越“純凈”(同一類樣本占比越高)。

基尼指數公式:

符號含義:

????????作用:衡量按特征?A?分裂后的整體不純度。決策樹選擇基尼指數最小的特征進行分裂。

????????XGBoost思想: 在每一輪迭代中,通過擬合前序模型的預測殘差(負梯度方向),并自動調整對預測不準樣本的關注度,同時結合正則化防止過擬合。

1.3 非監督學習算法

1.3.1 聚類算法

? ? ? ? 將未標記的數據劃分為若干組(簇),?組內相似性高,?組間差異性大。

????????K-means算法:?隨機初始化K個中心點 → 分配數據點到最近中心 → 更新中心點 → 迭代至收斂。?

??K-means算法流程:

?k-means工作示例:

質心:

?符號含義:

不同初始化時的可能情況:?

肘部算法: 選取合適的K值

1.3.2 異常檢測

????????密度評估:? 當P(x)小于某個值時, 為可疑異常, 相比較監督算法, 更容易發現從未出現過的異常

正態分布(高斯分布)的概率密度函數

?

推廣(向量):

非高斯特征轉化 :

協調過濾:

回歸成本函數:

梯度算法:

均值歸一化作用: 若無評分數據,使用全局均值?μglobal??作為初始預測值。

預測值:

基于內容的過濾算法:

????????PCA算法: 無監督的線性降維方法,通過正交變換將高維數據投影到低維空間,保留數據中的最大方差。以期用更少的特征(主成分)解釋原始數據中的大部分變異性。

與線性回歸的區別:

1.3.3 強化學習?

貝爾曼方程:

  • Agent(智能體):決策主體,執行動作(Action)。
  • State(狀態?s):環境在某一時刻的描述。
  • Action(動作?a):Agent的行為選擇。
  • Reward(獎勵 R(s)):環境對Agent動作的即時反饋。
  • Value Function(價值函數):衡量狀態或動作的長期價值(Q(s,a))。
  • 其中γ∈[0,1]為折扣因子

小批量處理實現流程:

  1. 數據分塊:將訓練集隨機劃分為多個小批量。
  2. 前向傳播:對當前小批量計算模型輸出。
  3. 損失計算:根據預測值和真實標簽計算損失(如交叉熵、均方誤差)。
  4. 反向傳播:計算損失對參數的梯度。
  5. 參數更新:使用優化算法(如SGD、Adam)更新模型參數。
  6. 重復:遍歷所有小批量完成一個訓練周期(Epoch)。

????????優勢:?避免一次性加載全部數據,?更新更頻繁,加快收斂。

軟更新

二、深度學習

2.1 基本概念

? ? ? ? 輸入層: x向量表示原始數據

? ? ? ??隱藏層: 如下圖?layer1 到 layer3輸出激活值(向量)。通過權重和激活函數提取抽象特征。

? ? ? ? 輸出層: layer4,?生成最終預測結果(如分類概率)。

? ? ? ? 神經元(節點)?:每層的圓圈代表一個神經元,負責接收輸入信號并計算輸出。

? ? ?? ?激活函數: 引入非線性,使網絡能夠擬合復雜函數。

前向傳播示例圖:

三種激活函數:

????????備注: 梯度下降時sigmoid兩端導函數為0, 二ReLu只有一端。

????????為什么模型需要激活函數: 使得模型非線性。神經都是線性回歸則神經網絡只是一個線性回歸。

反向傳播:?通過鏈式法則,依次計算每一層的梯度

舉例:

?梯度下降:?利用反向傳播計算的梯度,梯度下降通過以下公式更新參數

2.3?多分類與多標簽分類

????????多分類:?將樣本分配到唯一一個類別中, 如數字識別

????????多標簽分類:?為樣本分配多個相關標簽, 如圖像標注(包含“山”“湖”“樹”)

多分類舉例:?輸出每個類別的概率,選擇最大概率對應的類別。

損失函數:

?

網絡層

????????密集層

????????卷積層

2.4 模型評估

?數據集劃分

? ? ? ??1) 訓練集?(Training Set):用于模型訓練(通常占60-80%)。

????????2) 驗證集:?用于調參, 學習數據中的潛在規律。

? ? ? ? 3) 測試集?(Test Set):模擬“未知數據”,用于最終評估。

? ? ? ? 意義: 若模型僅在訓練集上表現好,但在測試集上差,說明模型過擬合(過度記憶訓練數據細節),泛化能力弱。

? ? ? ? 備注: 避免測試集調參, 若根據測試集結果反復調整模型,導致模型間接擬合測試集。

2.4.1 偏差與方差

????????偏差(Bias)?:指模型預測值的期望與真實值之間的差距,反映了模型對數據的擬合能力。高偏差意味著模型過于簡單,無法捕捉數據中的潛在關系,導致欠擬合?(Underfitting)。

????????方差(Variance)?:指模型對訓練數據中微小變化的敏感程度,反映了模型的穩定性。高方差意味著模型過于復雜,過度擬合訓練數據中的噪聲,導致過擬合?(Overfitting)。

?高偏差(左), 高方差(右)?

2.4.2 診斷偏差與方差

高偏差(欠擬合)?:訓練集和驗證集誤差均高。

解決方案:

? ? ? ? 1) 可增加模型復雜度(如使用更高階多項式、深層神經網絡)

? ? ? ? 2) 添加更多特征或改進特征工程

? ? ? ? 3) 減少正則化強度(如降低λ值)

高方差(過擬合)?:訓練誤差低,驗證誤差高且差距大。表現: J(驗證集)>>J(訓練集)

解決方案:

? ? ? ?1) 可降低模型復雜度(如減少神經網絡層數、剪枝決策樹)。

? ? ? ? 2) 增加訓練數據量或使用數據增強。

? ? ? ? 3) 增強正則化

?多項式階數(x軸) 與 交叉驗證誤差 及 訓練集誤差 的關系:

學習曲線:?

高偏差學習曲線情況(紅線, 較人類水平相比):?

高方差學習曲線情況(前半段):?

訓練神經網絡的一般步驟:?

數據增強: 在現有的訓練樣本上修改生成另一個訓練樣本

?遷移學習: 預訓練

兩者區別:

?維度??數據增強??遷移學習?
?核心目標?增加數據多樣性,提升模型泛化能力復用已有知識,降低目標領域訓練成本
?依賴條件?需要少量原始數據需要源領域模型或相關數據
?適用階段?數據準備階段模型訓練階段
?技術范疇?數據預處理/正則化模型優化/跨任務學習
?典型應用領域?圖像、文本、語音等所有數據驅動的任務深度學習、跨領域任務(如醫療、金融)

2.4.3 精確度與召喚率

????????混淆矩陣:TP(真正例)、TN(真負例)、FP(假正例)、FN(假負例)。

? ? ? ? 1) 真正例(TP, True Positive)?:實際為正類,預測也為正類。

?????????2)?假正例(FP, False Positive)?:實際為負類,預測為正類(誤報)。

?????????3)?真負例(TN, True Negative)?:實際為負類,預測也為負類。

?????????4)?假負例(FN, False Negative)?:實際為正類,預測為負類(漏報)。

????????精確率(Precision)?\frac{TP}{TP+FP}(預測為正的樣本中實際為正的比例)。關注預測的準確性

????????召回率(Recall)?\frac{TP}{TP+FN}?(實際為正的樣本中被正確預測的比例)。關注正類的覆蓋率

例子:癌癥檢測

????????設測試集有 ?100 名患者,其中 ?10 人患癌(正類) ,?90 人健康(負類)?。模型預測結果如下

  • 正確預測
    • 癌癥患者:8 人(TP = 8)。
    • 健康患者:83 人(TN = 83)。
  • ?錯誤預測
    • 將 7 名健康人誤診為癌癥(FP = 7)。
    • 漏診 2 名癌癥患者(FN = 2)。

混淆矩陣

預測患癌預測健康
?實際患癌?TP = 8FN = 2
?實際健康?FP = 7TN = 83

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

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

相關文章

CNN的激活函數

我們來對比 Sigmoid、Softmax 和 ReLU 這三種激活函數的相同點和不同點,并分別說明它們相較于其他兩種激活函數的優點。 相同點 都是非線性激活函數: 這三種激活函數都能為神經網絡引入非線性特性,使網絡能夠學習復雜的模式。 廣泛應用于深度…

Oracle數據恢復:閃回查詢

Oracle數據恢復:閃回查詢 SQL語法閃回查詢:AS OF閃回版本查詢:VERSIONS BETWEEN數據恢復示例閃回查詢最佳實踐應用場景使用限制注意事項最佳實踐在誤刪除業務數據時,Oracle數據庫通常支持以下幾種數據恢復途徑。 閃回查詢(Flashback Query):閃回查詢通過查詢系統的UNDO數…

【MySQL篇】MySQL內置函數

目錄 1,日期函數 2,字符串函數 3,數學函數 4,其他函數 實戰OJ 1,日期函數 日期類型在之前文章【數據類型】中有描述 傳送門:【MySQL篇】數據類型_mysql 數據類型-CSDN博客 函數名稱描述current_dat…

蘋果iOS 18.4將強制升級HomeKit架構,舊版設備或無法使用

在科技飛速發展的當下,智能家居領域也在不斷革新。而蘋果公司作為科技行業的巨頭,其每一次動作都備受關注。近日,有消息稱蘋果計劃在iOS 18.4版本中停止對舊版HomeKit架構的支持,這一舉措意味著用戶將被迫升級,也可能對眾多使用Apple Home應用的智能家居設備用戶產生深遠影…

故障診斷——neo4j入門

文章目錄 neo4jQuickStartDemo neo4j QuickStart 詳情可見博客:https://www.cnblogs.com/nhdlb/p/18703804,使用docker拉取最近的一個版本進行創建 docker run -it -d -p 7474:7474 -p 7687:7687 \ -v /disk5/neo4j_docker/data:/data \ -v /disk5/ne…

《蒼穹外賣》SpringBoot后端開發項目核心知識點與常見問題整理(DAY1 to DAY3)

目錄 一、在本地部署并啟動Nginx服務1. 解壓Nginx壓縮包2. 啟動Nginx服務3. 驗證Nginx是否啟動成功: 二、導入接口文檔1. 黑馬程序員提供的YApi平臺2. YApi Pro平臺3. 推薦工具:Apifox 三、Swagger1. 常用注解1.1 Api與ApiModel1.2 ApiModelProperty與Ap…

大模型安全新范式:DeepSeek一體機內容安全衛士發布

2月以來,DeepSeek一體機幾乎成為了政企市場AI消費的最強熱點。 通過一體機的方式能夠縮短大模型部署周期,深度結合業務場景,降低中小企業對于大模型的使用門檻。據不完全統計,已約有超過60家企業基于DeepSeek推出一體機產品。 但…

OpenHarmony-SELinux配置

前言: OpenHarmony 上某個進程向samgr注冊SA服務,其他進程在與該進程進行IPC通信之前,需要獲取該SA服務,SA提供方需要為該SA配置SELinux標簽,否則該SA會被SELinux配置為u:object_r:default_service:s0標簽&#xff0c…

SQL開發中改善查詢性能的N種寫法

文章目錄 1. 使用 SELECT *2. 在 WHERE 子句中使用函數或計算3. 使用隱式類型轉換4. 不使用索引的列進行連接(JOIN)或過濾5. 使用 OR 代替 IN6. 在子查詢中使用 SELECT *7. 忽略索引統計信息8. 嵌套子查詢過多9. 過度使用 DISTINCT10. 使用不當的 JOIN 類…

第十八:go 并發 goroutine

channel 可以讓多個goroutine 之間實現通信 Add方法調用時機:必須在goroutine 啟動之前調用Add方法來增加計數器的值。 如果在goroutine已經啟動之后再調用Add,可能會導致Wait方法提前返回,因為計數器沒有正確反映正在運行的goroutine的數量…

數字IC后端項目典型問題(2025.03.10數字后端項目問題記錄)

小編發現今天廣大學員發過來的問題都比較好,立即一頓輸出分享給大家(每天都有好多種類的數字后端問題)。后續可能會經常通過這種方式來做分享。其實很多問題都是實際后端項目中經常遇到的典型問題。希望通過這種方式的分享能夠幫助到更多需要…

課程《Deep Learning Specialization》

在coursera上,Deep Learning Specialization 課程內容如下圖所示: Week2 assignment, Logistic Regression.

LLM推理和優化(1):基本概念介紹

一、LLM推理的核心過程:自回歸生成 LLM(如DeepSeek、ChatGPT、LLaMA系列等)的推理本質是自回歸生成:從初始輸入(如[CLS]或用戶prompt)開始,逐token預測下一個詞,直到生成結束符&…

【從零開始學習計算機科學】編譯原理(一)編譯過程概述

【從零開始學習計算機科學】編譯原理(一)編譯過程概述 緒論編譯過程概述詞法分析語法分析代碼優化代碼生成其他功能編譯器的前端和后端緒論 什么叫編譯程序?為什么我們需要編譯程序?編譯程序就是一個程序,將便于人編寫、閱讀、維護的高級計算機語言所寫作的源代碼程序,翻…

3-001:MySQL 中的回表是什么?

1. 什么是回表? 回表(Back to Table) 指的是 在使用非聚簇索引(輔助索引)查詢時,MySQL 需要 先通過索引找到主鍵 ID,然后再回到主鍵索引(聚簇索引)查詢完整數據&#xf…

【AIGC】計算機視覺-YOLO系列家族

YOLO系列家族 (1)YOLO發展史(2) YOLOX(3) YOLOv6(4) YOLOv7(5) YOLOv8(6) YOLOv9(7)YOLOv10(8&…

基于Python懂車帝汽車數據分析平臺(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 時代在飛速進步,每個行業都在努力發展現在先進技術,通過這些先進的技術來提高自己的水平和優勢,汽車數據分析平臺當然不能排除在外。本次我所開發的懂車帝汽車數據分析平臺是在實際應用和軟件工程的開發原理之上,運用Python…

Prompt 工程

一、提示原則 import openai import os import openai from dotenv import load_dotenv, find_dotenv from openai import OpenAI def get_openai_key():_ load_dotenv(find_dotenv())return os.environ[OPENAI_API_KEY]client OpenAI(api_keyget_openai_key(), # This is …

MySQL -- 數據庫基礎

1、基礎登錄操作 mysql 指定選項 選項&#xff1a; <1> -h 指定ip地址&#xff0c;即連接的主機&#xff0c;不帶時&#xff0c;默認連本機 <2> -P 指定的端口號&#xff0c;指定默認端口號&#xff08;配置文件中進行配置&#xff09; <3>-u 指定的用戶 &l…

02C#基本結構篇(D3_內部類-代碼塊-數據類型-變量-常量-字面量-運算符-流程控制語句)

目錄 一、內部類 1. 定義內部類 2. 創建內部類的實例 3. 訪問外部類的私有成員 4. 內部靜態類 5. 使用場景和優點 6. 注意事項 ------------------------------------------- 二、代碼塊 1. 控制流語句 1.1. 條件語句 1> if 語句 2> switch 語句 1.2. 循環語…