private void UpdateConnectionWeight(ITraversableConnection <IUnitUnderTraining, IConnectionUnderTraining, IUnitActivationTraining> connection) { var weightChange = _calculator.CalculateChange(connection.InputUnit.ActivationValue, connection.OutputUnit.UnitActivation.Error); var momentumWeightChange = connection.Properties.LastWeightChange * _momentum; _weightChangeApplier.ApplyWeightChange(connection.Properties, weightChange + momentumWeightChange); EventEmitter.Log(WeightChange, connection.Properties.Name, connection.Properties.Weight); }
public NetworkBuilder SetupUnorthodoxStructure() { _hasUnorthodox = true; _inputUnorthodoxUnitActivationTrainingFake = new UnitActivationTrainingFake(UnitType.InputUnit); InputUnorthodox = CreateUnit(_inputUnorthodoxUnitActivationTrainingFake); InputUnorthodox.UnitActivation.Properties.Name = "InputUnorthodox"; InputUnorthodoxActivation = 0.5d; InputUnorthodoxToOutput1 = CreateConnection(InputUnorthodox, Output1); InputUnorthodoxToOutput1.Properties.Name = "InputUnorthodoxToOutput1"; InputUnorthodoxToOutput1.Properties.Weight = 0.432d; InputUnorthodoxToHidden1 = CreateConnection(InputUnorthodox, Hidden1); InputUnorthodoxToHidden1.Properties.Name = "InputUnorthodoxToHidden1"; InputUnorthodoxToHidden1.Properties.Weight = 0.21d; return(this); }
/// <summary> /// Used to add an incoming connection, from a unit that sends input, to this unit /// </summary> /// <param name="connection">The incoming connection to be added</param> public void AddIncomingConnection(ITraversableConnection <TUnit, TConnection, TUnitActivation> connection) { _incomingConnections.Add(connection); }
/// <summary> /// Used to add an outgoing connection, to a unit that received input, from this unit /// </summary> /// <param name="connection">The outgoing connection to be added</param> public void AddOutgoingConnection(ITraversableConnection <TUnit, TConnection, TUnitActivation> connection) { _outgoingConnections.Add(connection); }
private static void NameConnection(ITraversableConnection <TUnit, TConnection, TUnitActivation> connection) { connection.Properties.Name = connection.InputUnit.UnitActivation.Name + " --- " + connection.OutputUnit.UnitActivation.Name; }