• Advertisement

Archived

This topic is now archived and is closed to further replies.

Neural Nets Over the Net

This topic is 6061 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Is there a way for NNs to ''teach'' other NNs quickly. I was thinking that if a NN bot was used in my game, it would be good for a user to be able to get on the net and ''upgrade his bots so they were smarter. I always have friends that can beat every bot in every game they play, and it seems it would be nice to let the bots learn from those good people, but it takes so long that it isn''t very feasible because the user is surely likely to loose intrest in a game that takes 1000 games before the bot become smarter. Of course the bots would be smart when the game was distributed, a bot that would learn would be more flexible to changes in the game. Also how do could you ''tell'' an NN not to use all of its inteligence? That way players that weren''t as good could have fun also. I could have multiple bots that you can choose to play, but I am assuming an NN memory is going to be a HardDrive consuming file. Thanx for the help ahead. if you havn''t figured it out yet I like hypothetical questions! Tazzel3D ~ Zach

Share this post


Link to post
Share on other sites
Advertisement
I''ve always had this wierd idea of having the AI watch how the player does stuff and try to "understand" why it did what it did. Of course completly erratic behavior will screw it up, but maybe one day NN can become good enough to accutally remember how a player played and stuff... and than trasmit itself to a central database where the new data is overviewed and if it helps the bots, its added, if it doesnt... in the trash bin.

Share this post


Link to post
Share on other sites
Well... if one NN is ''better'' than another, then if the structures are the same I assume it can simply teach it by copying the data across. If you are training them with some sort of genetic algorithm then you can just combine the best data from both nets to take forward into the next generation. (I''m sure someone more knowledgable than I could elaborate on this if necessary.) You could tell an NN to not use all of its intelligence by perhaps using earlier snapshots of the net (although I don''t know how restrictive that would be in terms of memory requirements) or you could simply add a fuzzy element to the outputs.

Share this post


Link to post
Share on other sites
I don''t know if any of u have programmed nural nets before but a few things u might find intresting-

Firstly, for max621, that idea is quite plausable, though not with nural nets - a nural net is a state machene - u give it a series of states and it returns a suitable state. (Same or different domain.) ie a state could be the state of all the pixels in a picture, which it then outputs that picture in the same domain - ie it outputs the same picture, but it uses it''s previous ''knoledge'' of that picture to output a perfect copy, if say the inputed picture had noise in or is from a slightly different angle. Unfortunatly what u are describing would require millions of states to describe the player, what they are seeing, what they have seen etc - and when u hit that many states it quickly becomes impossible to calculate in real time, even with a supercomputer. Also, nural nets have a memory length problem - long term and short term memory can both be done on there own, but at the same time is bloody hard to say the least. To do what u are describing would require a lot of special structures and so on - but could be done, and I''m fairly sure has been done. A few small nural nets would probably be included in those structures, but the focus would probably be on a set of ID3 trees for eash situation. (Look them up.)

Now onto the origional querry, I assume if it''s learning from the player that there is somthing such as the backpropergation algorithm at work - ie u give it inputs, it gives an output, and then u tell it if it was a good or a bad ''move'' and the network is adjusted to refelct that. That means there are two ways for a nural network to learn from another identical one - u can just copy the values across, as Kylotan said, however the network would ''lose'' everything it had learned before - so instead try averaging the values or ''moving'' the values towards each other. Otherwise u could run situations past both nural nets - and see what they output, then where they agree u adjust both nets positivly, and when they disagree u do the reverse, or use one of the nural nets as a teacher which dosn''t change and the other conciders the value is outputs as the ''perfect'' value as u would do during normal learning.

Anyway - thats the answer from what I know, but my advice here is read a book/very large artical on the subject - nural nets are all about experimentation as much as techneque - u try things out and see if they work. I personally concider having a nural net the learns from the user to be (In most cases) a very bad idea due to overfit and the lack of control u have as a designer, plus they really do eat proccessing power.
-Lethe

Share this post


Link to post
Share on other sites
Just a small correction on terminology. It is not strictly correct to call a neural network a state machine. That term is usually reserved for Finite State Machines (Fuzzy State Machines) which are different creatures to ANNs all together.

An artificial neural network is a function mapping from input states to output states, just as the function f is using the notation y=f(x). The power of ANNs over other methods of learning function mappings is that ANNs are specifically good at learning many-to-one mappings. A many-to-one mapping maps many states of x to a single state of y (using the y=f(x) notation). This is useful if the many states that map to a single output are correlated in the input space and not just in the output space. Thus, for example, an image distorted by noise can be associated with the undistorted image, given sufficient training cases (sufficient examples of the ''many'' states that are associated with the single output state).

Regards,

Timkin

Share this post


Link to post
Share on other sites

  • Advertisement