Code Monkey home page Code Monkey logo

neural_network_elixir's Introduction

Neural Network

A neural network made up of layers of neurons connected to each other to form a relationship allowing it to learn.

After cloning:

$ mix deps.get
$ mix compile

Usage

Run the trainer and see the network learn using OR GATE data

$ mix learn or

You should see output like this:

OR gate learning *********************************************
Epoch: 0   Error: 0.0978034950879825143
Epoch: 1000   Error: 0.0177645755625382047
Epoch: 2000   Error: 0.0065019384961036274
Epoch: 3000   Error: 0.0032527653252166144
Epoch: 4000   Error: 0.0019254900093371497
Epoch: 5000   Error: 0.0012646710040632755
Epoch: 6000   Error: 0.0008910514800247452
Epoch: 7000   Error: 0.0006602873040322224
Epoch: 8000   Error: 0.0005081961006147329
Epoch: 9000   Error: 0.0004028528701046857
Epoch: 9999   Error: 0.0003270377487769315
Epoch: 10000   Error: 0.0003269728572615501
**************************************************************

Run the trainer and see the network learn using IRIS FLOWER GATE data

$ mix learn iris_flower

You should see output like this:

IRIS_FLOWER gate learning *********************************************
Epoch: 0   Error: 0.0164425788515711185
Epoch: 1000   Error: 0.027344153205250403
Epoch: 2000   Error: 0.0265533867778006451
Epoch: 3000   Error: 0.0266624718167679346
Epoch: 4000   Error: 0.0268164947904966262
Epoch: 5000   Error: 0.026857493502782933
Epoch: 6000   Error: 0.026794287038049043
Epoch: 7000   Error: 0.0266556275054049274
Epoch: 8000   Error: 0.0264642981722699525
Epoch: 9000   Error: 0.0262360305030914023
Epoch: 9999   Error: 0.025981881761432242
Epoch: 10000   Error: 0.025981617016649871
**************************************************************

Valid options are: or, and, xor, nand, iris_flower

Run tests

$ mix test

Run Console

alias NeuralNetwork.{DataFactory, Network, LossFunction, Layer}
{:ok, network_pid} = Network.start_link([2, 1], %{activation: :relu})
data = DataFactory.gate_for("or")
Network.fit(network_pid, data, %{epochs: 10_000, log_freqs: 1000})
Network.predict(network_pid, [1,1])

Huge props

Installation

Available in Hex, the package can be installed as:

  1. Add neural_network to your list of dependencies in mix.exs:

    def deps do [{:neural_network, "~> 0.1.4"}] end

  2. Ensure neural_network is started before your application:

    def application do [applications: [:neural_network]] end

neural_network_elixir's People

Contributors

kblake avatar marceloreichert avatar saneery avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

neural_network_elixir's Issues

Unlike the example, my OR value never drops below 0.06, even at 50k epochs

The example seems it hits a much lower error rate much sooner,

OR gate learning *********************************************
Epoch: 0 Error: 0.1017313643758654962
Epoch: 1000 Error: 0.0706510268483878101
Epoch: 2000 Error: 0.0694078737649472255
Epoch: 3000 Error: 0.0691257812040881742
Epoch: 4000 Error: 0.0690138235939637135
Epoch: 5000 Error: 0.0689560625073349087
Epoch: 6000 Error: 0.0689214399726986449
Epoch: 7000 Error: 0.0688985888357449283
Epoch: 8000 Error: 0.0688824663549667399
Epoch: 9000 Error: 0.0688705226610778765
Epoch: 10000 Error: 0.0688613400497658651
Epoch: 11000 Error: 0.0688540714582587809
Epoch: 12000 Error: 0.0688481813786790686
Epoch: 13000 Error: 0.0688433155227795718
Epoch: 14000 Error: 0.0688392305714215086
Epoch: 15000 Error: 0.0688357541121761146
Epoch: 16000 Error: 0.068832760693236919
Epoch: 17000 Error: 0.0688301569297410099
Epoch: 18000 Error: 0.0688278719191780519
Epoch: 19000 Error: 0.0688258508884135589
Epoch: 20000 Error: 0.0688240508724281413
Epoch: 21000 Error: 0.0688224377071812304
Epoch: 22000 Error: 0.0688209838940851831
Epoch: 23000 Error: 0.0688196670556822931
Epoch: 24000 Error: 0.0688184688004635642
Epoch: 25000 Error: 0.0688173738760124165
Epoch: 26000 Error: 0.0688163695286981153
Epoch: 27000 Error: 0.0688154450135683715
Epoch: 28000 Error: 0.0688145912149670941
Epoch: 29000 Error: 0.0688138003498121181
Epoch: 30000 Error: 0.068813065733296791
Epoch: 31000 Error: 0.0688123815922419002
Epoch: 32000 Error: 0.0688117429151831328
Epoch: 33000 Error: 0.0688111453310412957
Epoch: 34000 Error: 0.0688105850102238015
Epoch: 35000 Error: 0.0688100585834713202
Epoch: 36000 Error: 0.0688095630748492698
Epoch: 37000 Error: 0.0688090958460928354
Epoch: 38000 Error: 0.0688086545501263441
Epoch: 39000 Error: 0.0688082370920427566
Epoch: 40000 Error: 0.0688078415961832918
Epoch: 41000 Error: 0.0688074663782366758
Epoch: 42000 Error: 0.0688071099214858234
Epoch: 43000 Error: 0.0688067708565030245
Epoch: 44000 Error: 0.0688064479437225374
Epoch: 45000 Error: 0.0688061400584276117
Epoch: 46000 Error: 0.0688058461777701774
Epoch: 47000 Error: 0.0688055653695099356
Epoch: 48000 Error: 0.068805296782213185
Epoch: 49000 Error: 0.0688050396366947509
Epoch: 49999 Error: 0.0688047934598075839
Epoch: 50000 Error: 0.0688047932185247568


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.