Data collection and field-testing of server-moderating artificial intelligence - Forseti
57 replies, posted
[B]W[/B][B]hat it is[/B]
This addon, codenamed Forseti, is an artificial intelligence designed to make really simple choices based on numbers representing different variables connected to a player's stay on a server.
[B]What it does[/B]
Whenever someone is kicked or banned from your server, it logs interesting facts about the player's stay, currently limited to the amount of props he has spawned, the average time it took between him spawning them, and the different types of models he's used. It uses this information to figure out "Patterns" connected with player's spamming, such as low spawn intervals, few different models, and lots of props. It then makes decisions based on an array of different variables like confidence, probability of the player being an actual offender, and various other things.
[B]What we need you to do
[/B]Install the addon on your server. Just drop it in your addons folder, and leave it there.
It won't interact with your server management or players in any way. All it'll do is log kicks and bans and player variables whenever someone is thrown out by one of your admins.
[B]What you need to know
[/B]This addon hasn't been tested much, and as such could unintentionally break something on your server.
It sends all information about bans and kicks to a website hosted by me. Nothing personal or otherwise identifying is logged, not even the source server.
Very much looking forward to hearing from anyone interested in helping with the development of this rather unique piece of software. If you have any questions please don't hesitate to ask in this thread, or message me privately on Facepunch, or through Steam.
Uh, download?
Sorry, I already have one.
[img]http://www.basexblog.com/wp-content/uploads/2011/02/watson-toronto-jeopardy.jpg[/img]
But really, it sounds like a very interesting idea. A big problem with many servers is that when the admins are away the minges come to play.
[QUOTE=Wizard of Ass;28690473]Uh, download?[/QUOTE]
I'd like to speak with the people interested in this, before I get them to install something that might not work very well.
This seems ambiguous in it's tasks when you explain it. You might as well create a table and record times when someone spawns something, and list the model, then graph it or something.
Could you elaborate on the goal of this addon?
He's trying to gain knowledge on what is most likely to be a minge, via collecting and averaging data.
The goal is that given enough examples of different types of ban reasons, it'll be able to act on its own without human interference, effectively moderating the server by itself.
It has proven to be capable of doing this when we tested it against some textbook examples of spamming, by having one of us act spammer, and repeatedly banning the offender, thereby "teaching" it what it should look out for.
Depending on the confidence of it, on the different cases it will either kick or ban the offender, suggest to an admin that there is a very high probability of a player committing an offence, or just remain silent if it has no experience with the offence, and therefore isn't confident enough to act on its theories.
Following up on suggestions from Forseti, and kicking or banning a player with the same reason as Forseti suggested, you reinforce its confidence, and eventually it'll be confident to act on its own. It also takes feedback via very simple chat commands, like saying "Forseti" and a positive word like "good", "correct", or a negative word like "bad", "wrong", etc. will also help it determine whether the suggestions was a justified one.
[QUOTE=Dr Magnusson;28691252]The goal is that given enough examples of different types of ban reasons, it'll be able to act on its own without human interference, effectively moderating the server by itself.
It has proven to be capable of doing this when we tested it against some textbook examples of spamming, by having one of us act spammer, and repeatedly banning the offender, thereby "teaching" it what it should look out for.
Depending on the confidence of it, on the different cases it will either kick or ban the offender, suggest to an admin that there is a very high probability of a player committing an offence, or just remain silent if it has no experience with the offence, and therefore isn't confident enough to act on its theories.
Following up on suggestions from Forseti, and kicking or banning a player with the same reason as Forseti suggested, you reinforce its confidence, and eventually it'll be confident to act on its own. It also takes feedback via very simple chat commands, like saying "Forseti" and a positive word like "good", "correct", or a negative word like "bad", "wrong", etc. will also help it determine whether the suggestions was a justified one.[/QUOTE]
Sounds like skynet...
"The best protection for the server it not to have players..."
[QUOTE=Wizard of Ass;28692909]Sounds like skynet...
"The best protection for the server it not to have players..."[/QUOTE]
To me it's more
[img]http://bbsimg.ngfiles.com/15/19493000/ngbbs4a4de575cc9d7.jpg[/img]
But what if it gets too powerful and thinks everyone is a minge even the admins
[QUOTE=King Fagless;28693343]But what if it gets too powerful and thinks everyone is a minge even the admins[/QUOTE]
Then god help us all...
[QUOTE=Dr Magnusson;28691252]It also takes feedback via very simple chat commands, like saying "Forseti" and a positive word like "good", "correct", or a negative word like "bad", "wrong", etc. will also help it determine whether the suggestions was a justified one.[/QUOTE]
NO FORSETI. BAD FORSETI. NOT ON THE RUG. *sprays it w/ water*
I guess I'll just upload it like this and hope someone puts it on their server.
[url]www.errur.com/test/Forseti.rar[/url]
Can you rename him to Jarvis? The Tony Stark in me misses his old AI..
You should have it identify spammer and minge traits then have it make a public pie chart (or any graphical organizer) I think that would be really interesting.
[QUOTE=glitchvid;28697198]You should have it identify spammer and minge traits then have it make a public pie chart (or any graphical organizer) I think that would be really interesting.[/QUOTE]
Indeed. Since there is no identifying information, could you make the data public? Or an least semi-public?
[QUOTE=Dr Magnusson;28695991]I guess I'll just upload it like this and hope someone puts it on their server.
[url]www.errur.com/test/Forseti.rar[/url][/QUOTE]
[lua]record.Confidence = record.Confidence + FORSETI_CONFIDENCEBOOST
PrintAll("Thanks dad.")[/lua]
:smug:
[QUOTE=Dr Magnusson;28695991]I guess I'll just upload it like this and hope someone puts it on their server.
[url]www.errur.com/test/Forseti.rar[/url][/QUOTE]
I would, but mine's not sandbox =/
Would that throw your data off? =P
[QUOTE=Disseminate;28700484][lua]record.Confidence = record.Confidence + FORSETI_CONFIDENCEBOOST
PrintAll("Thanks dad.")[/lua]
:smug:[/QUOTE]
:v:
[QUOTE=mr.wolf;28702935]I would, but mine's not sandbox =/
Would that throw your data off? =P[/QUOTE]
Not really, but since the only offence it really has the ability to identify at this point is spamming, I doubt I'd get anything useful out of it
[editline]20th March 2011[/editline]
Here's some example data:
[url]http://errur.com/test/Forseti.php?action=browse[/url]
You'd be much better off using a neural net in combination with a genetic algorithm.
Provide your variables as inputs (UniqueModels, PropDelay, Props), run it through two or three layers of neurons and take a "naughtyness" output value. You can add an extra element to the genetic algorithm which is the "naughtyness threshold".
To train it from scratch, simply record a few players' actions (both minge like and normal) and compare the result of the NN and your response.
Eventually, you'll have a generation where it's pretty much perfect.
If it doesn't turn out alright after about 20 generations of about 20 members, you may have to adjust your inputs, outputs, number of layers, etc.
When you put it into application, you should use any admins' action for comparison. Make sure you reduce the mutation rate, however.. otherwise you might get a crazy one with an extremely low threshold :P
Neural nets and genetic algorithms can be extremely fun :D
Can it tell the difference between a spammer and someone pasting a large adv dupe?
[QUOTE=Deco Da Man;28705757]You'd be much better off using a neural net in combination with a genetic algorithm.
Provide your variables as inputs (UniqueModels, PropDelay, Props), run it through two or three layers of neurons and take a "naughtyness" output value. You can add an extra element to the genetic algorithm which is the "naughtyness threshold".
[B]To train it from scratch, simply record a few players' actions (both minge like and normal) and compare the result of the NN and your response.
Eventually, you'll have a generation where it's pretty much perfect.
If it doesn't turn out alright after about 20 generations of about 20 members, you may have to adjust your inputs, outputs, number of layers, etc.[/B]
When you put it into application, you should use any admins' action for comparison. Make sure you reduce the mutation rate, however.. otherwise you might get a crazy one with an extremely low threshold :P
Neural nets and genetic algorithms can be extremely fun :D[/QUOTE]
That reminds me eerily of the basic idea of boxcar2d
[QUOTE=Deco Da Man;28705757]You'd be much better off using a neural net in combination with a genetic algorithm.
Provide your variables as inputs (UniqueModels, PropDelay, Props), run it through two or three layers of neurons and take a "naughtyness" output value. You can add an extra element to the genetic algorithm which is the "naughtyness threshold".
To train it from scratch, simply record a few players' actions (both minge like and normal) and compare the result of the NN and your response.
Eventually, you'll have a generation where it's pretty much perfect.
If it doesn't turn out alright after about 20 generations of about 20 members, you may have to adjust your inputs, outputs, number of layers, etc.
When you put it into application, you should use any admins' action for comparison. Make sure you reduce the mutation rate, however.. otherwise you might get a crazy one with an extremely low threshold :P
Neural nets and genetic algorithms can be extremely fun :D[/QUOTE]
This is exactly what it does, minus the neural network.
[QUOTE=Dr Magnusson;28707662]This is exactly what it does, minus the neural network.[/QUOTE]
I wrote a lua module which sets up feedforward neuralnets. If you want it just give me a holler. Not sure if it all works, but I'm sure you could tailor it to your needs.
This sounds really neat. Can't wait for the working version.
Ill help you out in my spare time.
Off Topic: Eventually its gonna kick people for spawning props it doesnt like.
[player 1 spawns explosive barrel]
[player 1 was banned for reason: "DO NOT LIKE"]
Excellent, with this you could finally make a foolproof antispam machine.
I sent you a PM about Forseti.
I'd be willing to test this out.
So how far away are you guys from creating skynet?
[QUOTE=Remscar;28739467]Ill help you out in my spare time.
Off Topic: Eventually its gonna kick people for spawning props it doesnt like.
[player 1 spawns explosive barrel]
[player 1 was banned for reason: "DO NOT LIKE"][/QUOTE]
16 people rated this comment.
only 1 of them had a brain/could tell it was a joke?
Sorry, you need to Log In to post a reply to this thread.