|
| 23 Oct 2011 08:47 AM |
I made a pattern recognition machine, now i need to make it conscious.
WAT DO?
Oh now i know.
brb |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 08:56 AM |
| Sentient Machines are always fun! |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 09:08 AM |
Lets see...
*thinks*
wow this is hard...
Umm...
I need to make it find a pattern with high reward that it wants to happen... then i need to backtrace that pattern to find the tree of patterns, and at each node i need to check if its already happening. If not, i keep going down. when im at bottom level (patterns with no patterns causing them, that is, input) I will stick the pattern ID's to a table.
Nowait...
gah.
wat i need is a way to produce those inputs using outputs... soo...
meh. |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 09:13 AM |
| Nuh, teh thing needs to end up at output or else the stoopid AI keeps dreaming all the time and living happily in eternal rewards T.T |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 09:39 AM |
*says "hello" at bot*
*5 mins*
*not enough memory*
I disliek intelligence.
Next time i will design it before scripting it. |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 09:50 AM |
How does it recognize patterns? Do you monitor every single variable? If you're making it in Roblox that would be a little.. laggy. But, eh, just label it a slow thinker! Give it time!
Did you remember to tell it what a reward is? You could make it associate you saying "good boi" with a reward, so you could train it =D |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 09:59 AM |
I have a table named "flow". when i input i put a input pattern there (each pattern is a pattern of pattern, however input pattern has no patterns in it)
then it reads the flow table and saved every possible pattern. If there already exists that pattern it wont add it, and while going through the flow table, if it sees that every pattern in a pattern is in the flow table at the right order, it will add that pattern to the flow table! yay!
Though i didnt get that work because i didnt plan anything before coding.
And i still needed to make it try to output so that it will receive input that leads to rewards.
And later make it notice if it sees an unfinished pattern (but so its like half finished) and check possible outcomes and if its bad it should do something that makes that pattern not happen, however i have no idea how to do that or if i even need that, as the patterns only tell what they cause, not what they stop... o.e
Ill try again later :P |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 10:09 AM |
it works liek
i say "d00d"
it saves that
it says "d00d" because thats the most rewarding thing it can do (or "d" or "d0" or "0d" or "00" or "d00" or "00d")
then when it says ewt rite i press "giv fud bwutton", it notices the pattern "d00d"->get food and saves it. And each pattern has a reward value, and the reward propagates downwards teh pattern tree fancily, so that "d00d" gets reward, and all the letters wich form it get a bit of reward too.
So after that it will only keep spamming "d00d" and maybe occasionally some other patterns so it will actually learn.
then i say "omq" and it records that and i giv it food if it says it.
Then it shall say "d00d omq d00d omq d0 d00d omq omq d00d omq 0d omq d0000d" for the rest of its life.
next i could say "d00d" and if it says "omq" i giv it fud. So it maikes pattern ("d00d","omq")->food or someting liek that. And shall say omq when i say "d00d" and spam at all other times.
It needs improving though because it will hear everything it says, so it will make patterns like "d00d"->("d00d"->("d00d"->"d00d")) wich is propably why it fails. Gotta make it not make patterns with the pattern itself in ion of teh chiild patterns. |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 10:18 AM |
You should also make it so it has 'bad' rewards, like punishment for things, so maybe if he says kittens reward him -6, and then he'll never. EVER. say kittens again or anything like it?
it sounds like complicated tree of actions, how long does it usually take for it to respond? |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 10:28 AM |
idk it didnt work, ill remake it soon.
Ye the reward is between 0 and 1 and 0.5 is neutral and 0 is bad i guess.
I also think im going to need a more advanced flow table (the thing where each firing neuron is added to when it fires, kinda) so that ordinary stuff will be removed early, but not normal stuff (that is, stuff that didnt fit into any patterns i guess) will stay longer, so that if you start feeling bad a day after eating dat weird looking fruit you didnt recognize very well, you can still remember the fruit and save the pattern (you might still eat that fruit, as theres no obvious link between the 2, but if you eat it again that pattern will become a lot stronger and you wont eat em anymore) |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 10:31 AM |
| ah... so, you're going to need to make it recognize patterns over long-ish periods of time? So it can tell, "oh, that fruit is bad, because whenever I eat it, I feel bad a day later", which wouldn't work if all it was capable of recognizing was immediate feedback |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 10:41 AM |
Well it already did that, but it will get very laggy very fast as the size of the flow table increases...
Hmm...
I think ill make it keep every entry in the flow table that doesnt happen often and is not recognized as a part of a pattern.
Because i cant really put stuff that happens often like the clock ticking or something in there or else it will grow super big.
It helps to think how your own brain works because thats what im trying to simulate xD |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 11:05 AM |
*finds out ants have 250k brain cells*
Yay i will be able to simulate a highly retarded ant! :D |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 11:28 AM |
| What if you just remove things that have no punishment or reward? Like, he'll forget that you said 'booo' because it doesn't do anything good or bad so it's less important, than, say, if he forgets how to eat, or that death is something to avoooid |
|
|
| Report Abuse |
|
|
NilPirate
|
  |
| Joined: 31 Jul 2010 |
| Total Posts: 3077 |
|
|
| 23 Oct 2011 11:31 AM |
Oooh, oooh
If something good happens while he's doing something, make him compare it to other events to see it's totally unrelated to goodness or if it was hooked together at birth
I'm gonna make my own one of these ::DD:D:D |
|
|
| Report Abuse |
|
|
|
| 23 Oct 2011 12:22 PM |
"it's less important, than, say, if he forgets how to eat"
I don't think even highly retarded ants forget how to eat. lol |
|
|
| Report Abuse |
|
|
|
| 24 Oct 2011 07:59 AM |
it cant forget stuff, it needs to remember everything.
Of course if it has something in memory that has not been usen for a year i can remove it if theres not enough memory, but i cant remove neutral stuff if theyre being usen.
like when it hears "a" its not good or bad, however that information is used to search for patterns like "dai" wich is bad and "yai" wich is good.
Oh and each pattern should actually be like
Pattern={Patterns={{Pattern,Usage},{Pattern,Usage}},Reward}
so it works better and you have less patterns. Though it might be harder to get work in some other things. |
|
|
| Report Abuse |
|
|
|
| 24 Oct 2011 08:08 AM |
The bot should work like this:
1.Observe inputs and save all possible patterns. 2.If some of the patterns already exist in le pattern database, Input that pattern to self. (so the input thing gets low level from outside patterns and high level from inside patterns) 3.When observing input, take some patterns and compare them to database and find all patterns it matches to, but wich are not completed yet. If there are really bad patterns in there, it should check if the rest of the pattern seems to be becoming true, and if yes, try to output stuff to get it instead make another pattern to happen. ^^^Laggy
That way it should be able to work.
|
|
|
| Report Abuse |
|
|
| |
|
| |
|
|
| 24 Oct 2011 08:34 AM |
nowait actually its not that laggy... lets see...
A=size of flow table (all recent inputs) B=size of pattern table
1.Find patterns = (A*min(A,max size of pattern))*1.5 so maybe liek 1.5*10*A ??? IDK
2.Find patterns wich need to be fired = (amount of step 1)*B*Avarage size of pattern/amount of patterns messed up by how often what patterns occur (lag)
3.Find all patterns wich have a start wich matches a pattern found in 1 (this ish done in 2, so no extra) C=amount of the non filled matchin patterns
4.Go through all the lists of patterns wich almost matched an existing pattern. (step 3) For each list: *Go thru the lists and pick one of the possible outcomes (1 pattern wich has a list of all patterns it might end up as) pick a good one wich is as possible as possible to output *Find all outputs that need to be fired to create rest of the pattern (recursive function wich goes thru patterns and patterns required to fire that pattern and so on.) *??? *Profit =UNKNOWN AMOUNT OF LAG
Its not THAT laggy, as if it sees a leaf on the ground it would conclude the winning lottery number given enough information in a single tick, but because of that a single tick will be long, wich means it cant do very accurate timing and stuff.
However with some fancy caching tables and stuff you could make it think in small steps at a time and get it think longer about hard stuff and be fast in simple stuff.
G0 XLEGOX G0 Maike me one |
|
|
| Report Abuse |
|
|
|
| 24 Oct 2011 10:29 AM |
Hmm
this wont work very well :c
With some weird adjusting i could get it chat and stuff, but i want it to imagine, wich needs it to not care about if a cell is input or output.
I could do it with this though, but ill make em liek neurons cuz they sound cooler xD |
|
|
| Report Abuse |
|
|