keras中的神经网络为什么需要多次epoch
Δw(t)=?ε?E?w(t)+αΔw(t?1)(9)\Delta w(t)=-\varepsilon\frac{?E}{?w(t)}+\alpha\Delta w(t-1)(9)Δw(t)=?ε?w(t)?E?+αΔw(t?1)(9)
我們知道反向傳播每次迭代的效果是這樣的:
w=w+Δw(t)w=w+\Delta w(t)w=w+Δw(t)
我們知道,每條訓(xùn)練數(shù)據(jù)都會(huì)導(dǎo)致訓(xùn)練的過(guò)程中,
計(jì)算一次?E?w(t)\frac{?E}{?w(t)}?w(t)?E?,假如我的wiw_iwi?初始化為0,最終的值是0.7
但是我的學(xué)習(xí)率ε=0.0001\varepsilon=0.0001ε=0.0001,一萬(wàn)條數(shù)據(jù),
epoch=1夠不夠,可能夠,也可能不夠.
因?yàn)槟阆氚?就假如一個(gè)三層的神經(jīng)網(wǎng)絡(luò)
第一層和第二層之間有個(gè)wiw_iwi?
第2層和第3層之間有個(gè)wjw_jwj?
假設(shè)w在0~1之間,那么就有1/ε\varepsilonε=10000種取值,
并且層與層之間的w還得排列組合,這些排列組合雖然是根據(jù)?E?w(t)\frac{?E}{?w(t)}?w(t)?E?不斷調(diào)整www的,你能確保這些層與層之間的不同w的值的組合
剛好令loss(也就是E)最小嗎?
顯然不能,所以根據(jù)梯度下降的過(guò)程,你需要很多次epoch,才有可能讓神經(jīng)網(wǎng)絡(luò)來(lái)擬合處滿(mǎn)足當(dāng)前訓(xùn)練集的模型.
一言概之,為啥需要多次epoch,
就是w=w+Δw(t)w=w+\Delta w(t)w=w+Δw(t)還沒(méi)來(lái)得及迭代到最終的值.
當(dāng)然最終的值很可能會(huì)讓神經(jīng)網(wǎng)絡(luò)過(guò)擬合,這是后話(huà).
總結(jié)
以上是生活随笔為你收集整理的keras中的神经网络为什么需要多次epoch的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ubuntu16.04+Virtuale
- 下一篇: kernel和filter这两个概念在C