- 概述
- 超平面(Hyperplane)
- 原理
- 構造假設(Hypothesis)
- 建構 Logistic Regression 的 Hypothesis
- 邏輯函數
- 邏輯函數 vs. 激活函數(Activation Function)
- Sigmoid Function & 柏努利分布(Bernoulli Distribution)
- 二項式分佈(Binomial distribution)
- 柏努利分布(Bernoulli Distribution)
- 機率質量函數(Probability Mass Function,PMF)
- 指數分佈(Exponential Distribution)
- 參數學習機制流程推導
- 損失函數(Loss Function)
- 交叉熵(Cross Entropy)
- 似然函數(Likelihood Function)
- 最大概似估計(Maximum Likelihood Estimation, MLE)
- 機率分佈(Probability Distribution)
- 梯度演算法&梯度下降(Gradient Descent)
- 優缺點
- 優點
- 缺點
- 應用場景
- Reference
概述
- 邏輯回歸、羅吉斯回歸、對數機率迴歸
- 雖然名有「Regression」,但是是一種分類模型/演算法(Classification)
- 原先是為了二元分類設計,但其實也能解多元分類,一般有兩種方法
- 將多分類任務拆解成多個二分類任務,利用邏輯回歸分類器進行投票
- 對傳統的邏輯回歸模型進行改造,變為 softmax 回歸模型進行多分類任務求解
- 目標是找到一個能夠分辨不同類別的最佳分界線或超平面(Hyperplane)
超平面(Hyperplane)
- 超平面(Hyperplane)是在高維空間中的一個概念:將該空間分成兩個區域的平面或子空間
- 在一個 n 維空間中,超平面是一個 n-1 維的平面或子空間,它將該空間分成兩個區域
- 超平面是一個 n 維空間中的齊次方程,其特點是它的維度比空間的維度低一維
- 二維空間中(即平面空間):超平面是一條直線,將平面分成兩個部分
- 三維空間中:超平面是一個平面,將三維空間分成兩個部分
- 更高維度的空間中:超平面仍然是一個子空間,但是其維度比該空間的維度低一維。
- 用於解決分類問題
- 在機器學習中,超平面是支持向量機(Support Vector Machine, SVM)等分類算法的重要概念。在二元分類問題中,SVM 通過找到一個超平面來區分兩個不同的類別。對於線性可分的問題,SVM 的目標是找到具有最大邊際(距離最遠的樣本點)的超平面,這樣可以使得模型更具泛化能力。對於非線性可分的問題,SVM 通過使用核函數將數據映射到高維空間中,然後在高維空間中找到一個超平面來進行分類。
原理
- 邏輯回歸是線性回歸在二元分類問題上的一種變形,它將線性組合(線性回歸的一部分, Linear Combination)通過邏輯函數(通常使用 Sigmoid 函數)映射成概率值(Sigmoid 是被推導出來的 https://zhuanlan.zhihu.com/p/124757082),這樣可以將線性結果轉換為樣本屬於某一類別的概率。接著,我們可以基於這個概率值來進行二元分類,將概率值高於一個閾值的樣本判定為正例(Positive),低於閾值的樣本判定為負例(Negative)。
- 線性組合是指線性回歸模型中特徵(或特徵向量)與對應的特徵權重(模型參數)之間的線性結合,這是線性回歸模型的一部分。
- 在線性回歸中,模型的預測值(或輸出值)可以表示為特徵向量 與特徵權重 的內積加上偏置項 。假設特徵向量 有 個特徵, 也有 個權重,則線性組合可以表示為:
- 是特徵向量 中的第 個特徵, 是特徵權重 中的第 個權重, 是模型的偏置項。這個線性組合代表了模型對於特徵的線性加權組合。
- 偏置項(Bias term)是線性回歸模型中的一個常數項,也稱為截距(Intercept)。它是模型的一個額外參數,不依賴於輸入特徵,用於調整模型預測值的偏移。偏置項 的作用是調整模型的預測值在輸入特徵為零或者特徵為空的情況下的偏移。如果沒有偏置項,模型的預測值將始終從原點(0,0)通過,而有了偏置項,模型的預測值可以在空間中移動,適應不同情況下的預測需求。
- 偏置項也是模型的一個參數,它與特徵權重 一起,通過梯度下降等優化算法來學習,以使模型能夠更好地擬合訓練數據並進行分類任務。
- 要完成目的(分類預測)要先將特徵映射(mapping)成機率值,也就是說構造邏輯回歸的 Hypothesis=構造邏輯回歸的預測模型(模型 just 一種假設):
- 因為邏輯回歸主要用於解決二元分類(兩個類別)或多元分類(多個類別)問題。在這些問題中,我們希望得到的是一個樣本屬於不同類別的機率,而不僅僅是一個固定的類別標籤。這樣做的好處在於:
- 提供不確定性信息:機器學習中的分類問題往往涉及不確定性。通過將特徵映射成概率值,我們可以得到一個樣本屬於不同類別的可能性,而不僅僅是一個二進制的預測結果。這樣的預測結果更具有信息量,可以幫助我們更好地理解和解釋模型的預測。
- 支持多類別問題:邏輯回歸可以擴展到多類別問題,例如三個或更多類別的分類。對於多類別問題,我們可以使用「一對多」(One-vs-Rest)或「一對一」(One-vs-One)的方法來建立多個二元分類器,然後將它們結合成一個整體的分類模型。這樣,每個二元分類器都可以為樣本分配一個屬於某個類別的概率值。
- 更靈活的閾值選擇:通過獲得概率值,我們可以根據應用的需求來靈活地選擇閾值,以決定最終的類別分配。例如,對於某些應用場景,我們可能更關心模型的準確率(Precision),此時可以將閾值設置較高;而在另一些場景下,我們可能更注重模型的召回率(Recall),這時可以將閾值設置較低。
- 準確率關心的是模型對於預測為正例的樣本中的正確率。更關心準確率的情況,例如希望模型的預測結果中偽陽性(False Positive)盡量減少,例如在醫學診斷中,我們希望預測為患有某種疾病的人確實患有疾病。
- 召回率則關心模型對於所有真實正例的覆蓋率。更關心召回率的情況,例如希望模型能夠盡量減少偽陰性(False Negative),例如在檢測罕見病例或安全檢測中,我們希望不要漏掉任何可能的正例。
- 簡單來說,邏輯回歸是一個分類模型,它將線性回歸模型轉換成概率預測,然後根據概率預測來進行二元分類。如果概率值大於閾值,我們預測該樣本屬於某一類別;如果概率值小於閾值,我們預測該樣本不屬於該類別。
- 在進行多元分類(超過兩個類別)時,邏輯回歸可以擴展為多類別邏輯回歸(Multinomial Logistic Regression)或者應用一對多(One-vs-Rest)方法,但其基本原理仍然是將線性組合通過概率函數映射成概率值,然後根據概率值進行分類。
flowchart LR
A["線性組合<br/>(Linear Combination)<br/>(w1x1+w2x2 + ... +w_ix_i + ... + w_nx_n)<br/>ttt"] --> B["邏輯函數<br/>(Logic Function) <br/> sigmoid <br/>ttt"]
B -->|特徵變成機率值| C[用機率與 thresold 做分類判斷]
構造假設(Hypothesis)
- 指建立模型的預測函數,也就是找到模型長什麼樣:該函數將輸入特徵映射到輸出預測值。
- 在監督式學習中,我們的目標是找到一個假設(或稱為模型),它能夠將輸入特徵與對應的輸出標籤之間的關係建模。這個假設用於進行預測,在新的輸入特徵上給出相應的預測結果。
- 也就是說,模型都只是一種假設,但這些假設通常可以在一定程度上捕捉到數據中的規律和模式。如果模型構造得當且參數調整得好,它們可以在未見過的數據上表現出色,並具有較好的泛化能力。
- 然而,模型也有其局限性,它們僅僅是基於已有數據的推斷。當數據分布發生變化或者存在噪音時,模型可能無法很好地適應新的數據。因此,在機器學習中,模型的選擇和設計是一個重要的問題,需要根據具體的應用場景和數據特性來進行選擇和優化。
建構 Logistic Regression 的 Hypothesis
https://chih-sheng-huang821.medium.com/機器-統計學習-羅吉斯回歸-logistic-regression-aff7a830fb5d
- 首先,線性回歸模型的線性組合表示為: ,其中, 是輸入特徵, 是模型的參數(權重,有時有些地方寫作 ), 是模型的輸出。這是一個線性函數,其輸出範圍是負無窮到正無窮。由能夠改寫成:
- 然後,我們希望將這個線性輸出轉換為 0 到 1 之間的概率值。這可以通過將線性輸出 帶入 Sigmoid 函數(Logistic 函數)來實現:
- 首先 sigmoid function 為:
- 所以帶進去:
- 這裡的 是邏輯回歸的假設(Hypothesis),也就是模型的輸出。它表示給定輸入特徵 的情況下,樣本屬於正例(標籤為 1)的概率。
- Sigmoid 函數的作用是將線性組合的輸出轉換為 0 到 1 之間的概率值,這使得邏輯回歸模型可以進行二元分類。當 Sigmoid 函數的輸入 趨近於正無窮時, 趨近於 1,表示樣本屬於正例的概率接近 1;當 趨近於負無窮時, 趨近於 0,表示樣本屬於正例的概率接近 0。這種轉換使得邏輯回歸模型在二元分類問題中具有良好的預測能力。可以表示為:
可以簡寫為:
邏輯函數
- 作用是將輸入的數值映射為二元(布爾)值,即 0 或 1,以便進行邏輯判斷和布爾運算。
- 在機器學習、計算機科學和數位電路等領域都有廣泛的應用
- 機器學習和人工智慧領域中,邏輯函數被廣泛應用於以下幾個方面:
- 二元分類:在二元分類任務中,我們需要將輸入特徵映射為兩個類別(通常是 0 或 1)。邏輯函數如 Sigmoid 函數就非常適合用於此類任務,因為它將連續的輸入映射為 0 到 1 之間的概率值,可以用來表示某個樣本屬於某一類別的概率。
- 人工神經網絡:在人工神經網絡中,邏輯函數被用作激活函數,用於在神經元之間傳遞信息。激活函數將線性組合轉換為非線性的輸出,使得神經網絡可以學習非線性的模式和特徵。
- 邏輯閘:在數位電路中,邏輯函數用於實現邏輯閘,如 AND 閘、OR 閘、NOT 閘等。這些閘用於執行布爾運算,是計算機系統的基本組成部分。
- 特徵轉換:在特徵工程中,我們有時需要將連續的數值特徵轉換為二元值或處理缺失值。邏輯函數可以幫助我們實現這些轉換。
- 常見邏輯函數:
- Sigmoid 函數:
- 二元階躍函數(Binary Step Function):
- 二元閘函數(Binary Gate Function):
- 這裡的閾值是一個預先定義的常數。
- 階躍函數(Heaviside Step Function):
邏輯函數 vs. 激活函數(Activation Function)
- 邏輯函數和激活函數是密切相關的概念,但在機器學習和神經網路中的用法和意義略有不同。
- 邏輯函數通常是指將輸入映射為概率值的函數,特別是在邏輯回歸中使用的 Sigmoid 函數。Sigmoid 函數將輸入的實數值映射到 0 到 1 之間的概率值,這使得邏輯回歸模型可以進行二元分類,並給出樣本屬於正例的概率。在這種情況下,邏輯函數用於將線性組合的輸出轉換為概率值。
- 在神經網路中,激活函數是指位於神經元輸出端的非線性函數。激活函數的作用是在神經元的輸出中引入非線性特性,使得神經網路能夠擬合更為複雜的數據。常見的激活函數有 Sigmoid 函數、ReLU 函數、Tanh 函數等。
- 簡單來說,邏輯函數是指將輸入映射為概率值的函數,而激活函數是指神經元輸出端的非線性函數,用於增加神經網路的表達能力。在某些情況下,邏輯函數(如 Sigmoid 函數)也可以作為激活函數使用,但在現代神經網路中,ReLU 函數等更常用於激活函數,因為它們有更好的訓練性能和計算效率。
Sigmoid Function & 柏努利分布(Bernoulli Distribution)
- 與其說是邏輯回歸選擇了 Sigmoid Function,不如說 Sigmoid Function 是被邏輯回歸與伯努利分布的關係推導出來的
- 首先,邏輯回歸滿足伯努利分布:因為邏輯回歸模型的輸出是一個機率值,該概率值表示樣本屬於某一個類別(正例)的機率。
- 把伯努利分佈改為指數分佈形式
- 再改寫邏輯函數的廣義線性模型形式
- 詳細推導可參考:
二項式分佈(Binomial distribution)
- 二項式分布(Binomial distribution)是 個獨立的是/非試驗中成功的次數的離散機率分布,也就是說是多次獨立的二元試驗,例如多次獨立地投擲一個硬幣,並記錄其中成功(1)的次數,其中每次試驗的成功機率為 ,記號成 。
- 這樣的「單次」成功/失敗試驗(當試驗只進行一次,單次試驗)又稱為伯努利試驗。當 時,二項式分布就是伯努利分布。
- 一般來說,若隨機變數 服從母數為 和 的二項式分布,我們記作 或
- 假設進行了 次試驗,其中成功的概率為 ,那麼在這 次試驗中成功的次數 就是一個服從二項式分佈的隨機變量。二項式分佈的概率質量函數(PMF)可以表示為:
其中, 是隨機變量,表示成功的次數, 是試驗的總次數, 是成功的概率。
柏努利分布(Bernoulli Distribution)
- 伯努利分布正是一種二元隨機分布,用來描述一個試驗的結果只有兩種可能的情況,比如成功或失敗、正面或反面等。
- 對於伯努利分布,隨機變量 只能取兩個值,通常用 0 和 1 表示,其中 0 表示失敗(或反面),1 表示成功(或正面)。
- 伯努利分布是二項式分布在 時的特殊情況(當試驗只進行一次,單次試驗)二項式分佈退化為伯努利分佈。 與 的意思是相同的。
- : 念作 tilde,是代表等價的意思
- 相反,任何二項式分布 都是 次獨立伯努利試驗的和,每次試驗成功的機率為
- 伯努利分佈的概率質量函數(PMF)可以表示為: 。其中, 是隨機變量,表示試驗的結果(0 或 1), 是成功的概率,也就是樣本屬於正例的概率。
- 上述推導 Sigmoid 時我們將 Bernoulli 轉成 Exponential distribution 形式,因為這樣有幾個重要的優點和應用:
- 數學上的簡化:指數分布族是一類常見的概率分布形式,它具有良好的數學性質。通過將伯努利分布轉換為指數分布族的形式,我們可以利用指數分布族的特性來進行簡化和推導,更容易進行模型分析和參數估計。
- 進行推斷:在機器學習和統計學中,我們常常需要進行參數估計和模型推斷。指數分布族具有共軛先驗的性質,這意味著對於伯努利分布的後驗概率分佈,我們可以使用共軛先驗來簡化計算,並得到閉式解。
- 共軛先驗(Conjugate prior)是指在貝葉斯統計(Bayesian statistics)推斷中,如果後驗概率分佈和先驗概率分佈屬於同一個參數化的分布族,那麼這個先驗概率分佈就被稱為共軛先驗。換句話說,共軛先驗在計算後驗概率時能夠保持與先驗相同的函數形式,只是參數值被更新。
- 以伯努利分布為例,假設我們有一個先驗概率分佈 ,其中 是樣本屬於正例的概率。現在,我們收集了一些數據,得到了後驗概率分佈 ,其中 是觀察到的數據。如果 和 屬於同一個分布族,那麼 就是一個共軛先驗。
- 閉式解是指在數學上可以解析地求解的解。在機器學習和統計推斷中,我們經常遇到需要求解模型參數或概率分佈的問題。如果這些問題可以通過代數運算或求解公式來得到確定的解,而不需要使用迭代或數值方法,那麼我們稱這種解為閉式解。
- 在共軛先驗的情況下,由於先驗概率分佈和後驗概率分佈屬於同一個參數化的分布族,我們可以使用貝葉斯定理來更新參數的值,而且這個更新可以通過代數運算得到閉式解,而不需要使用複雜的數值計算。這使得貝葉斯推斷變得更加高效和方便。因此,共軛先驗擁有閉式解的性質,是貝葉斯推斷中的一個重要特點。
- 模型的廣泛性:指數分布族是一個通用的概率分布形式,它包含了許多常見的概率分布,如高斯分布、泊松分布等。通過將伯努利分布表示為指數分布族的形式,我們可以將樣本屬於正例的概率和一個參數 建立了關係,而這個參數 可以用來表示模型的特性和複雜性。
- 建立機器學習模型:將伯努利分布表示為指數分布族的形式,使得我們可以將伯努利分布和線性回歸相結合,得到邏輯回歸模型。邏輯回歸是一種二元分類模型,通常用於預測樣本屬於正例的概率。將伯努利分布轉換為指數分布族的形式是得到邏輯回歸的關鍵步驟。
總的來說,將伯努利分布表示為指數分布族的形式具有數學上的便利性和模型建立上的應用性,這為我們進行模型推斷和參數估計提供了更好的工具和理論基礎。同時,它還為機器學習模型的建立和應用帶來了更多的靈活性和廣泛性。
機率質量函數(Probability Mass Function,PMF)
- 是用於離散隨機變量的概率分佈描述。對於一個離散隨機變量,PMF 定義了每個可能取值的概率。
- 對於離散隨機變量 ,其概率質量函數 可以表示為: ,其中, 表示隨機變量 取值為 的概率,也就是該值在樣本空間中出現的概率。
- PMF 滿足以下條件:
- 對於所有可能的取值 ,
- 所有可能取值的概率之和等於 1,即
- 舉例來說,對於一個均勻的骰子,每一個面的點數出現的概率都是 ,那麼它的 PMF 可以表示為:
- 在機器學習中,我們常常需要建立模型來描述數據的概率分佈,PMF 是其中一種常見的描述方式,特別是對於離散型的隨機變量。對於連續型的隨機變量,則使用概率密度函數(Probability Density Function,PDF)來描述其概率分佈。
這意味著每個點數出現的概率都是 ,且所有點數的概率之和等於 1。
指數分佈(Exponential Distribution)
- 指數分佈是連續概率分佈,描述的是連續隨機變量的時間間隔或等待時間。
- 指數分佈的概率密度函數(PDF)為: ,其中, 是連續隨機變量的取值, 是指數分佈的參數,為正實數。
參數學習機制流程推導
- 上述已經做構造模型,也就是構造假設,目前就是:
- 構造損失函數:基礎模型有了,但我們還沒有得到參數要設定什麼,還有設定了參數之後要評估損失。這裡分成兩個部分
- 為了找出模型參數 與 ,我們使用最大概似估計(Maximum Likelihood Estimation, MLE),因為最大概似估計法可以最大化觀測數據的概似函數,從而使得模型的預測概率接近真實標籤的概率。(要先知道似然函數是什麼,再看 MLE 是什麼,然後為了計算方便真正採用的是 Log-Likelihood Function, 所以請參照下方筆記食用)
- 首先要取似然函數,也就是把模型(上面最後推出來的 )對樣本的機率預測值作連乘
- 因為連乘法麻煩,所以我們取對數,做 Log-Likelihood Function
- 而最大化對數似然函數要求最大值,之後要優化要用梯度上升,比梯度下降不易,所以換成等價於最小化其負號(負的對數似然函數),之後就是求梯度下降,而這樣的式子也等價於交叉熵損失函數:
- 但為什麼要透過求等價問題最小值來得到原本的最大值,而不是直接用上面 Log-Likelihood function 來接著算?
- 如果我們想要最大化對數似然函數,我們可以通過求對數似然函數的梯度,然後使用梯度上升方法來更新模型參數。然而,這個過程在數學上可能比較繁瑣,尤其在求解梯度的過程中。
- 相反,我們可以將對數似然函數的最大化問題轉化為最小化一個等價的問題,這就是為什麼我們使用交叉熵損失函數。交叉熵損失函數是對對數似然函數取負號,並添加了一些細節來確保計算的穩定性。
- 使用交叉熵損失函數的好處在於,最小化過程在數學上較簡單,尤其是在使用梯度下降等優化算法時。此外,交叉熵損失函數在計算梯度時的表現也比對數似然函數更好,避免了一些數值計算上的不穩定性。
- 為了優化損失函數(也可以說是優化參數),好得到更好的預測結果,我們使用梯度下降來更新模型的參數,因為梯度下降是一種有效的優化算法,可以找到最小化損失函數的參數組合。
損失函數(Loss Function)
- 用來衡量模型預測值與實際觀測值之間差異的函數。
- 機器學習中,我們通常使用損失函數來評估模型的性能,並尋找最佳模型參數,使得損失函數最小化。
- 損失函數的選擇對於機器學習算法的效果非常重要,不同的問題和模型可能適用不同的損失函數。通常,損失函數越小,表示模型的預測與實際觀測值越接近,模型性能越好。
- 常見的損失函數包括:
- 均方誤差(Mean Squared Error, MSE):用於迴歸問題,計算預測值與實際觀測值之間的平方誤差的平均值。
- 平均絕對誤差(Mean Absolute Error, MAE):也用於迴歸問題,計算預測值與實際觀測值之間的絕對誤差的平均值。
- 順便一提,線性回歸找參數就是最小化平均絕對誤差 (Least Absolute Deviations, LAD)
- 交叉熵(Cross Entropy):用於分類問題,特別是二元分類和多元分類問題。在 Logistic Regression 中,使用交叉熵作為損失函數。
- 對比損失(Hinge Loss):用於支持向量機(SVM)等分類問題。
- 除了上述常見的損失函數外,還有許多其他的損失函數,選擇合適的損失函數取決於特定問題和模型的需求。在機器學習中,我們通常使用損失函數來衡量模型的預測性能,並通過優化損失函數來學習模型的參數,以達到更好的預測效果。
其中, 是實際的類別標籤(0或1), 是模型的預測概率值。
交叉熵(Cross Entropy)
- 在機器學習中,特別是分類任務中,交叉熵被廣泛用作損失函數,用來衡量模型預測的概率分佈與實際標籤的概率分佈之間的差異。
- 假設我們有兩個概率分佈 和 ,交叉熵可以通過以下方式計算:
- 其中, 是可能的事件或觀察數據點。
- 如果 和 的分佈越接近,則交叉熵的值越小,反之亦然。也就是說估計值與實際值的分佈越接近了。 可以是真實的標籤分佈(實際值),而 則是模型的預測概率分佈(估計值)。如果模型的預測概率分佈 能夠越接近真實的標籤分佈 ,則交叉熵的值就會越小,這意味著模型的預測越準確。
- 因此,我們通常希望通過調整模型的參數,使得交叉熵損失函數最小化,從而使得模型的預測概率分佈更接近真實的標籤分佈。這也是為什麼交叉熵在分類任務中被廣泛使用作為損失函數的原因,它能夠促使模型學習如何產生更接近真實標籤的預測。
- 邏輯回歸中,我們使用交叉熵作為損失函數,將模型的預測概率分佈(由 Sigmoid 函數計算得到)與實際標籤的概率分佈進行比較。通過最小化交叉熵損失函數,我們的目標是讓模型的預測概率盡量接近真實的標籤,從而使得模型的預測更準確。
似然函數(Likelihood Function)
- 統計學中一個重要的概念,用於衡量給定模型參數的情況下,觀測數據出現的可能性。簡單來說,似然函數描述了在已知模型參數的情況下,觀測到的數據在該模型下出現的可能性大小。
- 假設我們有一組獨立同分佈的隨機變量 ,其概率分佈是 ,其中 是待估計的參數。觀測到的實際數據是 。那麼似然函數 就是在已知參數 的情況下,觀測到這些數據的可能性。它的計算方式是把每個觀測數據在該參數下的概率乘起來,即:
- 似然函數的值越大,就意味著在該參數下觀測到這些數據的可能性越大。因此,在最大概似估計中,我們的目標就是找到能夠使似然函數最大化的參數值,即使得觀測數據出現的可能性最大。
- 需要注意的是,似然函數並不是機率分佈,它是關於參數的函數。而機率分佈是關於隨機變量的函數。似然函數和機率分佈有著相似的形式,但是它們的目的和解釋是不同的。
最大概似估計(Maximum Likelihood Estimation, MLE)
- 是一種統計方法,用於估計模型參數,使得給定觀測數據的情況下,模型生成這些數據的概率最大化。
- 我們希望找到模型參數的值,使得觀測數據出現的概率最大(白話文就是利用已知樣本分佈,找到最有可能導致有這樣分佈的參數值)。如果我們有一個參數化的概率分佈,那麼最大概似估計就是找到能夠使觀測數據在該分佈下的概率最大的參數值。
- 在實際操作中,通常計算似然函數的對數,也就是對數似然函數(Log-Likelihood Function),然後尋找能夠最大化對數似然函數的參數值。這樣做的原因是對數函數的性質更容易處理,且能夠將乘法轉換為加法,簡化計算。
- 在機率統計的背景下,假設我們有一組獨立同分佈的隨機變量 ,它們的概率分佈是 ,其中 是待估計的參數。觀測到的實際數據是 。最大概似估計的目標是找到使得給定 的情況下,出現實際觀測數據的概率(似然函數)最大的參數值 ,即:
- 直接計算連乘( , prod)可能不太方便,通常會對似然函數取對數,變成求和:
- 通過求解這個最大化問題,我們可以找到使得觀測數據出現的機率最大的參數估計。最大概似估計在統計學和機器學習中都有廣泛的應用,幫助我們根據觀測數據找到模型的最優參數。
機率分佈(Probability Distribution)
- 統計學中一個重要的概念,它描述了隨機變量可能取值的情況以及這些值出現的概率。簡單來說,概率分佈告訴我們在不同取值情況下,隨機變量的可能性大小。
- 機率分佈是統計學和機器學習中的基本概念之一,它在描述隨機現象、建立模型以及進行推斷和預測時起著關鍵作用。
- 機率分佈通常用數學函數表示,這些函數給出了隨機變量取各種值的概率。根據不同的隨機變量類型,有多種不同的機率分佈,例如常見的正態分佈、伯努利分佈、均勻分佈等。
- 正態分佈(Normal Distribution)其概率分佈可以用以下數學函數表示:
- 其中, 是隨機變量的取值, 是平均值, 是標準差。這個函數告訴我們在不同的 值下,該隨機變量的取值的概率大小。
- 伯努利分佈(Bernoulli Distribution):是一種二元分佈,用於描述只有兩種可能結果的隨機試驗。例如,投擲硬幣,可能出現正面(1)或反面(0)。是描述在一個固定區間內隨機選取數值的分佈,每個數值在區間內的概率相等。例如,在區間 $[a, b]$ 內均勻分佈的概率密度函數(PDF)可以表示為:
- 其中, 是成功(1)的概率, 是失敗(0)的概率。
- 伯努利分佈的期望值為 。
- 伯努利分佈用於建模二元事件
- 均勻分佈(Uniform Distribution)
- 其中, 和 是區間的下限和上限。
- 均勻分佈的期望值為 。
- 均勻分佈用於隨機選取區間內的數值
梯度演算法&梯度下降(Gradient Descent)
- 在數學優化中,我們通常使用梯度來指導我們如何在目標函數的參數空間中移動,以找到最大值或最小值。梯度是目標函數在特定點的方向性導數,它指示了在哪個方向上目標函數增加最快(梯度上升)或減少最快(梯度下降)。
- 梯度上升:當我們想要最大化目標函數時,我們會朝著梯度的方向進行移動,因為在梯度方向上目標函數的值會增加。所以,梯度上升用於求取目標函數的最大值。
- 梯度下降:當我們想要最小化目標函數時,我們會朝著梯度的相反方向進行移動,因為在梯度的相反方向上目標函數的值會減少。所以,梯度下降用於求取目標函數的最小值。
- 對於大多數優化算法來說,梯度下降確實比梯度上升更容易,因為我們通常想要最小化損失函數(目標函數),這樣模型的預測能夠更好地與實際觀測吻合。而最小化的過程通常比最大化更直觀和穩定,因此梯度下降在機器學習和深度學習中得到廣泛應用。
- 梯度下降優化算法,用於尋找函數的最小值或局部最小值。在機器學習和深度學習中,梯度下降常用於調整模型的參數,以最小化損失函數,從而使模型的預測更準確。
- 梯度下降的基本思想是:根據目標函數的梯度(方向性導數),以一定的步長從當前的參數位置朝著梯度的相反方向更新參數,以期望找到一個更小的目標函數值。這個過程重複進行,直到收斂到函數的極小值或達到事先設定的停止條件。
- 方向導數:是一個多變數函數在某一特定方向上的導數。它衡量了函數在給定方向上的變化率。
- 在單變數情況下,我們可以通過對函數進行求導來獲得特定點上的導數
- 多變數情況下,由於存在多個變數,我們需要考慮在某一特定方向上的變化。
- 假設有一個多變數函數 ,我們想要計算它在一個特定方向 上的方向導數。該方向導數可以通過以下方式計算:
- 其中 是特定點, 是指定的方向, 是一個很小的數量。這個式子表示在 點,我們沿著方向 做微小的變化,然後觀察函數值的變化率。
- 方向導數可以用來衡量在不同方向上的變化,這對於優化算法如梯度下降非常有用,因為我們可以通過計算目標函數在不同方向上的方向導數,來確定在哪個方向上更新參數以使函數值下降最快。在梯度下降中,我們通常使用梯度(方向導數的向量形式)來指導我們的更新方向。
- 梯度的計算方式是對每個變數進行偏導數計算,然後將這些偏導數組合成一個向量。梯度的表示形式為:
- 這個向量指示了在每個坐標軸方向上函數的變化率。
- 對於多變數函數,我們需要對每個變數分別計算偏導數。一個簡單的例子,假設我們有一個二元函數 ,我們想要求解函數在點 的梯度:
- 對 求偏導數:
- 對 求偏導數:
- 因此,在點 的梯度是:
- 這意味著在點 ,函數 在 方向上的變化率為 2,而在 方向上的變化率為 8。
- 具體來說,梯度下降的更新規則可以表示為:
- 其中:
- 是當前的參數值。
- 是更新後的參數值。
- 是學習率,決定了每次更新的步長。
- 是目標函數,通常是損失函數。
- 是目標函數 在 點的梯度向量。
- 梯度下降的過程可以理解為在參數空間中沿著梯度下降的方向進行搜索,直到找到函數的極小值。然而,梯度下降不保證能夠找到全局最小值,有可能會陷入局部最小值。為了避免這種情況,常常需要調整學習率、使用不同的初始值或使用其他進階的優化算法。
優缺點
優點
- 簡單易用:Logistic Regression 是一個線性模型,容易理解和實現。它不需要太多的參數調整,並且計算效率高。
- 可解釋性:由於模型形式簡單,Logistic Regression 的預測結果可以解釋為特徵對目標變數的影響程度。
- 有效處理特徵:Logistic Regression 可以處理多元特徵,並且對於某些特徵的重要性有較好的體現。
- 處理二元和多元分類:Logistic Regression 可以用於二元和多元分類問題,並可以擴展到處理多個類別。
缺點
- 線性限制:Logistic Regression 是一個線性模型,只能學習線性分界面。對於複雜的非線性問題,性能可能不如複雜模型。
- 容易過擬合:當特徵空間較大或者特徵相關性較強時,Logistic Regression 容易過擬合。
- 無法處理高維稀疏數據:對於高維稀疏數據,Logistic Regression 的效果可能不佳。
總的來說,Logistic Regression 是一種簡單而強大的機器學習模型,特別適用於二元和多元分類問題。它在許多實際應用場景中表現出色,特別是當特徵空間相對較小且較線性可分時。然而,對於複雜的非線性問題或高維稀疏數據,可能需要使用更複雜的模型來獲得更好的性能。
應用場景
- 二元分類問題:最常見的應用場景是二元分類問題,例如垃圾郵件分類、詐騙檢測、疾病診斷等。Logistic Regression 可以將輸入特徵映射為概率值,用於預測樣本屬於正類別(1)或負類別(0)的機率。
- 多元分類問題:Logistic Regression 可以擴展到處理多元分類問題,例如手寫數字識別、物體分類等。在多元分類中,通常使用 One-vs-All 或 One-vs-One 的策略來構建多個二元分類器。
- 推薦系統:Logistic Regression 可以用於推薦系統中的用戶興趣預測,例如為用戶推薦商品、電影、音樂等。
- 風險評估:在金融領域,Logistic Regression 可以用於風險評估,例如預測信用卡詐騙風險、貸款違約風險等。
- 自然語言處理(NLP):Logistic Regression 可以應用於文本分類、情感分析等 NLP 任務。