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 +4 -4
- data/README.md +3 -1
- data/lib/noggin/network.rb +12 -5
- data/lib/noggin/version.rb +1 -1
- data/spec/network_spec.rb +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53abd15e32f1bc58d542d5bb2480f4e6f1d75c89
|
4
|
+
data.tar.gz: cd335f6a5b853e04334690f16db4f57698cb916a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
|
data/lib/noggin/network.rb
CHANGED
@@ -7,9 +7,9 @@ module Noggin
|
|
7
7
|
attr_reader :options
|
8
8
|
|
9
9
|
DEFAULTS = {
|
10
|
-
learning_rate: 0.
|
11
|
-
momentum:
|
12
|
-
max_training_laps:
|
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
|
-
|
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
|
|
data/lib/noggin/version.rb
CHANGED
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(
|
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.
|
31
|
-
expect(hidden_node.dests.first.derivative).to be_within(0.00001).of(0.
|
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:
|
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.
|
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-
|
11
|
+
date: 2015-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|