Algorithm. Contrastive Divergence (CD算法)
Input: RBM( V 1 , ⋯ , V m , H 1 , ⋯ , H n ),training batch S
Output: Δ w i j , Δ b j , Δ c i , for i = 1 , ⋯ , n ; j = 1 , ⋯ , m
init Δ w i j = Δ b j = Δ c i = 0 for i = 1 , ⋯ , n ; j = 1 , ⋯ , m
for all the v ∈ S do
v ( 0 ) ← v do
for t = 0 , ⋯ , k − 1 do
for i = 1 , ⋯ , n do sample
for j = 1 , ⋯ , m do sample v j ( t + 1 ) ~ p ( v j | h ( t ) )
for i = 1 , ⋯ , n , j = 1 , ⋯ , m do
Δ w i j ← Δ w i j + p ( H i = 1 | v ( 0 ) ) ⋅ v j ( 0 ) − p ( H i = 1 | v ( k ) ) ⋅ v j ( k )
Δ b j ← Δ b j + v j ( 0 ) − v j ( k )
Δ c i ← Δ c i + p ( H i = 1 | v ( 0 ) ) − p ( H i = 1 | v ( k ) )