I was thinking about Neurel networks and memory an human brain. And about how humans can remeber stuff. You can easily remember stuff in your short-term memory. But remembering sruff that is not in it, requires a stimulus. In my perception (I don't know whether it is right or wrong), you can do so cuz you can make a loop on all the stuff in your short-term memory cuz it is small enough. But your long-term memory have incridible amount of data, as proven a human never forgets anything, you remember every smell every event every picture, even if you saw it for less than a second, you just don't know that. So it is impossible to traverse it unless the part you are traversing are well structured (from understanding), or from a stimulus from the short memory. To see that, see what you do when you try to remember something, you always try to remember something you aculally remember then see if that recalls something, if not, you remember the second thing and so on, till you find what you want to remember or you fail.
I am still thinking, what that have to do with a neural netword representation ? I don't think it is simple as simple recursive neural networks. As in NERO game (http://nn.cs.utexas.edu/NERO/about.html) skills are encoded in the neural netword structure. What is the difference between skills and knowledge in the storage context ?
Another thing, neural networks and genetic algorithms have united in that game (and long time before it too, that game's just testing modifying the net structure not just the weights), but I think there must be a way to involve SWARM in a more sophisticated way to enhance learning. I am also thinking about some informed neuroevolving agorithm, not only making offsprings by random mutations and combinations, but by have an insight about the neural network way of working, although humans don't know it yet; a neural network, in my perception, is just a big generic boolean formula.
This is all ideas of research, which I hope it wasn't made before.
"Beneath this mask there is more than flesh. Beneath this mask there is an idea, Mr. Creedy, and ideas are bulletproof" - V for Vendetta
Thursday, August 10, 2006
Wednesday, August 9, 2006
Programming riddle 1
I have needed to do this for a topcode.com problem, the problem was to rotate an integer, so 78 becomes 87 and 40098 becomes 984. I have sloved it (numerically, not as string). But I am gonna give you a part of it to solve, get me the highest significant digit. In 78639 the highest signigicant digit is 7. It is the left most one. Anyone have an idea :) ?
You are to solve it numerically, not by converting it to string and getting the first character.
(hint: highlight the text to see the hint
consider using logarithms
)
You are to solve it numerically, not by converting it to string and getting the first character.
(hint: highlight the text to see the hint
consider using logarithms
)
Tuesday, August 8, 2006
Is this called a chat bot or it is more complex 1
The Arab OS now is at the phase where it is ready to integrate with a memory manager and a process manager. So since the memory manager phase are somohow separated from the previous bootstrap phase, I decided to have a break from the OS for now (it have been a month and a half, I think). I am some how considering a new name, since ArabOS is just a development name, I thought about ArOS, what do you think ?
Anyway, in the break I have been interested in a new field, Natural Language Understanding. After I have seen a Question Answering System (QAS) in the ESEA Job Fair. Not all NLP applications are NLU, in my perception. Anyway, I thought about an application that can learn by itself from the web, or from you, and you can ask it for information, and personal opinions, and exchange jokes, and you can give it orders, like open that media player, play that song, or if it is a robot, move that TV, etc. I don't think this is just a chatter bot. chatter bots techniques are somewhat hardcoded answers or behaviours for certain patterns. There is A.L.I.C.E chatter bot, which depends on a large XML database of hardcoded-templated answers which he chooses an answer at random (it seems good at low level of complexity in the input). There is also encarta@conversagent.com which depends on an SDK which maps behaviour to certain templates.
Anyway, a chatter bot is desgined for making coversations, it won't be able to summerize information on its own. But an information retrieval application can like http://start.csail.mit.edu. Although that 'Start' can make very basic context tracking and a dialog answering skills, it is not in the same level as the previous too; it is not much of information retrieval system as it is of a QAS. Information retrieval (or information extraction), in my perception, is more complex than a QAS. It is the same difference between "get me info about cooperation between Masers and Lasers, and the relation between those and the hypersymmetry theory", and "how can Masers and Lasers cooperate?".
In the Artificial Intelligence, structures and strategies for complex problem solving, George F. Luger, chapter 13, "understanding natural languge"; it mentioned that SHRDLU block world's application have showed that a 100% knowledge of the world, can make natural language communication possible.
to be continued...
Anyway, in the break I have been interested in a new field, Natural Language Understanding. After I have seen a Question Answering System (QAS) in the ESEA Job Fair. Not all NLP applications are NLU, in my perception. Anyway, I thought about an application that can learn by itself from the web, or from you, and you can ask it for information, and personal opinions, and exchange jokes, and you can give it orders, like open that media player, play that song, or if it is a robot, move that TV, etc. I don't think this is just a chatter bot. chatter bots techniques are somewhat hardcoded answers or behaviours for certain patterns. There is A.L.I.C.E chatter bot, which depends on a large XML database of hardcoded-templated answers which he chooses an answer at random (it seems good at low level of complexity in the input). There is also encarta@conversagent.com which depends on an SDK which maps behaviour to certain templates.
Anyway, a chatter bot is desgined for making coversations, it won't be able to summerize information on its own. But an information retrieval application can like http://start.csail.mit.edu. Although that 'Start' can make very basic context tracking and a dialog answering skills, it is not in the same level as the previous too; it is not much of information retrieval system as it is of a QAS. Information retrieval (or information extraction), in my perception, is more complex than a QAS. It is the same difference between "get me info about cooperation between Masers and Lasers, and the relation between those and the hypersymmetry theory", and "how can Masers and Lasers cooperate?".
In the Artificial Intelligence, structures and strategies for complex problem solving, George F. Luger, chapter 13, "understanding natural languge"; it mentioned that SHRDLU block world's application have showed that a 100% knowledge of the world, can make natural language communication possible.
to be continued...
Saturday, July 22, 2006
Long way to go OS
While I was searching on how to switch to graphics mode so I can support Arabic text in the console, I ran into the Linux Framebuffer project. It makes their console supports graphics and unicode - and evening basic windowing and events. I looked a little into the source, basically they implemented tens of times, each for a specific VGA vendor or so. The important thing is that they really have a biiig work to support text on that "console" - A whole folder. While there were hundreds of files in that project, I saw only two or three. Each one not less thant 3000 lines. Especially the fbcon.c :S. I checked what stuff they call in the kernel, they at last include 20 header files of linux kernel, so porting is not an option. They also call semaphores and other stuff. So I think it is still too early for this kind of work for this OS - at least to be such integral and perfect. Maybe basic support for arabic character will be much simpler - I hope!
It is - as I seen in the linux kernel - a long way for us, but we will never arrive there if we didn't move - even if a cm per year. By saying "oh, it too long way, I won't do it" we are going no where. I believe in that integration over a very tiny development produces a big piece of work, but if there is no tiny development -"continuously" by the book - it won't be integrable and nothing would be produced.
For now I am still working on the low-level allocator. I think we're past the phase just-do-something-that-just-works. Making such thing will make it harder to optimize and maintain. So I am taking the very slow careful way. Maybe even at times leaving it and returning to older parts of other modules. At this time I am seeking code consistency and maintainability. Making something that just works and returning to make it better later means that you *will* rewrite it, it is a fact. The only problem here is that we didn't make an OS before we don't know how maintainability needs at this level. We yet have to keep going till we know, which is bad thing. The only thing that can make that better is to go for new modules and return to older code, and so on for every new aspect of the system to insure integrity and consistency and expected behaiuor is really what is expected.
Do you think I should move all this OS stuff to a seperate blog ? I am thinking in it.
It is - as I seen in the linux kernel - a long way for us, but we will never arrive there if we didn't move - even if a cm per year. By saying "oh, it too long way, I won't do it" we are going no where. I believe in that integration over a very tiny development produces a big piece of work, but if there is no tiny development -"continuously" by the book - it won't be integrable and nothing would be produced.
For now I am still working on the low-level allocator. I think we're past the phase just-do-something-that-just-works. Making such thing will make it harder to optimize and maintain. So I am taking the very slow careful way. Maybe even at times leaving it and returning to older parts of other modules. At this time I am seeking code consistency and maintainability. Making something that just works and returning to make it better later means that you *will* rewrite it, it is a fact. The only problem here is that we didn't make an OS before we don't know how maintainability needs at this level. We yet have to keep going till we know, which is bad thing. The only thing that can make that better is to go for new modules and return to older code, and so on for every new aspect of the system to insure integrity and consistency and expected behaiuor is really what is expected.
Do you think I should move all this OS stuff to a seperate blog ? I am thinking in it.
Subscribe to:
Posts (Atom)