# 3.3 Losses and Risks 在我們做決定時,做出對的 decision 所帶來的好處可能不一樣多,做出錯誤的 decision 所產生的 cost 也可能有高有低。舉例來說,在銀行借錢給人的例子裡,「不小心借錢給高風險的顧客」和「不小心拒絕借錢給低風險顧客」,兩者帶來的 cost 可能就不同。 為了要去衡量做出這些決定(如「不小心借錢給高風險的顧客」)所帶來的損失,我們定義一些名詞: - ==$\alpha_i$==:<font color = "snake">action</font>, assign 某個 input 到 class $C_i$ 這個決定。 - ==$\lambda_{ik}$==:<font color = "snake">loss</font>,決定要做 action $\alpha_i$(分類到 class $C_i$),但實際上 input 是屬於 $C_k$ 所產生的 loss。 - ==$R(\alpha_i|x)$==:(做出 action $\alpha_i$ 所產生的) <font color = "snake">expected risk</font>,定義如下:  透過 expected risk 的計算,我們就能藉由選擇 risk 最小的,來決定要選擇做出哪個 action(也就是把某個 input 分到哪個 class。)  現在假設我們有 $k$ 個 actions $\alpha_i \quad i=1,...k$,也就是說我們有 $k$ 個 class,把 input 分到各個 class 對應到各個 action。 ## loss function ### 0/1 loss 在 $0/1$ loss 這個特例中,我們的 loss function 可以定義如下: > 也就是分類到正確的 class 不會產生 loss,分類到錯誤的 class 是 equally costly,產生的 loss 都相同。  代入到我們對 expected risk 的公式裡,因為猜錯的 loss 是 $1$,所以我們等同去算分類錯誤的次數即可。 > 原本當 loss 不一定等於 $1$ 時,我們的算法應該要是分錯的次數去乘上分到那個錯誤的 class 所產生的 loss,但現在乘 $1$ 等同不用乘。 > $\rightarrow$ 至於分類錯誤的次數,就是分到各個錯誤的 class 的機率加總,我們也可以想成全部的機率 $1$ 去扣掉猜對的機率。 \begin{equation} \begin{split} R(\alpha_i|x) &= \sum_{k=1}^K\lambda_{ik}P(C_k|x) \\ &= \sum_{k\ne i}P(C_k|x) \\ &= 1 - P(C_i|x) \end{split} \end{equation} 從上面的式子可以知道,為了讓 risk 最小,我們要讓 $P(C_i|x)$ 越大,去選擇 posterior 最高的 class。 > 這也很符合直覺,因為意思就是當我們選擇最有可能的 class 時,產生的 expected risk 就會最小。 不過,要記得這只是一個 special case,很少會有 appliation 會是這麼簡單的 $0/1$ loss;在 general case 裡面,我們在獲得 posterior 以後,要先做一些 postprocessing 來計算 risks,然後才能去做出 action 來使 risk 最小化。 ### loss function with reject / doubt 在一些 applicaion 裡面,如果我們分類錯誤產生的 cost 可能特別高,所以當我們的分類系統在做判斷時,如果發現某個 input 的分類不確定性太高,我們就會選用更複雜的方式去對這個 input 進行分類(例如請人手動分類。) 舉例來說,如果我們用一個辨識器去辨認信封上的郵遞區號,一旦分錯,信件就會被送去完全不一樣的地方,造成很大的麻煩。 考慮到這樣的情況,我們新定義一個 action 叫做 <font color = "snake">reject / doubt</font> ==$\alpha_{k+1}$==,也就是我們新增一種 action,當不太確定時就把這個模糊的 input 分類到某個專門放不確定 input 的 class 去。 如果在 $0/1$ loss 的基礎之上我們再把這個 action $\alpha_{k+1}$ 的 loss 加進去,那麼新的 loss function 如下:  其中, $\lambda$ 是某個++介於零跟一之間++的值,當我們把一個 input 分類到 reject,但實際上這個 input 應該要被歸類在某個 class $C_k$ 時,就會產生 $\lambda$ 這麼多的 loss。 所以當我們去選擇分類到 reject 時,會產生的 expected risk 也是 $\lambda$,因為這個 input 必然屬於 $k$ 個 class 的其中一個:  因此,我們去做出最佳判斷的原則就變成了:  > 如果分類到 class $C_i$ 會產生的 expected risk 最小(比分到所有其他 class 都小,也比分到不確定的 class $C_{k+1}$ 小),那麼就代表比起分到其他 class 或是不確定,分到 $C_i$ 是最適合的。 > > 但是如果分到 $C_{k+1}$ 的 expected risk 比分到所有的 class 都小,代表我們不太確定,因此就應該 reject。 至於爲什麼要把 $\lambda$ 的值訂為 <font color = "snake">$0<\lambda<1$</font>? 我們可以考慮訂為 $0$ 和 $1$(或大於 $1$) 的兩種情況: - 如果 $\lambda = 0$:我們永遠都會選擇 reject。 > 因為 $\alpha_{k+1}$ 所產生的 expected risk 也等同於 $\lambda$,也就是說選 doubt 的 expected risk 永遠都會比選其他 class 小。 - 如果 $\lambda \ge 1$:我們永遠都不會選擇 reject。 > 因為在 $0/1$ loss 這個 case 裡,如果我們選錯產生的 loss 也只有 $1$,所以與其選擇 doubt,不如隨便猜一個,即時猜錯 loss 也必定 $\le$ reject 產生的 loss。 所以在考慮 reject 時,我們其實就是在「讓電腦產生比較不確定的分類」和「讓人去做確定性較高(但這個行為本身較為 costly)的分類」這兩者之間去權衡。 > $\rightarrow$ 第十七章我們會討論如果去創造一個好幾層的做決定的機器,當我們不確定時我們可以進到下一層再進行更細緻的分類, cost 會比較高,但也會有更高的機率是正確的。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up