# Machine Learning Function ###### tags: `Machine Learning` >紀錄一些ML相關函數 ## :memo:CrossEntropy  二元分類為例,y表示label,y取值{+1,-1}。 - 當y=1(真實label是1),會希望p越接近1越好。 假如某個樣本x預測為1這個類的概率p=0.6,那麼損失就是-log(0.6)。 p越低,loss就越大。(loss越小越好,要minimize) - 當y=-1時,就會希望x預測1的機率越小越好 \  :::info :bulb:**Hint:** 損失函數(Lossfunction),用來評估模型的預測值f(x)與真實值Y的不一樣程度,是一個**非負實數**函數。(label與prediction相差越大,loss越大。) ::: --- ## :memo: α-balanced cross-entropy >Cross-entropy在easy example ($p_t$>0.5),也給了不小的loss。 雖然hard example ($p_t$<0.1) 值很大,但**Total loss是看所有候選物件的loss值相加**,而1000筆easy examples的loss相加絕對會大於1個hard example的loss,**這時候模型在學習就幾乎都在學習background(easy example)的東西。** 一個簡單的方法就是在cross-entropy加上一個weigh: \begin{gather*} $CE(p_t) = -αlog(p_t)$ \end{gather*} 但加了α還是沒有辦法解決1000筆easy examples的loss相加會大於1個hard example的loss的問題 (因為α只是等比例放大縮小)。 --- ## :memo: Focal loss >Focal Loss for Dense Object Detection中,作者提出一種新的損失函數:focal loss,是在標準交叉熵損失基礎上修改得到的。 >這個函數可以通過**減少易分類樣本的權重**,使得模型在訓練時更專注於稀疏的難分類的樣本;防止大量易分類負樣本(background)在訓練中壓垮檢測器。 >爲了證明focal loss的有效性,作者設計了一個one-stage的dense detector:RetinaNet,並且在訓練時採用focal loss訓練。 **Folal Loss:**  其中,γ稱作focusing parameter,γ>=0 \begin{gather*} (1 − p_t)^γ \end{gather*} 稱為**調製係數**(modulating factor) 調製係數,目的是**減少容易分類成功的樣本(easy example)權重**,使模型**更專注於難以分類成功(hard example)的樣本。** \ \  - 當 γ = 0,Focal Loss = CrossEntropy Loss (藍色線) - 當 γ > 0 - 在$P_t$大時($P_t$>0.5),well-classified examples(easy example)的loss會相對減少,可以更專注於Hard example。 - 在$P_t$小時,又可以接近原本的CE loss; ## :memo: Hinge loss Hing loss 常被用於**最大間隔分類** ,尤其適用支持向量機(SVMs)。 對於一個**預期輸出 t=+-1** ,**分類結果為y** 的Hing loss定義為 \begin{gather*} ℓ(y) = max(0, 1-t*y) \end{gather*} 其中,**y 是分類器的原始輸出**。 y = w*x+b,(w,b)是超平面參數,x為輸入要分類的點。 - 當 t 與 y 符號相等 (分類正確) - 當 |y| ≥ 1,ℓ(y) = 0 - 當 |y| < 1,即使分類正確,但間隔不足,因此也會有損失 - 當 t 與 y 符號相等 (分類錯誤) - ℓ(y) 隨 y 線性成長 --- ## :memo: Sigmoid v.s. Softmax - **Sigmoid**:用於多標籤分類問題=有多個答案。 常以σ() 表示Sigmoid函數,其輸出恆正,總和不一定為1,值域為[0,1]之間。 \begin{gather*} σ(s)=\displaystyle{\frac{1}{1+e^{-s}}} \end{gather*} 由於Sigmoid函數會**分別處理各個原始輸出值**,結果互相獨立,因此可能出現的輸出情況都很高或很低。 # - **Softmax**:用於多類別分類問題=只有一個正確答案。 其所有輸出的機率總和為1。 Example:手寫辨識時,分類器應採用Softmax函數,明確數字為哪一類。畢竟,數字8就是8,不能同時是7。 >不同於普通的max 函數:max 函數只輸出最大的那個值,而Softmax 則確保較小的值也有較小的概率,不會被直接捨棄掉,是一個比較“Soft”的“max”。 --- ### :bulb: Hint - **MSE**:常用於回歸問題 - **Binary Cross Entropy**:常用於二分類問題,搭配sigmoid(σ) - **Categorical Cross Entropy**:適用於多分類問題,搭配softmax
×
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