Войти
ПрограммированиеФорумИгровая логика и ИИ

Открытый проект "Крестики нолики" (4 стр)

Страницы: 13 4 5 68 Следующая »
#45
(Правка: 11:18) 10:59, 26 мая 2019

tac
> а для этого оценить не текущую позицию, а вероятности исхода возможных
> последующих
А он и не оценивает текущую позицию, я же написал.

> как оценивать? как выигрышную или проигрышную? т.е. само описание "на выходе
> обучающей выборки выйграна партия или нет" - неверное, там явно нечто другое
если мы играем за нолики, он перебирает все варианты хода ноликов и оценивает позиции которые будут получены (с точки зрения ноликов). Та у которой оценка максимальна и выбирается текущим ходом. Оценка - не флаг "выигрышная\проигрышная" а число от 0 до 1 которое сгенерила нейросеть, основываясь на сходстве с миллионами позиций на которых обучалась.

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

#46
21:03, 26 мая 2019

kipar
> А он и не оценивает текущую позицию
у тебя где то противоречие, или ты пишешь очень путано

kipar
> он перебирает все варианты хода ноликов и оценивает позиции которые будут
> получены (с точки зрения ноликов). Та у которой оценка максимальна и выбирается
> текущим ходом
это и есть оценка текущей позиции

kipar
> число от 0 до 1 которое сгенерила нейросеть, основываясь на сходстве с
> миллионами позиций на которых обучалась
не может она получить число от 0 до 1 /т.е. вероятность выйграша/, если для обучения ей дают только

kipar
> флаг "выигрышная\проигрышная"

#47
21:11, 26 мая 2019

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

если я не прав, расскажи прямо, на примере крестиков, какая обучающая выборка?

#48
21:48, 26 мая 2019

tac
> не может она получить число от 0 до 1 /т.е. вероятность выйграша/, если для
> обучения ей дают только
> kipar
> > флаг "выигрышная\проигрышная"
тут можно поспорить.
  1 всего подали партий=10штук
      из которых
  2 выигрышная партия=7штук , проигрышная партия=3штуки
тогда вероятность выигрыша=количество успешных мероприятий/количество мероприятий =7/10=0.7
вероятность выигрыша=0.7 и это есть число от ноля до единицы.

не?

#49
(Правка: 23:53) 23:19, 26 мая 2019

Rikk
> всего подали партий=10штук
>       из которых
>   2 выигрышная партия=7штук , проигрышная партия=3штуки
вот это и не понятно, что подали? главное не путать
1.1. подали партию целиком? или 1.2. отдельно взятые позиции во время партии?
2.1. если партию целиком, то мало сказать, что партия выиграна или нет, надо понять это в отношении отдельно возникшей ситуации/позиции .. т.е. во время обучения, должен быть некая логика как разбить партию на составляющие, и судить о каждой из них. По сути свести к варианту 1.2. .. из слов кипара я никак не могу понять какой у нас вариант 1.1. или 1.2? а если 1.1, то как именно происходит сведение к 1.2 ... да во время этого сведения может произойти появление вероятностей /и выше я написал как например, но кипар не подвердил, не опроверг ;)
2.2. если у нас сразу вариант 1.2. , то очевидно, что одна и таже позиция в партии, может возникнуть как в проигрышной, таки в выигрышной партии .. так тогда, вероятность оценки позиции дается прямо в обучении, или косвенно, когда сеть набирает статистику? допустим косвенно, то тогда как себя поведет сеть, если она не обучалась на определенных партиях - т.е. выборка для обучения должна быть репрезентативной, только тогда статистика при обучении, что то значит, иначе сеть обученная на одних партиях, ничего не сможет сказать в реальной ситуации .. т.е. мы при оценке какой делать ход следующим, будем ошибаться в какую сторону идти на основании такой статистики /напомню, что нейросеть при подходе глубокого обучения , т.е. без нахождения инвариантов, вообще ничего не может сказать о позициях, которых не было в обучении - нет там никакого прогноза с вызывающей достоверность вероятностью, именно поэтому используют эвристики, т.к. они позволяю свести игру к оценке в меньшей и более прогнозируемом пространстве состояний, и тогда не столь важна репрезентативность, как важно то на сколько разработчик угадал своей эвристикой приближение к реальной ситуации.

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

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

3. и опять же надо показать сравнение с минмаксом, т.е. с полным перебором .. полный перебор дает 100% уверенность в исходе при 100% переборе всех вариантов .. при разработке методов можно стремится:
3.1. к меньше, чем 100% увереность за меньше чем 100% перебор - конкретные цифры это проблема репрезентативности выборки, условно это 80% достоверность за 20% перебора
3.2. добится 100% достоверности за меньше, чем 100% перебор /пример альфа бета отсечение/ - только такой перебор и можно назвать целенаправленным или интеллектуальным

вариант 3.1 меня совершенно не интересует, мне наверное показалось но альфа зеро кажется обеспечивает 3.2  ... но для этого он должен идти по пути 2.3 /по сути аналогично моему уже упоминавшемуся методу х тюнинга .. именно эта схожесть , возможно видимая, и зацепила меня .. /

#50
(Правка: 23:59) 23:49, 26 мая 2019

tac
> подали партию целиком?
подали партию целиком на вход.
партия в конце на выходе
или выиграла . тогда счетчик выигрыши=+1
или проиграла. тогда счетчик проигрыши=+1
Р=выигрыши/число партий всего

tac
> надо понять это в отношении отдельно возникшей ситуации/позиции .
не надо.это вообще не имеет значения.
очевидная ситуация=ход. поставить крестик.поставить нолик.
отдельные ходы не имеют значения.
судить надо по условию заканчивания. правила. когда три крестика в ряд тогда выиграли крестики(сторона1).оставшаяся сторона проиграла.
когда три нолика в ряд.тогда выиграли нолики(сторона2).оставшаяся сторона проиграла.

имеет значение сторона которая выигрыла.
или выиграла сторона1 (она владеет крестиками)
или выиграла сторона2 (она владеет ноликами)

Р1=выигрыши сторона1 крестики/число партий всего
  для сторона1

Р2=выигрыши сторона2 нолики/число партий всего
  для сторона2

потом чего?
вероятность наступления выигрыша вообще=Р1*Р2

  вероятность наступления события вообще=умножение вероятностей каждой части.
пусть есть событие1 и есть событие2, и это событие1+событие2=тотальное событие глобал.
вероятность первого событие1=Р1
вероятность второго событие2=Р2

может наступить успешное
или событие1 успешное
или событие2 успешное
и событие1 успешное и событие2 успешное =тотальный полный успех события

имеется
выигрыши от крестиков=Р1
выигрыши от ноликов=Р2
выигрыши как вообще (тотальное событие глобального выигрыша. в любом случае будет выигрыш)
глобальный выигрыш( а не конкретно вероятность того что выиграет крестики или выиграет нолики)=Р1*Р2
?

#51
23:59, 26 мая 2019

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

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

#52
(Правка: 0:04) 0:03, 27 мая 2019

tac
> иначе нет шансов уменьшить перебор
зачем? это вам не спектрум где война за штуку байта.
если памяти на одном компьютере не хватает = тогда сеть компьютеров крестики-нолики
  получаем суперММО(на юнити) крестики-нолики ?
давайте запилим суперММО крестики-нолики на юнити.

#53
0:05, 27 мая 2019

Rikk
> зачем?
потому что полный перебор может длится больше времени жизни Вселенной, см. парадокс Левинталя в задаче сворачивания белков

#54
0:14, 27 мая 2019

tac
> полный перебор может длится больше времени жизни Вселенной
значит в этом нет смысла и полный перебор делать нельзя.
ищите другие методы.
 

#55
7:01, 27 мая 2019

/A\
> Выигрышная тактика для крестиков-ноликов пишется в несколько строчек, никакой ИИ тут не нужен.
А как сделать так, чтоб человеку было интересно играть? Не просерать постоянно, а ещё и выигрывать, как с человеком :) даже беспроигрышные партии можно запороть и не дать выиграть, но здесь и ты не выиграешь )))

#56
(Правка: 12:26) 12:25, 27 мая 2019

tac
Игра XO, можно писать ботов
https://gamedev.ru/projects/forum/?id=161043

#57
13:33, 27 мая 2019

Aslan
ну вот, давай перепишем на с# и юнити ?

#58
13:58, 27 мая 2019

tac
> но скорее и сам не знаешь, так по вершкам на уровне рекламмы, к сожалению этого
> мало чтобы понять
ну да, я в основном из https://habr.com/ru/post/279071/ о нем знаю. Но по-моему для понимания принципа этого достаточно.

#59
13:59, 27 мая 2019

tac
> ну вот, давай перепишем на с# и юнити ?
что за мания писать на юнити?

Страницы: 13 4 5 68 Следующая »
ПрограммированиеФорумИгровая логика и ИИ