Esempio n. 1
0
 public void Update(mythLayer layer, double rate)
 {
     for (int i = 0; i < layer.get().Length; i++)
     {
         var __delta = layer.get()[i].Output * this.Delta;
         _w[i] -= __delta * rate;
     }
 }
Esempio n. 2
0
        private double ETotal(mythLayer layer)
        {
            double _etotal = 0;

            foreach (var t in layer.get())
            {
                _etotal += t.CalcE;
            }
            return(_etotal);
        }
Esempio n. 3
0
        private double Foward(mythLayer layer)
        {
            var _layerVal = layer.get();
            //if (_layerVal.Length != _w.Length)
            double ret = 0;

            for (int i = 0; i < _layerVal.Length; i++)
            {
                ret += _layerVal[i].Output * _w[i];
            }
            //ret += _φ;
            _output = sigmoid(ret);
            return(_output);
        }
Esempio n. 4
0
        public void CalcDelta(mythLayer layer = null)
        {
            double dedoutput = 0;

            if (layer == null)
            {
                dedoutput = Output - Target;
            }
            else
            {
                //dedoutput = de1/doutput1 + de2/doutput2
                foreach (var t in layer.get())
                {
                    dedoutput += t.Delta * t._w[_index];
                }
            }
            var doutputdnet = disigmoid(Output);

            _delta = dedoutput * doutputdnet;
        }