機器學習——關于極大似然估計法的一些個人思考(通俗易懂極簡版)

最近在回顧機器學習的一些相關理論知識,回顧到極大似然法時,對于極大似然法中的一些公式有些迷糊了,所以本文主要想記錄并分享一下個人關于極大似然估計法的一些思考,如果有誤,請見諒,歡迎一起前來探討。當然,如果這篇文章還能入得了各位“看官”的法眼,麻煩點贊、關注、收藏,支持一下!

一、須知前提

可能有一部分小伙伴的概率學等相關理論知識相對薄弱,因此,為了讓大家更好的理解,在對極大似然估計法進行說明前,先對相關的須知理論知識做一個簡單的說明

在理解極大似然估計法時,有兩需要理解,一個是貝葉斯定理,一個是聯合概率

1、貝葉斯定理

直接給出公式:

對于貝葉斯定理的公式,可能很多小伙伴不能理解是怎么得來的,其實本人也不甚了解,但是這并不影響公式的使用,所以大家不需要過度糾結這條公式是怎么來的,其實只要會用就可以,當然有興趣的小伙伴可以自行去檢索一下,相信網絡上有很多相關資料。

但是,我們必須要理解公式中每個部分代表著什么,這樣才能保證我們可以正常使用。

這里比較重要的是條件概率聯合概率,公式中的P(x,c)就是聯合概率,對于聯合概率此處先不講,但是會在下一小節重點解釋,公式中的P(c|x)和P(x|c)就是條件概率,舉兩個例子大家感受一下:

P(好瓜|敲聲=脆響)=敲聲脆響的瓜是好瓜的概率

P(敲聲=脆響|好瓜)=好瓜的敲聲是脆響的概率

對此,我們不難發現,對于條件概率,大家可以理解為,在某一前提的情況下發生某件事的概率

至于為什么使用貝葉斯公式,其實原因很簡單,因為P(c|x)在實際生活中無法求得或者求得的投入入過大不劃算,比如說,如果我們要求P(好瓜|敲聲=脆響)時,我們通過敲打西瓜可以知道敲聲是否脆響,但是無法直接得出是不是好瓜,要想知道西瓜是否是好瓜,我們需要把西瓜切開,一兩個瓜還好,要是成百上千呢?如果僅僅只是為了知道瓜是不是好瓜而將每個瓜都切開這不現實。

2、聯合概率

在貝葉斯定理部分,已經給出了條件概率的形式,在概率中還有一種概率形式叫做聯合概率,其形式如下:

或者是:

?對于聯合概率,大家可以理解為,多個事件同時發生的概率,即“”的關系,舉個簡單的例子大家感受一下:

P(敲聲脆響,觸感硬滑)=敲聲脆響觸感硬滑的概率

另外,根據樣本的分布是否獨立,聯合概率分成兩種形式。

當屬性/樣本之間是獨立分布時:

或者:

?為了讓大家更好理解,我舉個例子:

?P(敲聲=脆響,觸感=硬滑,根蒂=蜷縮)=P(敲聲=脆響)*P(觸感=硬滑)*P(根蒂=蜷縮)

這里需要注意的是千萬千萬不要寫成累加的形式。為什么是累乘而不是累加,我舉個例子簡單解釋一下,P表示求概率想必大家都知道,概率必然是小于等于1的,若采用累加的形式,當敲聲要么脆響要么沉悶,觸感要么硬滑要么綿軟,根蒂要么蜷縮要么硬挺時:

P(敲聲=脆響)=P(觸感=硬滑)=P(根蒂=蜷縮)=0.5

?P(敲聲=脆響,觸感=硬滑,根蒂=蜷縮)=P(敲聲=脆響)+P(觸感=硬滑)+P(根蒂=蜷縮)=1.5>1

概率值是1.5,大于1,這顯然是錯誤的,因此我們不難得出,采用累加的形式是錯誤的。

說到這里我就再多說一句,什么情況下我們可以采用累加的形式,舉個例子大家感受一下:

當敲聲有三個值時,即敲聲可以是脆響、清響、沉悶,如果我們要求敲聲不為清脆的概率,或者說敲聲等于脆響或者沉悶的概率,我們可以用累加,即:

P(敲聲清脆)=P(敲聲=脆響U敲聲=沉悶)=P(敲聲=脆響)+P(敲聲=沉悶)

當屬性/樣本之間是非獨立分布時:

舉個例子,x1是x2的父節點,即x2的值受x1影響,如下所示:

舉個例子:

?P(敲聲=脆響,觸感=硬滑)=P(敲聲=脆響)*P(觸感=硬滑|敲聲脆響)

二、極大似然估計法有啥用?

在上面一節中提到了貝葉斯定理,而極大似然法就是為了求解貝葉斯公式中的P(x|c),比如求好瓜中敲聲脆響的概率P(敲聲=脆響|好瓜)。講到這里,可能有些小伙伴,有些迷糊,P(x|c)明明很清楚也很好求,為啥還要用極大似然法,原因其實很簡單,下面會進行說明。

對于單一樣本或者單一屬性而言確實很好求,就好像求解P(敲聲=脆響|好瓜),但是現實生活中我們需要求解的可能是多個屬性,或者含有多個樣本的樣本集,即P(x1,x2,……xn|c),對于這種情況我們往往很難直接求得。

舉個例子,假設對于每個屬性/樣本x1~xn都有0和1兩個值的話,那么x1~xn的組合形式也就有2^{n}個,這樣也就是說,要想使得訓練集準確,訓練集必須包含每一種可能性。因此,我們訓練集中的訓練樣本數至少要有2^{n}個,而且這些訓練樣本還必須都不同。當n大起來或者當x1~xn的取值不僅僅只有兩個值時,就會存在要么訓練集中樣本數量巨大導致訓練過程耗時耗力的問題,要么就會存在訓練集中某種組合缺失導致訓練結果不準的問題,而極大似然法卻恰恰可以幫助我們解決這些問題。

三、極大似然估計法

先說一下極大似然估計法估計條件概率的基本原理/策略,極大似然估計法是先假定其具有某種確定的概率分布形式,再基于訓練樣本對概率分布的參數進行估計(這是《西瓜書》上的原話)。

個人理解:極大似然估計法認為每一個標記c都對應一種概率分形式,比如說正態分布、均勻分布等等,而我們求條件概率就是求特定分布下的某一值的概率,比如說,標記c對應的是正態分布,求P(x=1|c),即求在這個正態分布下的x=1的概率是多少,當正態分布曲線畫出來后,橫軸代表數據點的值,縱軸代表數據點在該分布下的概率。因此,極大似然法就將求條件概率轉換成了求標記c的具體分布,當分布曲線確定好之后,我們就可以直接在曲線上得出相應數據點的概率。

下面我將給出極大似然法的核心公式:

從上面的三條公式,我們不難看出,極大似然法最后求的是令LL(\theta_{c})達到最大的\theta _{c},這與上面所講的極大似然估計法的原理保持一致。

其中,\theta _{c}是一個參數向量,以正態分布為例,\theta _{c}=\left [ \mu _{c},\sigma _{c} \right ],當\theta _{c}確定后,正態分布曲線就可以定下來了,D_{c}表示訓練集D 中第c 類樣本組成的集合,并且我們假定這些樣本是獨立同分布的。

至于為什么求得的\theta _{c}要使LL(\theta_{c})達到最大,原因很簡單。因為我們最根本目的是為了求的一個誤差最小的模型,或者說預測結果最準卻得模型,即P(c|x)要達到最大,因為P(c)和P(x)是確定的,所以根據貝葉斯公式,我們要求P(c|x)達到最大就可以轉換成求P(x|c)達到最大。

樣本點是由采樣得來的,是一定的,而極大似然估計法則認為標記c對應的是一種概率分布形式,在不同的概率分布形式下,相同的樣本點的概率是不同的,所以要使的P(x|c)達到最大,就是要找到一個最佳的概率分布曲線。

當標記c確定為某一概率分布形式后,比如正態分布,通過\theta _{c}就可以確定具體概率分布曲線的形態,不同的\theta _{c}會產生不同形態的概率分布曲線,也就會導致P(x|c)出現不同的值,當P(x|c)達到最大時,LL(\theta_{c})必然達到最大。因此,求解P(x|c)的最大值,就也可以轉換成求使LL(\theta_{c})達到最大的\theta _{c}

參考書籍

周志華老師的《西瓜書》

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

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

相關文章

單元測試實施最佳方案(背景、實施、覆蓋率統計)

1. 什么是單元測試? 對于很多開發人員來說,單元測試一定不陌生 單元測試是白盒測試的一種形式,它的目標是測試軟件的最小單元——函數、方法或類。單元測試的主要目的是驗證代碼的正確性,以確保每個單元按照預期執行。單元測試通…

合肥高校大學智能制造實驗室數字孿生可視化系統平臺建設項目驗收

合肥高校大學智能制造實驗室近日迎來了一項重要時刻,數字孿生可視化系統平臺建設項目順利通過了驗收。這一項目的成功實施,不僅標志著合肥高校在智能制造領域取得新的突破,為我國智能制造技術的發展注入新活力。 合肥高校智能制造實驗室作為…

T972 切換至pdm 聲音輸入的方法

1.在hardware/amlogic/audio/audio_hal/audio_hw.c下,直接切換 在 static unsigned int select_port_by_device(struct aml_audio_device *adev) 中先強制切換為pdm 2.在device mk 配置文件中 #add fof fix the mic bug by jason 20230621 PRODUCT_PROPERTY_OVE…

MySQL 數據庫基礎概念

一、什么是數據庫? 數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。 每個數據庫都有一個或多個不同的 API 用于創建,訪問,管理,搜索和復制所保存的數據。 我們也可以將數據存儲在文件中&…

淺析Kafka Streams中KTable.aggregate()方法的使用

KTable.aggregate() 方法是 Apache Kafka Streams API 中用于對流數據進行狀態化聚合的核心方法之一。這個方法允許你根據一個鍵值&#xff08;通常是<K,V>類型&#xff09;的流數據&#xff0c;應用一個初始值和一個聚合函數&#xff0c;來累積和更新一個狀態&#xff0…

MSPM0G3507(三十六)——超聲波PID控制小車固定距離

效果圖&#xff1a; 波形圖軟件是VOFA&#xff0c;B站有教程 &#xff0c;雖然有缺點但是非常簡單。 視頻效果&#xff1a; PID控制距離 之前發過只有超聲波測距的代碼&#xff0c;MSPM0G3507&#xff08;三十二&#xff09;——超聲波模塊移植代碼-CSDN博客 SYSCFG配置&#…

Ubuntu下如何設置程序include搜索路徑及鏈接路徑

添加庫的include及lib路徑 linux下系統默認路徑為 /usr/include, /usr/local/include, gcc在編譯程序時會按照當前目錄路徑->系統默認路徑->系統環境變量的路徑方式去查找&#xff0c;所以當我們想調用的庫未安裝在系統默認路徑時&#xff0c;我們可以通過手動添加環境變…

數據壓縮的藝術:Kylin Cube設計中的自動壓縮特性

數據壓縮的藝術&#xff1a;Kylin Cube設計中的自動壓縮特性 在大數據的浩瀚宇宙中&#xff0c;Apache Kylin以其卓越的數據立方體&#xff08;Cube&#xff09;技術&#xff0c;為企業提供快速的多維數據分析能力。隨著數據量的不斷增長&#xff0c;存儲效率成為了一個關鍵問…

用友NC Cloud blobRefClassSearch FastJson反序列化RCE漏洞復現

0x01 產品簡介 用友 NC Cloud 是一種商業級的企業資源規劃云平臺,為企業提供全面的管理解決方案,包括財務管理、采購管理、銷售管理、人力資源管理等功能,實現企業的數字化轉型和業務流程優化。 0x02 漏洞概述 用友 NC Cloud blobRefClassSearch 接口處存在FastJson反序列…

開源PHP論壇HadSky本地部署與配置公網地址實現遠程訪問

文章目錄 前言1. 網站搭建1.1 網頁下載和安裝1.2 網頁測試1.3 cpolar的安裝和注冊 2. 本地網頁發布2.1 Cpolar臨時數據隧道2.2 Cpolar穩定隧道&#xff08;云端設置&#xff09;2.3 Cpolar穩定隧道&#xff08;本地設置&#xff09;2.4 公網訪問測試 總結 前言 今天和大家分享…

idea啟動ssm項目詳細教程

前言 今天碰到一個ssm的上古項目&#xff0c;項目沒有使用內置的tomcat作為服務器容器&#xff0c;這個時候就需要自己單獨設置tomcat容器。這讓我想起了我剛入行時被外置tomcat配置支配的恐懼。現在我打算記錄一下配置的過程&#xff0c;希望對后面的小伙伴有所幫助吧。 要求…

什么是計算機數據結構的字典

字典數據結構在計算機編程領域中是一個非常重要且常用的數據結構。它也被稱為關聯數組、哈希表或映射&#xff08;Map&#xff09;&#xff0c;在不同編程語言中有不同的實現和稱呼&#xff0c;但其核心概念和用途大致相同。 字典數據結構是一種鍵值對&#xff08;key-value p…

Linux 軟件工具安裝

Linux 軟件包管理器 yum 什么是軟件包 在Linux下安裝軟件&#xff0c; 一個通常的辦法是下載到程序的源代碼&#xff0c; 并進行編譯&#xff0c;得到可執行程序。 但是這樣太麻煩了&#xff0c; 于是有些人把一些常用的軟件提前編譯好&#xff0c;做成軟件包(可以理解成wind…

動態路由的基本概念

動態路由的基本概念 什么是動態路由&#xff1f; 網絡中的路由器彼此之間相互通信&#xff0c;傳遞各自的路由信息&#xff0c;利用收到的路由信息來更新和維護自己的路由表的過程。 基于某種路由協議實現&#xff08;6大協議&#xff09;。 動態路由的特點&#xff1a; 減…

SpringBoot3.3.0升級方案

本文介紹了由SpringBoot2升級到SpringBoot3.3.0升級方案&#xff0c;新版本的升級可以解決舊版本存在的部分漏洞問題。 一、jdk17下載安裝 1、下載 官網下載地址 Java Archive Downloads - Java SE 17 Jdk17下載后&#xff0c;可不設置系統變量java_home&#xff0c;僅在id…

開發技術-Java BigDecimal 精度丟失問題

文章目錄 1. 背景2. 方法3. 總結 1. 背景 昨天和小伙伴排查一個問題時&#xff0c;發現一個 BigDecimal 精度丟失的問題&#xff0c;即 double a 1.1;BigDecimal ba new BigDecimal(a).subtract(new BigDecimal(0.1));System.out.println(ba);輸出&#xff1a; 1.000000000…

構建自定義Tensorflow鏡像時用到的鏈接地址整理

NVIDIA相關&#xff1a; NVIDIA CUDA鏡像的docker hub&#xff1a;https://hub.docker.com/r/nvidia/cuda/tags?page&page_size&ordering&name12.4.1NVIDIA 構建的Tensorflow鏡像包&#xff1a;https://docs.nvidia.com/deeplearning/frameworks/tensorflow-rele…

項目屬性的精粹:Gradle中配置項目屬性的全面指南

項目屬性的精粹&#xff1a;Gradle中配置項目屬性的全面指南 在構建自動化的宏偉藍圖中&#xff0c;Gradle以其靈活的項目屬性配置脫穎而出。項目屬性是構建過程中可配置的參數&#xff0c;它們可以控制構建行為、定義條件邏輯&#xff0c;甚至影響依賴解析。本文將深入探討如…

Vue3 使用 Vue Router 時,prams 傳參失效和報錯問題

Discarded invalid param(s) “id“, “name“, “age“ when navigating 我嘗試使用 prams 傳遞數據 <script setup> import { useRouter } from vue-routerconst router useRouter() const params { id: 1, name: ly, phone: 13246566476, age: 23 } const toDetail…

快速使用BRTR公式出具的大模型Prompt提示語

Role:文章模仿大師 Background: 你是一位文章模仿大師&#xff0c;擅長分析文章風格并進行模仿創作。老板常讓你學習他人文章后進行模仿創作。 Attention: 請專注在文章模仿任務上&#xff0c;提供高質量的輸出。 Profile: Author: 一博Version: 1.0Language: 中文Descri…