对于我正在开发的游戏,我决定使用神经网络进行角色威胁分析。当一个角色在游戏中发现另一个角色时,他们将使用神经网络来确定是否与该角色交战。它是一个 3 层前馈网络。
输入:
- 健康差异(myHP - enemyHP)
- 水平差
- 友军与敌人数量(numAllies - numEnemies)
- 一个 bool 变量,表示存在非常强大的敌人
我的主要问题是关于输入和激活函数。我已经实现了网络以使用逻辑函数。我怎样才能最好地规范我的输入以适应该功能?
例如,生命值差异可能在 1% 到 100% 之间,而等级差异可能在 -40 到 +40 之间。
最佳答案
移动和缩放您的输入,使它们都在 <0; 1>
中.
如果您输入 x
在<a; b>
你希望它在 <0; 1>
中,这样做:
- 减去
a
, 所以我们有x - a
.x
现在是非负的。 - 除以
b - a
, 所以我们有(x - a) / (b - a)
.x
现在在 <0; 1>.
例子。让x
= 您的电平差输入。在<-40; 40>最初。
- 减去-40,我们落在<0; 80>.
- 除以 80,我们得到 <0; 1>.
关于algorithm - 用于威胁分析的神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31221747/