Standalone software

Has anyone written any code where an application learns and improves itself during its life cycle (using the observable data stored in KB), is there any framework for this?

+4
source share
4 answers

I once wrote an educational game Noughts and Crosses Tic Tac Toe (or Noughts and Crosses ). Does it count?

Basically, he supported an array of elements 3 9 which was for each state of the game. At the end of each game, she would add one to all states during this game if she won. Or subtract it if it is lost (including rotations and mirror images for faster learning).

When deciding on a move, he only needed to consult with several options and choose the one that has the highest score.

As a result, it turned out not bad, but without playing a person who took too much time. He had to be freed by playing another copy of himself, a random bot and a hard-coded rule for many, many thousands of games.

When I unleashed it, he had 10 initial levels of intelligence, which were just different stages during the learning process.

My son is currently playing against the toughest level - he is only four years old, so I don’t want to be too rude on him, so they will study together (although he sometimes beats me in Connect Four , so maybe I should put on him even more pressure).

+3
source

I would advise starting to consider a lot of advanced AI topics on the Internet: such topics include neural networks, etc. (wikipedia them).

Good places to search also include university studies in higher levels of AI. (i.e. I know a team of people who wrote a program that extrapolated the laws of motion from the computer looking at a pendulum swinging with a camera, very cool stuff) http://blog.wired.com/wiredscience/2009/04 /newtonai.html

This is a really big field and you need to write a lot of code. what you need to focus on is the concept of learning algorithms, so you can program or adapt the ones you find in your needs. I think this will be your best choice for creating a learning algorithm.

I hope this helps.

+1
source

Your IMHO question is very broad. Most spam filters will match your description. But overall, your approach will depend on what the application needs to learn and how it should learn. Spam filters, for example, typically monitor training. But if you do not want the user to help learn your application, you would need to use uncontrolled teaching methods. Of course, there is still a choice. mloss.org has many libraries with ML algorithms that you could use. But for most libraries, it is useful if you know at least roughly how their algorithms work.

Best of all, you read some books on computer training (like Mitchell Machine Learning ) and AI.

+1
source

This previous post lists some standard text books, of which I highly recommend Artificial Intelligence - A Modern Approach (AIMA) by Russel / Norvig.

many toolkits available I suggest taking a look at Orange , SciPy (both Python) or Weka (Java).

+1
source

All Articles