LINUX.ORG.RU

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

 , ,


0

1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Goury ★★★★★
()
Ответ на: комментарий от 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 ★★★★★
()
Ответ на: комментарий от quickquest

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

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

в студию! :)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что-то я не вижу в этом тексте ничего про связь с мутацией.

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

Что-то я не вижу в этом тексте ничего про связь с мутацией.

Википедию я использую только для скорости ответов, а если копать глубже, то в процессе репликации (Рис. 4-16) участвуют ферменты, редактирующие ДНК, т.е. осуществляющие вырезание и удаление ошибочно включенных нуклеотидов или репарирующие повреждения ДНК, вызванные физическими или химическими факторами — мутациями.

P.S. Правильные ссылки спрашивай у биохимиков ЛОРа :)

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

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

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