Может ли кто-нибудь помочь мне создать простой алгоритм машинного обучения для приложения «домашнее животное» - PullRequest
2 голосов
/ 04 февраля 2011

Я создаю симулятор организма для Android, поэтому я думаю, что в идеале алгоритм должен быть на Java.Я понимаю, что на youtube есть целый курс по машинному обучению в Стэнфорде, но у меня просто нет времени, чтобы разобраться в этом, и я думаю, что для моих целей решение может быть очень простым.

С организмом в первую очередь будет взаимодействовать сенсорный экран, или даже если он взаимодействует через микрофон или акселерометр, входные данные в алгоритме будут в основном равны координатным позициям для разных конечностей.Я думаю, что будет нелегко иметь механизм «нагоняй» или «вознаграждение» за случайное поведение, поэтому я бы хотел этого избежать.Поэтому целью было бы отслеживание общих направлений или схем в движениях и возможность повторять их, когда они имеют достаточно высокую частоту.

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

РЕДАКТИРОВАТЬ: Это генетический алгоритм?Проблема в том, что я понятия не имею, как измерить успешную или неуспешную эволюцию.

РЕДАКТИРОВАТЬ 2: Хорошо, я постараюсь добавить как можно больше деталей.В данный момент приложение все еще находится в стадии разработки, но я просто хотел знать, насколько сложным будет его алгоритм.Так что я строю это в Processing, которая на самом деле просто Java.Организм будет состоять из конечностей, которые имеют фиксированное расстояние между ними, но могут перемещаться независимо от центральной части.Конечности свободно передвигаются и периодически находят случайные точки для облегчения.У организма будет центральный придаток, который также имеет координаты x и y, и каждая из внешних конечностей будет двигаться относительно этого.Пользователь может взаимодействовать с организмом, вручную перемещая придатки или центральную часть с помощью перетаскивания на сенсорном экране.Когда с организмом взаимодействуют, именно здесь будет использоваться алгоритм, потому что нет смысла учиться только на случайных числах.Таким образом, я предполагаю, что алгоритм будет принимать во внимание координаты x и y центральной части, и каждый придаток будет иметь свою собственную версию алгоритма, который учится независимо от других.Например, если пользователь постоянно перетаскивает организм к правой стороне сенсорного экрана, он может быть более привлекательным для этого места, когда с ним не взаимодействуют.Я надеюсь, что это немного проясняет.

Ответы [ 2 ]

2 голосов
/ 04 февраля 2011

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

  • Наблюдаемые переменные: положение придатка, сколько раз с конкретным взаимодействует, как долго, ...
  • Переменные, которые вы хотите предсказать: с каким отростком будут взаимодействовать в следующий раз, ...

Получив входные и выходные переменные, вы можете попытаться просмотреть список стандартных алгоритмов машинного обучения. Есть Weka (Java), Rapidminer, KNIME ... и библиотеки, и автономные инструменты. Попробуйте бросить свою проблему в доступные инструменты и посмотреть, если вы делаете лучше, чем шанс.

Если это так, настройте его параметры. Если вы работаете не лучше, чем случайные, вам следует обратиться к друзьям по Data Mining / Machine Learning. Они будут лучше знать, что будет работать для вашей проблемы.

Другие вещи, которые могут повлиять на ваш выбор алгоритмов:

  • Есть ли скрытые состояния?
  • Являются ли переменные независимыми?
1 голос
/ 13 апреля 2012

На мой взгляд, все, что вам нужно сделать, это иметь массив, например, координат придатка, затем просто усреднить их и заставить его двигаться к этой точке на экране

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...