diff --git a/pom.xml b/pom.xml index a47db54..d7b87e5 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.wlld myBrain - 1.0-SNAPSHOT + 1.0.2 myBrain diff --git a/src/main/java/org/wlld/App.java b/src/main/java/org/wlld/App.java index 7afe629..0ec8d31 100644 --- a/src/main/java/org/wlld/App.java +++ b/src/main/java/org/wlld/App.java @@ -21,15 +21,14 @@ public class App { NerveManager nerveManager = new NerveManager(2, 2, 1, 2); //开始构建神经网络,参数为是否初始化权重及阈值,若 - nerveManager.setStudyPoint(0.1);//设置学习率(取值范围是0-1开区间),若不设置默认为0.1 + nerveManager.setStudyPoint(0.2);//设置学习率(取值范围是0-1开区间),若不设置默认为0.1 nerveManager.init(true); nerveManager.setOutBack(new Test());//添加判断回调输出类 List sensoryNerves = nerveManager.getSensoryNerves(); Map E1 = new HashMap<>(); - E1.put(1, 0.0); + E1.put(1, 1.0); Map E2 = new HashMap<>(); - E2.put(1, 1.0); - Random random = new Random(); + E2.put(1, 0.0); List> testList = new ArrayList<>(); for (int i = 0; i < 1000; i++) { double nub = ArithUtil.mul(ArithUtil.div(1, 1000), i); @@ -51,8 +50,8 @@ public class App { Nerve outNerver = nerveManager.getOutNevers().get(0); double outTh = outNerver.getThreshold();//输出阈值 System.out.println("outTh==" + outTh); - for (int i = 2; i < 22; i++) { - double nub = ArithUtil.mul(ArithUtil.div(1, 1000), i); + for (int i = 1; i < 21; i++) { + double nub = ArithUtil.mul(ArithUtil.div(1, 100), i); sensoryNerves.get(0).postMessage(1, ArithUtil.add(0.5, nub), false, E1); sensoryNerves.get(1).postMessage(1, ArithUtil.add(0.5, nub), false, E1); sensoryNerves.get(0).postMessage(1, ArithUtil.add(-0.5, -nub), false, E2); diff --git a/src/main/java/org/wlld/nerveEntity/Nerve.java b/src/main/java/org/wlld/nerveEntity/Nerve.java index 01af71c..c3a5925 100644 --- a/src/main/java/org/wlld/nerveEntity/Nerve.java +++ b/src/main/java/org/wlld/nerveEntity/Nerve.java @@ -146,14 +146,14 @@ public abstract class Nerve { } //System.out.println("结束===========" + sigma); //logger.debug("当前神经元线性变化已经完成,name:{},id:{}", name, getId()); - return ArithUtil.add(sigma, threshold); + return ArithUtil.sub(sigma, threshold); } private void initPower() {//初始化权重及阈值 if (upNub > 0) { Random random = new Random(); for (int i = 1; i < upNub + 1; i++) { - dendrites.put(i, random.nextDouble()); + dendrites.put(i, random.nextDouble());//random.nextDouble() } //生成随机阈值 threshold = random.nextDouble();