sf.apps.train.ExpFeatures¶
-
class
ExpFeatures
(features)[source]¶ Bases:
object
Exponential embedding with feature vectors.
Weights of the \(W\) matrix in the \(WAW\) parametrization are expressed as an exponential of the inner product between user-specified feature vectors and trainable parameters: \(w_i = \exp(-f^{(i)}\cdot\theta)\). The Jacobian, which encapsulates the derivatives of the weights with respect to the parameters can be computed straightforwardly as: \(\frac{d w_i}{d\theta_k} = -f^{(i)}_k w_i\).
Example usage:
>>> features = np.array([[0.1, 0.1, 0.1], [0.2, 0.2, 0.2], [0.3, 0.3, 0.3]]) >>> embedding = ExpFeatures(features) >>> parameters = np.array([0.1, 0.2, 0.3]) >>> embedding(parameters) [0.94176453 0.88692044 0.83527021]
- Parameters
features (np.array) – Matrix of feature vectors where the i-th row is the i-th feature vector
Methods
jacobian
(params)Computes the Jacobian matrix of weights with respect to input parameters \(J_{ ij} = \frac{\partial w_i}{\partial \theta_j}\).
weights
(params)Computes weights as a function of input parameters.