From b104aeec24565e629f9ff56bb85c8a2fc6e7daa6 Mon Sep 17 00:00:00 2001 From: Carin Meier Date: Mon, 2 Dec 2013 14:01:05 -0500 Subject: [PATCH] playing with colors --- .gitignore | 1 + src/k9/#click.clj# | 73 ---------------------------------------------- src/k9/colors.clj | 4 +-- 3 files changed, 3 insertions(+), 75 deletions(-) delete mode 100644 src/k9/#click.clj# diff --git a/.gitignore b/.gitignore index cc2ff39..c27622e 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ pom.xml.asc .lein-failures .lein-plugins .lein-repl-history +.nrepl-port diff --git a/src/k9/#click.clj# b/src/k9/#click.clj# deleted file mode 100644 index 77011a2..0000000 --- a/src/k9/#click.clj# +++ /dev/null @@ -1,73 +0,0 @@ -(ns k9.click) - -;; you'll see this time it will work - -;; input is output -;; World World Bank -;; River River -;; Bank Earth - -(def activation-function (fn [x] (Math/tanh x))) -(def activation-function-derivation (fn [y] (- 1.0 (* y y)))) - -(defn gen-neuron [id] - {:id id :val 0 }) - -(defn gen-hidden [n] - (for [i (range n)] - (gen-neuron (keyword (str "hidden" i))))) - -(defn gen-connections [inputs hidden] - (partition (count hidden) - (for [x inputs y hidden] - [{:connection (keyword (str (name (:id x)) (name (:id y)))) - :strength (rand (/ 1 (count hidden)))}]))) - -(def x [{:id :a :val 0} {:id :b :val 0} {:id :c :val 0}]) -(def y [{:id 1 :val 0} {:id 2 :val 0} ]) -(gen-connections x (gen-hidden 2)) - -(def a (map gen-neuron [:world :river :bank])) -(def b (gen-hidden (count a))) -(def c (gen-connections a b)) -(def d (map gen-neuron [:worldbank :river :earth])) -(def e (gen-connections b d )) - -;;ex (gen-network [:world :river :bank] [:worldbank :river :earth]) -;; it generates the hidden networks too -(defn gen-network [inputs outputs] - (let [in-neurons (map gen-neuron inputs) - hidden-neurons (gen-hidden (count inputs)) - in-hidden (gen-connections in-neurons hidden-neurons) - out-neurons (map gen-neuron outputs) - hidden-out (gen-connections hidden-neurons out-neurons)] - [ in-neurons in-hidden hidden-neurons hidden-out out-neurons])) - -(def nn (gen-network [:world :river :bank] [:worl - dbank :river :earth])) -nn - -(defn assoc-inputs [in-values network] - (map #(assoc %1 :val %2) (first network) in-values)) - -(def a (assoc-inputs [1 0 1] nn)) -(def b (second nn)) -(def c (nth nn 2)) - -(reduce + (map #(* (:val %1) - (:strength (first (first %2))) - ) a b)) - -(map #(conj [] (:id %1) - (:connection (first (second %2))) - (:strength (first (second %2))) - ) a b) -(defn ff-layers [ins connections outs] - ) - -(second nn) - -(defn feed-forward [in-values network] - (let [inputs (assoc-inputs in-values network)] - )) - diff --git a/src/k9/colors.clj b/src/k9/colors.clj index 0529fdb..8dcafaf 100644 --- a/src/k9/colors.clj +++ b/src/k9/colors.clj @@ -90,7 +90,7 @@ (partition 2 (mapv #(normalize-input %) color-data))) -(def color-nn (construct-network 3 6 6)) +(def color-nn (construct-network 3 10 6)) (defn train-epochs [n network training-data learning-rate] (if (zero? n) network @@ -101,7 +101,7 @@ ;; before training (ff (normalize-input [255 0 0]) color-nn) ;=> .3 -(def nc (train-epochs 1000 color-nn color-training-data 0.2)) +(def nc (train-epochs 100 color-nn color-training-data 0.2)) ;; after training (ff (normalize-input [255 0 0]) nc)