• Data collection and field-testing of server-moderating artificial intelligence - Forseti
    57 replies, posted
[QUOTE=Pantho;28856204]16 people rated this comment. only 1 of them had a brain/could tell it was a joke?[/QUOTE] Everyone could tell it was a joke. It was just terrible.
What will this achieve over existing solutions? How is this better than spam protection, prop blacklists, and votekick/voteban? You're doing a lot of work for something that has already been solved in a much simpler way. [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] Hahaha! Wow. Overkill is putting it mildly.
[QUOTE=Slight;28862237] Hahaha! Wow. Overkill is putting it mildly.[/QUOTE] Not really. If you know what a neural net actually is then you'll see it's the best way of doing something like this.
I think that this must be expanded to include more than just spam protection before it can be of any use to anyone.
[QUOTE=Grea$eMonkey;28862768]Not really. If you know what a neural net actually is then you'll see it's the best way of doing something like this.[/QUOTE] Aside from the reading I've done, I've attended a presentation done by a researcher on the topic. I know what it is. Its impractical and ineffective in this situation.
[QUOTE=Slight;28864002]Aside from the reading I've done, I've attended a presentation done by a researcher on the topic. I know what it is. Its impractical and ineffective in this situation.[/QUOTE] [url]http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html[/url] [url]http://www.learnartificialneuralnetworks.com/[/url] [url]http://www.ai-junkie.com/ann/evolved/nnt1.html[/url] Educate yourself.
[QUOTE=Grea$eMonkey;28864406][url]http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html[/url] [url]http://www.learnartificialneuralnetworks.com/[/url] [url]http://www.ai-junkie.com/ann/evolved/nnt1.html[/url] Educate yourself.[/QUOTE] Here's how arguments work: you make a point and I'll try to counter it. [url=http://www.google.com/#hl=en&sugexp=ldymls&pq=how%20arguments%20work&xhr=t&q=how+to+make+an+argument]Educate yourself[/url] Ball is still in your court.
Then would you care to explain how a neural network would not be efficient or useful for something like this? I'm with greasemonkey on this one. I've done limited experiments with neural networks in the past with an associate of mine to create a tic-tac-toe AI that learns from its mistakes. Learning from its mistakes is exactly what Forsetti is hoping to accomplish, and one of the main strong points of neural networks...
[QUOTE=mr.wolf;28865479]Then would you care to explain how a neural network would not be efficient or useful for something like this? I'm with greasemonkey on this one. I've done limited experiments with neural networks in the past with an associate of mine to create a tic-tac-toe AI that learns from its mistakes. Learning from its mistakes is exactly what Forsetti is hoping to accomplish, and one of the main strong points of neural networks...[/QUOTE] Sure, since you asked and didn't come off as a know it all. The only input you're giving the system is prop spawns, timing between them, and when a ban occurs relative to these events. Now, using my advanced neural network I'm currently developing that I've codenamed "brain", I've deduced that there is no casuistic relationship between prop spawned and being banned that can't be solved with a simple algorithm. A nerual net will not be able to determine whether a user deserves to be banned for spawning a series of props any more than a spam filter/warning system would. You have three scenarios of prop abuse: [list] [*][b]Problem:[/b] A single prop causes the server to crash instantly on spawn (or other clients) [*][b]Solution:[/b] Maintain a prop blacklist created manually. You can even be bold and attempt to automate the blacklisting process by looking at the last prop spawned after the crash. No neural net required. This problem is very rare anyway, anything other than a simple blacklist is overkill. [/list][list] [*][b]Problem:[/b] Quickly spawning a series of props crashes/lags the server. (ex. breakable props being spawned inside each other) [*][b]Solution:[/b] Spam protection that will not allow you to spawn props quickly. Attempting to spam could get you kicked and then banned for incremental amounts of time. No neural net required. A net could be used for this purpose, but would take time to train, be complex to implement, and be harder to yield by the server owner. Why train a net when you already know that anyone who spawns props quickly is spamming (even if it is accidental). [/list][list] [*][b]Problem:[/b] Spawning certain props inside each other, regardless of the time between spawns, crashes/lags the server. (Spawning circular props inside eachother) [*][b]Solution:[/b] Check positions of spawned props and attempt to detect if they're inside each other. Easily achieved by tracing bounding boxes or calling PhysObj:IsPenetrating(). Be more specific by checking if those props are circular via a human made list of props or are no collided. I can't see how a neural net would even begin to solve this problem. It has no way of detecting if a prop is circular or is penetrating. Again, even if those were inputs. The relationship is too simple to need a neural net. [/list] I really don't see how a neural net is required to solve these problems. I've encountered many servers that are lag-proof in terms of prop spam using these simple methods (though many are vulnerable against the circle prop attack). Although I have yet to see an addon that checks for interpenetrating physics objects and warns/removes them if there are too many of them (like 5 start to lag).
While I agree that those three are the main problems, there are also other smaller ones that may be less severe. I hardly play sandbox myself any more, so I am no expert in this field. However, you have a small error in your argument. You said that the only inputs the system gets "[are] prop spawns, timing between them, and when a ban occurs relative to these events." However, it also gets feedback on its responses, which is the key to how a neural network would be implemented, and be useful. I agree that the inputs you listed alone would not be enough to make anything; however the key to any neural network is being able to justify actions based on experience, and for that to happen, there needs to be a consequence to its actions. Hence the feedback system Dr Magnusson created. This allows the system to adjust its responses accordingly.
[QUOTE=mr.wolf;28865909]While I agree that those three are the main problems, there are also other smaller ones that may be less severe. I hardly play sandbox myself any more, so I am no expert in this field. However, you have a small error in your argument. You said that the only inputs the system gets "[are] prop spawns, timing between them, and when a ban occurs relative to these events." However, it also gets feedback on its responses, which is the key to how a neural network would be implemented, and be useful. I agree that the inputs you listed alone would not be enough to make anything; however the key to any neural network is being able to justify actions based on experience, and for that to happen, there needs to be a consequence to its actions. Hence the feedback system Dr Magnusson created. This allows the system to adjust its responses accordingly.[/QUOTE] My main point though is not that a neural net cannot solve some prop problems. Its that there are existing solutions that are just as, if not more, effective at solving the problems and are [b]much[/b] simpler to create and maintain. My whole point is that neural net in this situation is overkill and I still find it a funny proposition. I'd just like to reiterate one thing because I feel it should be highlighted. There is no relationship between props spawned and time of spawning. I can spawn 6 props over the course of 4 hours and have it lag the server the same as if I had spawned them in 10 seconds.
[QUOTE=Slight;28865963]My main point though is not that a neural net cannot solve some prop problems. Its that there are existing solutions that are just as, if not more, effective at solving the problems and are [b]much[/b] simpler to create and maintain. My whole point is that neural net in this situation is overkill and I still find it a funny proposition.[/QUOTE] True, but then you need to create a counter for each circumstance that comes up. This can in theory handle any sort of administration, even beyond prop spamming. Speedhacks, aimbots, RDM in TTT, what have you. Just for prop spamming, yes, it is a bit overkill. But once the system works, then it can be expanded and trained for many other uses. Personally, I'd love to see an admin system that implements a neural net for handling administration whle no admins or moderators are on. The initial training would be a bit time consuming, but the payoff would be huge. I might have found my next project >:D
[QUOTE=Slight;28865698]:words:[/QUOTE] You're right on some of your points, but if you read the OP you'd see that the features it describes sounds more like a neural network. [QUOTE=Dr Magnusson;28690307][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.[/QUOTE] The point of a neural network isn't a manual solution - it's being able to develop fine-tuned solutions mathematically without having to worry about manually making tables filled with shit. Example: Nobody wants to maintain a blacklist of props. A well-designed neural network could calculate what is causing problems and maintain the list for you. This would be especially useful for people who download large packs of props, which is where a blacklist wouldn't be ideal.
[QUOTE=mr.wolf;28866046]True, but then you need to create a counter for each circumstance that comes up. This can in theory handle any sort of administration, even beyond prop spamming. Speedhacks, aimbots, RDM in TTT, what have you. Just for prop spamming, yes, it is a bit overkill. But once the system works, then it can be expanded and trained for many other uses. Personally, I'd love to see an admin system that implements a neural net for handling administration whle no admins or moderators are on. The initial training would be a bit time consuming, but the payoff would be huge. I might have found my next project >:D[/QUOTE] I actually missed the part where he would use it for other things. Still though, a neural net is overkill. There is a very finite amount of ways to get banned and they should be tackled individually in my personal opinion. It could be a cool project to do for fun though. I wouldn't place my bets on it however. [QUOTE=Grea$eMonkey;28866080]A well-designed neural network could calculate what is causing problems and maintain the list for you. This would be especially useful for people who download large packs of props, which is where a blacklist wouldn't be ideal.[/QUOTE] How though. You're just saying it'll work. What variables will it use to determine what props lag a server? I've already given you a solution that will tell you if props are lagging a server: Determine how many groups of interpenetrating props there are (ignoring circular since you don't want manual intervention). Ban owner, warn owner, remove props, ect. Bam, problem solved. I've given an automated solution for [b]every[/b] problem I mentioned. Requiring 0 blacklists and 0 user intervention after initial setup. Those solutions will solve the problem of prop abuse. You want to talk about aimbotters, speedhackers, and map exploiters? Good luck developing a neural net for that stuff. Pretty soon you'll want a net that bans people for trolling on the mic/in chat too.
[QUOTE=Slight;28866175]I actually missed the part where he would use it for other things. Still though, a neural net is overkill. There is a very finite amount of ways to get banned and they should be tackled individually in my personal opinion. It could be a cool project to do for fun though. I wouldn't place my bets on it however.[/QUOTE] Overkill implies it would be inefficient, when in reality plugging in a sequence of numbers could potentially be a lot faster and save a lot more memory than maintaining a monolithic table of data. [editline]28th March 2011[/editline] I guess we can just agree to disagree.
[QUOTE=Grea$eMonkey;28866220]Overkill implies it would be inefficient, when in reality plugging in a sequence of numbers could potentially be a lot faster and save a lot more memory than maintaining a monolithic table of data. [editline]28th March 2011[/editline] I guess we can just agree to disagree.[/QUOTE] I replied to your post above (ninja'd me). I have an automated solution for each case of prop abuse effectively stopping the problem with no user intervention or manual blacklists required. So with prop abuse out of the picture, I would be very interested to know how you'd implement a net to stop aimbotters, speedhackers, or map exploiters. After all, you do need to know what your system is capable of handling. I realize you could try to pass things like client aim vector differences between frames, give it headshots, and maybe even average accuracy. That would be good for aimbotting but you're already being specific. For speedhacking you'd need to give it user speed and keyboard state (so it doesn't think sprinting players are speedhacking, as well as player states like falling, jumping, swimming). Again another specific set of inputs for a specific problem that could easily break for other gamemodes. As for map exploits, no idea. Give it player position? Either way, why not just implement specific solutions for each problem that would be much more reliable, easier to make, and easier to test. Not to mention, neural nets aren't exactly fast.
I agree with Slight that neural nets are overkill in a situation such as this that can be accomplished without any kind of neural net and Forseti [b]seems[/b] to use excellent methods that could prove as effective, and more efficient than any kind of neural net out there. After all, what is a neural net but logic and math, isn't it just the same as this? It just is a different way of accomplishing the same task. Well using a neural net may work well, using a system like Forseti's, an automated system would be able to work more effectively and efficiently because there are no excess functions that could be wasting computing power in a situation like this. Also, the memory that would be saved is so tiny (a few hundred KB tops) that it would have no effect on today's systems with 8 gigs of high speed RAM and possibly more on the hard drive.
Love the idea but from the details you supply you make it sound like it the ai is pointed at prop spammers/killers. But either-way i will place it on my server and see if it can catch anything.
[QUOTE=arrington100;28868505]Love the idea but from the details you supply you make it sound like it the ai is pointed at prop spammers/killers. But either-way i will place it on my server and see if it can catch anything.[/QUOTE] That's because this was intended as a proof of concept for now, I'm not gonna sit here and add a hundred different things to monitor, just to see that the system itself was flawed. [QUOTE=Slight;28866362]I replied to your post above (ninja'd me). I have an automated solution for each case of prop abuse effectively stopping the problem with no user intervention or manual blacklists required. So with prop abuse out of the picture, I would be very interested to know how you'd implement a net to stop aimbotters, speedhackers, or map exploiters. After all, you do need to know what your system is capable of handling. I realize you could try to pass things like client aim vector differences between frames, give it headshots, and maybe even average accuracy. That would be good for aimbotting but you're already being specific. For speedhacking you'd need to give it user speed and keyboard state (so it doesn't think sprinting players are speedhacking, as well as player states like falling, jumping, swimming). Again another specific set of inputs for a specific problem that could easily break for other gamemodes. As for map exploits, no idea. Give it player position? Either way, why not just implement specific solutions for each problem that would be much more reliable, easier to make, and easier to test. Not to mention, neural nets aren't exactly fast.[/QUOTE] Speedhacking and aimbotting would be simple to teach, map exploitation could be a problem though. The thing about Forseti is that its main feedbacks are bans/kicks and chat input, which means that it can't respond to something like a server crash, cause as far as it is aware, nothing bad happened.
For the spamming thing, Could you get the server's FPS and see if its below a certain number after that spam has been done, because not all spam will lag the server, and if its penetrating nocolide the shit with eachother until it's picked up with a gravgun, hit or picked up with a physgun. I'm not certain how this will work but when spam happens, it will normally make your servers fps drop <20. My two cents :P
I think that this is just the beginning. Soon they're going to put this to more complex types of mingery. Edit: Didn't read this page, that was to Slight.
Battle Engine Aquila name refrence?
[QUOTE=doggydog1235790;28926086]Battle Engine Aquila name refrence?[/QUOTE] Norse mythology reference, god of justice.
Oh btw. If you've stopped getting data from our server, the UK box is under a prolonged DDoS, but that's the Gmod life ;)
Next make an AI that learns and adapts to hunt and kill players.
[QUOTE=yuki;28934934]Next make an AI that learns and adapts to hunt and kill players.[/QUOTE] I tried that a couple times. I made a little progress, but I never really got it to work.
Sorry, you need to Log In to post a reply to this thread.