0

У меня есть программа, которую я пишу, и мне интересно, как я буду использовать какой-то алгоритм AI для своей программы, чтобы он мог узнать и присвоить соответствующие значения веса моим полям.Как я могу использовать алгоритм искусственного интеллекта для программы, чтобы узнать и присвоить соответствующие значения веса?

Например, у меня есть поля a, b, c, d и e. Каждое из этих полей будет иметь разные веса, потому что поле a более ценно, чем d. Мне было интересно, как я буду заниматься этим, чтобы я мог нормализовать свои ценности и использовать сумму этих значений для сравнения.

Пример:

Weight of a = 1 
Weight of b = 2 
Weight of c = 3 
Weight of d = 4 
Weight of e = 5 

На сумму умножить значение каждого поля с присвоенным вес:

Result = (value of a) * 1 + (value of b) * 2 + (value of c) * 3 + (value of d) * 4 + (value of e) * 5 

Ищу ввести несколько обучающих данных и обучить свою программу, чтобы узнать и сравнить a, b, c, d, e, которыми обладает каждый объект, чтобы он мог присваивать веса каждому из них.

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

+0

Что вы пробовали? С какими проблемами вы столкнулись? В чем ваш вопрос? –

ответ

0

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

Если result может быть правильным или неправильным в категориальном ключе, то нейронная сеть будет отличным вариантом. Вы можете использовать двухслойную топологию (т.е. все входные узлы подключены к каждому выходному узлу, без слоя между ними), и каждый входной узел соответствует одному из ваших полей (a, b, c и т. Д.), , Затем вы можете использовать backpropagation для обучения сети, чтобы каждый набор значений полей отображался в правильной категории. Кромки, которые вы заканчиваете в конце, будут весами, которые должны ассоциироваться с каждым полем.

Однако, если result может быть более или менее точным в каком-либо виде, генетический алгоритм , вероятно, является лучшим решением. Это может быть так, если вы сравниваете result с некоторым идеальным значением, если вы используете весы в какой-то функции с оценочным результатом (например, с игрой) или с другой подобной ситуацией. Используемая вами функция фитнеса будет зависеть от ваших конкретных обстоятельств (для приведенных выше примеров вы можете использовать близость к идеальному значению или коэффициент выигрыша при проигрывании в игре с этими значениями). Существует множество способов форматирования решений для кандидатов:

  • Один из вариантов заключается в использовании последовательности битовых строк, представляющих каждый вес в двоичном формате. Мутации могут переворачивать любой бит, и пересечение может происходить в любой точке вдоль строки (или вы могли только разрешить это происходить между числами).
  • Если вы хотите разрешить значения с плавающей запятой, вы можете быть лучше использовать система, в которой каждое решение кандидата представляет собой список весов. Мутации могут добавлять или вычитать из заданного веса кроссовер может произойти в любой точке списка.

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

+0

Прежде всего, спасибо вам за отличный ответ! Это для простого симулятора спортивной фантазии/помощи. Каждый стат, обладающий игроком, будет иметь вес и умножать все эти значения веса и стата вместе (например: Точки * 0.5 + Rebounds * 1 + и т. Д.) Приведет к конечному значению, которое мы могли бы использовать, чтобы сравнить его с другие другие игроки. Проблема в том, что я не знаю, с чего начать при определении этих весов, поэтому я искал алгоритм AI, который помог бы мне выполнить это, чтобы соответствующим образом присвоить веса (будь то по историческим данным, средним и т. Д.). Спасибо! – therealblee

+0

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