Автономное программное обеспечение - PullRequest
4 голосов
/ 22 апреля 2009

Кто-нибудь написал какой-либо код, где приложение в его всю жизнь учиться и совершенствовать себя (используя данные наблюдений хранится в КБ), есть ли какие-либо рамки для этого?

Ответы [ 4 ]

3 голосов
/ 22 апреля 2009

Я написал учебную Tic Tac Toe (или Noughts and Crosses) игру один раз. Это считается?

В основном он содержал массив элементов 3 9 , который был для каждого игрового состояния. В конце каждой игры было бы добавлено одно ко всем состояниям во время этой игры, если бы она выиграла. Или вычтите один, если он потерян (включая вращения и зеркальные изображения для более быстрого обучения).

При принятии решения о переходе ему нужно было только рассмотреть несколько возможностей и выбрать тот, который набрал наибольшее количество очков.

Все закончилось довольно неплохо, но не в роли человека, это заняло слишком много времени. Его нужно было разыграть, разыгрывая еще одну собственную копию, случайного бота и жестко запрограммированного бота-правила для многих, многих тысяч игр.

Когда я выпустил его, у него было 10 начальных уровней интеллекта, которые были просто разными этапами в процессе обучения.

Мой сын в настоящее время играет против самого глупого уровня - ему всего четыре года, поэтому я не хочу быть слишком грубым с ним, поэтому они будут учиться вместе (хотя он иногда бьет меня в Connect Four, так что, возможно, Я должен оказать еще большее давление на него).

1 голос
/ 09 мая 2009

В этом предыдущем посте перечислены некоторые стандартные учебники, из которых я настоятельно рекомендую Искусственный интеллект - современный подход (AIMA) от Russel / Norvig.

Из многих доступных наборов инструментов Я предлагаю взглянуть на Orange , SciPy (оба Python) или Weka (Java ).

1 голос
/ 22 апреля 2009

Ваш вопрос ИМХО очень широкий. Большинство спам-фильтров будут соответствовать вашему описанию. Но в целом ваш подход будет зависеть от того, что приложение должно изучать и как оно должно учиться. Спам-фильтры, например, обычно делают обучение под наблюдением. Но если вы не хотите, чтобы пользователь помог вам в изучении вашего приложения, вам придется использовать неконтролируемые методы обучения. Конечно, есть и другие варианты. mloss.org имеет множество библиотек с алгоритмами ML, которые вы можете использовать. Но для большинства библиотек полезно, если вы хотя бы приблизительно знаете, как работают их алгоритмы.

Лучше всего, если вы прочитали несколько книг по машинному обучению (например, Машинное обучение Митчелла) и ИИ.

1 голос
/ 22 апреля 2009

Я бы предложил начать поиск по многим продвинутым темам ИИ в Интернете: такие темы включают нейронные сети, генетическое программирование и т. Д. (Википедия их).

Хорошие места, чтобы посмотреть также включают в себя исследования университета в более высоких уровнях ИИ (т.е. я знаю группу людей, которые написали программу, которая экстраполировала законы движения, заставляя компьютер наблюдать за качанием маятника с помощью камеры; очень крутые вещи) http://blog.wired.com/wiredscience/2009/04/newtonai.html

Это действительно большое поле, и вам нужно будет написать много кода; то, на чем вы должны сосредоточиться, - это концепции алгоритмов обучения, так что вы можете программировать или адаптировать те, которые вы найдете, к вашим потребностям. Я думаю, что это будет лучшим выбором для создания алгоритма обучения.

Надеюсь, это поможет.

...