@ai-on-browser/data-analysis-models
Version:
Data analysis model package without any dependencies
82 lines (81 loc) • 2.25 kB
TypeScript
/**
* Restricted Boltzmann machine
*/
export class RBM {
/**
* @param {number} hiddenSize Size of hidden layer
* @param {number} [lr] Learning rate
*/
constructor(hiddenSize: number, lr?: number);
_hidden: number;
_visible: number;
_w: number[][];
_a: any[];
_b: any[];
_lr: number;
_k: number;
_normalize(x: any): void;
_sgm(x: any): number;
_h(v: any, sample?: boolean): any[][];
_v(h: any, sample?: boolean): any[][];
/**
* Fit model.
* @param {Array<Array<number>>} x Training data
*/
fit(x: Array<Array<number>>): void;
/**
* Return a energy value of the data.
* @param {Array<number>} v Sample data
* @param {Array<number>} h Target values
* @returns {number} Energy value
*/
energy(v: Array<number>, h: Array<number>): number;
/**
* Returns predicted values.
* @param {Array<number>} x Sample data
* @returns {(0 | 1)[]} Predicted values
*/
predict(x: Array<number>): (0 | 1)[];
}
/**
* Gaussian-Bernouili Restricted Boltzmann machine
*/
export class GBRBM {
/**
* @param {number} hiddenSize Size of hidden layer
* @param {number} [lr] Learning rate
* @param {boolean} [fixSigma] Do not learn sigma or not
*/
constructor(hiddenSize: number, lr?: number, fixSigma?: boolean);
_hidden: number;
_visible: number;
_w: number[][];
_b: any[];
_z: any[];
_c: any[];
_lr: number;
_fixSigma: boolean;
_k: number;
_randn(): number;
get _s(): number[];
_h(v: any, sample?: boolean): any[][];
_v(h: any, sample?: boolean): any[][];
/**
* Fit model.
* @param {Array<Array<number>>} x Training data
*/
fit(x: Array<Array<number>>): void;
/**
* Return a energy value of the data.
* @param {Array<number>} v Sample data
* @param {Array<number>} h Target values
* @returns {number} Energy value
*/
energy(v: Array<number>, h: Array<number>): number;
/**
* Returns predicted values.
* @param {Array<Array<number>>} x Sample data
* @returns {Array<Array<number>>} Predicted values
*/
predict(x: Array<Array<number>>): Array<Array<number>>;
}