<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 經驗概率分布的近似 > 原文:[https://www.textbook.ds100.org/ch/17/classification_cost_justification.html](https://www.textbook.ds100.org/ch/17/classification_cost_justification.html) ``` # HIDDEN # Clear previously defined variables %reset -f # Set directory for data loading to work properly import os os.chdir(os.path.expanduser('~/notebooks/17')) ``` ``` # HIDDEN import warnings # Ignore numpy dtype warnings. These warnings are caused by an interaction # between numpy and Cython and can be safely ignored. # Reference: https://stackoverflow.com/a/40846742 warnings.filterwarnings("ignore", message="numpy.dtype size changed") warnings.filterwarnings("ignore", message="numpy.ufunc size changed") import numpy as np import matplotlib.pyplot as plt import pandas as pd import seaborn as sns %matplotlib inline import ipywidgets as widgets from ipywidgets import interact, interactive, fixed, interact_manual import nbinteract as nbi sns.set() sns.set_context('talk') np.set_printoptions(threshold=20, precision=2, suppress=True) pd.options.display.max_rows = 7 pd.options.display.max_columns = 8 pd.set_option('precision', 2) # This option stops scientific notation for pandas # pd.set_option('display.float_format', '{:.2f}'.format) ``` 在本節中,我們介紹了**kl 散度**,并演示了如何將二進制分類中的平均 kl 散度最小化等同于將平均交叉熵損失最小化。 由于邏輯回歸輸出概率,邏輯模型產生一定類型的概率分布。具體地說,基于最優參數$\hat \boldSymbol \theta$,它估計標簽$y$對于示例輸入$\textbf x 為$1$的可能性。 例如,假設$X$是一個標量,記錄了一天的預測下雨機會,$Y=1$意味著 DOE 先生帶著雨傘去工作。一個帶有標量參數$\hat \theta$的邏輯模型預測,在預測下雨的可能性下,doe 先生帶傘的概率為:$\hat p \theta(y=1 x)$。 收集有關 doe 先生傘式使用的數據為我們提供了一種構建經驗概率分布$p(y=1_x)$的方法。例如,如果有五天下雨的可能性是$X=0.60 美元,而 DOE 先生只帶了一把雨傘去上班,$P(Y=1_X=0.60)=0.20 美元。我們可以為數據中出現的每個$x$值計算類似的概率分布。當然,在擬合邏輯模型后,我們希望模型預測的分布盡可能接近數據集的經驗分布。也就是說,對于我們數據中出現的所有$x$值,我們需要: $$ \hat{P_\theta}(y = 1 | x) \approx P(y = 1 | x) $$ 確定兩個概率分布的“緊密性”的一個常用度量是 Kullback——Leibler 散度,或稱 kl 散度,其根源在于信息論。 ## 定義平均 kl 發散度[?](#Defining-Average-KL-Divergence) KL 散度量化了由我們的 Logistic 模型計算的概率分布$\Hat P BoldSymbol \Theta$與基于數據集的實際分布$P$之間的差異。直觀地,它計算邏輯模型如何不精確地估計標簽在數據中的分布。 對于單個數據點$(\textbf x,y)$的兩個分布$p$和$\hat p boldsymbol \theta$之間的二進制分類的 kl 差異由以下公式給出: $$D(P || \hat{P_\boldsymbol{\theta}}) = P(y = 0 | \textbf{x}) \ln \left(\frac{P(y = 0 | \textbf{x})}{\hat{P_\boldsymbol{\theta}}(y = 0 | \textbf{x})}\right) + P(y = 1 | \textbf{x}) \ln \left(\frac{P(y = 1 | \textbf{x})}{\hat{P_\boldsymbol{\theta}}(y = 1 | \textbf{x})}\right)$$ KL 散度不是對稱的,即$p$與$p$與$p$與$p$與$p$與$p$與$d(P 124 124 \\124 \124 \123 \ \ \ \\123 \\\ \\\\\\\\\(P)$$ 由于我們的目標是使用$\hat p boldsymbol \theta 美元,因此我們關注的是$d(p \hat p \boldsymbol \theta 美元)。 最好的$\BoldSymbol \Theta$值,我們將其表示為$\Hat \BoldSymbol \Theta$將整個$n$點數據集的平均 kl 發散最小化: $$ \text{Average KL Divergence} = \frac{1}{n} \sum_{i=1}^{n} \left(P(y_i = 0 | \textbf{X}_i) \ln \left(\frac{P(y_i = 0 | \textbf{X}_i)}{\hat{P_\boldsymbol{\theta}}(y_i = 0 | \textbf{X}_i)}\right) + P(y_i = 1 | \textbf{X}_i) \ln \left(\frac{P(y_i = 1 | \textbf{X}_i)}{\hat{P_\boldsymbol{\theta}}(y_i = 1 | \textbf{X}_i)}\right)\right)$$$$ \hat{\boldsymbol{\theta}} = \displaystyle\arg \min_{\substack{\boldsymbol{\theta}}} (\text{Average KL Divergence}) $$ 在上面的公式中,數據點$i ^ \text th 表示為($\textbf x u i$,$y i$),其中,$\textbf x u i$是觀察到的結果。 KL 的差異并不影響與$P$相關的罕見事件的不匹配。如果模型預測實際罕見事件的高概率,那么$p(k)$和$\ln\left(\frac p(k)p boldsymbol \theta(k)right)$都很低,因此差異也很低。但是,如果模型預測實際常見事件的概率較低,則散度較高。我們可以推斷,與精確預測罕見事件但在常見事件上差異很大的模型相比,精確預測常見事件的邏輯模型與$P$的差異較小。 ## 由 kl 發散推導交叉熵損失 上述平均 kl 散度方程的結構與交叉熵損失具有一些表面相似性。我們現在將用一些代數操作證明,最小化平均 kl 散度實際上等于最小化平均交叉熵損失。 Using properties of logarithms, we can rewrite the weighted log ratio: $$P(y_i = k | \textbf{X}_i) \ln \left(\frac{P(y_i = k | \textbf{X}_i)}{\hat{P_\boldsymbol{\theta}}(y_i = k | \textbf{X}_i)}\right) = P(y_i = k | \textbf{X}_i) \ln P(y_i = k | \textbf{X}_i) - P(y_i = k | \textbf{X}_i) \ln \hat{P_\粗體符號\ theta(y u i=k \ textbf x u i)$$ 請注意,由于第一個術語不依賴于$\BoldSymbol \Theta$,因此它不會影響$\DisplayStyle\Arg\Min \Substack \BoldSymbol \Theta$并且可以從公式中刪除。由此得到的表達式是模型的交叉熵損失$\Hat P BoldSymbol \Theta$: $$ \text{Average Cross-Entropy Loss} = \frac{1}{n} \sum_{i=1}^{n} - P(y_i = 0 | \textbf{X}_i) \ln \hat{P_\theta}(y_i = 0 | \textbf{X}_i) - P(y_i = 1 | \textbf{X}_i) \ln \hat{P_\theta}(y_i = 1 | \textbf{X}_i)$$$$ \hat{\boldsymbol{\theta}} = \displaystyle\arg \min_{\substack{\theta}} (\text{Average Cross-Entropy Loss}) $$ 由于標簽$Y_I$是已知值,因此$Y_I=1$、$P(Y_I=1 textbf x u I)$等于$Y_I$和$P(Y_I=0 textbf x u I)$的概率等于$1-Y_I$。模型的概率分布$\hat p boldsymbol \theta 由前兩節討論的 sigmoid 函數的輸出給出。進行這些替換后,我們得出平均交叉熵損失方程: $$ \text{Average Cross-Entropy Loss} = \frac{1}{n} \sum_i \left(- y_i \ln (f_\hat{\boldsymbol{\theta}}(\textbf{X}_i)) - (1 - y_i) \ln (1 - f_\hat{\boldsymbol{\theta}}(\textbf{X}_i) \right) $$$$ \hat{\boldsymbol{\theta}} = \displaystyle\arg \min_{\substack{\theta}} (\text{Average Cross-Entropy Loss}) $$ ## 交叉熵損失的統計解釋 交叉熵損失在統計學上也有基礎。由于邏輯回歸模型預測概率,給定一個特定的邏輯模型,我們可以問,“這個模型產生一組觀察到的結果的概率是多少?”我們可以自然地調整模型的參數,直到從模型中提取數據集的概率盡可能高。盡管在本節中我們不會證明這一點,但該程序相當于最小化交叉熵損失,這是交叉熵損失的 _ 最大似然 _ 統計證明。 ## 摘要[?](#Summary) 平均 kl 差異可以解釋為$p$和$hat p boldsymbol \theta$p$加權的兩個分布之間的平均對數差異。最小化平均 kl 發散也最小化平均交叉熵損失。我們可以通過選擇對常見數據進行精確分類的參數來減少邏輯回歸模型的分歧。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看