用于威胁分析的神经网络
Neural Network For Threat Analysis
对于我正在开发的游戏,我决定使用神经网络进行角色威胁分析。当一个角色在游戏中发现另一个角色时,他们将使用神经网络来确定是否与该角色交战。它是一个 3 层前馈网络。
输入:
- 健康差异(myHP - enemyHP)
- 等级差
- 友军与敌人数量(numAllies - numEnemies)
- 一个布尔变量,表示存在非常强大的敌人
我的主要问题是关于输入和激活函数。我已经实现了网络以使用逻辑函数。我怎样才能最好地规范我的输入以适应该功能?
例如,生命值差异可能在 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>.
为什么不将所有值转换为 [0;1] 区间?
例如,要查找健康归一化函数,您正在寻找 a
和 b
,例如
a * 0.01 + b = 0
a * 1 + b= 1
给予:a=1/0.99 and b=-0.01/0.99
水平差异相同:您正在寻找 c
和 d
例如:
c * (-40) + d = 0
c * 40 + d = 1
等等...
对于每个变量,您的翻译函数将采用 a*x+b
形式,其中 a
和 b
如上所述。
对于我正在开发的游戏,我决定使用神经网络进行角色威胁分析。当一个角色在游戏中发现另一个角色时,他们将使用神经网络来确定是否与该角色交战。它是一个 3 层前馈网络。
输入:
- 健康差异(myHP - enemyHP)
- 等级差
- 友军与敌人数量(numAllies - numEnemies)
- 一个布尔变量,表示存在非常强大的敌人
我的主要问题是关于输入和激活函数。我已经实现了网络以使用逻辑函数。我怎样才能最好地规范我的输入以适应该功能?
例如,生命值差异可能在 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>.
为什么不将所有值转换为 [0;1] 区间?
例如,要查找健康归一化函数,您正在寻找 a
和 b
,例如
a * 0.01 + b = 0
a * 1 + b= 1
给予:a=1/0.99 and b=-0.01/0.99
水平差异相同:您正在寻找 c
和 d
例如:
c * (-40) + d = 0
c * 40 + d = 1
等等...
对于每个变量,您的翻译函数将采用 a*x+b
形式,其中 a
和 b
如上所述。