交叉熵損失函式; 表徵兩個概率分布間的距離
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.正則化的作用 當訓練資料比較少時,或模型訓練過度時,常常會導致過擬合。正則化主要作用就是通過減小模型的複雜度來防止過擬合,提高泛化能力。為了更好的了解過擬合以及為後面做鋪墊,還是先看乙個吳恩達機器學習系列課程中乙個線性回歸來 房價的例子...