Exemple #1
0
Mind.prototype.setup = function(examples) {
  this.weights = [];

  // input > hidden
  this.weights.push(
    Matrix({
      rows: examples.input[0].length,
      columns: this.hiddenUnits,
      values: sample
    })
  );

  // hidden > hidden
  for (var i = 1; i < this.hiddenLayers; i++) {
    this.weights.push(
      Matrix({
        rows: this.hiddenUnits,
        columns: this.hiddenUnits,
        values: sample
      })
    );
  }

  // hidden > output
  this.weights.push(
    Matrix({
      rows: this.hiddenUnits,
      columns: examples.output[0].length,
      values: sample
    })
  );
};
Exemple #2
0
function normalize(data) {
  var ret = { input: [], output: [] };

  for (var i = 0; i < data.length; i++) {
    var datum = data[i];

    ret.output.push(datum.output);
    ret.input.push(datum.input);
  }

  ret.output = Matrix(ret.output);
  ret.input = Matrix(ret.input);

  return ret;
}
Exemple #3
0
Matrix.prototype.transform = function(fn) {
  var result = Matrix({ rows: this.numRows, columns: this.numCols });

  for (var i = 0; i < result.numRows; i++) {
		for (var j = 0; j < result.numCols; j++) {
			result[i][j] = fn(this[i][j]);
		}
	}

  return result;
};
Exemple #4
0
Matrix.multiplyScalar = function(m1, num) {
  var result = Matrix({ rows: m1.numRows, columns: m1.numCols });

  for (var i = 0; i < m1.numRows; i++) {
    for (var j = 0; j < m1.numCols; j++) {
      result[i][j] = m1[i][j] * num;
    }
  }

  return result;
};
Exemple #5
0
Matrix.prototype.transpose = function() {
  var result = Matrix({ rows: this.numCols, columns: this.numRows });

  for (var i = 0; i < this.numCols; i++) {
    result[i] = [];

    for (var j = 0; j < this.numRows; j++) {
      result[i][j] = this[j][i];
    }
  }

  return result;
};
Exemple #6
0
Matrix.multiplyElements = function(m1, m2) {
  var result = Matrix({ rows: m1.numRows, columns: m1.numCols })

  for (var i = 0; i < m1.numRows; i++) {
   result[i] = [];

   for (var j = 0; j < m1[i].length; j++) {
     result[i][j] = m1[i][j] * m2[i][j];
   }
  }

  return result;
};
Exemple #7
0
Matrix.multiply = function(m1, m2) {
  var result = Matrix({ rows: m2.numRows, columns: m1.numCols });

  for (var i = 0; i < m2.numRows; i++) {
    result[i] = [];

    for (var j = 0; j < m1.numCols; j++) {
      var sum = 0;

      for (var k = 0; k < m1.numRows; k++) {
        sum += m1[k][j] * m2[i][k];
      }

      result[i][j] = sum;
    }
  }

  return result;
};
Exemple #8
0
Mind.prototype.predict = function(input) {
  var results = this.forward({ input: Matrix([input]) });

  return results[results.length - 1].result[0];
};