`AdvRBMs.advpcd!`

— Method`advpcd!(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!`

— Method`advpcd!(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`

— Method`empty_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`

— Method`kernelproj(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∂!`

— Function`project∂!(∂w, q, Q)`

Projects gradients `∂w`

using the given constraints.

`AdvRBMs.sylvester_projection`

— Method`sylvester_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`

.