I honestly did not think I would get this far in my highschool year-- I either underestimated myself or overestimated the problem. I have had this idea existing for the past couple days, and it has been working for least least 4 days, and in this time I have tried to explain how this program works to many people, here's what I've practiced.
This program tries to play Connect4. There is an equation the program uses to try and figure out which spot is the best. Now you will notice that I used the word, 'try' alot, that's because it's never certain. The program's equation actually mutates. It copies itself and adds a slight mutation, then all of them play Connect4 a couple times to decide which mutations are best, and those live on while the rest die. The living ones reproduce and it goes on and on.
So far the equation it has is far from perfect, my challenge is to give it an opponent, my best choice I figure is to get them to play each other, I am experimenting with that right now.
I will post the advances I make but for some reason I feel as though I've stumbled on something I almost want to keep it somewhat private, so my descriptions will be vague...
contact me dfreelan@gmail.com if you want to know more (not that I have many followers...)
Monday, January 26, 2009
Wednesday, January 21, 2009
Connect 4
I tried to use the same algorithm I did with Tic-Tac toe on Connect four, and i ran into some problem with memory---
actually i never explained how i got tic-tac-toe to work... it actually was an interesting story...
So as the game plays against itself over and over again, it records what spaces lead to losses, what moves lead to wins, and what moves lead to ties. There is then a statistic taken every turn to see which one is the best, and the statistics are constantly updated. However it is a bit more than statistics, hardly but distinct, i programmed a "gullibility factor", well that's what I call it. the wins could only possibly get up to 10, or whatever the 'gullibility factor' was and it could only get so bad as the gullibility factor.
Now dealing with ties is where something interesting happened, when both computers saw ties as a form of winning, both of them simply made the same moves over and over again, not surprising. When both computers considered them loses , when they played against a human they failed, they would choose to lose instead of tie sometimes.
However when one computer considered ties wins, and the other one considered ties loses, one of them succeeded. To me it seemed like a pessimist vs optimist situation, and i believe the optimist won this round. Because the program considered ties wins and the others loses, the one that thought they were loses continually changed strategy, while the other one was able to learn and find all the different possibilities of winning. While the loser, simply ended up moving randomly in the end when you try to go against it.
Now I need to do something with Connect 4, but there are too many combinations, and the RAM just cant take it on any computer I can come in contact with. So Now I must come up with a new strategy, I think I will come up with it tomorrow.... lots of thinking to do
actually i never explained how i got tic-tac-toe to work... it actually was an interesting story...
So as the game plays against itself over and over again, it records what spaces lead to losses, what moves lead to wins, and what moves lead to ties. There is then a statistic taken every turn to see which one is the best, and the statistics are constantly updated. However it is a bit more than statistics, hardly but distinct, i programmed a "gullibility factor", well that's what I call it. the wins could only possibly get up to 10, or whatever the 'gullibility factor' was and it could only get so bad as the gullibility factor.
Now dealing with ties is where something interesting happened, when both computers saw ties as a form of winning, both of them simply made the same moves over and over again, not surprising. When both computers considered them loses , when they played against a human they failed, they would choose to lose instead of tie sometimes.
However when one computer considered ties wins, and the other one considered ties loses, one of them succeeded. To me it seemed like a pessimist vs optimist situation, and i believe the optimist won this round. Because the program considered ties wins and the others loses, the one that thought they were loses continually changed strategy, while the other one was able to learn and find all the different possibilities of winning. While the loser, simply ended up moving randomly in the end when you try to go against it.
Now I need to do something with Connect 4, but there are too many combinations, and the RAM just cant take it on any computer I can come in contact with. So Now I must come up with a new strategy, I think I will come up with it tomorrow.... lots of thinking to do
Monday, January 5, 2009
Alright I missed a couple.
I over the passed couple days made a program that I taught to play tic-tac-toe. It is about 1000 lines of code devoted to trying to get it to learn to play tic-tac-toe better and better with experience. So I skipped out on writing.
I was recently contemplating the need for speech to communicate and speak, I was wondering if one were to master thinking without language and think about AI one might get a better understanding of how to understand what language is, and how to program it.
To be continued...
I was recently contemplating the need for speech to communicate and speak, I was wondering if one were to master thinking without language and think about AI one might get a better understanding of how to understand what language is, and how to program it.
To be continued...
Tuesday, December 23, 2008
My challenge
Today I challenged myself to translate what I'm thinking into some robotic logic as I went along my day. I am starting my slate clean in my head to try to come up with better ideas. So now for what I have learned.
There are a lot of complex patterns I have learned. Muscle control is a funny thing, specific muscles used to do certain things, that I didn't notice before. When observing things, I found that those things I found funny were those things that were ironic and don't really happen. Thought processes are intricate and seem to be triggered by things I have noticed before in the past.
So I have concluded that observing is a key in a human mind, not only observing but when given a similar scenario, one needs to know how to apply it...learning to observe?that's going to be tough, it's an instinct i dont know how we do it.
There are a lot of complex patterns I have learned. Muscle control is a funny thing, specific muscles used to do certain things, that I didn't notice before. When observing things, I found that those things I found funny were those things that were ironic and don't really happen. Thought processes are intricate and seem to be triggered by things I have noticed before in the past.
So I have concluded that observing is a key in a human mind, not only observing but when given a similar scenario, one needs to know how to apply it...learning to observe?that's going to be tough, it's an instinct i dont know how we do it.
Monday, December 22, 2008
Jumping right into my thoughts - may be difficult to read
currently the processes we have are only given under very limited circumstances, they are specifically made to learn different tasks. We could continue looking at differenet tasks and trying to replicate them until we get something right, or we could try something else.
When we talk as I have discused earlier we see more than just patterns of a subject and a verb and such. Things mean things to us differently depending on context of situation and many other things. Well, there's even more that we understand that computers don't. Computers don't know how to take commands and actually well... do them. If I say to a computer "make a pong program in java" it won't, even the software we have now will not. Maybe once a computer can understand what we say, it will be able to do what we do.
Now onto another thing that crosses my mind:
mutating pattern makers.
What if we could find a way to mutate code and then select the best mutations given a selection pressure. What about learning techniques.
what if we had a learning algorithm that tought a computer to learn to make learning algorithms instead of everything we're doing now. So if we could just give this learning algorithm the goal, it would write a learning algorithm to do it.
WHY DID I DO THIS?
well, this is stuck in my head and i had to get it out. I'm hoping my creative juices will come up with more. I realize some is repeat, a lot of it is just additional stuff here and there as continuation of other thoughts, I get stuck on a thought to long and I need to get creative.
Sunday, December 21, 2008
Comments on Research / where to look next?
I am more or less paranoid that someone will read this and think I'm taking myself seriously in such a way that I firmly believe everything I type here. So I need to mention somewhere that I know I'm not a big shot (yet... maybe????I'll sure try), and I am simply brainstorming.
Without further to do... the real reason I write this.
Alright so far machine learning is a couple different types of learning. supervised, unsupervised, ones where they give the right answer and one one that wont. To me this leaves a lot less than I want. Don't get me wrong I love it and i'm currently making a second tic tac toe program,my first one was perfect but looked at all possible outcomes, that will learn everything by playing against itself over and over again.
Anyway, the problem with all of this is that the program only knows how to play within a very very very small context. So my tic-tac-toe over millions of games will learn to be perfect at it. Guess what, it's still just doing statistics sort of thing to figure it out. if I say "hi" it will do nothing at all. My question is, is all we are as humans really just a bunch of statisti crunchers, and if we are, by god we must have a lot of algorithms.
Well ok the programs do learn better with 'experience'. My program will take millions of games probably to be perfect at the game. I only need maybe 100. Heck if I were really thinking about it I could have mastered tic-tac-toe the first time I played it, if I weren't 4. There's something missing, I feel like it's close but not there, not quite.
I believe maybe if we both observe our own behaviors, maybe we can teach our computers to observe them and try to mimic. not only mimic but make smart variations within a context. Easier said than done, as usual.
Saturday, December 20, 2008
Ok... I lost control... I did moderate research.
I have decided I shall not wait in the dark and try to stab at this, I will branch off and read stuff. I recently watched a speech given by Kwabena Boahen from Stanford University about making a computer that works like the brain, and it involved neural networking. I have also watched a machine learning lecture on youtube from Stanford. And since this is a blog about me making ideas for myself, I shall leave that at that and start branching off the way my brain wants to.
I find it funny how neurons in my brain are desperately all trying to figure out how neurons in my brain could be translated to a program, seems ironic.
Suppose we couldnt replicate exactly how our brain works using the appropriot hardware. We could still use software to do i, however it would be slow, as it would be using computer storing techniques to use a brain storing technique. So we need connections in the brain to be made in infinite dimensions! well, what I mean by that is the brain needs to sort the information with a lot of details, and be able to look for similarities with other information, and link those neurons to find patterns. My previous idea of 1,0, and both 1 and 0 seems almost silly now, as when I watched the program on neurons, apparently our brain uses 1's and 0's the exact same way computers do, just a heck of a lot more fast.
I really don't think computing power should be considered a large issue, I dont care how fast a virtual human can run, as long as it can learn the way you and i do, with the same positive features a computer has to add, such as a lot of memory and the ability to instantly memorize something. We have a lot of storage space, more than humans can hold I bet.
Subscribe to:
Posts (Atom)