Sunday livestream

Discussion in 'Planetary Annihilation General Discussion' started by Sorian, February 14, 2015.

  1. arm2thecore

    arm2thecore Active Member

    Messages:
    198
    Likes Received:
    132
    Thank you kindly!
  2. towerbabbel

    towerbabbel Active Member

    Messages:
    182
    Likes Received:
    106
    Andrew Ng's Machine Learning course at Coursera also includes a two week segment on neural networks. It is helpful in that it puts neural network techniques in the broader context of the machine learning field.
  3. someonewhoisnobody

    someonewhoisnobody Well-Known Member

    Messages:
    657
    Likes Received:
    361
    Thanks for the quick follow up stream :)

    Hope you feel better
    Last edited: February 18, 2015
  4. Sorian

    Sorian Official PA

    Messages:
    998
    Likes Received:
    3,844
    Uploaded the stream. Give it time to process.

  5. stuart98

    stuart98 Post Master General

    Messages:
    6,009
    Likes Received:
    3,888
    Would it perhaps be better for neural net training to be done on a sandbox planet so that it doesn't learn some weird behavior due to pathing into a wall?

    Brown built their first air fac on a mex. Something to look into.
  6. Sorian

    Sorian Official PA

    Messages:
    998
    Likes Received:
    3,844
    I do neural net training on a moon. I evaluate (what I did on stream) on whatever.
  7. stuart98

    stuart98 Post Master General

    Messages:
    6,009
    Likes Received:
    3,888
    Ah k cool just got to the point in the vod when you said that lol.
    Green built its first pgen on a mex.

    Dangit AI!
  8. nixtempestas

    nixtempestas Post Master General

    Messages:
    1,216
    Likes Received:
    746
    Love these streams :)

    I find the semi-maniacal laughter when you see the AI killing each other somewhat concerning though... ;)
    squishypon3, Remy561 and stuart98 like this.
  9. Sorian

    Sorian Official PA

    Messages:
    998
    Likes Received:
    3,844
    So does everyone in the office.
  10. nixtempestas

    nixtempestas Post Master General

    Messages:
    1,216
    Likes Received:
    746
    so THAT is why you do all the AI stuff from home now... hiding sinister plots eh?
    squishypon3 and stuart98 like this.
  11. Quitch

    Quitch Post Master General

    Messages:
    5,853
    Likes Received:
    6,045
    On the moon test one AI started air, but there was a change a while back so the AI would always start with the factory favoured in its personality. Does that mean this change has been reverted?

    Rather than adjusting the reward for killing a fabber, wouldn't it be better to not reward the AI at all for killing incomplete structures and units?

    New neural net stuff looks really nice.
    jtibble likes this.
  12. Remy561

    Remy561 Post Master General

    Messages:
    1,016
    Likes Received:
    641
    Love these streams and seeing their improved behaviour ^^
  13. cdrkf

    cdrkf Post Master General

    Messages:
    5,721
    Likes Received:
    4,793
    @sorian thanks for the stream, just finished watching it :)

    One thing that I notice, the AI doesn't appear to make any attempt to protect it's fabbers / expansions? One thing I always recommend to newer players to improve their game, is to rally a factory in the direction of their expansion, as that way you've got units nearby to defend, is this something that the AI could learn as it would probably make it much less vulnerable to raiding...
  14. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    Same with trying to kill expansion fabbers. Was hilarious how in the berg testgame the units basically walked past it. Any halfway decent player would have killed that thing. In early game basically all gameplay is around getting your own fabber save and getting rid of enemy fabbers.
    cdrkf likes this.
  15. Sorian

    Sorian Official PA

    Messages:
    998
    Likes Received:
    3,844
    As I explained in the livestream, even though the AI had full map vision the enemy fabber never actually entered the sensor range of the platoon.
    cdrkf and Quitch like this.
  16. nixtempestas

    nixtempestas Post Master General

    Messages:
    1,216
    Likes Received:
    746
    One thing I've been noticing for awhile is the AI not really using infernos very well when the AI seems to be trying to decide whether to engage or run. I suspect this is the result of incomplete intel, first it thinks it should engage then it sees more units and decides no it should run, but then the front line of units dies in the enemy force and changes its mind again. A smart thing to do here I think would be to split the platoon, where units like the infernos would then try to rush towards the enemy lines while the ranged units sat back and blasted away. (the infernos would gather valuable intel in the process)

    Having split platoon as an output option might be feasible, and what units should split off ought to be a trainable behavior. Or the effect might be trivial and I have no idea what I'm talking about...
  17. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    That is weird. What exactly do you mean by "full map vision"? I understand it as "like it had a super powerful scouting unit that reveals all planet". If that is the case basically this means that the AI would not make a decision like: "my scout just scouted there is a fabber close to the my platoon, but I will ignore it because it isn't in sensor range of the platoon itself".
    Unless I am missing something it was a bad decision the AI made. Doesn't actually matter why, unless it was some test-sideeffect. It should know better :p
    Quitch likes this.
  18. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    @sorian You now have 168 inputs per net, and a significantly lower number of neurons in the hidden layer. The net just became uncapable of actually putting all the inputs to good use, at least it's highly unlikely that the training will succeed for ALL combinations. Didn't thought about that either when I suggested it in the sunday stream. Apart from the increased computational load.

    But that's not the only issue with having all these inputs, the problem I see now, is that redundant patterns will form in the neural net. Patterns which all follow the basic concept:
    "The enemy of my enemy is my friend."

    Building the cross product of all movement layers is overkill for that task, and it's not generic enough either.

    If I'm not mistaken, then a set of inputs like these be able to express the same relations with far less inputs:

    • AlliedVsValidOtherDPS
      Overall DPS by other allies vs targets which the current platoon can NOT fire at.
      This input allows to evaluate the possible damage allies can cause, even if the current platoon can not.
    • AlliedVsValidOtherMetalValue
      Overall metal value of targets which the current platoon can NOT fire at, but other allies can.
      This input allows to evaluate the possible damage allies can cause, even if the current platoon can not. Could interfere with the previous when evaluating overkill.
    • AllEnemyVsValidAlliedDPS
      Overall DPS which can be inflicted against all nearby allies, including self, requiring valid targets.
      Allows to evaluate the overall threat which enemy proposes to the local situation.
    • AllEnemyVsValidAlliedOthersDPS
      Overall DPS which can be inflicted against all nearby allies, excluding self, requiring valid targets.
      Allows to evaluate the overall threat which enemy proposes to local allies.
    • AllEnemyVsSelfDPS
      Overall DPS which can be inflicted against units in the current platoon.
      Allows to recognize a lower risk even if the previous input showed a significant threat. Interesting is the ratio to the former value, as it can help seeing allies which need assistance.
    • AllEnemyVsAnyDPS
      Overall DPS of all enemies.
      Allows to evaluate a threat which is not imminent, but which may become impairing in the future.
    • SharedAlliedVsPrimaryValidEnemyDPS
      Overall DPS by all allies and current platoon which targets the layer which the current platoon has the most theoretical DPS against.
      Answers the question "how much fire support may I expect?" when attacking with the main weapons.
    • HardCounterVsSelfDPS
      Overall DPS which can be inflicted by enemy units against the current platoon, but only by units the current platoon can not target.
      Basically a "You are so dead..." warning, like fighters going against ground based AA. Or bombers against fighters. Or sole fabbers against anything.
    • AlliesVsHardCounterDPS
      Overall DPS which can be inflicted by allies to units which can damage the current platoon, but which the current platoon can't target.
      Possibly the most complex of the inputs. It allows a platoon to see that it has firesupport in a situation which would be plain IMPOSSIBLE if it was alone. Unfortunately also the most costly one.

    Maybe I have missed one or two inputs, maybe some need to be refined, and I'm not sure which ones to normalize against each other. Most of these don't make any sense when evaluated for the enemy, and that is on purpose, there is no point in mirroring these for the enemy as a lot of them focus on the capabilities of the current platoon.

    For some of them, it might be necessary to divert by mobile/static and the 3 ranges, some of them only make sense for short or medium range in the first place. In the end, it should be no more than a total of around 10 or 15 additional inputs, compared to the original set.
    Last edited: February 19, 2015
  19. Sorian

    Sorian Official PA

    Messages:
    998
    Likes Received:
    3,844
    The hidden nodes were increased to compensate. Yes, it will make the neural net much bigger, but I am testing to see if the increased size is worth it.

    Not sure what you mean by enemy of my enemy. The AI sees all non-allied units as enemies. Since the neural nets are trained in 1v1 scenarios, there is no chance of non-allied army intervention screwing with the training.
    cdrkf likes this.
  20. exterminans

    exterminans Post Master General

    Messages:
    1,881
    Likes Received:
    986
    What I mean, is when you have tripplets such as "Fighters", "Tanks" and "enemy mobile AA" while evaluating the tank platoon. Tank and fighters don't share anything when regarding their own stats, but is is necessary for the tank to hunt down the AA because it proposes an immediate threat towards the fighter platoon. If there were no endangered fighters, the enemy AA was much less of a threat and wouldn't be worth putting the tanks in a possible danger.

    Relations like this exist between all layers, it's a generic pattern.

    You might have noticed that the AI went for towers first when attacking the enemy base, even when only AA towers were left. But it did it unconditionally so far, as detecting need for assistance from the humongous number of inputs isn't trivial. So it's far more efficient to aid the neural net by providing better filtered inputs.

    So far, the AI has realized that static AA towers are bad, because it now knows them as an individual input and it has seen AA units getting shredded by them. But it has yet to realize that they are only dangerous if there are any allied air units around.
    Last edited: February 19, 2015

Share This Page