交叉熵和正則化緩解過擬合

2021-10-09 10:23:53 字數 1058 閱讀 1151

交叉熵損失函式; 表徵兩個概率分布間的距離

import tensorflow as tf

loss_ce1 = tf.losses.categorical_crossentropy([1

,0],

[0.6

,0.4])

loss_ce2 = tf.losses.categorical_crossentropy([1

,0],

[0.8

,0.2])

print

("loss_ce1:"

, loss_ce1)

print

("loss_ce2:"

, loss_ce2)

# 交叉熵損失函式

loss = loss(y與y_)

+ regularizer * loss(w)

1

loss(y與y_)指的是模型中所有引數的損失函式,如:交叉熵,均方誤差

regularizer指的是引數w在總loss中所佔的比例,即正則化的權重

loss(w)中的w就是需要正則化的引數

loss(w) = tf.contrib.layers.l1_regularizer(regularizer)(w) 是l1正則化計算

loss(w) = tf.contrib.layers.l2_regularizer(regularizer)(w) 是l2正則化計算

f.add_to_collection(

'losses'

, tf.contrib.layers.l2_regularizer(regularizer)

(w))

這段**是指把計算好的所有w正則化的引數加在losses集合中

loss = cem + tf.add_n(tf.get_collection(

'losses'

))

這段**指的是把losses裡的所有值相加再加上交叉熵構成了總損失函式los

過擬合 欠擬合 正則化

產生原因 緩解方法 合適的資料分布 合理的模型複雜性 合理的組合應該是 複雜的資料分布 簡單的模型 或者 簡單的資料分布 複雜的模型 神經網路中的過擬合 原理 或者說思考 從貝葉斯的角度來說,代價函式可以表示為p y w,x 的形式,而正則項則是對引數w做了乙個先驗分布的假設,使得代價函式變成p y...

過擬合與正則化

機器學習中經常遇到所謂的過擬合 overfitting 問題。所謂的過擬合問題,是指某個模型在訓練資料上能夠獲得比其他模型更好的擬合,但是在訓練資料外的資料集上卻不能很好的擬合。其本質是,模型對於隨機錯誤或者雜訊的刻畫超過其對於真實資訊的刻畫。而出現這種現象的主要原因是訓練資料中存在噪音或者訓練資料...

正則化防止過擬合

在之前的線性回歸就有提到正則化,下面就來更具體地介紹正則化。1.正則化的作用 當訓練資料比較少時,或模型訓練過度時,常常會導致過擬合。正則化主要作用就是通過減小模型的複雜度來防止過擬合,提高泛化能力。為了更好的了解過擬合以及為後面做鋪墊,還是先看乙個吳恩達機器學習系列課程中乙個線性回歸來 房價的例子...