tag:blogger.com,1999:blog-75848812615328682712023-11-15T11:06:44.761-08:00Journal of AI/ML thoughts by David FreelanDavid Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.comBlogger30125tag:blogger.com,1999:blog-7584881261532868271.post-13508301999437244902010-09-30T14:05:00.000-07:002010-09-30T14:40:28.933-07:00A different general purpose way of tackling complex problemsWell I'm back with a fury. This time I have a program that i find so much fun to program, I am changing my sleep schedule as a result, you will see soon I will have a new blog about Polyphasic sleeping.<br /><br />Onto my program, right now (to my understanding) in artificial intelligence there are a variety of different types and ways to use "Neural networks".<br />In each case, they use a particular neuron and connection structure, and change the condition for which each neuron is activated<br /><br />Stay with me here!<br /><br />They do this so that it can be optimized with mathematics, and with maximizing they find a good solution, but it's near impossible to find the best solution. (There's more to this for those who understand, it finds the local minimum error, but not the best possible situation)<br /><br />Well, turns out they can only do this optimization (this is to my understanding) if they already know what the program SHOULD output, which is easy for stockmarkets (because you can use past data), however NOT so good for learning games where we DONOT know the best possible move.<br /><br />Well, for a situation like chess, or perhaps some other complicated problem, why would we even bother using the same neurons and neuron structure?! If we can't optimize, perhaps we can do something FAR more interesting<br /><br />Consider this:<br />Change the very structure neural networks work. Bend it, twist it until it no longer even resembles a neural network, make varieties of different structures<br />Then have them compete against each other.<br />Let it soak in.....<br /><br />What this implies:<br />Each unique neural network will be defined by a DNA strand that defines the structure of the neural network and each neuron. The best structures will be saved and will compete to be the best at the problem I want to solve<br /><br />One more time... soak in it....<br /><br />I can test to see how well a neural network learns! By doing this, I am no longer try to fit one problem with one structure. But I am FINDING structures that approach the problem the best!!!<br /><br />The structures with the best DNA will be selected and compete against each other, this means the ones that LEARN THE BEST.<br /><br />In the absolute best case scenario (unlikely, but let's fantasize):<br />I could find neural networks that work much better and much more efficiently than traditional neural networks. Not just for one problem, any DNA strand is capable of building a network to LEARN ANYTHING (how well it learns of course another story). So it's possible, that if a really good neural network is possible in my DNA, it will be able to learn better than any known neural network. I'm not making any promises of course!<br /><br />I do have cautious optimism one it will be better at tackling an individual game than traditional neural networks. (however, please do keep in mind, my knowledge is limited :-) I do research, but I don't really have a teacher to ask questions to)<br /><br />Final note:<br />Now, this program is actually capable of evolving into a traditional neural network (without optimization, but optimization is overrated anyway). However, with all these possible new neural networks NEVER BEFORE DISCOVERED! I doubt it will even be useful, because other structures are likely to fit a specific problem much better than a traditional one.<br /><br />In my next entry, I will explore some of the awesome traits any neural network could possibly obtain and take advantage of.David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com1tag:blogger.com,1999:blog-7584881261532868271.post-36770010424378996012010-06-12T09:51:00.000-07:002010-06-12T10:02:13.289-07:00So how about thisImagine neural networks.<br />okay well let's imagine we separate three neural networks<br /><br />one decides what's the important input<br />one decides what that input should really be (replace 1 with 3's)<br />last makes the final decision<br /><br />This is just a concept, I have no reason even imaginary reason to think why it would work, but it sounds fun.<br /><br />It has been a long time since i've posted, i have have a few ideas like this and others<br />How about neural networks that first train by "learning the rules". One neural network that observes winning situations during training could vote on whether or not the move is a winning move, one can vote on whether or not the move is a losing move. And the third one can either 1. not be a neural network and just decide based on which move has the highest ranking. or 2. be a neural network that takes those decisions and that of the entirety of the board to make a final decision.<br /><br />My idea right now that I'm actually working on is highly different from the two ideas mentioned above.<br />An individual 'neuron' in a neural network does three things.<br />1. gets input<br />2.adds all that input<br />3. compares the sum to a number aka "threshold"<br />4. sends out a number (aka "weight" )based on if the threshold was reached. this number is sent to another neuron or used to determine the final output.<br /><br />well I ask, why not bend the rules?who said these rules were necessarily the best rules. I know one can optimize neural networks that function this way to find some local minimum of error. but perhaps some other organization is more flexible, and can find a better minimum faster and more consistently. more laterDavid Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-20798541224295197672009-12-05T15:31:00.001-08:002009-12-05T15:40:40.539-08:00Somebody discouraged me, but I am back with a vengenceIt has been three months since my last post. Since then I have slowed down due to college. I need to keep up with this blog for my sake!!<br /><br />So in three months what progress has been made??<br /><br />My idea (as i've researched and found out) is a more complicated neural network. This does not necessarily mean it will be more effective, though that would be pretty sweet.<br /><br />So here's what's going on<br />The input will always be a list of numbers representing the environment to the algorithm.<br />2,3,4123,12,4,7.....<br />The Network, using its prewritten rules logic, will take the information bend it, twist it, multiply some stuff and get a result<br /><br />The result will always be one number such as:<br />92<br /><br />The environment will be programmed to use numbers in a certain way, preferably in a way that would be easy for the algorithm to adapt to later on.<br /><br />NOW what's REALLY important is how we get from an array of numbers, to a single digit.<br /><br />There is a huge map of 'neurons', these 'neurons' take in a certain amount of input, multiple numbers or maybe only one number, they do some logic and add some numbers in some almost random way (it changes over time, that's how i can find the best one), and then outputs ONE number.<br /><br />Many of these things are connected to one another, the output from one neuron can be used by any other neuron that wants to know the variable, then spits out one number.<br /><br />In the end, there is one deciding neuron that gives out the final output.<br /><br />Many of these structures compete with each other to play a game. If they win more than others, they get to have babies, who are exactly like the parents, but with a few mutations. Then all the children and all the parents fight in the game, the best are selected, and the whole process moves over and over again.<br /><br />Tomorrow: weaknesses, and how to make this betterDavid Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-26335278150199815862009-09-19T21:20:00.000-07:002009-09-19T21:24:51.631-07:00Proof 2: Genetic algorithms, selection and fitnessBefore I continue, I would like to define genetic algorithms to everybody just one more time...<br /><br />Genetic algorithms try to replicated darwin's theory of evolution. problem is, we havent exactly evolved a human out of a computer yet... I wanna do that<br /><br />Fitness: how well an organism does in its environment<br /><br /><br />I am trying to prove something... not quite sure yet, but this will probably happen a lot so I will be posting my previous remarks with this link. So if some number shows up, they should show up somewhere in these blogs below<br />Link to other proof post:<br />http://freelanmachinelearning.blogspot.com/2009/09/proof-1-something-else-is-needed.html<br /><br /><br />CURRENTLY ADDINGDavid Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-18525384770278594742009-09-19T11:22:00.000-07:002009-09-19T14:20:11.017-07:00Proof 1: something else is needed....Assume we are using a genetic algorithm, we want the perfect strategy in a game of 'Go'<br />'go' has way too many ways to play it for a computer to calculate (just consider it too many to be practical to solve)<br /><br />1. the perfect strategy beats all other strategies<br />2. If you learn from experience alone, you may only be equiped to handle experiences you have been exposed to<br />3. Selection is made by the ability to handle experiences<br />4. ability to handle experience depends on genes<br />5. which genes have survived, depends on what events or experiences has lead to that point<br />6. genes represent past experience (3,4,5)<br />7. if you only learn by experiences, you must be exposed to all experiences to become perfect (1,6)<br />8. to become perfect more than experience is needed OR nearly all experiences must be encountered.<br />(assumed there was too many experiences)<br />9. more than experience is needed (8+assumption)<br />10. genes are not enough OR genes must represent more than experience (edit) OR perfection is impossible, maximizing is necessaryDavid Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-52674976550049248502009-09-18T09:04:00.000-07:002009-09-18T09:15:12.905-07:00Balance and perfectionBasic genetic algorithms are very simple in my opinion. However, it has become apparent that the way they are tested and selected can determine how well the outcome is. Naturally, one might think that simply choosing the best based on how it faces against the rest of the population, or some standard.<br /><br />The problem with choosing one standard for the program to beat, is that the single standard may not be as good as it can get. Perhaps there are other scenarios that the algorithms will not be able to handle that were never presented.<br /><br />To fix this problem I decided to make the population play against each other, that way they are exposed to many strategies.... but there is a much more interesting problem with this<br /><br />If the population fight against itself, there is the possibility it will keep going until something reaches the perfect algorithm, and then the gene pool is dominated by it.<br /><br />However, there is a much much much more probable scenario.<br />Perhaps the system will improve consistently, but only until the system reaches <span style="font-style: italic;">Balance</span>. what if it gets to the point where all the algorithms seem to do equally well as each other, not exactly, but enough to significantly stall the process. for instance, some strategies may develop that are counters to other organisms strategies, but these strategies are all intertwined in some simple or not so simple order. These strategies will always beat each other out and play out in the same way. An equilibrium will be established, nothing will truly improve as one cannot say which of these strategies are truly 'better'<br /><br />There has to be a way to shake up the balance, perhaps my random idea will be enough, but I must consider the probable fact that it will not. What can make the balance fall apart without abandoning strategies completely?David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-73825894088861351472009-09-17T22:59:00.000-07:002009-09-19T21:18:47.741-07:00how neatly done!Typical genetic algorithm:<br />specific traits are chosen very carefully, as the computer scientist approaches the problem. A specific string of binary numbers is chosen to represent his creation. These numbers will mutate to perform the task at hand. In order for this scientist to do so, he must test how well each binary code will do in the given scenario, so that the scientist may more carefully decide which one is correct.<br /><br />There is tedious calculation, each may be given multiple scenarios, then ranked on how well each binary code performs. They use advanced math to decide how each one should be chosen, and how many children each binary string should have, or whether they should die.<br /><br />Then when the scientist runs this program, something happens. There is a 'super subject' but not in a good way. This subject is not getting better, but it's gene's are dominating the gene pool. This super subject is not as perfect as we would like, so much more mathematical calibration must be done.<br /><br /><br /><br />Well, what if the scientist did something else....<br />A lot of times in real life, some things that happen seemingly randomly give us an advantage. While over time the strongest survive, some of the weaker ones survive and keep traits that may become useful. We need the weak and the strong, and some way to choose between them.<br /><br />Well, what if they competed against each other, and we recorded how many times they win. However, not all of them will necessarily get to play the same amount, each one is randomly chosen as a pair to fight, then on to the next pair. There are a lot of pairings, and yes it is a bit random, but those who are better over time will succeed....<br /><br />let's see what happens!!!David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-44153710986486238942009-09-10T15:04:00.000-07:002009-09-10T15:05:18.287-07:00no, i did not read this over before i posted itI have reason to believe my first version of this program I am making will completely fail. Why??<br /><br />Well this first version will be missing at least one key aspect of logic/math<br /><br />mathematics within logic:<br />currently, the program may only consider a variable, and its relationship with another varible. not the variable minus 1 compared to the other variable, or the variable minus some other variable compared to a variable.... it's strictly variable to variable comparison. This is a problem because:<br />Imagine we're playing a 'game':<br />I give you three numbers, A, B, and C.<br />I want you to tell me whether or not A minus B is greater than C<br /><br />the logic you would do is as follows<br />if(A-B > C)<br />Say "yes"<br />However my program cannot do that, it cannot subtract A-B and compare it to C<br /><br />Now imagine you are intelectually limited to variable by variable comparison<br />There's no way to determine for certain whether or not A -B is greater than C, the closest you can get is:<br />if(A > B and A > C)<br />say "yes"<br />However, there are numerous counterexamples, so you would not be correct 100% of the time. (example A=5 C=2, B=2, 5-2 is not greater than 2)<br /><br />What's the solution??<br />well.... I have half of an idea... I think i can do it... implementing it may turn my own head upsidedown<br /><br />independent calculators:<br />These calculators will take multiple variables, they can be any particular variables that the neuron may decide, and do math ONLY with those numbers. Not any other input, just the variables given. However, how these will be implemented may be another story. I may find that each part of the if statement, I may need to make an object that is an independent calculator. Then the question may become-- should these independent calculators only be within the neuron, or should the entire brain have access to these calculators?<br /><br />I think yes, with all neurons able to call on independent calculators, they may find that the calculators will become to represent rules in whichever game it is trying to learn. These rules may end up being used to solve different games it may try to learn.<br /><br />Why is this so hard?????<br />first off, they are one more thing to mutate. I already have to mutate how the brain works, then how each neuron works, now I need to worry about mutating these guys.<br />The neuron also needs to recognize that these calculators exist, then mutate what they choose to put in the calculators.David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-52047718594290778422009-08-27T15:51:00.000-07:002009-08-27T16:01:00.101-07:00Ahh yes it is tommorrowOkay, so assuming the first program works well, I will naturally want to make it better<br /><br />What I have made with the little 'neurons' communicating will now come in handy. They are very flexible objects, they can make connections based on their own logic, and if the first project works, it will be able to do this really well for one game.<br /><br />Now, what if I wanted my program to learn 2 different games?<br /><br />The second step of this project will be to allow the program to learn 2 games, by re-using some of the same neurons!! This is something that to my understanding is something a genetic algorithm cant do. Can one genetic algorithm learn to play different games, yes, but they cant do it with the same gene! (again, to my understanding).<br /><br />There is a challenge to this, all input is different for each game, and these neurons are only set in to take a specific input. The problem is, how does it assign variables to spots that are missing? Well, the program is going to need to<span style="font-weight: bold;"> </span>mutate to find this out (for now). It will be able to call on a neuron that uses a different game's logic, and will assign it variables randomly. Further progressions would be to have a logic for assigning these variables.... how I am not sure yet but I do already have a few ideas.... which I will write about another time...David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-8833370910547156882009-08-26T11:48:00.000-07:002009-08-26T11:58:02.692-07:00okay updates WILL come more frequently!!!For the past few days I have been contemplating what my little program may be able to do, and how to improve it.<br /><br />Here's the game plan<br />The first program I will write, will be able use logic and math combined to have a final outcome. The logic will be solid once the mutated being is created, this is not to say that it will react the same way in a given situation (as it may consider a random variable), but that it will always consider the same variables.<br /><br />This program may be capable of creating logic in a algorithm differently than any way I have researched. There are different 'neurons' each with their own set of logic that is set to take in certain input, either from other 'neurons' or the input given. (all input is in form of numbers). This may allow a few neurons to concentrate on what strategy is best, it may also condense information to a more usable form before the initial processing. the condensing of information will allow faster processing, however the only way for me to ensure that this can happen is if i not only select which algorithms are best on the ability to solve the problem, but also its efficiency. Efficiency of algorithms does not seem to come in play in other methods of genetic algorithms, as they always have the same efficiency the way it is set up.<br /><br />Tommorow... What I want the next program to be able to develope to.... much closer to something may be able to think like us...<br /><br />I would like anybody reading this to keep in mind I am being very theoretical here-- really more like experimental with what the actual capabilities of the program will be. I am assuming if I give the program near infinite flexibility, as well as the ability to be selected on efficiency, it will evolve into something that can effectively solve multiple problems, just like we came about. If nothing else this will be fun, after all I am very young :-)David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-56982371888847681552009-07-14T17:28:00.001-07:002009-07-14T17:37:12.971-07:00Since the last timeIt has been a short while since I posted last, and as such I have a lot of changes to what I plan on doing.<br /><br />My previous idea with the hierarchy of voting, has been nearly forgotten, maybe I'll try it out if this doesn't work.<br /><br />However If my newer Idea works, it has the potential of not only beating people at one game, but many with the same algorithm<br /><br />This idea does not only use math, but a heck of a lot more logic. For every piece of math done, there will be an option for a logical requirement to do that math... So it will work something like this<br /><br />Each 'logic machine' will get an array of variables<br />vars[]<br />then a stream of logic and math will follow, this will be encoded somewhat, but just for the sake of making it easier to understand.<br /><br />if(vars[1]>vars[0])<br />finalVar = 1 // could be subtracting, adding, multipliing, adding a variable<br /><br />'finalVar' will be what the algorithm returns to whatever gave them the vars.<br />with this, things get interesting<br /><br />the algorithms can give each other their calculations. How they do that is in my head and still needs perfection... and hey if this really ends up working out (on the off chance) I gotta keep part of it secret!!David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-40335555364699757732009-06-26T18:09:00.000-07:002009-06-26T18:23:26.611-07:00This is fun!!!I am very behind in ideas, So I will start with what I will be working on over the summer<br /><br />My original genetic algorithm I wrote way before summer, had some sort of a mutating math algorithm trying to figure out where the right place is to go.<br /><br />Most recently, I have realized it may not be the best to only have ONE math equation, but maybe an organized series, or even hierarchy of them... working as follows<br /><br />A math equation at first is the only decider for the ultimate decision. But let's say it mutates and copies itself slightly off, and actually makes two deciders, so the decision chart looks as so.... (d, decision, m Math equation)<br /><br />....d<br />.../ \<br />.m...m<br />Each math equation 'votes' to the final decision of where to move (each line in these charts will represent one vote). Iff (not a typo, iff = 'if and only if') there is a tie, the math equations will compare the priority they assigned their decision, and move as to who assigned highest priority (alrighty in my math equation)<br /><br />Now needless to say, there could be any number of Math equations making one decision, but things get more complicated....<br /><br />Now let's say one math equation on one part of the brain just cant assign its vote accuratly with only one equation (really just under random mutation....) it can split off as well, decision chart as follows<br /><br /> ......d<br /> ..../....\<br /> ..m .....d<br /> ........../ \<br /> ........m...m<br />Hopefully, this will allow my little mutant math equations to express themselves better, and just make better decision, however my new laptop might die trying to do it......David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-54665257084074667932009-06-19T15:07:00.000-07:002009-06-19T15:14:07.279-07:00full time job + programming = funSo I have had time to think about a nice new fun idea, partially inspired by our own brain. I have been thinking about my mutation program, the one with a genetic algorithm where the little guys fight to the death to see who is better at a game of connect four. Well, their brains are unchallenged, they make one decision they are never torn. So, what if their brains were allowed to split into two mutating wonders, that would argue, or even 3. Sure they would not really completely argue, but rather vote as to which one they want to go to, and whichever one thinks louder (I swear there's math behind it, they use priority....) will decide the movement. I am interested how it will turn out.David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-35185969360766075072009-06-15T20:09:00.000-07:002009-12-05T15:43:04.783-08:00Newest inspiration:<br />Tide wars: a (real life) game where one uses beach objects to try and protect one's fort against the tide's rage. When Creating a fence with two layers of sticks, spaced apart appropriately, One can fit big and small rocks and such in between. As the water moves along the rocks, the rocks that do not fit/ are too small, will eventually wash away, those that are not, will become wedged in just the right spot. What if a logic organism could develop that way?<br /><br />Newest random idea:<br />Using binary genetic bits, the genetic bits should not only be mutated, but maybe the way that the organism interprets it's gene's could be mutated either while in life or the interpretation can be a genetic trait as well. Perhaps one could go deeper, and allow the organism to interpret differently with in it's life according to some algorithm that takes in positive/negative stimuli, and the way that stimuli effects the interpretation of gene is also mutated.<br /><br />I realize I am stuck on mutating algorithms, I also realize I should find more, however for now I cannot get my own mind off of it, as it seems the best way humans could make something smarter than themselves without having to overcome any huge intelligence leaps.<br /><br />Perhaps there is another more controllable way to deal with it, maybe it will use an integration of all sorts of methods, I want to map out or organize the methods and look at the pros/cons and just try to mix a couple and see how it turns out. ... I still want a mutating learning algorithm... just cant find a learning algorithm that isn't so straight forward.David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-73745237139522105442009-05-21T20:41:00.001-07:002009-05-21T20:46:59.754-07:00ThoughtI havent forgottaen about this just had busy 4 months... breif ideas for the day i must elaborate on later<br /><br />fractal learning as taking something you think and keep puting that back into the thought process over and over<br /><br />computer feeling through the system and developing senses using assembly. or making a complex virtual environment where senses may be developed.<br /><br />seeing changes in data may help developing senses. (we typically sense things that change a lot and that are statistically useful for survival.)<br /><br />making it possible for the math going on inside the brain or thought process to not only be linear thoughts, but ones that may be turned in to multi-dimensional, or even plug values into itself (fractal)David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-66106181662581192382009-01-26T19:05:00.000-08:002009-01-26T19:12:40.497-08:00EvolutionI 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.<br /><br />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.<br /><br />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.<br /><br />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...<br /><br /> contact me dfreelan@gmail.com if you want to know more (not that I have many followers...)David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-62523731138774793722009-01-21T19:55:00.000-08:002009-01-21T20:05:33.910-08:00Connect 4I tried to use the same algorithm I did with Tic-Tac toe on Connect four, and i ran into some problem with memory---<br /><br />actually i never explained how i got tic-tac-toe to work... it actually was an interesting story...<br /><br />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.<br /><br />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.<br /><br />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.<br /><br />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 doDavid Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-85231835177065002502009-01-05T09:23:00.000-08:002009-01-05T09:26:19.715-08:00Alright 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.<br /><br />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.<br /><br />To be continued...David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-47171904329770914752008-12-23T21:17:00.000-08:002008-12-23T21:27:49.632-08:00My challengeToday 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.<br /><br />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.<br /><br />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.David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-34629783645328920222008-12-22T22:12:00.000-08:002008-12-22T22:20:52.414-08:00Jumping right into my thoughts - may be difficult to readcurrently 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.<div><br /></div><div>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.</div><div><br /></div><div>Now onto another thing that crosses my mind:</div><div><br /></div><div>mutating pattern makers. </div><div>What if we could find a way to mutate code and then select the best mutations given a selection pressure. What about learning techniques. </div><div><br /></div><div>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. </div><div><br /></div><div><br /></div><div>WHY DID I DO THIS?</div><div>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.</div>David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-81165366631178348252008-12-21T20:43:00.000-08:002008-12-21T20:56:27.230-08:00Comments 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. <div><br /></div><div>Without further to do... the real reason I write this.</div><div><br /></div><div>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. </div><div><br /></div><div>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. </div><div><br /></div><div>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. </div><div><br /></div><div>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.</div>David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-142454064822320792008-12-20T10:23:00.000-08:002008-12-20T10:32:38.029-08:00Ok... 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. <span class="Apple-style-span" style="border-collapse: collapse; "><span class="Apple-style-span" style="font-size: medium;">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. </span></span><div><span class="Apple-style-span" style="border-collapse: collapse;"><br /></span></div><div><span class="Apple-style-span" style="border-collapse: collapse; "><span class="Apple-style-span" style="font-size: medium;">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.</span></span></div><div><span class="Apple-style-span" style="border-collapse: collapse;"><br /></span></div><div><span class="Apple-style-span" style="font-size: medium;"></span><span class="Apple-style-span" style="border-collapse: collapse;">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.</span></div><div><span class="Apple-style-span" style="border-collapse: collapse;"><br /></span></div><div><span class="Apple-style-span" style="border-collapse: collapse;">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. </span></div><div><br /></div><div><div><span class="Apple-style-span" style="border-collapse: collapse;"><br /></span></div></div>David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-69016788165355759002008-12-20T10:17:00.000-08:002008-12-20T10:22:15.685-08:00Yikes I forgot 2 entries today I guess.Ok for the first entry I shall actually expand on the previous one, as I believe there is something else important in dimensions of logic. This time I am not so much thinking of dimensions of logic more or less I will talk about dimensions of intelligence. <div><br /></div><div>I know of sombody- not as a friend -at my highschool who does all the bad things, he makes a lot of bad choices. However, he is brilliant in AP classes, passes them without studying once. I origionally thought one with a lot of intelligence would make the right choices because it's logical, however there seems to be another side to it. </div><div><br /></div><div>My idea here is, should we be exploring how this difference works. If we need a computer to make choices like we do, apparently, well at my first glance it involves somehow <span class="Apple-style-span" style="font-style: italic;">more than logic - </span> sounds like it could be a title of a book.. maybe I'll write it. </div>David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-48034278331992545532008-12-18T19:54:00.000-08:002008-12-18T20:16:45.571-08:00Well... Oops? poor logic...ok well in the previous I mentioned a thing about another dimension of logic, well I think I was wrong, but I am trying to stay one day ahead in these so that if I have a slow day I have a backup ready to go, and what I thought of for my next one nearly cancels this thought, but again I shouldnt ignore this one, as it may have life I am unaware, being a no0b and all.<br /><br />So with a bit less passion, here goes:<br /><br />What if there were something in logic we don't quite get. Some kind of emotion variable that makes us different. Well not just emotion variable but emotional logic. It is true that the brain has competition between these sides, are they two different <em>types</em> of logic. I think they would be, a 1 a 0 and a both 1 and 0. That would completely change the way programming is done.<br /><br />There is also the possibility that all it is in emotion vs intelliect is simply more primal logic vs privious experience and what one has <em>learned</em>.<br /><br /><br />Tomorrow - nodes and networking themDavid Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0tag:blogger.com,1999:blog-7584881261532868271.post-20061063987929630982008-12-17T19:24:00.000-08:002008-12-17T19:33:50.497-08:00Fractle ThinkingI got an idea in my head that at first startled me. For a brief moment I felt what i think someone else would feel when they make a new discovery that nobody else knows about. This was however short lived (though still, the feeling was worth it) as I soon realized it seems as difficult as everything else I have mentioned.<br /><br />I was pondering how it is that we learned for a brief moment, especially how we learn things that computers can do better like storing information. It immediately occurred to me that we use repetition as a way of pounding information, each time we add a little more, make it more fine, until we get it. Suddenly it came upon me, fractals seemed to be the answer. As a lot of scientists know, we humans are made of many self similar shapes called fractals. With each iteration the picture becomes more complete, starts looking pretty nice. I started to think that maybe, just maybe that's how we learn, and how we could teach computers to do it.<br /><br />I wonder if we could prove it like people have proved that fractals are the answer to receiving more frequencies, but i have no idea how that proof worked out and this isn't exactly a physics problem.<br /><br />I always feel like I want to write about more than one thing in each, but my goal is to have 1 thing every day to talk about that's different. So as a self reminder, I shall say my next one will be about my pondering that 1's and 0's may not be able to do it alone, and that there may be another dimension of logic.David Freelanhttp://www.blogger.com/profile/04475497609006213256noreply@blogger.com0