本文整理汇总了C#中Decision.ToNeural方法的典型用法代码示例。如果您正苦于以下问题:C# Decision.ToNeural方法的具体用法?C# Decision.ToNeural怎么用?C# Decision.ToNeural使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Decision
的用法示例。
在下文中一共展示了Decision.ToNeural方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: updateInputs
/// <summary>
/// Aktualizuje wejscia po kolejnej rundzie gry
/// </summary>
/// <param name="AIDecision">własna decyzja</param>
/// <param name="opponentDecision">decyzja przeciwnika</param>
public void updateInputs(Decision AIDecision, Decision opponentDecision )
{
//przesuwamy wejscia w prawo
double[] oldInputs = new double[inputs.Length];
inputs.CopyTo(oldInputs, 0);
for (int j = 3; j < inputs.Length; ++j)
inputs[j] = oldInputs[j - 3];
//dopisujemy nowe wejscia
for (int j = 0; j < 3; ++j)
{
inputs[j] = AIDecision.ToNeural()[j];
inputs[j + inputs.Length / 2] = opponentDecision.ToNeural()[j];
}
}
示例2: updateWeights
/// <summary>
/// Funkcja odpowiedzialna za proces nauki
/// </summary>
/// <param name="AIDecision">decyzja podjeta przez siec</param>
/// <param name="opponentDecision">decyzja przeciwnika</param>
public void updateWeights(Decision AIDecision, Decision opponentDecision)
{
Decision expectedDecision = opponentDecision.GetCounter(); //decyzja, ktora powinnismy podjac
if (expectedDecision == AIDecision)
return; //i tak sie wagi nie zmienia, wiec konczymy funkcje od razu
double[] desiredOutput = expectedDecision.ToNeural();
double[] currentOutput = AIDecision.ToNeural();
for (int i = 0; i < outputs.Length; ++i)
{
double diff = (desiredOutput[i] - currentOutput[i]) * learningRate; //obliczamy poprawke
for (int j = 0; j < inputs.Length; ++j)
weights[i, j] += diff * inputs[j]; //wprowadzamy poprawke do wag sieci
}
if (minLearningRate < learningRate - learnigEnstinguishRate)
learningRate -= learnigEnstinguishRate;
}