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 ) )