アプリケーションがその存続期間中に(KBに格納された観測データを使用して)それ自体を学習および改善するコードを書いた人はいますか?このためのフレームワークはありますか?
4 に答える
Tic Tac Toe
一度、学習(またはNoughts and Crosses
) ゲームを書きました。それは重要ですか?
基本的に、各ゲーム ステート用の 3 9要素の配列を維持していました。各ゲームの終わりに、勝った場合、そのゲーム中のすべての状態に 1 を追加します。または、失われた場合は 1 を引きます (学習を高速化するための回転と鏡像を含みます)。
移動を決定するとき、いくつかの可能性を調べて、最高のスコアを持つものを選択するだけで済みました。
最終的にはかなり良くなりましたが、人を演じるのではなく、時間がかかりすぎました. それ自体の別のコピー、ランダム ボット、ハードコードされたルール ボットを何千ものゲームでプレイするために、自由に設定する必要がありました。
私がそれを解き放ったとき、それは学習プロセス中の異なる段階である 10 の開始レベルの知性を持っていました.
私の息子は現在、最も頭の悪いレベルの相手と対戦しています - 彼はまだ 4 歳なので、私は彼にあまり手荒なことを言いたくないので、一緒に学んでいきます (ただし、彼は .0 で私を打ち負かすこともConnect Four
あるので、もう少しプレッシャーをかける必要があるかもしれません)。彼に)。
この以前の投稿には、いくつかの標準的な教科書がリストされています。そのうち、Russel/NorvigによるArtificialIntelligencea Modern Approach(AIMA)を強くお勧めします。
利用可能な多くのツールキットのうち、Orange、SciPy(両方ともPython)、またはWeka(Java)を見てみることをお勧めします。
Web で多くの高度な AI トピックを調べ始めることをお勧めします。そのようなトピックには、ニューラル ネットワーク、遺伝的プログラミングなどが含まれます (wikipedia それら)。
より高いレベルの AI に関する大学の研究も、注目に値する場所です。(つまり、コンピューターにカメラで振り子の揺れを観察させて、運動の法則を推定するプログラムを書いたチームを知っています。非常に素晴らしいものです) http://blog.wired.com/wiredscience/2009/ 04/newtonai.html
これは非常に大きな分野であり、多くのコードを作成する必要があります。本当に注目すべきは、学習アルゴリズムの背後にある概念です。そうすることで、見つけたものをニーズに合わせてプログラムまたは適応させることができます。学習アルゴリズムを作成するための最善の策になると思います。
それが役立つことを願っています。