2
$\begingroup$

I want to make a small model of A.I. which can learn itself. I am inspired by 1000+ monkey theorem which states that if 1000+ monkey bangs a keyboard for enough long, then they will eventually produce a Shakespeare's play. So, if you give a banana to one monkey when he produce a correct word, then he would eventually learn to do correct things. I think it is related to neural network.

So, practically i want to start with basic alphabets and digits and then my program would permutate and combine those to form words. Now, if the words they form matches with those in English Dictionary, i want to reward the program. However i couldn't think of any possible approach to this. How could this be implemented?

$\endgroup$
  • $\begingroup$ Welcome to Computer Science! A reference request like yours is too broad for Stack Exchange -- you ask for a survey of a whole research area! You need to narrow your focus considerably before a question of reasonable scope appears. Try talking to your advisor(s), search with Google Scholar and check out this guide to better (re)searches on Academia. $\endgroup$ – Raphael May 12 '16 at 9:49
1
$\begingroup$

The "Infinite Monkey Theorem" doesn't say that monkeys will learn. On the contrary: it says that if monkeys keep typing random stuff long enough (i.e. not using any sort of learning), the works of Shakespeare will eventually come out purely by chance. It is the Law of Truly Large Numbers.

So you're right: you need to build feedback into the system. The program should change its behavior based on your feedback. This is known as reinforcement learning and it is used a lot in AI. An overarching term for this, I believe, is machine learning.

| cite | improve this answer | |
$\endgroup$
  • $\begingroup$ Reinforcement learning is what i was seeking for. However, i couldn't see the way to implement it. Maybe i should research more. $\endgroup$ – Sagar Mehar May 11 '16 at 18:12
  • $\begingroup$ I can see many ways to implement it, but I feel you'll always hardcode some preconceived notion of what you want the program to learn and how. $\endgroup$ – reinierpost May 12 '16 at 18:27
0
$\begingroup$

A similar experiment (based on cumulative selection) is described in The Blind Watchmaker:

Suppose that he [a monkey] has to produce, not the complete works of Shakespeare but just the short sentence METHINKS IT IS LIKE A WEASEL, and we shall make it relatively easy by giving him a typewriter with a restricted keyboard, one with just the 26 (capital) letters, and a space bar.

CUT

[A computer program] again begins by choosing a random sequence of 28 letters, just as before... it duplicates it repeatedly but with a certain chance of random error – 'mutation' – in the copying. The computer examines the mutant nonsense phrases, the 'progeny' of the original phrase, and chooses the one which, however slightly, most resembles the target phrase, METHINKS IT IS LIKE A WEASEL.

(for further details and a simulation you can take a look at http://www.evoinfo.org/weasel.html)

You can try something like that or experiment with evolutionary algorithms (especially ideas from evolutionary art).


By the way, real monkeys don't write Shakespeare.

| cite | improve this answer | |
$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.