| |
|
View Full Version :
dcajacob February 17th, 2002, 09:09 AM [This post originally started as a reply to the 'artificial intelligence' thread.]
Hey guys, AF Academy Cadet here.
I used to work for an internet company before I took my appointment to the Academy. I have a lot of programming experince, in dozens of languages.
I came up with an idea a year ago to create an artificial intelligence by completely digitizing a human. Sounds ho-hum, been done before? It's the method of creation that is novel.
I propose that a true AI could be created by modeling the composition of DNA and it's functions within a computer program. Then, allowing two different strands of this Digital DNA (DDNA) to come together within the environment of a modelled egg, the DDNA (properly modelled) would begin to function just like the real thing: combine and divide, creating a new strand from which would grow a modelled human being.
Obviously, a significant moral dimension is exposed in the creation of a real human being inside a computer. Questions must be asked... does the resulting person have a soul, rights, etc?
I have used this idea in my first short story, The Binary Born. Read it here http://www.sffworld.com/authors/c/cajacob_dan/fiction/binaryborn1.html I have some revision to do, but I have recieved very positive reviews so far.
Incidentally, I will shortly be writing a paper, outlining this theory. If anyone has a significant biology background, I would gladly accept aid and collaboration.
Thank you for your time, sir or ma'am. Keep dreaming!
*********************************************
Read below for a more technical evaluation of the DDNA theory. Non-programmers beware.
I will use the C/C++ language for this explanation. The nature of the DDNA would be OOP(Object-Oriented Programming). The DDNA would be an object within the Binary Class. The DDNA constructor would outline all of the DDNA's variables (billions of base-pairings that constitute genes), most likely in a linked-list form (caters to DNA's linked form).
Now we step down another level. Here we can define a new object, a Gene, which is constructed using linked-lists of base pairs. The Gene constructors themselves also have multiple functions defined for each of them, which will be the main driving force behind the Genesis program.
It does not serve to go into greater detail as to the Base Pair object, Protein object, etc. For the beginning OOP programmer, the above pseudo code should be enough to start the mind working.
One should be able to imagine that using the functions inherent to the Genes (which model the actual functions of the human genome) should work together with the DDNA's electronic model to start to multiply itself and perform every function that a human gamete does, eventually yielding a digital human, capable of learning, yet accelerated and enhanced by it's digital nature.
Obviously, such a birth would require computing power on the order of a Quantum computer's capability. But we are not far from that dream either.
Incidentally, I will shortly be writing a paper, outlining this theory. If anyone has a significant biology background, I would gladly accept aid and collaboration.
Thank you for your time, sir or ma'am. Keep dreaming!
dcajacob February 17th, 2002, 09:12 AM [Nicba replied]
I don't have any experience in biology, but I do have some experience with computer science and object-oriented programming.
I think the basic idea is pretty good and quite novel, at least I have never seen it before. I don't know if this is the right place to discuss it, but since you brought up the subject, and since you seem to wish to carry it further than just a sci-fi story, I think I can see some potential obstacles to your idea. Here goes:
1) The 'digital DNA' idea has been used in different ways before. Have you heard about 'evolutionary programming'? Basicly, digital DNA is the binary code of a program. It's a string of ones and zeroes, not so much different from real DNA, except that real DNA have four different 'symbols' instead of only the two binary ones. Well, this digital DNA then undergoes a series of 'mutations' (random changes of the ones and zeroes) and combinations with other programs ('digital sex'?). From this you get a number of new programs. Most of them will not even execute, or will only produce garbage. But some will perform 'better' than the original. From those you now selects a bunch of the 'best' ones and repeat the process. Again and again.
But it doesn't really work. It doesn't produce good programs, not to mention intelligent ones. There's a number of problems with the approach, the most important being how to judge which of these programs are 'the best.' The approach has been used to develop controller software for small mobile robots, but the most sophisticated results are things like obstacle-avoidance and so on. Insect-level intelligence, at most.
2) I realise that the above is not what you propose. But the point is, that, while it's fairly easy to model DNA or DNA-like material on a computer and to carry out operations upon it (that is, to mutate it, combine it with other DNA ect.), it is a whole different matter to model the 'functionality' of the DNA. You proposed to model Digital DNA as Objects. But an object is just (roughly put) a collection of data and functionality. The data part is easy (as per point 1) but the 'functionality' of DNA is very much harder, I think. What is the functionality of DNA? Can it be expressed as a nice list of algorithmic functions? I don't think so. The 'functionality' of DNA, as I see it, is the way it interacts with other biological entites (RNA, enzymes ect.). And that in turn is decided by it's three-dimensional structure and how it 'fits' with those other biological entities.
3) This brings us to my next point. The DNA of a human-being-to-be is not a closed system. DNA alone does not make a human. The DNA is but part of a cell. So you have to model the cell (cosisting of DNA, RNA, enzymes, mitochondria, ect. ect.). But the cell is not a closed system either. It multiplies and it draws nutriments from the womp. So at some point you have to simulate the womp (or the cells of the womp) too.
4) Finally, if the growth process goes well, you end up with a simulated baby, complete with a simulated body, a simlated brain and simlulated sensory organs. But the simulated brain, being build after the recipe of human DNA, will expect the simulated body and the simulated senses to function like a real body and real senses. Some AI researchers even think that intelligence is impossible without a body, that no intelligence can be created without the action-reaction (feedback) of a body acting on an environment. In short, you have to create a virtual environment for the virtual human. And the virtual environment must be able to provide complete reality-like feedback in every respect: Touch, smell, sound and sight.
Phew! That's a frightening lot of simulation. It is going to demand absolutely incredible computers. If it is possible at all. But if, one day in the future, we will be able to build such computers, your idea may be possible to realise. Then we will really be creating a 'ghost in the machine.' And maybe that ghost will be able to grow and to learn in its virtual surroundings and to reach out of the machine and communicate with the real world. Just like in your story (or in Terminator or The Matrix, you never know )
[To which I replied]
Very well thought and well written comments, Nicba. I thank you.
To answer your question about evolutionized programming, I have heard of it. The difference here is that the end product is known, it's the method of getting there that we have to worry about.
In response to section 2, I would agree that much more research needs to be put into the functionality of DNA; i.e. how a small Gene expression causes a large change in a cell. I would also add that such a project as this would have to begin at a very small scale, e.g. the digital modeling of very simple animals which are defined by a very small set of Genes. It's been a while since I took biology, but something like a singl-celled animal would probably be a good base.
In response to section 3, I did mention a modeled 'egg' to surround the comingled DDNA to facilitate conception, and some proteins, etc. Obviously, more analysis of the gestation process would be required to evaluate what other 'resources' would be needed. Also, every living thing does need raw materials to metabolize for energy, so it would be necessary to provide wells of these volatiles: water, oxygen, nitrogen, etc. possibly in the form of functions which continually dole amounts of each.
Finally, in response to section 4, I neglected to address this issue in my above proposal, but I did do so in my short story, The Binary Born http://www.sffworld.com/authors/c/cajacob_dan/fiction/binaryborn1.html
The means I used in my fiction was to slave external, real world sensors to the fetus' brain at a certain stage of development. The question still remains though, would normal development be possible before this stage without any form of feedback. But, assuming that the sensors were able to function, it might even be possible to give the child a full range, or nearly so, of motion and experience by slaving it to a robotic body or possibly even a cadaver.
An added benefit of learning to slave sensors to a thus detached mind would be an expanded understanding of how the brain works. From touch to receptor to nerve to nerve to schwann cell, etc. the whole Nervous Process could be mapped and better understood. Perhaps an understanding of memory could be refined. Thus, would could learn more about ourselves through the binary born.
In closing, I would like to add that all of this is a thought experiment at best. I thoroughly enjoyed your comments and appreciate them.
Vitriol February 17th, 2002, 10:40 AM But it doesn't really work. It doesn't produce good programs, not to mention intelligent ones. There's a number of problems with the approach, the most important being how to judge which of these programs are 'the best.' The approach has been used to develop controller software for small mobile robots, but the most sophisticated results are things like obstacle-avoidance and so on. Insect-level intelligence, at most.
That's true, but under more controlled conditions it can produce some useful results. Software, where every variable can be controlled, now uses evolutionary algorithms for systems such as pattern recognition; which humans find very easy, but normal programs very difficult.
This can also solve the 'fitness' problem; with mere data, you can better judge the worth of each algorithm, as well as being able to run through generations many times faster.
I'm currently trying to teach my computer noughts and crosses using this method :-)
dcajacob February 17th, 2002, 11:34 AM Vit., very interesting. Are you using something similar to a hyper-matrix, as would be used for a robot to learn navigation skills? I.E. a multidimensional matrix, each of whose cells are the focus of several different inputs, so that if the robot had a collision on the left and none on the right, it could check that parameter combo in the hyper-matrix and try the same decision it used last time, or if no record exists of such a situation, it could make a new descision and test its effectiveness? Phew... that's a dumbed down, one-liner explanation, but does this sound familiar?
Vitriol February 17th, 2002, 12:34 PM Not really; even though noughts-and-crosses is a simple game with only 9 different squares, there are 986409 different possible positions, and it is also very difficult to work out if any particulat move in the sequence of was 'good' or 'bad'; it's much easier to work out the fitness of the overall game.
Essentially, I'm working with a long-term Evolutionary Algorithm approach; the 'brain' will be a single algorithm, which will be mutated into different variants, which will be pitted against one another, and the fittest bred for the next generation.
This is *much* slower than the matrix approach, but is applicable to more complex situations.
[This message has been edited by Vitriol (edited February 17, 2002).]
nicba February 17th, 2002, 03:56 PM The means I used in my fiction was to slave external, real world sensors to the fetus' brain at a certain stage of development.
Yeah, I read your story. I must admit, though, that I forgot that part when I wrote the post above.
But the question is, would such 'slaving' to real world (artifical) senses do the trick? A camera (or two for stereo vision) gives a different output than real eyes, a microphone a different output than an ear and so on. Could a (virtual/simulated) human brain interpret does kind of signals?
Also, one of the first thing babies learn is 'the gripping reflex,' i.e. to grip objects with their hand (and usually put them in their mouth...). How on earth are your external sensors going to relay that experience thruthfully? And the early rolling around and the later crawling and so forth. You would have to build a whole baby-android. Which then probably would have to be replaced once a year to simulate natural growth...ARGH!
But it's an exiting thought experiment. http://www.sffworld.com/ubb/smile.gif
dcajacob February 18th, 2002, 09:00 AM Nicba, I really appreciate your comments. Clearly there is a world of hurdles to be overcome before even the simplest form of life could be modelled using this process.
I think that I will, however go ahead with my paper. We've got some great bio people here at the Academy and I'm sure they could throw in some advice.
Meanwhile, I think that I will begin to research some of the results of the Human Genome Project and check out some of the fundamental functions of DNA. Been a while since I cracked a Biology book. Maybe I can get a self replicating Dummy DNA strand with a few good functions and some spaghetti code! If nothing else, it would be good experimental data for the paper.
Lates,
Dan
nicba February 18th, 2002, 10:07 AM Good luck with the project.
Like I said, I think it's a fascinating idea. So keep thinking and keep writing!
vBulletin® v3.8.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.
| |