|
Post by Abram Demski on Jul 19, 2006 19:18:45 GMT -5
I'm sorry. I just stumbled upon all of this Absolutely Dynamic System stuff, and I look at it, and I look it up on wikipedia, and I look at it again, and I say: WHAT IS GOING ON? The system should do next to nothing. But it doesn't. It's purposefully made to not follow any particular pattern. But it learns. HOW?? How can... how can the network store information? What patterns does it follow in it's learning? Does it tend to repeat what comes in? Sorry.
|
|
|
Post by tkorrovi on Jul 19, 2006 21:25:07 GMT -5
No, as much as I know, the basic mechanism doesn't provide anything in particular for repeating that which comes in. If anyone would find any reason why such mechanism should necessarily repeat that which comes in, I would be very interested to know. The only reason how it supposed to work is that it supposed to generate different processes, of which these which fit into their environment, survive. For that it is important that the system is extremely dynamic (changing) so that it will be able to generate any system (topology), and therefore able to generate processes which fit into their environment, and not die as the patterns in a cellular automaton do. There seems to be only one such system which is dynamic enough, the absolutely dynamic system, at least I couldn't find any other. There can be a few variations of such system, but only a few, so that it would not become less dynamic.
It can store information in old knots which for some reason would not be deleted, but also it can store it dynamically, as some sort of repeating process. In fact, all the electronic memories we have, are at least some way dynamic, like a trigger is a feedback loop for electric currence, and ddram is a set of capacitors, which have to be refreshed from time to time, the world is dynamic, and therefore we also cannot have anything completely static to store information.
|
|
|
Post by tkorrovi on Jul 19, 2006 23:58:22 GMT -5
All the rest which I can say, is that everything is there, adsproject.sourceforge.net/ads-ac The program, the source code, the results, the theory starting from acknowledged knowledge about AC and ending with the derivation of the system. It is there as is, just for anyone for who it might be anyhow useful.
|
|
|
Post by Abram Demski on Jul 20, 2006 10:44:12 GMT -5
Could you explain those variations that work? I think that would help me. But, more importantly, I don't quite understand the process for generating output based on input. From what I can see, you've got i/o nodes which become "new" when they get input, and release that input again as output when they gain a new link-- but if this is so, there can be no reaction to what the input says, only a reaction to it's existence, and the possibility of spitting it back out sooner or later. Also, you've said that the system "tries to act so that it can predict the result of its action". But what is the evidence for this? I'll look for more answers on that site, as well. This is very interesting to me. If it really does grab on to a random goal in the environment, as suggested by the fact that it got very good at losing that game you trained it with, then it could perhaps be used as a component for an evolutionary system-- many ADS could be created, and the ones that happened to develop into something useful could be kept. (This eliminates the necessity of trying to reward or punish a single net.) Now: A bit about who I am. I'm currently running an Artificial Intelligence forum at s13.invisionfree.com/dragonlogic_AI/which is for people programming their own AI using their own theory of intelligence. I will be starting college this fall, majoring in Cognitive Science. I beleive in using logical (not dynamic, not biological, not evolutionary) systems forr creating AI, because of the following reasoning: any nonlogical system must generate behavior that we consider intelligent for some particular logical reason. It must generate behavior that we can describe logically. Therefore, why not use logic in the first place? But, anyway, that doesn't mean I find nonlogical approaches uninteresting. I find yours very interesting... particularly because it is so opposed to my way of doing things, and yet seems to work. You set out to build a system that was simply unpredictable, whereas, I'm trying to build in particular predictable elements of intelligence (which are hopefully enough to spontaneously generate all of intelligence). Very interesting.
|
|
|
Post by tkorrovi on Jul 20, 2006 14:00:20 GMT -5
> Could you explain those variations that work? I think that would help me. No there is really one mechanism which comes from derivations, just some details remain open, like whether it should be considered that all new generation of knots would be created in one instance or some other order, whether knots with a single link are allowed, different possibilities how the input/output can be implemented and such. > But, more importantly, I don't quite understand the process for generating output based on input. From what I can see, you've got i/o nodes which become "new" when they get input, and release that input again as output when they gain a new link No the new nodes which would be created as a result of i/o node becoming "new" would be made of the links which are different for that i/o node and some old node, so would not point at all to that i/o node. > Also, you've said that the system "tries to act so that it can predict the result of its action". But what is the evidence for this? That it tries to get certain kind of input, which is well-predictable for it. Try to take off the training program, the output would change, it starts to try another alternatives. > I'm currently running an Artificial Intelligence forum at s13.invisionfree.com/dragonlogic_AI/which is for people programming their own AI using their own theory of intelligence. Yes it's a good forum with many posts from the very beginning. > I will be starting college this fall, majoring in Cognitive Science. I am an Automatic Control engineer by education, so I also rather tried to create a really adaptive regulator, than a chatbot-like thing. Yes I have talked to young people also before, and I never recommended them to study Computer Science, because then they may start to work as programmers, and programmer is the worst exploitation of people ever. So they study business, and seem to be satisfied, but never do any programming any more. The rest, this is only theoretical, ADS should also be capable of implementing Turing machine as the cellular automaton is, and I guess this Turing machine would also be faster than the one in cellular automaton, which uses cannons and shifting blocks to get around the problem, and makes a single cycle in a half an hour, while the one based on ADS would use direct connections. Just no one really tried it, then ADS also supposed to be a universal programming language, the most simple one, though by far not simple to use, the one which is also massively simultaneous in its very essence. Just that you would have some idea, but it becomes too complicated, I would recommend you not to think about it.
|
|
|
Post by Abram Orion Demski on Jul 21, 2006 11:03:05 GMT -5
Can you give an example of how I/O would be implemented?
"No the new nodes which would be created as a result of i/o node becoming "new" would be made of the links which are different for that i/o node and some old node, so would not point at all to that i/o node."
I understand that much. But how does the system react to the information stored in the I/O node?
|
|
|
Post by tkorrovi on Jul 21, 2006 13:56:36 GMT -5
> Can you give an example of how I/O would be implemented?
At present it is so that a "pulse" would be given to the outside world when the node would be created with the i/o node. It is difficult to give an example, because all is about topology, and changes in that, it has to be somehow depicted. There are diagrams about that "trigger", with everything about how it works, and how the i/o nodes work, but in spite that the diagrams are not so complex, they are still difficult to understand, but unfortunately I don't see how else than with these it would be possible to depict these things...
In general, for such systems, it would be useful to use some systems to depict and analyze topology, there are some quite good ones in SourceForge, some also under AI. The only problem is that, it would be quite a lot of work to work with these, no one likely never has a time.
> But how does the system react to the information stored in the I/O node?
There is no information stored in the i/o node, and not in any node. Node is just a set of links to other nodes, where links have no properties either. This is intentionally done so, for the system to be as dynamic (changing) as possible. For that it must be a minimal system, which still is able to create any system within a bigger system, whenever we add some property or information, we should guarantee that all combinations of these properties and topology would be able to emerge, and even when we add a little, the mechanism would become immensely more complex, if not impossible. Therefore the nodes have only one property, they may be old or new, this is the only property which we cannot avoid, in order to separate new generations of nodes from old, so this is inevitable for time and causalty.
|
|
|
Post by Abram Orion Demski on Jul 22, 2006 10:24:46 GMT -5
OK, that makes more sense (I was under the impression that I/O nodes were the only nodes that did hold info). If we were feeding an ADS-AC a stream of colors (say, one color out of three possible colors is selected every second) how would we tell it what color it was being fed?
|
|
|
Post by tkorrovi on Jul 22, 2006 13:23:46 GMT -5
No there are only pulses coming in (say which activate the i/o node) and pulses coming out, like in brain, they have no meaning by itself, only in what sequence they come and in what combination they come, may mean something. We should somehow associate one thing with others, and then give it something which it considers positive in some particular time, for it to learn to associate some thing with others, or with some processes.
-----
That is whole, whole is this, from the invisible whole comes forth the visible whole, yet the whole remains unaltered -- a hinduism mantra.
That one, though motionless, is swifter than the mind. The senses can never overtake it, for it ever goes before. Though immovable, it travels faster than those who run. By it the all-pervading air sustains all living beings. -- from isha upanishad.
|
|
|
Post by Abram Orion Demski on Jul 22, 2006 21:22:43 GMT -5
You speak of that which is limitless. It exists, which is why everything else does. But surely there is no need to remake it in AI. All things on earth are limited, and from that comes their power. Intelligence is focus.
On the other hand, I suppose it's good to seee the limits of certain things and to try to go beyond them... most certainly. Ah well.
|
|
|
Post by tkorrovi on Jul 22, 2006 22:58:54 GMT -5
Things are often limitless in theory, like the computer memory, we kind of assume that we always have it, and then we must find solutions for cases when we reach the limits.
Ohh this security check is just terrible here, do they really think that some software can read the letters, if they were a bit more clear... It's against some chinese webpots which spammed here, sometimes there were several messages in a day.
|
|
|
Post by tkorrovi on Jul 23, 2006 11:31:09 GMT -5
Also it's importand, in what do you want to make your system. You don't really need classes, they don't give so much, yes you certainly may have an array of objects, but an array of structures (of pointers) would do as well. Yes I know c++, but I like a simple c89 "ansi c", because in spite it supposed to be simple, every programming language is quite complicated if you know all details, and this is exactly what is necessary for such things, because they do quite advanced things, and are very difficult to debug (like changing structures). So, c89 is kind of humanly possible to know completely, to know everything in the standard and compiler. I used mingw, based on gcc compiler mostly used in linux, because the compiler must be open source, so that everyone can use the same compiler to develop things. gcc is also the most reliable compiler, and cross-platform. Of course you can use lisp, supposed to be especially good for all the things in ADS-AC, but then it may well be slower than c, and for things working with big structures and doing things which happen in parallel in natural world, the speed is everything. Also, don't know whether you can use gtk in lisp for user interface, as only text-based interface becomes too complicated for such things, and will be difficult to use. Gtk is kind of only choice, because it is open source, cross-platform, and lgpl license, not like qt. Honestly, I don't like gtk so much, and my program is done in windows api, because when i started it, gtk was not yet ported to windowss, and I must admit I even like windows api more, as there is kind of everything, from low-level to high-level, together in one api. But still, gtk is the only choice. And none of them is so very simple, gtk is even simpler than motif. So much about that.
|
|
|
Post by Abram Orion Demski on Jul 24, 2006 14:49:04 GMT -5
For Lisp, there is Ltk. SSo if I learn to use that, I can do cross-platform GUI. But also, I'm trying to use Jatha, an interface between Lisp and Java. I'm getting odd problems, though.
"No there are only pulses coming in (say which activate the i/o node) and pulses coming out, like in brain, they have no meaning by itself, only in what sequence they come and in what combination they come, may mean something."
So we could represent, say, "red" as one pulse, "blue" as two, and "green" as three?
|
|
|
Post by tkorrovi on Jul 24, 2006 16:15:19 GMT -5
In the retina, there are two types of receptors called rod cells and cone cells, and all of them output only pulses, with higher frequency when the light is brighter. Nothing else than pulses can go through the nerves already because of the electrochemical way of transmitting the pulses. There are 10 times more rod cells than cone cells, rod cells are very sensitive to light and are able to detect a single photon, but they are not sensitive to color. This is why we see black and white in the dark. And there are three types of cone cells, sensitive respectively to red, green and blue light, and they also output only pulses. The neurons react very slowly, so the in the reaction time to the light a chain not more than 100 neurons can be activated. This may say whatever to anyone else, but to me it confirms that neurons are not like some simple electronic components, from which a very complicated electronic circuitry can be formed, but rather a lot of processing should happen in a single neurons, ie they are more like computers connected into network, also considering how well some nearby neurons take over the functionality of the dead or damaged neurons. So as I already said, I consider ADS-AC to somewhat model that which happens inside the neuron, also considering the similarities in behaviour with the neurons taken from the rat's bain and taught to pilot a plane, and similar experiments.
|
|
|
Post by Abram Orion Demski on Jul 27, 2006 21:02:10 GMT -5
The difference that gives me trouble:
Neurons can grow and delete links, but over the course of a single electrical calculation, the input/output links are constant. ADS, however, does not keep constant input/output nodes, and cannot, because any node can be deleted at any time. So we cannot have one input channel for red, one for blue, or whatever; there are no fixed input channels. So how do we communicate the world to it? If the node structures are internal knowledge, randomly tapping a node might disrupt this knowledge-- so if we don't do it randomly, how do we do it?
|
|