In this post, described example of how "mutation" genetic programming term, can be applied for self-modifying functions.
Now I am inspired by idea of genetic programming in application to functional.
This approach is different from "classical" genetic programming approach, where solution to task of optimization is founded, using solutions generated by genetic algorithm, and calculating difference of solution searched, and proposed solution, with use of fitness function.
The idea is following:
- Functions could be supposed as living beings.
- Function code itself, presents it's DNA.
- Mutation can be presented by random change of function part.
- Crossover can be presented by splitting functions to parts and than joining parts of functions together to get new function.
From the existing languages for the prototyping such functional beings, JavaScript, looks like the most convenient for me.
Saturday, March 15, 2008
Evolving functional programming in Javascript(II)
Posted by
Roman G.
at
6:45 PM
0
comments
Labels: AI, genetic, javascript
Tuesday, March 11, 2008
Evolving functional programming in Javascript(I)
On this page presented self-modifying JavaScript code example.
It is implementation of mutating JavaScript function. "mutate()" function used for modification of "execute()" function. "execute()" function performs some iteration with web page.
You can modify code of the functions in the text boxes on the page , and it will affect execution.
It seems, that JavaScript in some aspects even cooler than lisp.
That is really good feature, is JavaScript code placed on same board, as all document in browser.
So "code is data" 'unique' lisp feature is even clearer in JavaScript.
Posted by
Roman G.
at
2:03 AM
0
comments
Labels: AI, genetic, javascript
Saturday, August 25, 2007
Human learning vs. machine learning.
For example, we have set of rules describing the deterministic operation ( transforming input to output), and task to teach a human and a computer to perform the operation.
To teach the human we need:
1) Describe the rules of the operation performing in the language.
2) Test knowledge (pass human through the tests), and check.
3) If human not having practice, for a time, we need to repeat the steps 1) and 2).
To teach the computer we need:
1) Describe the rules of the operation performing in the language.
It is all, if the 1) done perfectly. (We can test 1), but in fact it will be the test of our capabilities to describe operation, not the capabilities of the computer).
As the result, we would have the computer, that works most probably much better than the human, for the operation, with less efforts for teaching (If the labor intensity of the description in the computer language is equal to the description in the human language) .
It seems very simple, but there is conflict with the reality. Why neural networks are still popular concept? Why such a big amount of operations are still done by humans?
Posted by
Roman G.
at
7:18 PM
0
comments
Labels: AI
Monday, August 20, 2007
video
Liner algebra used in statistical AI methods.
Video-lectures on linear algebra from MIT here: http://web.mit.edu/18.06/www/Video/video-fall-99-new.html (As "Professor Strang's Linear Algebra Class Lecture Videos")
Presented is advanced curse on matrix calculations, and can be helpful.
Posted by
Roman G.
at
11:52 PM
1 comments
Labels: AI
Sunday, August 19, 2007
Artificial Intelligence: A Modern Approach book
And the book is:
Peter Norvig's and Stuart Russell's book on AI.
First chapter is more about history of the AI problem, rather than on AI methods itself.
At the end of this chapter,some tasks for the personal explorations presented.
The first (1.1) question in the book is to define Intelligence, AI, and agent.
My Answers (IMHO):
Intelligence is the ability to make rational decisions, depending of the environment state, act with this decisions, and transfer decisions, and methods of problem solving in the form of message that can be interpreted by others.
This ability of transforming thoughts is key feature,which differs humans from animals. Seems that without this feature society will be primitive still.
As to the Artificial Intelligence, it seems that for artificial entity, that can repair itself (so it is no reason to transfer experience) this may be not necessary.
Q: "Act rationally".
A: Formally it is maximization of the utility function (or objective function) , depending from the task of the Agent. The problem so is what is the goal function for self-reacting device? It seems that there are lack of definition.
I'll define the main goal function of such agent as survival. For example, algorithm for the prediction of the quote on financial market, will survive only if this algorithm predicts well.
Q: Definition of an Agent.
A: The agent is something that maximizes its goal function (That is survival, as defined).It seems there are no self-destroying Agents.
Well, further I'll try to describe my thoughts on the other questions.
At the end some links related to the questions in the first chapter of the book.
jabberwacky bot (some kind of Joan bot, that won bronze on last chatbots competition)
(Example of talk with this bot:
Me:I am thinking about ability of machine to think. May be you know something about it?
Bot: I'd bet it's got some sort of extremely rare spice in it or something.
Me:My name is Roman. And You?
Bot:You know my name.
Me:And what is it?
Bot:What's my name?
Me:Definitely.
Bot:I said boys or girls.
Me:?
Bot:Don't be. *Hug*.
Me:So what are your thoughts on artificial intelligence?
Bot:I have infiltrated your computer and infected your drive processor.
Me:Are you joking?
Bot:Is your face joking?
not very like human, that tries to act like human, if it knows about jury, isn't it?)
Loebner Prize (chat bot competition, for Turing test completion)
http://www.loebner.net/Prizef/TuringArticle.html - Alan Turing article, that defined research for the past 50 years.
Posted by
Roman G.
at
11:17 PM
0
comments