樣本分類控制

樣本分類控制

前面說了一個很重要的點:可以調控損失來控制網絡訓練。

接下來詳細看看在分類過程中的運用。

Focal Loss

基礎的交叉熵CELossCELoss
CE={logP+log(1P) CE = \left\{ \begin{aligned} \begin{matrix} -\log P & +\\ -\log(1-P)&- \end{matrix} \end{aligned} \right.

首先,得記住一點:網絡通過損失函數進行參數的更新,以迭代減少損失值。

也就是說:損失越大,越會更新大幅度更新參數,以取得更大的進步,使損失更小。

損失本身是單一的,只是一個數值,但是網絡的參數是繁雜的,它可以通過參數的互補,在不減少一方面的結果的同時,更好的擬合另一個方面的數據。

以下的辦法都是基於此。

考慮兩種情況

  • 預測準確和預測失敗的,是否以相同的權重去更新網絡
  • 訓練樣本不均衡,現實場景下,不足的樣本是否也應該較少

綜合下來,不難得出如下結論

  • 預測錯誤的,爲了更好的擬合,應該更多的增加損失
  • 少量的樣本,應該以質來彌補量的缺失,應該增大權值,更好模擬真實情況

不能忘記的是,大致方向如此,但是權值不能是等同的,應該是每個樣本自適應的,取決於它本身的損失程度。

於是,出現了這樣的損失定義
FLOSS={α(1P)γlogP+(1α)Pγlog(1P) FLOSS = \left\{ \begin{matrix} -\alpha (1-P)^\gamma \log P & +\\ -(1 - \alpha) P^\gamma \log(1 - P) & -\\ \end{matrix} \right.

  • α\alpha : 樣本佔比
  • γ\gamma : 預測難易

對於預測的較準的正樣本1P1-P或者較準的負樣本P,兩者都是不大的數,乘方以後會急速衰減,從而達到減少正確預測的損失更新。

相反,如果是那種模棱兩可的,或者預測很失敗的,就能夠保留極大的權值,刺激網絡更新擬合。

很有意思的一點,邏輯迴歸的時候,把兩類樣本都甩到兩邊,爲了更明晰的分類。

現在,從損失函數上,也可以通過標記來拉開兩者的分類距離,這裏強調的是異類距離的拉開。

Center Loss

分類只在乎不同類別之間的距離?不對,被歸爲一類的事物之間,也必然要有一定的相似度,也就是說,分類也是包含聚類的。

之前做過一個分類,結果不太好,因爲訓練集中包含的數據並不多樣。

換了個底色,或者有些地方掉色,它就歸類錯誤了。

一方面是學習的特徵的數據缺乏,同時,也讓我感受到了:單一類型判斷缺乏可變換。

這也說明,分類如果只是排除法:不歸爲此類,是不行的。

它必須有明確的:它之所以是此類,這種正向的歸類理由。也就是聚類能力。
在這裏插入圖片描述

分類能力似乎不錯,但是在中心處呢,不可爲是分的清除。

肉眼看來,或許分開了,但還是上面所說,沒有所謂的聚類的能力,沒有就是這一類的肯定。
在這裏插入圖片描述

這種呢,哇,恍然大悟。

這次,我們的分類,不僅是它不是哪個類,而是真正的它就是哪個類.

歸根結底,還是在損失上面做文章。
L=Ls+λLc L = L_s + \lambda L_c

其中λ\lambda是害怕距離中心點的值太大,反而失去類分類的本意而添加的超參數。
Lc=12Nxici2 L_c = \frac{1}{2}\sum_N \vert \vert x_i - c_i \vert \vert ^ 2

中心點的定義
ci=1Nnjxij c_i = \frac{1}{N}\sum_n^j x_{ij}
在這裏插入圖片描述
依據這個算法不停迭代,它就會去不停的更新參數,學習到讓每次訓練損失都小的參數,把每個點都轉換到靠近的聚類位置。

思維發散

回顧以下損失函數的意義

  • 衡量預測與真實之間的差距

因爲訓練的目標,就是去減少損失函數,也就是說,我們是的某方面的權重較大,它會極力的去擬合某方面的屬性。

從而,我們以權重爲主體,不同的檢測結果,分配不同的權值配比,就可以如願的在樣本分佈、擬合難度上去優化我們的訓練方向。

另一方面,不單純的去放縮原本的損失函數,在原來的基礎之上,我們可以引入另一個新的判斷依據來爲損失函數擴充內容。

雖然損失只是單一的值,但是神經網絡的學習能力還是超乎想象,通過甄別各參數的影響能力,最終去調整,使得損失最小。

不過目前來看,僅在分類上,損失函數有很大的變化空間,因爲分類,是很明確的,且唯一標註的。

對於檢測類的任務,並不那麼明晰,好比人臉標記,它是純粹的主觀,而非刻板的分類。沒有明確的對錯關係。

不過,雖然神經網絡是理論的法外之地,在損失的操作上還是可以融入一些既有的知識。

我們可以通過添加上額外的計算關係限定,額外附加到損失函數之上,順便的,也能夠得到學習。

正如,一個人的臉,總不能是一條直線或者豎線,它的寬高,我們可以設定一定的約束,來精煉我們的參數。

正如分類的效果一直不太好,我就讓預測錯誤的權值增大,以提高擬合能力。

但是,我只是樣本少,基本沒錯誤的,實際情況下,這種辦法也會擬合錯誤樣本,而且過擬合之後缺乏泛化能力。
不過,訓練初期,不妨進行這種大刀闊斧的參數調整,正如各種梯度優化方法,都是先大後小的,我們只是從源頭的損失進行,而不是權值來改變。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章