public Vector <double> Conduct(NeuralNetworkFlash flash, int layer) { var signal = flash.SignalsSum[layer]; signal = (signal - signal.Maximum()).PointwiseExp(); return(signal / signal.Sum()); }
public Vector <double> ConductDerivative(NeuralNetworkFlash flash, int layer) { // count of this layer layer = flash.InputSignals[layer + 1].Count; // return existing vector if (vector_one.ContainsKey(layer)) { return(vector_one[layer]); } // build a new vector var one_list = Vector <double> .Build.DenseOfArray(new double[layer]) + 1; vector_one.Add(layer, one_list); return(one_list); }
public Vector <double> ConductDerivative(NeuralNetworkFlash flash, int layer) { var signal = flash.InputSignals[layer + 1]; var derivaite = Matrix <double> .Build.DenseOfArray(new double[signal.Count, signal.Count]); for (int i = signal.Count - 1; i >= 0; i--) { for (int j = i; j >= 0; j--) { if (i == j) { derivaite[i, i] = signal[i] * (1 - signal[i]); } else { derivaite[i, j] = derivaite[j, i] = -signal[j] * signal[i]; } } } return(derivaite * signal); }
public Vector <double> ConductDerivative(NeuralNetworkFlash flash, int layer) { return(flash.SignalsExtra[EXP][layer] / flash.SignalsExtra[EXP_1][layer]); }
public Vector <double> Conduct(NeuralNetworkFlash flash, int layer) { flash.SignalsExtra[EXP][layer] = flash.SignalsSum[layer].PointwiseMinimum(700).PointwiseExp(); flash.SignalsExtra[EXP_1][layer] = flash.SignalsExtra[EXP][layer] + 1; return(flash.SignalsExtra[EXP_1][layer].PointwiseLog()); }
public double Accuracy(NeuralNetworkFlash flash, double[] _) { // actually 'TotalError' is avrage of errors // becaue in 'NegativeErrorDerivative' function output is divided by count return(1 - flash.TotalError); }
public Vector <double> ConductDerivative(NeuralNetworkFlash flash, int layer) { return(flash.InputSignals[layer + 1] .PointwiseMultiply(1 - flash.InputSignals[layer + 1])); }
public Vector <double> Conduct(NeuralNetworkFlash flash, int layer) { return(1 / (1 + (flash.SignalsSum[layer] * -1).PointwiseExp())); }
public Vector <double> Conduct(NeuralNetworkFlash flash, int layer) { return(flash.SignalsSum[layer].PointwiseMaximum(0)); }
public double Accuracy(NeuralNetworkFlash flash, double[] values) { return(values[flash.InputSignals[^ 1].MaximumIndex()]);
public void FillTotalError(NeuralNetworkFlash flash, double[] values) { chista_nets[index].FillTotalError(flash, values); }
public Vector <double> Conduct(NeuralNetworkFlash flash, int layer) { return(flash.SignalsSum[layer]); }
public double Accuracy(NeuralNetworkFlash flash, double[] values) { return(1 - flash.ErrorAverage); //return values[flash.InputSignals[^1].MaximumIndex()]; }