GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (2)След. > >>   Поиск:  
 Автор Тема: Нейронка tehas holdem
pezets
Сообщений: 12
Нейронка tehas holdem
Добавлено: 14 июн 19 4:57
Здравствуйте, форумчане

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

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

Прочитал что существуют соревновательные нейронки, хотел сделать чтобы они друг с другом играли, соответственно обучаясь. Единственно нужно предусмотреть возможность блефа, прокатит даже на время "отключить" нейронку в N% случаях, в остальном хотелось бы получить очень простой алгоритм игры за столом, это не турнирная игра, долго и нудно играть с блайндами 1/2.

Готов предоставить калькулятор, расчет победителей и т.д. Сам не понимаю только часть, которая касается нейронок
[Ответ][Цитата]
ip178
Сообщений: 104
На: Нейронка tehas holdem
Добавлено: 14 июн 19 6:00
Изменено: 14 июн 19 6:01
if(rand(0,100)>$coeficient)
....do_blef()
else
....play_normal();

тебе это нужно было? а то задача как-бы размыта...
p.s. если уж и делать блеф, то делать в нейросети, где входные данные есть история предыдущих партий, рассмотренная в контексте вероятностей
[Ответ][Цитата]
Михайло
Сообщений: 2251
На: Нейронка tehas holdem
Добавлено: 14 июн 19 7:16
Цитата:
Автор: pezets

Готов предоставить калькулятор, расчет победителей и т.д. Сам не понимаю только часть, которая касается нейронок

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

Второе, что вам необходимо, подготовить обучающие примеры (датасеты). Больше ничего делать не надо, дальше просто пишете такой типовой код:


// создание нейросети
neuronet = new NN(some_parameters);

// обучение
neuronet.train(train_data_input1, train_data_output1);
neuronet.train(train_data_input2, train_data_output2);
neuronet.train(train_data_input3, train_data_output3);
neuronet.train(train_data_input4, train_data_output4);
...

// использование нейросети по назначению
output1 = neuronet.calculate(input1);
output2 = neuronet.calculate(input2);
output3 = neuronet.calculate(input3);
...

train_data_inputX - входные данные обучающего датасета (массив), игровая ситуация;
train_data_outputX - выходные данные обучающего датасета (массив, иногда число), игровой ход;
inputX - входные данные (игровая ситуация), по которым нужно вычислить ход в игре;
outputX - игровой ход.

Если хотите обучить хорошей игре в покер, то следует обучать хорошим ходам в разнообразных условиях, в том числе с разнообразными стилями соперников. Но в середине игры не всегда ясно, хороший ход или нет - только один факт выигранной партии ничего не значит. Точнее значит, но не так много.
[Ответ][Цитата]
kondrat
Сообщений: 3723
На: Нейронка tehas holdem
Добавлено: 14 июн 19 9:22
Лучше писать texus holdem
[Ответ][Цитата]
pezets
Сообщений: 12
На: Нейронка tehas holdem
Добавлено: 17 июн 19 6:36
Изменено: 17 июн 19 6:37
Множество if ... else ... if ... else ... не является красивым решением.
Видел исходник холдем бота на гитхабе, так там простая нейронка используется, в коде сложно было разобраться поскольку с нейронками не знаком.

Чтобы запустить бота нужно какое то более менее красивое решение, дабы говнокодить плохо
[Ответ][Цитата]
pezets
Сообщений: 12
На: Нейронка tehas holdem
Добавлено: 22 июн 19 4:32
Цитата:
Автор: Михайло


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

Второе, что вам необходимо, подготовить обучающие примеры (датасеты). Больше ничего делать не надо, дальше просто пишете такой типовой код:


// создание нейросети
neuronet = new NN(some_parameters);

// обучение
neuronet.train(train_data_input1, train_data_output1);
neuronet.train(train_data_input2, train_data_output2);
neuronet.train(train_data_input3, train_data_output3);
neuronet.train(train_data_input4, train_data_output4);
...

// использование нейросети по назначению
output1 = neuronet.calculate(input1);
output2 = neuronet.calculate(input2);
output3 = neuronet.calculate(input3);
...

train_data_inputX - входные данные обучающего датасета (массив), игровая ситуация;
train_data_outputX - выходные данные обучающего датасета (массив, иногда число), игровой ход;
inputX - входные данные (игровая ситуация), по которым нужно вычислить ход в игре;
outputX - игровой ход.

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


Продают базы данных логов игры, длинные и многие качаются бесплатно.
Реально ли по ним обучить нейронку схожему поведению с уровнем новичек/любитель?

Для нормального робота достаточно простого алгоритма длительной игры с блайндами 1/2, Так уж устроена система покерплощадка<->игроки, ни о каком сверическом алгоритме в вакууме речь не веду и вам не советую

Практика и только практика. Даже готов на пифо пару рубликов подкинуть, но много денег нету)
[Ответ][Цитата]
ip178
Сообщений: 104
На: Нейронка tehas holdem
Добавлено: 22 июн 19 4:38
Изменено: 22 июн 19 4:39
Цитата:
Автор: pezets
Реально ли по ним обучить нейронку схожему поведению с уровнем новичек/любитель?

Конечно, только вот уровень нужно будет указать вручную. Одно из преимуществ нейросетей их обучаемость на всяком мусоре.
tehas holdem это платное приложение из плей маркета?
[Ответ][Цитата]
pezets
Сообщений: 12
На: Нейронка tehas holdem
Добавлено: 22 июн 19 4:48
Цитата:
Автор: ip178


Конечно, только вот уровень нужно будет указать вручную. Одно из преимуществ нейросетей их обучаемость на всяком мусоре.
tehas holdem это платное приложение из плей маркета?


Попытаюсь ответить на ваш вопрос



Свой покеррум делать долго нудно и практически нереально в продвижении. Сумма в 10000$ для покеррума это как бампер и колеса от целиковой машины, есть пруфы среди тех кто этим занимался, все в один голос говорят - свой рум делают только губернаторы города Одессы =)
[Ответ][Цитата]
гость
89.234.157.*
На: Нейронка tehas holdem
Добавлено: 22 июн 19 5:57
Цитата:
Автор: pezets

Свой покеррум делать долго нудно и практически нереально в продвижении. Сумма в 10000$ для покеррума это как бампер и колеса от целиковой машины, есть пруфы среди тех кто этим занимался, все в один голос говорят - свой рум делают только губернаторы города Одессы =)
да о чем вы говорите... Вообще с нуля - 2-3 месяца работы одного вебразраба + две недели работы дизайнера. Но в сети полно шаблонов, которые можно подзаточить под себя вообще за недельку и рум готов. В этих делах самое дорогое это раскрутка.
[Ответ][Цитата]
гость
199.249.230.*
На: Нейронка tehas holdem
Добавлено: 22 июн 19 10:06
pezets - похоже на "пиздец", Вы издеваетесь над участниками форума с таким ником, чтоб вы здохли, проклинаю Вас, желаю Вам всего самого плохого
[Ответ][Цитата]
гость
104.244.76.*
На: Нейронка tehas holdem
Добавлено: 22 июн 19 10:10
Цитата:
Автор: pezetsсвой рум делают только губернаторы города Одессы =)
Одесса - хотя и не бандеровский город по сути, скорей жидовский, но под властью бандеровцев с Киева, когда она станет Новоросией тогда и поговорим, а пока не упоминайте тут ничего связанного с бандерами.
[Ответ][Цитата]
pezets
Сообщений: 12
На: Нейронка tehas holdem
Добавлено: 22 июн 19 14:55
Цитата:
Автор: гость

pezets - похоже на "пиздец", Вы издеваетесь над участниками форума с таким ником, чтоб вы здохли, проклинаю Вас, желаю Вам всего самого плохого


Слово pezets похоже на слово песец, т.е. полярная лисица. У каждого свои ассоциации.
Я не издеваюсь, видите какая худая собака, без корма есть всякую дрянь

Цитата:
Автор: гость

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


В этом замечательном городе живет человек, из за которого я сейчас на этом форуме ищу того кто сможет написать простой алгоритм. Еще раз подчеркнул данное слово, все обсуждаемо в т.ч. если хотите пару рубликов.
[Ответ][Цитата]
Михайло
Сообщений: 2251
На: Нейронка tehas holdem
Добавлено: 22 июн 19 21:27
Изменено: 22 июн 19 21:27
Цитата:
Автор: pezets

Продают базы данных логов игры, длинные и многие качаются бесплатно.
Реально ли по ним обучить нейронку схожему поведению с уровнем новичек/любитель?

Да хрен знает, можно или нельзя. Если люди делают, то можно, но я не в курсе. Я вообще не умею играть в покер. Качайте логи, попробуем портировать их на Python. Объясняйте принцип игры, опишите свой алгоритм-калькулятор. Подробно не надо, самое главное - входы, возможные значения входов, выходы, возможные значения выходов.
[Ответ][Цитата]
ip178
Сообщений: 104
На: Нейронка tehas holdem
Добавлено: 24 июн 19 8:26
Изменено: 24 июн 19 8:27
Цитата:
Автор: pezets

Проще было бы на киберфоруме поискать, там попадаются спецы по нейросетям возможно даже знающие яву, да и как я вижу работы то у вас пустяк.
Здесь в основном теоретики...
[Ответ][Цитата]
pezets
Сообщений: 12
На: Нейронка tehas holdem
Добавлено: 24 июн 19 11:27
Изменено: 24 июн 19 11:49
Цитата:
Автор: Михайло


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


Калькулятор тут:
http://37.46.129.30/elseif/site/calc

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

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

Входов всего 2(банк и то что калькулятор считает), но входы различаются в таких ситуациях:
-префлоп, флоп, терн, ривер
-ситуация когда нужно уравнять определенную ставку
-когда ставки нет
-ранняя средняя и поздняя позиция

Блеф можно определить когда банк*шанс < нашей_ставки

Допустимая ситуация для блефа:
-Флоп
-Нет ставок
-Поздняя позиция

В остальных ситуациях я бы блеф использовать не стал.
---------

Что сделать с калькулятором по вашему мнению?
C учетом симметрии 5 возможных карт на флопе ~57000 комбинаций,
калькулятор притормаживает на 2 секунды, 3600*24 = 86400
Ну и еще количество возможных рук....

Цитата:
Автор: ip178


Проще было бы на киберфоруме поискать, там попадаются спецы по нейросетям возможно даже знающие яву, да и как я вижу работы то у вас пустяк.
Здесь в основном теоретики...


Ну как пустяк, если только как в мультике где малыш в печке пирожки готовил
[Ответ][Цитата]
 Стр.1 (2): [1]  2След. > >>