24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Нейронных сетей -тред (ну и искусственного интеллекта тож, пусть будет немношк -тред))) Первый официальный v 1.0 на двоще ИТТ (На нашел - не искал. Создал - не проеби. Не взлетит - побампаю)...
Ладно, начну с охуительной истории, а дальше как получится. Охуительная история: Попал я тут недавно в Китай. Месяц назад меня туда занесло. Побродил там недельки полторы и обратил внимание на такую штуку. Там в разных парках, на лавочках сидят китайские дiды и играют в забавную китайскую игру (Рис. 1). Созрел у меня тогда Хитрый План (Рис. 2). Суть хитрого плана - надрочиться за год в эту забавную китайскую игру, приехать обратно в Китай и обыграть там всех дiдов на деньги. Ну а чё? Показать им, что мы тоже могем в ваши китайские игры. Проблема: Вернулся я, значит, в свою мухосрань и начал гуглить - что то за хуйня, в которую они играют. Оказалось, что это Китайские Шахматы. На Википедии есть правила, которые проще даже, чем в классических шахматах. Правила эти запоминаются после первой сыгранной партии. Но. НО! Во-первых - тут в качестве шахматных фигур используются такие шашки с нарисованными на них иероглифами. Во-вторых - любая информация по этим шахматам находится в манускриптах зашифрованных тоже иероглифами. Погуглил, значит, софтины чтобы позадрачивать в эти шахматы с компом. Нашел только одну софтину, в которой можно изменять иероглифы на человеческие обозначения фигур (Рис. 3). К вечеру уделывал ее на max уровне сложности - "интеллект" у программы тупой. Повторяет одни и те же ходы и ошибки, сидит в защите, фигуры не развивает. На 8 ходу ладью у него хаваю. Нашел другую софтину, которая вроде немношк поумнее и не сидит в защите (Рис. 4). Но ты посмотри на эту жесть. Там после 10-15 ходов перестаешь понимать, что тут происходит.
В общем, есть мысль, что надо пилить свой искусственный интеллект для шахмат. Такой, чтобы он с нуля обучался, по чуть-чуть после каждой партии. Ну и самому вместе с ним обучаться. Есть мысль, что подобное можно реализовать на нейронных сетях. А вот теперь вопрос - как это реализовать? Как вообще пишут искусственные интеллекты для шахмат? Гугления не дают результатов.
>>143278207 >А выучить пару китайских иероглифов тебе религия не позволяет? Ну я их таки выучил, на самом деле. Сча нашел немношк получше программу и в нее гоняю (на пикче)
>И как ты собираешься общаться с этими дедами? На инглише. Там они норм все на инглише шпрехают. Ну а если кто-то не шпрехает - можно жестами. Да и что там общаться - 20$ показал, пальцем на доску показал, потом пальцем на себя. Тут и дурак поймет, че ты хочешь.
>>143278141 (OP) У тебя не хватит вычислительной мощности, скорее всего, для обучения. Если будешь сам делал то скорее всего напишешь хуиты. Плюс нужен математик, минимум 3-/4-й картофанчика пойдет. А алгоритмов по написанию хуева туча, бери да пиши. Естественно надо искать на забугорных ресурсах.
>>143278281 В предыдущем треде пояснили, что надо дерево решений строить, а нейронной сетью в базе сыгранных партий эмпирики искать, которыми потом алгоритм поиска в дереве оптимизировать. Но че-т шняга какая-то, если честно. Если нейронная сеть может в эмпирики - зачем ей дерево? Ну и не совсем понятно - что на входы в нейронную сеть отправлять? Как вариант - доска 9х10, каждая точка (пересечение линий) может принимать одно из 15 состояний (по 6 типов фигур черных/белых, плюс пустое поле). Получается 1350 входов... а вот как выход организовать? 50 нейронов, по n-нейронов на фигуру (n - количество возможных ходов фигурой). Как-то так?
>>143278411 >Если будешь сам делал то скорее всего напишешь хуиты. Цель - не написать ёба-гроссмейстера, а написать хуиту, которая на моем уровне играть будет и будет САМООБУЧАТЬСЯ, подстраиваясь под мой же нубо-уровень.
>картофанчика What?
>А алгоритмов по написанию хуева туча И все они с деревьями. Оче унылые алгоритмы. Никакого искусственного интеллекта - банальный перебор.
>>143278525 > Цель - не написать Ну тогда не надо в омут с головой сразу. в /pr/ есть тред, есть подборка литературы. Напиши простой анализатор капчи, заебно его обучать конечно, но как практикум пойдет. > What? Мехмат. > Никакого искусственного интеллекта Ну если ты адептом ИИ заделаться хочешь, тебе конечно же будет нужен математик.
>>143278141 (OP) Насколько я знаю, в шахматах ИИ представляет собой просто захардкоженые ходы для дебюта и эндшпиля. Для миттельшпиля используется тупой перебор в глубину с оценкой позиции (скушали больше фигур и контролируем центр - заебись), с отсевом наиболее тупых ходов.
Собственно, современный ИИ для шахмат уделывает гроссмейстеров, так что если тут правила даже проще, чем в оригинальных шахматах, то нахуя тут нейронки? Их же заебёшься тренировать без подготовленной базы.
>>143278525 Так не пиши тупой перебор. Загружай теор. базу, и анализируй ходы игрока, ищи сходства в базе теории а дальше реализуй противостояние, по той же базе теорий. Это долго, правда очень долго.
Для каждой задачи свой инструмент - шахматы не очень вариативны, поэтому тупого перебора ходов хватает. Например, в каких-нибудь го их гораздо больше, поэтому там и используют нейронки, ибо проще натренировать эту хуйню, чем пройти хотя-бы недалеко по дереву.
>>143279008 Пиши блядь для обычного, не выебуйся. Хочешь практикум получить? Пишу, а если Китайский хочешь осилить и игру в их шахматы, пиздуй в Китай. И не выёбуйся.
>>143279308 В интернете многие так и играют. Запускают онлайн-сеанс и отдельно локальную игру против самого сильного ИИ. В локальной игре ходят как противник из онлайна, в онлайне ходят как ИИ из локальной игры.
>>143279420 И что, что работает? Перебор ходов - безыдейная и скучная хуита. Это, блядь, как я не знаю. Как залазить на толкан с ногами и срать сидя на корточках, а потом еще говном стены обмазывать. И потом, мол, мы так срем и ты так сри - это работает. Нахуй мне срать как аутист, если я хочу посрать нормально, как белый человек - развалившись на толкане и читая газету. Пиздос. Нахуя мне стены говном вымазывать? Потому что все их говном вымазывают и "это работает"? Оставь себе тупой перебор, деревья, и говно. Мне они не нужны.
>>143279528 С Тифаретника это, вроде, точно не помню. > До сих пор понять не могу почему Потому что программу мехмата сильно критикуют, считают, многие, что она устарела лет на на дохуя.
>>143279600 Нас не дрочат анализом, не так как мехмат. В этом-то и дело. Вербитники, так их назовём, как и сам Вербитский считают, что дрочка интегралами не нужна совсем. В общем, мехмат под гнётом, что матфака, что НМУ. Но я не вникал в этот холивар, себе хуже.
>>143279517 Я понимаю, когда люди предпочитают определённые жанры фильмов/музыки, тут ведь действительно нет объективной системы оценок - кто-то тащится по классике, кто-то слушает репчик.
Но блять, я не знал, что кто-то серьёзно может так же рассуждать об алгоритмах: "РРЯЯ ПЕРЕБОР ХОДОВ ХУИТА Я СКОЗАЛ", просто очередной даун насмотрелся на ютубе как нейронка учится играть в марио и поверил в их всемогущество, пиздец.
>>143280119 Вот этот дело говорит кстати, этим дидам может тыщи лет уже, и они там сидят с тех пор, как в Ебипте пирамиды начали строить. А ОП их в их же игру выебать решил, ага
>>143279953 Вот нагуглил: >При способе быстром хлебный мякиш разминается в руках как пластилин. Для того, чтобы затем при высыхании хлеб не трескался, в него добавляют сахар. Чем более качественный хлеб, тем больше сахара нужно. Сколько именно определяется экспериментальным путем. В общем, чем больше, тем лучше. В любом случае для разминания понадобится не меньше одного-двух часов, пока кристаллики сахара не растворятся и сам хлеб не превратится в однородную массу наподобие пластилина. >Если сахара нет, то мять хлебный мякиш придется значительно дольше – часов 5-6.
>>143280480 Вот еще нагуглил: >Применяется для изготовления самых прочных изделий, например четок. >Мякиш вместе с сахаром заливаем небольшим количеством кипятка, и оставляем в теплом месте – пока хлеб не начнет киснуть. Далее все это перетираем через ткань. Полученную массу подсушиваем, периодически переминая до достижения консистенции пластилина, собираем и лепим все, что нужно. Полученные изделия будут твердые как камень
>>143280538 >>143280566 Я не использовал сахар, только хлеб и слюна. мне казалось что с сахаром липкие получаются. когда руки потом если потеют или влажные, липнуть начинает.
>>143281067 Для тянусек то так делают. Говоря что iq у женщин в среднем такой же или даже чуть выше. Но забывают добавить, что когда речь заходит о лучших из мужчин, тянки глубоко отсасывают, потому что среди них лучших почти нету.
>>143280995 У кого больше шансов в шашки выиграть - у погромиста умеющего в нейронные сети или у китайского дiда, которые всю жизнь на огородах рис топтал? На пикче результат моего айсикью говно-теста, который на двощике постоянно форсят.
>>143281471 >у погромиста Что значит шанс? Если ты программист, ты можешь разработать алгоритм/программу которая выигрывает любого деда за тебя. Умный не умный тут не подходит. Ты просто другой, мыслишь по другому, задачу решаешь иначе. Ясное дело это более совершенный подход к решению задачи обыграть дедов, чем задрачивать шахматы дохуилиард часов чтобы возможно выиграть.
>>143282076 Чтобы в шахматы норм играть - нужная логика и абстрактное мышление (ну может еще интуиция немношк). У программиста эти скиллы по умолчанию развиты. Откуда они возьмутся у китайского дiда?
Аутист, тебе в прошлом треде назвали все, что нужно для написания алгоритма. Но нет, нихачу диревья, нихачу альфабету, хачу только нейросеть, чтобы она каким-то чудом стала умнее за счет игры с тобой-дебилом
>>143282191 Смотри, на входе есть доска с текущей позицией, которая подается на входы нейронной сети. Нейронная сеть должна распознать (аки твою капчу), куда ей необходимо сделать наилучший ход. На выходе имеем, например 9 нейронов соответствующих ходу конем (1 - коня не трогаем и 8 клеток, куда им можно походить). Если нейронная сеть делает глупый ход - ну, например, фигуру ставит под удар или там вообще за пределы доски пытается походить - корректируем веса.
>>143282291 Мой батя играет с детства в шахматы. С возрастом стал играть на очень высоком уровне. Я спросил у него типа что нужно делать чтобы играть в шахматы лучше. А он говорит что просто нужно играть больше. Учить всякие защиты ракакама, гамбиты эвенса и разбирать уже сыгранные партии. >На основании обобщения собранных данных были получены следующие средние результаты: период оптимальных достижений длился немногим более 10 лет, его границы простирались преимущественно между 30 и 40 годами. Средний возраст пика — 35 лет. Некоторое снижение силы игры шахматистов наблюдалось в большинстве случаев на сорокалетнем рубеже, а особенно заметный спад достижений — после 47 лет. >Полученные нами данные о возрастных особенностях развития шахматных достижений отличаются от результатов работ Струмилина и вносят в его выводы определенные коррективы. Безусловно, нельзя согласиться с ученым в том, что после 33 лет у шахматистов наблюдается значительное снижение успехов. Спад достижений, причем не очень существенный, по нашим данным, относится к более позднему возрасту — 41—43 годам.
Я в том смысле что те кто начал играть после определенного возраста не имею шанса чего-то добиться.
>>143282291 С чего ты взял, что эти скиллы развиты у программиста? В высокоуровневом программировании чистой логики почти нет, это больше напоминает написание рассказа.
function trainAI(){ layersAI(chessBoard.HumanMoves()); layersAI(chessBoard.AIMoves(layersAI)); layersAI.Trains(); }
Допустим, как ты будешь трейнить? На основе чего ты будешь рассчитывать что ход плохой или хороший без графа пространства состояний? Будешь брать из книжек лучшие ходы и ответы и вбивать это все в дату? А не охуеешь ли ты делать это самостоятельно?
>>143284104 >Как подается? Там выше писал. Поле 9х10 клеток. Каждая клетка может принимать одно из 15 состояний (пустая, 6 фигуро одного цвета, 6 фигур другого). Фактически, поле у нас трехмерное - 9х10х15. Выделить под эту всю фигню 1350 нейронов. Подавать как? Есть клетка, например $cell[а,1,3] (первый параметр - вертикаль, второй - горизонталь, третий - тип фигуры). Принимает бинарное значение - 1 или 0. Вот такой вот единичный вход... Если задачу вот в таком виде рассматривать - это задача распознавания образов. Маленькой такой картинки-бздюльки, которая даже меньше капчи (на пикче 1369 пикселей). Ну а на выходе каждой группе нейронов соответствует фигура и все ее возможные ходы.
>>143284104 >На основе чего ты будешь рассчитывать В режиме риалтайм, например. Смотрю, какие нейроны активировались и корректирую их веса. Если слишком заебисто - можно попробовать написать функцию, с набором элементарных эмпирик (жрать не защищенные фигуры, связывать коней, вес фигур, всю хуйню). Ну и с помощью этой функции оценивать ход.
>>143285053 >не защищенные фигуры Конкретно, вот есть незащищенная фигура, как ты собрался определить без графа что эту фигуру можно сожрать? Тебе все равно придется делать поиск по состояниям.
>>143283847 Это я сам код писал. И вообще в тесте на логику получил результат лучше, чем довольно охуенный программист, который явно лучше меня в программировании. Я зато матлогику и математику дрочил в свое время.
>>143285250 >как ты собрался определить без графа что эту фигуру можно сожрать? Какого графа? Берем поочередно каждую фигуру и смотрим какие клетки находятся у нее под атакой. Всё. Если нейронная сеть ходить на атакуемую клетку - плохой ход. Если на атакуемой клетке фигура с большим весом - можно хавать. Если фигура противника не на атакуемой клетке - надо хавать. Примитивное правило, которым будем оценивать действия нейронной сети и корректировать веса, чтобы она глупые ходы не делала. Базовое, так сказать, обучение. Более глубокое обучение сети будем делать на основании сыгранной партии. Черные, например, выиграли в партии. Стало быть все (большинство) ходов были правильными - привели черных к выигрышу. Поочередной загружаем каждую позицию на вход, и корректируем веса так, чтобы активировались правильные нейроны на выходе.
>>143286136 >смотрим какие клетки находятся у нее под атакой Что значит смотрим. Покажи код, просто приблизительный, как ты это будешь смотреть. Просто все так или иначе сведется к тем же графам(перебору массивов в цикле).
>>143286548 Алгоритм. В цикле просматриваем каждую клетку на поле (А1, А2...) Берем клетку А1. С помощью switch смотрим, какая там фигура. Case Ладья. Просматриваем клетки вверх: клетка пустая - помечаем в массиве $attacked['A',2]=true;, переходим к следующей клетке. Клетка занятая фигурой - отмечаем как клетка под атакой, следующие за ней не смотрим (фигура их экранирует). Теперь просматриваем клетки вправо от ладьи. Там фигура - конь, клетка под атакой, дальше не смотрим. Двигаемся вниз от ладьи - граница поля. Двигаемся влево - граница. Переходим к клетке A2. Case Конь. Просматриваем 8 возможных ходов конем, отмечаем их в массиве $attacked (B3, C3, D2 под атакой). Переходим к клетке A3 Case Cлон... Ну и так далее. Разметили массив $attacked, знаем куда ходить НЕЛЬЗЯ (в базовом обучении не учитываем тактические ходы, в которых можно пожертвовать фигурой).
>>143285053 >15 состояний (пустая, 6 фигур одного цвета, 6 фигур другого) >>143278482 >15 состояний (по 6 типов фигур черных/белых, плюс пустое поле) Че-т я тут насчитал. 7 фигур в китайских. слоуfix
>>143287436 >(в базовом обучении не учитываем тактические ходы, в которых можно пожертвовать фигурой) Когда базовое освоили - выпиливаем всю эту ерунду с атакуемыми клетками и переходим к обучению на сыгранных партиях.
>>143287436 Ну, то есть, типа как ребенка учим играть (как меня дед учил играть). Вначале обучаем, как фигуры ходят. Учим, не ходить на атакуемые поля и не жертвовать напрасно фигуры. Далее можно еще промежуточный этап сделать - научить делать ходы, которые атакуют фигуры противника. Ну а потом уже партии разбирать и учить на их примере все тонкости игры (надрачиваем скилл).
>>143287436 В таком случае любой шахматист, кто думает на 2 хода вперед обыграет твой ИИ как залупку. То что ты описал, так или иначе можно слить в массив. А этот массив перебирать в цикле. Или рекурсивно. Или построить адекватную математическую модель, то есть граф пространства состояний и задать ему горизонт планирования и в ходе вычислений учить тот или иной ход. Собственно так и работают обычные шахматы. У них сложность от easy до hard задается именно горизонтом планирования ходов. 20-ку ходов человеку не выиграть. То есть научишь свою нейросеть на 20-ти ходки и ее сможет выиграть только система с полным горизонтом планирования.
>>143278141 (OP) Нормальные шахматные программы - это прежде всего детерминированные алгоритмы, то есть грамотное построение дерева ходов и анализатор позиции. Твои нейросетки С НУЛЯ выдадут бесполезную хуету, которая играет на уровне дауна.
>>143288448 >В таком случае любой шахматист, кто думает на 2 хода вперед обыграет твой ИИ как залупку. Еще раз. Цель НЕ написать ёба-программу, которая уделывает гроссмейстеров. Цель - написать программу, способную в ОБУЧЕНИЕ. Деревья там, планирования - это все круто, но тут нет ни грамма самообучения. Более того, ни грамма ИИ. Перебор возможных ходов в дереве решений - вообще нихуя не "Интеллект". Это что-то уровня чат-бота, который дергает фразы из базы данных. Что в него запрограммировали - то и делает. "Интеллект" - это когда программа из букв учится формировать слова, этим словам определять какую-то семантику и на основе ее уже строит предложения. На деревьях решений интеллект не создать, можно только сделать имитацию интеллекта. Это вообще какое-то говно (хоть и работает в случае с шахматами). На нейронных сетях можно создать интеллект? Можно. Пример - человеческий мозг. Нейроны, связи. Коррекция связей по каким-нить правилам Хебба. Суть в чем вот таких нейронных шахмат. Есть некоторая позиция на доске. В каждой позиции есть лучший ход среди всех прочих (который очередной шазмадизд-програмизд ищет в дереве решений). Не будем строить деревья решений альфа-бета-говно отсечения и прочую хуергу. Банально задача распознавания образа. На доске есть некий каркас-структура - фигуры, которыми можно в данной позиции рулить, ситуацию создавать - тот самый образ. И есть шум, бессмысленные ходы пешками или еще чем. Задача нейронной сети распознать этот образ. Шахматная позиция - кот? Ход конем - кот, ход ладьей - собака, ход пешкой - гусь. Распознаем на доске кота, ходим конем.
>>143278141 (OP) В 4-м после уроков на продлёнке играли с одноклассником в пикрилейтед. Просто среди кучи деревянной хуйни ака игрушок которые летом нам закупили в школу нашли коробку, на неё весь класс сразу забил хуй ибо СЛОЖНААА!!, а мы с ним ходили в шахматную секцию и нас игра заинтересовала. В коробке был отличный мануал на русском, за пару дней мы уже резались как черти и за нашими партиями наблюдали остальные, по ходу объясняя правила втянули в игру ещё несколько человек, было круто. Для большинства одноклассников да и для учителей мы были демонами, потому, что смогли освоить это на довольно приличном для 4 классника уровне.
Ладно, начну с охуительной истории, а дальше как получится.
Охуительная история:
Попал я тут недавно в Китай. Месяц назад меня туда занесло. Побродил там недельки полторы и обратил внимание на такую штуку. Там в разных парках, на лавочках сидят китайские дiды и играют в забавную китайскую игру (Рис. 1). Созрел у меня тогда Хитрый План (Рис. 2). Суть хитрого плана - надрочиться за год в эту забавную китайскую игру, приехать обратно в Китай и обыграть там всех дiдов на деньги. Ну а чё? Показать им, что мы тоже могем в ваши китайские игры.
Проблема:
Вернулся я, значит, в свою мухосрань и начал гуглить - что то за хуйня, в которую они играют. Оказалось, что это Китайские Шахматы. На Википедии есть правила, которые проще даже, чем в классических шахматах. Правила эти запоминаются после первой сыгранной партии. Но. НО! Во-первых - тут в качестве шахматных фигур используются такие шашки с нарисованными на них иероглифами. Во-вторых - любая информация по этим шахматам находится в манускриптах зашифрованных тоже иероглифами. Погуглил, значит, софтины чтобы позадрачивать в эти шахматы с компом. Нашел только одну софтину, в которой можно изменять иероглифы на человеческие обозначения фигур (Рис. 3). К вечеру уделывал ее на max уровне сложности - "интеллект" у программы тупой. Повторяет одни и те же ходы и ошибки, сидит в защите, фигуры не развивает. На 8 ходу ладью у него хаваю. Нашел другую софтину, которая вроде немношк поумнее и не сидит в защите (Рис. 4). Но ты посмотри на эту жесть. Там после 10-15 ходов перестаешь понимать, что тут происходит.
В общем, есть мысль, что надо пилить свой искусственный интеллект для шахмат. Такой, чтобы он с нуля обучался, по чуть-чуть после каждой партии. Ну и самому вместе с ним обучаться. Есть мысль, что подобное можно реализовать на нейронных сетях. А вот теперь вопрос - как это реализовать? Как вообще пишут искусственные интеллекты для шахмат? Гугления не дают результатов.
Есть тут аноны, которые умеют делать шахматы?