neuralnetwork
Version:
Rudimentary Neural Network in Typescript
42 lines (40 loc) • 1.68 kB
JavaScript
/// <reference path="../../typings/index.d.ts" />
/*global require, describe, expect, assert, it*/
;
var chai = require('chai');
var assert = chai.assert;
var should = chai.should();
var expect = chai.expect;
var Neurons = require('../lib/neurons');
describe('Test', function () {
it('works', function (done) {
assert.equal(true, true);
done();
});
});
describe('Neurons', function () {
describe('Basic instantiations', function () {
it('Identity Neuron works', function () {
expect((new Neurons.IdentityNeuron()).forward(1)).to.equal(1);
expect((new Neurons.IdentityNeuron()).forward(5)).to.equal(5);
});
it('Bias Neuron works', function () {
var biasNeuron = new Neurons.BiasNeuron();
expect(biasNeuron.forward(12)).to.equal(1);
});
it('Sigmoid Neuron works', function () {
var n = new Neurons.SigmoidNeuron();
var result = n.forward(2);
expect(result).to.equal(1.0 / (1.0 + Math.exp(-2)));
var backResult = n.backward(2, result); // args: err, output
expect(backResult).to.equal(result * (1 - result) * 2);
});
it('RectifiedLinear Neuron works', function () {
expect((new Neurons.RectifiedLinearNeuron()).forward(2)).to.equal(2);
expect((new Neurons.RectifiedLinearNeuron()).forward(-1)).to.equal(0);
expect((new Neurons.RectifiedLinearNeuron()).backward(2, 1)).to.equal(2);
expect((new Neurons.RectifiedLinearNeuron()).backward(2, -1)).to.equal(0);
});
});
});
//# sourceMappingURL=../maps/test/neurons.spec.js.map