AdvRBMs.advpcd!
— Methodadvpcd!(rbm, data; q, Q, ...)
Trains the RBM on data using Persistent Contrastive divergence with constraints. Matrix q
contains the 1st-order constraints, that q[...,t]' * W
be small, for each t
. Matrix Q
contains the 2nd-order constraints, that W' * Q[...,t] * W
be small, for each t
.
AdvRBMs.advpcd!
— Methodadvpcd!(rbm, data; q, Q, ...)
Trains the RBM on data using Persistent Contrastive divergence with constraints. Matrix q
contains the 1st-order constraints, that q[...,t]' * W
be small, for each t
. Matrix Q
contains the 2nd-order constraints, that W' * Q[...,t] * W
be small, for each t
.
AdvRBMs.empty_intersections
— Methodempty_intersections(X)
For a given list of collections X
, returns true if the intersections between pairs of collections are empty. Otherwise returns false.
AdvRBMs.kernelproj
— Methodkernelproj(w, q)
Projects w
to the kernel of q
. That is, the result satisfies q' * kernelproj(w, q) ≈ 0, up to numerical error.
AdvRBMs.project∂!
— Functionproject∂!(∂w, q, Q)
Projects gradients ∂w
using the given constraints.
AdvRBMs.sylvester_projection
— Methodsylvester_projection(A, X)
Returns the projection of X
onto the solution space of A'X + X'A = 0
.
AdvRBMs.∂qw
— Method∂qw(w, q)
Derivative of ||q' * w||^2 / 2
with respect to w
.
AdvRBMs.∂wQw
— Method∂wQw(w, Q)
Derivative of ∑_k ||w' * Q[:,:,k] * w||^2 / 2
with respect to w
.