the_noggin 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de6e61f2d6ffaf98cd40e8177431801005f326c4
4
- data.tar.gz: e16db353322473e10baa3cda129a19de2cfb0215
3
+ metadata.gz: 53abd15e32f1bc58d542d5bb2480f4e6f1d75c89
4
+ data.tar.gz: cd335f6a5b853e04334690f16db4f57698cb916a
5
5
  SHA512:
6
- metadata.gz: ccea74d19c8843db6c3527333197b54e58d6cfd8b9dd2971db94e4870295a11183492c7f0ed512609cbd9bfcb4b6dd6938aaff694632de306a57a468a532ecca
7
- data.tar.gz: 5631c33c68292994f93aed91c1e933553358993c8b6c1e32306a29f97f3d442ee6531bd9c18842170ffc8908a8f9d3004ea62e37b7e598aa3c5d952fc64a6ec3
6
+ metadata.gz: 8b740e1ba1f091ba957de78416fad3ab7758dc07aeb2af496300335a5ebaa490c00492000277e903ef47e7c3c34d5f3ba57d5f491c0e0cf6689690ed96bd98b0
7
+ data.tar.gz: 44a6217cedcf96933f0c902aecf95d5732439e2fee62d08205a7180ac80b6310070680bf3559574b46db24dc1a592ec1e9eca89449047ea372a0326e877f80e3
data/README.md CHANGED
@@ -27,8 +27,10 @@ network.run [1, 1] # 0.0142
27
27
  Noggin::Network.new(
28
28
  max_training_laps: 100000, # How many propgation of errors to do when training
29
29
  learning_rate: 0.1, # How fast the network learns
30
+ momentum: 0.2, # How much of previous weight deltas should be applied to next delta
30
31
  hidden_layer_size: 1 , # Number of hidden layers
31
- hidden_layer_node_size: 2 # Number of nodes each hidden layer has
32
+ hidden_layer_node_size: 2, # Number of nodes each hidden layer has
33
+ log: true # print out network state for each input during last iteration.
32
34
  )
33
35
  ```
34
36
 
@@ -7,9 +7,9 @@ module Noggin
7
7
  attr_reader :options
8
8
 
9
9
  DEFAULTS = {
10
- learning_rate: 0.2,
11
- momentum: 0.2,
12
- max_training_laps: 100000,
10
+ learning_rate: 0.3,
11
+ momentum: 5,
12
+ max_training_laps: 2000,
13
13
  hidden_layer_size: 1,
14
14
  hidden_layer_node_size: 2,
15
15
  log: false
@@ -56,11 +56,14 @@ module Noggin
56
56
  end
57
57
 
58
58
  def init_network data_batch
59
- @input_nodes = Array.new(data_batch.first[:input].size){ Noggin::Node::Input.new }
59
+ @input_nodes = Array.new(data_batch.first[:input].size + 1){ Noggin::Node::Input.new }
60
60
  @layers << @input_nodes
61
61
  last_layer = @input_nodes
62
62
  options[:hidden_layer_size].times do |i|
63
63
  new_layer = Array.new(options[:hidden_layer_node_size]){ Noggin::Node::Base.new }
64
+ bias_node = Noggin::Node::Input.new
65
+ bias_node.output = 1
66
+ new_layer << bias_node
64
67
  @layers << new_layer
65
68
  connect_layer last_layer, new_layer
66
69
  last_layer = new_layer
@@ -100,7 +103,11 @@ module Noggin
100
103
 
101
104
  def update_input_nodes input
102
105
  input_nodes.each_with_index do | node, i |
103
- node.output = input[i]
106
+ if i == (input.size)
107
+ node.output = 1
108
+ else
109
+ node.output = input[i]
110
+ end
104
111
  end
105
112
  end
106
113
 
@@ -1,3 +1,3 @@
1
1
  module Noggin
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
data/spec/network_spec.rb CHANGED
@@ -23,12 +23,12 @@ describe Noggin::Network do
23
23
  end
24
24
 
25
25
  it 'sets hidden layer node size' do
26
- expect(subject.layers[1].size).to eq(1)
26
+ expect(subject.layers[1].size).to eq(2)
27
27
  end
28
28
 
29
29
  it 'backpropagates error' do
30
- expect(input_node.dests.first.derivative).to be_within(0.00001).of(0.02147)
31
- expect(hidden_node.dests.first.derivative).to be_within(0.00001).of(0.095468)
30
+ expect(input_node.dests.first.derivative).to be_within(0.00001).of(0.015098)
31
+ expect(hidden_node.dests.first.derivative).to be_within(0.00001).of(0.10851)
32
32
  end
33
33
 
34
34
  end
@@ -36,7 +36,7 @@ end
36
36
 
37
37
  describe :xor do
38
38
 
39
- subject { Noggin::Network.new( max_training_laps: 10000, learning_rate: 0.1, hidden_layer_size: 1, hidden_layer_node_size: 2, log: true ) }
39
+ subject { Noggin::Network.new( max_training_laps: 2000, learning_rate: 0.3, hidden_layer_size: 1, hidden_layer_node_size: 2, momentum: 5, log: true ) }
40
40
 
41
41
 
42
42
  before do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: the_noggin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shawn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-22 00:00:00.000000000 Z
11
+ date: 2015-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler