codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
# Learning rate: Lower = slower, Higher = less precise rate = 0.1 # Weights inWeight = [0.1,0.1] # Start neuron with no stimuli inNeuron = [0.0, 0.0] # Learning table (AND gate) [inpu1, input2, output] test = [[0.0, 0.0, 0.0], [0.0, 1.0, 0.0], [1.0, 0.0, 0.0], [1.0, 1.0, 1.0]] # Calculate response from neural input def outNeuron(midThresh): global inNeuron, inWeight s = inNeuron[0]*inWeight[0] + inNeuron[1]*inWeight[1] if s > midThresh: return 1 else: return 0 # Display results of test def display(out, real): if out == real: print "Result is " + str(out) + ". It's right." else: print str(out) + " should be " + str(real) counter = 0 while counter < 45: # Loop through each lesson in the learning table for i in range(len(test)): # Stimulate neurons with test input inNeuron[0] = test[i][0] inNeuron[1] = test[i][1] # Adjust weight of neuron #1 # based on feedback, then display out = outNeuron(2) inWeight[0] += rate*(test[i][2]-out) print inWeight[0] display(out, test[i][2]) # Adjust weight of neuron #2 # based on feedback, then display out = outNeuron(2) inWeight[1] += rate*(test[i][2]-out) print inWeight[1] display(out, test[i][2]) # Delay counter += 1
Private
[
?
]
Run code
Submit