LINUX.ORG.RU

Применение нейронных сетей для игр с неполной информацией

 , ,


0

1

Здравствуйте. Вопрос по сабжу.

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

Но вот как поведёт себя нейронка в игре, где нет полной информации? Например, вот та же карточная игра «Дурак» (да, там много вариаций, но возьмём какую-нибудь одну : подкидной, непереводной, например).

Реально ли в таких случаях научить нейронную сеть правильно играть?

Есть пара идей по этому поводу, но хотелось знать мнение по этому поводу более опытных людей

как поведёт себя нейронка

Как научишь — так и поведёт

Реально ли в таких случаях научить нейронную сеть правильно играть?

Да. Её даже в магазин за пивом ходить научить более чем реально. И даже выбирать пиво по вкусу хозяина.

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

Goury ★★★★★
()
Ответ на: комментарий от Goury

Но нейронная сеть может же принять решение, даже если при обучении ИМЕННО ТАКОГО не было. Или я не прав? Ведь если скормить ей 100500 изображений котиков, то она распознает 100501 котика. Пусть картинка будет и другая. А в случае игры дурака, то я представляю себе это так : ну если в процессе обучения попадалась такая ситуация, то хорошо, у нас уже было такое, мы что-то помним. Если же нет, то у нас же были похожие состояния. На их основании мы можем принять решения.

Безусловно, мы должны учитывать много-много факторов(это основная проблема). Но это же вроде как возможно.

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

zamazan4ik ★★
() автор топика
Ответ на: комментарий от torvn77

По сути, это и есть жалкая попытка накодить человека :)

zamazan4ik ★★
() автор топика
Ответ на: комментарий от zamazan4ik

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

Ну зачем вот так сразу за перебор картотеки приниматься?
Почему бы не поставить стратегические цели, или не сделать алгоритм для реализации определённой тактики?

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

torvn77 ★★★★★
()
Ответ на: комментарий от torvn77

Я правильно понял, что Вы предлагаете поставить нейронной сети некоторые цели, расставить между ними коэффициенты-приоритеты, и чтобы она старалась достичь этих минимумов?

А как тогда здесь скажется процесс обучения?

zamazan4ik ★★
() автор топика
Ответ на: комментарий от zamazan4ik

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

torvn77 ★★★★★
()
Ответ на: комментарий от zamazan4ik

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

torvn77 ★★★★★
()

Реально ли в таких случаях научить нейронную сеть правильно играть?

Мозг же умеет. Или игры с неполной информацией даются человеку с божией помощью?

anonymous
()
Ответ на: комментарий от torvn77

Творческое начало это как раз то «что-нибудь новое придумать», которое нейронки пока не научились и на ближайшие лет десять перспектив пока не видно в этом поле.

Goury ★★★★★
()
Ответ на: комментарий от zamazan4ik

Ненене, «укажу все данные» и «ИМЕННО ТАКОГО» это не про нейронки, это именно про классическое программирование. Нейронки совсем не так работают.

В примере с пивом нормальная нейронка будет поить тебя всем чем попало и смотреть на твою реакцию на этапе обучения. А потом посчитает какие факторы на что влияли и будет выбирать то, которое под них наиболее подходит.

Goury ★★★★★
()

Не путай нейронку, ЭВМ и мозги. Это разные вещи. Нейронку можно научить играть в дурака, но пока ты будешь её учить, сам дураком станешь. Пиши классический алгоритм с деревом ходов и альфа-бета отсечением, по идее он должен быть довольно простым. Анализируй на несколько ходов вперёд в зависимости от уровня сложности или допускай элемент рандома на простой сложности.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

да,я знаю такой алгоритм игры. Но хотелось бы попробовать именно нейронную сеть. Вы думаете, что она много хуже покажет себя(даже если при обучении её использовать алгоритм с альфа-бета отсечением)?

zamazan4ik ★★
() автор топика
Ответ на: комментарий от Goury

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

zamazan4ik ★★
() автор топика
Ответ на: комментарий от peregrine

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

Правда я не знаю, во что сложнее научить играть нейронку - в шахматы те же или шашки, или же в такого дурака. Тут я не совсем осознаю. Объясните, если несложно.

zamazan4ik ★★
() автор топика

Научить реально, смысла не так много.

Solace ★★
()
Ответ на: комментарий от zamazan4ik

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

Goury ★★★★★
()
Ответ на: комментарий от zamazan4ik

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

Goury ★★★★★
()
Ответ на: комментарий от vazgen05

Не в этом году и даже не в этом десятилетии. Дешёвые gpu и множество наработок позволяют использовать сети куда большему количеству человек.

Solace ★★
()

Реально ли в таких случаях научить нейронную сеть правильно играть?

Да, например, самоорганизующаяся карта Кохонена © применяется для поиска закономерностей в больших массивах данных.

quickquest ★★★★★
()
Ответ на: комментарий от Goury

Нейронки тупые в том плане, что сами они что-нибудь новое придумать не могут в принципе.

Могут, если в тупиковых ситуациях задействовать случайный выбор. Например, если робот понял, что шагая с оптимальным импульсом толчков ногами он не может выбраться из 2D лабиринта, то включив случайный импульс ног, он может случайно выпрыгнуть из него, возможно, через «мильёны» попыток или лет :)

Для робота новизна — это случайная удача, закреплённая в «памяти удач». А эволюция — иерархическая система таких удач.

P.S. SOINN — один из примеров.

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

Например, если робот понял, что шагая с оптимальным импульсом толчков ногами он не может выбраться

Что означает в данном контексте «понял»? Как происходит это понимание?

ambiguousnick
()
Ответ на: комментарий от ambiguousnick

Что означает в данном контексте «понял»? Как происходит это понимание?

Понял — обошёл весь лабиринт, но не вышел, зациклился. В этот момент (например, по переполнению счётчика числа обходов лабиринта) включаются случайные действия, не предусмотренные в штатном режиме.

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

Это нельзя называть пониманием. Это заранее заложенное детерминированное поведение. Банальщина. Обычная программа, ничего особенного.

ambiguousnick
()
Ответ на: комментарий от ambiguousnick

Это нельзя называть пониманием.

Твоё определение понимания — в студию!

Это заранее заложенное детерминированное поведение. Банальщина.

Жизнь хомо сапиенсов — аналогичная банальщина, с поведением, заложенным в ДНК и модифицируемым внешними случайными условиям.

Обычная программа, ничего особенного.

Дык, это можно сказать про любую программу :)

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

Твоё определение понимания — в студию!

Допустим, ты просишь кого-то пойти в какую-то комнату, и посчитать стулья. Ты не говоришь ему, «считай считай стулья, а когда они кончатся остановись, и возвращайся с результатом», человек сам понимает, когда ему остановиться. Вот это и есть примитивный случай понимания.

Жизнь хомо сапиенсов — аналогичная банальщина, с поведением, заложенным в ДНК и модифицируемым внешними случайными условиям.

Весьма узкий взгляд.

Дык, это можно сказать про любую программу

Вряд ли. Напомню, что нейронные сети — это самообучающиеся программы. А то что ты тут приводишь — это обычные ветвления.

ambiguousnick
()
Ответ на: комментарий от quickquest

Твоё определение понимания — в студию!

Что за интерес кормить шизофреника, тем более в сезон. Оно же сейчас всю тему загадит.

anonymous
()
Ответ на: комментарий от ambiguousnick

Понять - это означает найти модель наблюдаемого явления, которая обладает объяснительной и предсказательной силой, а также может быть использована в корыстных целях.

Говорить о нейронных сетях, как о самообучающихся программах - это как бы да, но нет. Истинное самообучение - это reinforcement learning. А в нем NN - никто. С натяжкой самообучением NN можно назвать unsupervised learning, но тут опять материал для кластеризации готовит обучающий.

rubic
()
Ответ на: комментарий от ambiguousnick

человек сам понимает, когда ему остановиться.

Человек сам понимает и останавливается, когда в голове срабатывает триггер уже учтённого стула. Нет отличий от робота.

Весьма узкий взгляд.

Алгоритм «божественной души» — в студию! :)

Напомню, что нейронные сети — это самообучающиеся программы. А то что ты тут приводишь — это обычные ветвления.

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

quickquest ★★★★★
()

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

Deleted
()
Ответ на: комментарий от quickquest

Человек сам понимает

Угу, причем в днк ты не найдешь программы подсчета стульев. А сам днк, внезапно, мутирует, в отличии от твоей фигни if-else-then.

в студию! :)

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

ambiguousnick
()
Ответ на: комментарий от ambiguousnick

А сам днк, внезапно, мутирует, в отличии от твоей фигни if-else-then.

Мутация ДНК — это if успех then живём_далее else мутируем_или_умираем.

волюнтаризм теперь подкреплен квантовой неопределенностью

В нашем контексте философия ортогональна как к квантовой физике, так и к программированию.

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

Мутация ДНК — это if успех then живём_далее else мутируем_или_умираем.

Твоя программа не мутирует, а днк — мутирует, вот в чем различие. Развитие генотипа и фенотипа особи недетерминировано.

ambiguousnick
()
Ответ на: комментарий от zamazan4ik

Тупо у тебя на нейронку уйдёт больше времени.

peregrine ★★★★★
()
Ответ на: комментарий от ambiguousnick

Твоя программа не мутирует, а днк — мутирует, вот в чем различие.

Дык, это наипростейший пример только для понимания. Никто не мешает написать самомодифицирующуюся программу (привет лисперы! :)).

И эксперименты с аппаратной модификацией (мутацией) нейросетей тоже проводились.

Развитие генотипа и фенотипа особи недетерминировано.

Недетерминированость — следствие исключительно внешнего воздействия на ДНК (химия, радиация, ...).

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

следствие исключительно внешнего воздействия на ДНК (химия, радиация, ...).

Во первых, это не важно. Во-вторых это все можно обобщить — условно «неблагоприятные» условия. Или даже просто *условия*. Тут важен вопрос не почему это происходит, а тот факт, что это возможно, что гены имеют данные свойства. Причем, что интересно, где тот момент, когда непосредственно происходит *принятие решения* о модификации? Нет такого момента. Это просто происходит.

ambiguousnick
()
Ответ на: комментарий от quickquest

А вот бить дерево до тех пор пока не получатся брёвна, переплавить брёвна в доски, сделать из досок кирку, бить киркой камни пока не получатся камни, сделать из досок и камней новую кирку, бить камни новой киркой пока не получится железная руда и уголь, построить из камней печку, переплавить углём в печке железную руду в железо, сделать из железа и досок железную кирку и железной киркой сделать проход в лабиринте оно уже не придумает.

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

Goury ★★★★★
()
Ответ на: комментарий от zamazan4ik

На ~30% сложнее чем организовать игру с живым человеком.
Не слишком сложно.
Для лучшего обучения надо заложить немного рандома в обучающую часть и не забывать доучивать её тоже.

Goury ★★★★★
()
Ответ на: комментарий от ambiguousnick

нейронные сети — это самообучающиеся программы

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

Goury ★★★★★
()
Ответ на: комментарий от Goury

А вот бить дерево до тех пор пока не получатся брёвна, переплавить брёвна в доски, сделать из досок кирку, бить киркой камни пока не получатся камни, сделать из досок и камней новую кирку, бить камни новой киркой пока не получится железная руда и уголь, построить из камней печку, переплавить углём в печке железную руду в железо, сделать из железа и досок железную кирку и железной киркой сделать проход в лабиринте оно уже не придумает.

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

Solace ★★
()
Ответ на: комментарий от Goury

Рыбы и черки это тоже нейронные сети, но нихрена они ничему не обучаются: как родились с матрицей данных так и живут с ней всю жизнь.

Давно это было, в детстве, был у меня аквариум, и, если я ничего не путаю, рыбки нарабатывали условный рефлекс, по стуку, они плыли к кормушке.

ambiguousnick
()
Ответ на: комментарий от ambiguousnick

Причем, что интересно, где тот момент, когда непосредственно происходит *принятие решения* о модификации?

«Принятие решений» непосредственно происходит репликационной вилкой.

алгоритмов изобретательства для нейронок не существует даже в теории на сегодняшний день.

Сложных пока нет (знаний и ресурсов у человечества маловато), простых — куча: любая кластеризация «без учителя» — «изобретение».

Вот когда робот для похода за пивом научится хотя бы варить это самое пиво — тогда и будет о чём говорить.

Это задача не для роботов (пиво им ненужно), а для тебя, неумеющего сотворить «алгоритм хождения за пивом» из простых шагов :)
«Переход количества в качество» — не только философская категория, но и один их способов решения задач.

quickquest ★★★★★
()
Ответ на: комментарий от Deleted

получается, в играх нейронные сети неприменимы? Или в каких играх они могут применяться?

Да и вообще, может кто-нибудь расписать, какие наиболее перспективные направления применения нейросети?

zamazan4ik ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.