AlphaZero. Нейронная сеть играет в шахматы

Тема в разделе "Машинное отделение", создана пользователем grizly, 6 дек 2017.

  1. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    77
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    Нет, почти наверное это не так. Есть много причин, почему это не так. Вот некоторые из них:
    1) С го эксперимент удалось повторить фейсбуку. Фейсбук выложила сеть, её проверили, она оказалась чертовски сильна. В фейсбуке тоже шулеры?
    2) Есть проект leela chess zero. Им практически удалось уже добиться того же результата. Сейчас движок который учится с нуля, занимает 4 строчку рейтинга. Нужно помнить ещё что стокфиш, комодо, гудини получили усиление с тех пор, и leela chess zero всё же немного отличается от A0.
    3) Авторитет DeepMind. Сложно представить себе более "крутую" компанию в области машинного обучения. Можно сказать, они легендарны в этом плане. Сомневаюсь, что ради каких-то шахмат они будут так сильно рисковать репутацией.
  2. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    62
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
    А как вы себе это представляете? Вот сеть только начала учится и хоп даём ей в противники 11248 и как определить рейтинг? Она же продует все 500 игр и будет продувать пока не наиграет как минимум 15-20 млн игр. Это всё равно, что определять рейтинг новичка, заставляя играть его с Каспаровым.
  3. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Они и не могли сделать. Есть два подхода к решению задач: 1) алгоритмический - логика решения задается программистом. 2) "обучательный" - логика решения формируется обучением и непостижима для человека.

    Между этими подходами нет ничего общего.

    АльфаЗеро оценивает позицию и выбирает ходы-кандидаты "обучательным" методом (с помощью нейронной сети), а для движения по дереву вариантов использует алгоритмический MCTS (поиск в дереве методом Монте-Карло).
    —- добавлено: 19 дек 2018, опубликовано: 19 дек 2018 —-
    Давать ей в соперники вариант эталонной сети, соответствующий тому же количеству партий. Тогда на каждом этапе обучения мы будем видеть есть прогресс в сравнении с обучением эталонной сети или нет. Что важно для того, чтобы понять есть толк от новых идей примененных при обучении или нет. А сейчас по этому рейтингу ничего понять невозможно.
  4. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.474
    Симпатии:
    3.068
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Ну да, именно так. Специалисты по паровым машинам придумали не так уж много того, что можно использовать для ядерного реактора. А опыт самолетостроителей (копившийся десятилетиями) мало полезен для конструирования космической ракеты.
    Undying нравится это.
  5. Boroda Новичок

    • Новичок
    Рег.:
    12.01.2018
    Сообщения:
    62
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
    Это бы ло бы интересно, но тут тоже есть ньюансы. Например новая сеть, может теоретически иметь очень медленный ( в сравнении с эталонный) старт, в прогрессе обучения, но зато более быстрый средний этап или финишь. Или наооборот, сеть стартанёт очень быстро, а зетем произойдет провал.
  6. Мобуту спаситель нации

    • Заслуженный
    • Ветеран
    Рег.:
    15.02.2006
    Сообщения:
    6.833
    Симпатии:
    3.679
    Репутация:
    127
    Адрес:
    Заир
    Оффлайн
    На такие вопросы проще ответить в отношении Лилы. Она выложена открытым кодом вроде как. Есть там где-нибудь заложенная оценка в духе того, что ладья это пять пешек, конь - три пешки, и так далее?

    А в плане партий вряд ли она уступит Альфе. Надо просто провести матч со Стокфишем на 100 000 партий, из них отобрать тысячу наиболее ярких и удачных, написать про них статью. Я даже могу предположить, как такой матч будет выглядеть. У Стокфиша будет нащупано какое-нибудь слабое место, вроде недооценки атаки белых в позиции с открытой линией "g" при пешке h6. И в победных партиях это будет раз за разом использоваться.
  7. FlashNeo Учаcтник

    • Участник
    Рег.:
    23.11.2018
    Сообщения:
    587
    Симпатии:
    309
    Репутация:
    2
    Оффлайн
    По мне так партия черными во французской с жертвой двух пешек за неразвитость ферзевого фланга, где Лейла куда глубже оценила ситуацию, ничуть не хуже образцов А0. Сейчас не могу рыться, но можете еще раз эту партию выложить - впечатляет.

    Слабые места Стокфиша давно известны:
    1) он категорически плохо играет соотношения ферзь против С+С+К и ферзь против С+К+К. Они редкие, но встречаются, особенно в сицилианках, у Лейлы это получается ощутимо лучше.
    2) умеет и "любит" закрывать свои фигуры за материал - ладью королем, сделать недоразвитым или вообще убитым на десяток ходов фланг (в смысле что никто дернуться не может), и не уметь это дело оценить очень долго. Думаю, адвансеры добавят еще много чего.

    У меня совсем недавно была партия, где мой конь на b6 и пешка на d6 закрыли ладью на b8 и слона на c8 в эндшпиле без пешки ( у черных была структура a6-b7-d7-f5-f7-g7-h7). Стокфиш не совсем сразу оценил эту ситуацию в явную пользу белых, а это очень даже очевидно было (реально, тактических угроз не было, и белые могли просто усиляться без каких-либо угроз. В данном случае даже понимание КМС (если белые не ошибутся, причем ошибутся так совсем уж критически, то у них выиграно) будет лучше чистого понимания Стока, который давал около полупешки на 40 с чем-то полуходах...
    Launder и Undying нравится это.
  8. FlashNeo Учаcтник

    • Участник
    Рег.:
    23.11.2018
    Сообщения:
    587
    Симпатии:
    309
    Репутация:
    2
    Оффлайн




    После 19-го хода у белых так-то выиграно (и до этого, похоже, уже тоже), но сток это понимает, наверное, только на большой глубине.
    Undying нравится это.
  9. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    И благодаря предлагаемому способу подсчета рейтинга, мы бы видели это и накапливали опыт в этом отношении. А что показывает и для чего может служить нынешний рейтинг версий вообще не понятно.
  10. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    Здесь уже очень много, конечно, всего написали. Есть такой движок - Rofchade: http://rofchade.nl/ . Его оценочная функция: материал + PSQT (бонусы соответствия фигуры и клеток, на которых они стоят). И тем не менее движок вышел в 3-й дивизион TCEC и его уровень явно выше 2700. Т. е. решает не оценка позиции в большей степени, а сам поиск. Если в Stockfish сделать такую оценочную функцию, он много не потеряет - ну, будет играть пунктов на 200, максимум - 300 ниже.

    В AZ и Лиле же оценочная функция намного сложнее (но она и получается в результате обучения), руками ее не написать.
    Нестор и Undying нравится это.
  11. redhelicopter В предбаннике

    • Участник
    Рег.:
    11.11.2014
    Сообщения:
    626
    Симпатии:
    2.182
    Репутация:
    38
    Нарушения:
    15
    Оффлайн
    Нет, я такого не говорил :) Нужно понимать, что оценочная функция - это только одна из составляющих движка. Ее можно сравнить с интуицией шахматиста, который еще ничего не считал, только посмотрел на доску, и сказал, видит ли он равенство или перевес в чью-то сторону.
    У движка эта "интуиция" закладывается алгоритмически. Только напрямую к текущей позиции эта функция не применяется. Оценочная функция имеет смысл только в связке с другой составляющей движка - счетом на большую глубину.

    Попробую объяснить на пальцах, вот допустим движок посчитал на глубину 10, это означает, что он получил множество возможных позиций через 10 полуходов. Но как из этой груды позиций вытянуть оценку исходной позиции? Вот тут на сцену и выходит оценочная функция: она применяется к каждой из этих "будущих" позиций. А уже потом различными алгоритмами формируется первая линия и выводится оценка позиции, из которой велся счет.

    При этом в силу гроссмейстера движок оценивает только на глубине 20-30. А если глубину порезать до 4-6, то даже Стокфиш играет в силу второго разряда, в лучшем случае. Это означает, что у движка - шахматная "интуиция" как у игрока 2-го разряда.

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

    В слабости оценочной функции, кстати, кроется и сила. Функция обрабатывает отдельную позицию очень быстро. И это позволяет быстро получать глубокий счет.

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

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

    Как-то так.
    hornet, sovaz1997 и Нестор нравится это.
  12. FlashNeo Учаcтник

    • Участник
    Рег.:
    23.11.2018
    Сообщения:
    587
    Симпатии:
    309
    Репутация:
    2
    Оффлайн
    Здесь в чем проблема.
    Если пишется хорошая, качественная оценочная функция, то она будет большой. И она будет замедлять проход по дереву расчета.
    Ну грубо говоря будет промежуточный вариант между Лейлой и Стоком по числу рассмотренных узлов. И не миллионы, и не десяток тысяч, а порядок между ними.

    В нынешний сток уже забросили немало эвристик, а вот прямо сейчас зеленые патчи идут лавинообразно (переработали методику засчитывания тестов). То ли еще будет...
    sovaz1997 и SKY нравится это.
  13. sovaz1997 Учаcтник

    • Участник
    Рег.:
    30.08.2016
    Сообщения:
    649
    Симпатии:
    120
    Репутация:
    3
    Оффлайн
    В Komodo оценочная функция то ли в 2 раза, то ли в 3 раза больше, чем у Stockfis. Вот только что это дает Komodo - вообще непонятно. Упрощения - очень немаловажная деталь, кстати, для развития. Stockfish достиг невероятных высот. Таких высот, что AZ/LZ смогли обогнать абсолютно всех, заа исключением Stockfish.
    —- добавлено: 20 дек 2018 —-
    А оценочная функция Stockfish, на самом деле, не может ничего оценить "интуитивно". Просто не очень большой набор бонусов и штрафов, выражаемых в коэффициентах:



    • Tapered Eval
    • Score Grain: ~1/256 of a pawn unit
    • Material
      • Point Values
        • Midgame: 198, 817, 836, 1270, 2521
        • Endgame: 258, 846, 857, 1278, 2558
      • Bishop Pair
      • Imbalance Tables
      • Material Hash Table
    • Piece-Square Tables
    • Space
    • Mobility
      • Trapped Pieces
      • Rooks on (Semi) Open Files
    • Outposts
    • Pawn Structure
      • Pawn Hash Table
      • Backward Pawn
      • Doubled Pawn
      • Isolated Pawn
      • Phalanx
      • Passed Pawn
    • King Safety
      • Attacking King Zone
      • Pawn Shelter
      • Pawn Storm
      • Square Control
    • Evaluation Patterns


    И качественный подгон параметров зачастую решает больше, чем добавление новых признаков в оценочную функцию. Новые признаки в итоге могу даже замедлить развитие движка.
  14. Challenger Spy Технический специалист

    • Команда форума
    Рег.:
    29.01.2011
    Сообщения:
    5.225
    Симпатии:
    2.804
    Репутация:
    226
    Оффлайн
    Друзья, я вот не совсем понимаю. Если, как говорится, сеть сама обучается "с нуля", то что тогда разрабатывает команда Гугла DeepMind много месяцев? Если саму сеть, то на основании чего идет разработка и какие знания они в нее закладывают - шахматные или нет? Если нет, то значит эта сеть универсальна для любых задач в принципе?
  15. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    77
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    Google - это супергигантская корпорация, а дипмайнд - лишь небольшая её часть, которая занимается передовыми исследованиями и решает достаточно маленькую часть задач. Про универсальный ИИ на все случаи жизни здесь разговора не было.
    Помимо дипмайнда есть люди которые занимаются поиском, ютубом, беспилотниками, поддержкой и развитием всей инфраструктуры, аналитикой, переводом и многими другими вещами.
  16. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.527
    Симпатии:
    1.243
    Репутация:
    32
    Адрес:
    Киев
    Оффлайн
    Ну... в альфа-зеро это скорее закодированная база из сотни миллионов позиций, которые встретились в обучающих партиях. Для данной позиции она ищет в этой базе похожие, и берёт их оценку. Проблема в том, что без нейросети процесс поиска настолько медленный, что теряет всякий смысл. Ну и кроме оценки позиции возвращается список ходов-кандидатов, которые рассматривались лучшими в подобных положениях.

    Обучать с базовой или с нуля вопрос не такой однозначный. Проблема в том, что оценка позиции и ходы-кандидаты должны соответствовать стилю того переборного алгоритма, что используется. Может получится так, что для адекватного выбора хода в варианте Найдорфа необходимо перебрать миллион позиций, а нейросеть просто физически не сможет это сделать. А перестроить сеть так, чтобы не играть Найдорф, у неё может не получится, потому что изначально альтернативам давался маленький вес. Ну а если сеть будет обучаться с нуля, то на этапе играть Найдорфа или 2. c3 она увидит, что в Найдорфе русская рулетка, а во 2. c3 небольшой плюс, и пойдёт туда.
    Launder и Polarity нравится это.
  17. Jadn Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    10.05.2006
    Сообщения:
    3.626
    Симпатии:
    2.535
    Репутация:
    52
    Оффлайн
    Это заразно, что ли? Нейронная сеть тоже реализует алгоритм.

    В первое верю, а вот что будет не сильно уступать в скорости - думаю, это нереально.

    Все это уже было. Фрицы с Джуниорами призывали в свою команду гроссов. Но потом выяснилось, что простая и быстрая оценочная функция в сочетании с поиском - лучше.
    WinPooh нравится это.
  18. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.527
    Симпатии:
    1.243
    Репутация:
    32
    Адрес:
    Киев
    Оффлайн
    Она изучает, что получилось в результате обучения. И потом улучшает алгоритм обучения/игры.

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

    Не для любых задач, а для игр. Допустим мы хотим применить наработки DeepMind для какой-нить игры, например, шашки. Тогда нам надо (1) реализовать генератор ходов; (2) векторизовать шашечную позицию и (3) векторизовать ходы (4) выбрать структуру нейросети.

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

    Векторизация это способ описания позиции в виде вектора/массива действительных чисел. Один из вариантов использовать на входе массив чисел размерностью 4x32, где первом измерение это признаки (белая простая, белая дамка, чёрная простая, чёрная дамка), второе измерение — 32 чёрных поля, на котором происходит игра. Тогда для начальной позиции мы получим
    Код:
    1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    Это не единственное представление, вполне можно использовать массив 2x32, где по первому измерению будут простые/дамки, а цвет будет кодироваться -1 +1. Тогда начальная позиция будет в виде

    Код:
    +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1  0  0  0  0  0  0  0  0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
    0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
    
    Для ходов можно подавать отдельно все возможные пары клетка №1/клетка №2, всего 32*31/2 = 496 вариантов. Понятно, что одной паре может соответствовать несколько ходов, но этим можно пренебречь, потому что на практике такое встречается очень редко, и можно считать, что два и больше таких ходов получат одинаковые оценки.

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

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

    Далее в игру включается алгоритмы DeepMind. У них в кармане есть два алгоритма. Первый алгоритм это обучение нейросети, мы используем генератор ходов, структуру нейросети и выбранную векторизацию для того, чтобы каким-то образом настроить коэффициенты нейросети. Второй алгоритм это выбор хода, который использует обученную нейросеть (плюс генератор ходов плюс векторизацию) для выбора хода в игре.

    Соответственно, DeepMind вполне может заниматься улучшением алгоритма обучения нейросети и улучшением алгоритма выбора хода, но шахматы/го/сёги/дота это всего-лишь один из наборов входных данные для этого алгоритма.
    sovaz1997, WinPooh и Undying нравится это.
  19. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Скорее нейронная сеть эмулируется алгоритмическими средствами. В мышлении человека нейронная сеть то же есть, но реализована совсем по другому.
  20. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.474
    Симпатии:
    3.068
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Архитектуры у них совершенно разные. Искусственные нейронные сети - это всего лишь достаточно простые конструкции, в виде цепочек из перемножения матриц и нелинейных функций активации между ними. Один-единственный реальный нейрон - гораздо более сложная система. На данном этапе развития общего у ИНС и биологических нейронных сетей ненамного больше, чем пара слов в названии. Можно вспомнить хотя бы, что биологические сети принципиально асинхронные. И обучение у них построено на совершенно других принципах - никакого "обратного распространения ошибок" в живых нейронах нет.

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

    То есть ИНС эмулирует биологические нейроны не в большей степени, чем самолёт "эмулирует" птицу.
    Mustitz нравится это.
  21. Undying Учаcтник

    • Участник
    Рег.:
    31.08.2016
    Сообщения:
    1.316
    Симпатии:
    566
    Репутация:
    15
    Оффлайн
    Конечно, архитектура разная. Раз искусственная нейронная сеть эмулирована алгоритмическими средствами. Когда ZX Spectrum эмулируем на IBM, от этого архитектура IBM не становится идентичной архитектуре ZX Spectrum. И собственно само понятие искусственная нейронная сеть говорит о том, что термин нейронная сеть это более общее понятие, которое нельзя сводить только к нынешним алгоритмическим эмуляциям.
  22. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.474
    Симпатии:
    3.068
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Да, можно сказать, что библиотека, скажем, Keras или TensorFlow эмулирует некую идеальную в платоновском смысле нейросеть.
    Здесь снова хочется процитировать Борхеса, но я не буду :)
  23. NeoNeuro Старожил

    • Участник
    • Старожил
    Рег.:
    17.02.2013
    Сообщения:
    687
    Симпатии:
    512
    Репутация:
    51
    Оффлайн
    Я не верю в alphazero.
    Нейронные сети - это круто, но логические задачи им не под силу.
    Обыграть стокфиш? - а как же вначале научиться правилам?
    Нет ни одной статьи, ни одного примера, в котором ИНС можно научить правилам шахмат (просто правилам, с точки зрения правил ФИДЕ)
    Нет ни одного материала по ИНС по решению задач, требующих РАСЧЁТА. ИНС ведь имитируют МГНОВЕННУЮ реакцию человека, ИНТУИЦИЮ. Это просто фильтр, через который идут данные и дают результат.
    Но расчёты - нет.

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

    Это всё равно что выпустить современный автомобиль ДО появления двигателей и электроники, причём чтобы в авто БЫЛИ двигатель и электроника, а в статьях писать, как автоматическая телега обогнала лошадь.

    Я думаю всё проще: ИНС используются в помощь обычному алгоритму для уточнения расчётов. Шахматный материал считает не ИНС, а обычный алгоритм. Не верите?
    Найдите ссылку, чтобы инс научилась считать?
    Счёт предметов на пальцах - это главное, что начало отличать человека от животных.
    Научить ИНС считать предметы - это сложнейшая задача. Пока не решённая.
    смотрите, задача:
    даём вектора данных, требутся посчитать единицы
    010101 - 3
    111111 - 6
    000001 - 1
    шесть цифр на входе, одна на выходе.
    Это стандарт интерфейса ИНС,
    сможет ли любая из существующих сетей ответить на вопрос

    011000 - ?
    должно быть 2. для человека очевидно. Для ИНС - неразрешимая задача. Конечно, может быть в недрах какой-нибудь компании и можно "по-тихому" сделать автоматическую телегу с дутыми колёсами и музыкой из дверей, 300 лет назад.
    SKY и hornet нравится это.
  24. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.474
    Симпатии:
    3.068
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    crem нравится это.
  25. Strat7 Учаcтник

    • Участник
    Рег.:
    06.05.2017
    Сообщения:
    806
    Симпатии:
    371
    Репутация:
    11
    Оффлайн
    Бред. Сможет любая из сетей если её правильно обучить. В этом и смысл нейронок. Сначала придумать структуру сети потом обучить на правильных данных и тогда будут правильные результаты. А вы дали 7 чисел и требуете ответа.

    Если он ранее тоже обучался и программированию и системам счисления и логике. Дайте эту задачу необученному человеку и он назовет вас кое кем или скажет куда идти.
    WinPooh, FlashNeo, Undying и ещё 1-му нравится это.
  26. NeoNeuro Старожил

    • Участник
    • Старожил
    Рег.:
    17.02.2013
    Сообщения:
    687
    Симпатии:
    512
    Репутация:
    51
    Оффлайн
    Вы пробовали ? Я пробовал - не получилось.
    Нейронок много, бесплатные и платные.
    Узнавал у специалистов - общее мнение - это НЕВОЗМОЖНО.
    Нейронка умным образом аппроксимирует значение между точками. Но не делает логически операций. А тут логика нужна - нужно посчитать цифры.

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

    есть задача и попроще, чем обучение счёту. Это обучение ходу ладьи.

    берём на вход 4 вектора (числа)
    x1, y1, x1, y2 и ставим решение - может так ходить или не может.
    набираем ходы
    1, 1, 8, 1 - это ход ладья a1 - h1. он возможен, значит ответ - 1 (ПРАВДА)
    далее
    1, 1, 1, 8 - 1
    1, 1, 8, 8 - 0 (ЛОЖЬ - ладья не ходит с a1 на h8)
    я этому пытался обучить нейронку. это оказалось невозможным. почитал литературу - понял, что это КОНЦЕПТУАЛЬНО невозможно. Так устроены нейронные сети. ну не понимают они логику. аппроксимируют числа только внутри выборки. то есть если задать ей ВСЕ возможные ходы ладьей - она запомнит. Но именно - ВСЕ. она не понимает сути - как ходит ладья.

    Научить программу ходу ладьи в обще случае - это очень СЛОЖНАЯ задача. Ключевое слово - научить.
    Если бы ИНС могла научиться играть в шахматы (неважно на каком уровне), это был бы высочайший уровень ии, можно было бы говорить о сравнении разума человека и компьютера.
    я не говорю о том, что компьютер неспособен в принципе научиться шахматным правилам - это сложная задача и в будущем она будет решена.
    Но сейчас.. это выглядит странно.
    Не бывает такого, чтобы сложная задача, состоящая из тысячи мелких была решена хорошо, но ни одна из этих мелких задач - не решена.

    Как может ИНС, неспособная обучиться ходу ладьи (самому простому из ходов), вдруг способна научиться играть в шахматы сильнее стокфиша?


    ——
    как-то читал статью об ИНС, которая научилась играть в шашки на уровне мастера. Там было написано, между делом, как-бы невзначай -
    ИНС анализирует позиции, после нескольких полуходов. Причем эти "полухода" делаются обычными алгоритмами. ИНС не учили правилам. Она лишь даёт оценку позиции и всё. В этом варианте действительно мы видим настоящее моделирование интуиции и это будет работать.
    Правда было неясно, как ход выбирается. не исключено, что дают все ВОЗМОЖНЫЕ ходы для проверки.
    но - если играть только интуитивно, без расчёта, то будут комбинационные проигрыши. Значит, расчёт чистом в виде инс будет плохо работать. Думаю, что AlphaZero - это просто ПОМОЩЬ ИНС для обычной программы, вроде стокфиша. Это тоже самое, что "Адванс" - где ИНС играет роль "советника".
  27. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.474
    Симпатии:
    3.068
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Задача обучения шахматным правилам с нуля и не ставилась, насколько известно. Но если бы её поставили, думаю, что трудностей бы не возникло. Научилась же нейросеть играть в видеоигры Атари, имея в качестве входных данных только изображение с экрана. Шахматы вряд ли в визуальном плане сложнее.
  28. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    77
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    Философствуют о том, работает на самом деле альфа зеро или нет, как правило люди, которые далеки от машинного обучения. Те же кто профессионально вовлечён в область машинного обучения, обычно едины во мнении.
    WinPooh нравится это.
  29. Strat7 Учаcтник

    • Участник
    Рег.:
    06.05.2017
    Сообщения:
    806
    Симпатии:
    371
    Репутация:
    11
    Оффлайн
    Необязательно есть гнилое яблоко чтобы сказать - оно гнилое. Вы попробовали и у вас не получилось. На основании этого вы делаете вид что это невозможно. Уровень логики и доказательств сразу виден, спорить даже не имеет смысла.

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

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

    Горе-строитель, у которого в частном доме рухнул потолок, скажет, что «надо было толще арматуру брать», но не скажет, что не сделал расчёт плиты перекрытия на распределённую и сосредоточенную нагрузку, потому что он в принципе не знал о необходимости таких расчётов, а когда его уволят, или когда горе-заказчик пошлёт его лесом, он не будет понимать за что, так как в принципе не способен осознать узость своего понимания строительной механики. Часто такая ситуация возникает с шабашниками, которые не понимают, почему им не платят за работу то, что они якобы заработали. Им невозможно объяснить, почему тот или иной элемент в строительстве они сделали неправильно, потому что у них на всё один ответ «мы так всю жизнь делали, наши деды так делали, и ничего», а фразу «расчёт балки на прогиб» они никогда и не слышали. Короче говоря, объяснить некомпетентному человеку то, что он некомпетентен, невозможно именно в силу его некомпетентности.

    Впрочем, именно у талантливых-то наблюдается обратный эффект: они хорошо понимают, насколько сложны законы реальности и насколько обширно поле знаний, которым в перспективе можно овладеть, – это приводит их к занижению собственных способностей, к недооценке своего места в обществе. «Я знаю, что ничего не знаю», – повторял мудрец Сократ, который вел более чем скромную жизнь и постоянно подвергался нападкам со стороны глупцов, уверенных в своей правоте.

    Как был проверен эффект.

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

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

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

    Впрочем, надежда на то, что слепцы, неспособные узреть бездну своего невежества и сияющие вершины знаний, которых достигли другие люди, могут исправиться, все-таки существует. Даннинг и Крюгер предложили профанам пройти специальный обучающий курс, где им не только давали знания, касающиеся их профессии, но и представление о методах, с помощью которых можно получить реальные показатели компетентности. Эти методы позволяли проверять как профессионализм других, так и собственный реальный уровень. По итогам обучения профаны осознали уровень своей прежней некомпетентности – причем даже в том случае, если их профессиональный уровень после этого не вырос.
    Vlad_Imir, Sergey1983, Benas и ещё 1-му нравится это.
  30. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    77
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    Видимо плохо пробовали.
    Интересно, какие же это платные нейронки? Может вы с шарлатанами общались?
    Ну и термин ИНС среди специалистов в области машинного обучения не употреляет практически никто. Это тоже показатель, хоть и косвенный.
  31. NeoNeuro Старожил

    • Участник
    • Старожил
    Рег.:
    17.02.2013
    Сообщения:
    687
    Симпатии:
    512
    Репутация:
    51
    Оффлайн
    Во-первых, я сделал вывод о том, что невозможно не из того, что у меня не получилось, а из специализированных книг, где писали, что к примеру, обучение ИНС работает только в пределах заданных чисел. Например, легко научить ИНС складывать или умножать, давая ей примеры. если все примеры будут от 1 до 100, то ИНС научится считать только числа.. от 1 до 100. Например, 25 + 12 она посчитает правильно (с небольшой погрешностью). а вот 2500 + 12000 - она может выдать .. примерно 101 . Потому что выходит за пределы. К примеру, обучить синусу ИНС вроде бы можно, но - она не поймёт, что там периодичность. Само понятие не под силу - за пределами ИНС не работает.

    Ход ладьи с точки зрения многомерного пространства (увы, ИНС без понимания многомерного пространства даже нет смысла изучать) - это множество кубов, которые представляют собой периодическую последовательность. Он не пересекаются. Это примерно как чёрные клетки шахматаной доски. Удалим клетку e5. найти её аппроксимацией других ячеек невозможно. задача аналогична задаче умножения, выходящей за пределы заданных чисел.

    Я обсуждал эти вопросы с профессорами ТулГу и СпбГУ, в том числе с автором книг по ИИ. Я занимался и занимаюсь вопросами ИИ довольно активно.

    Я не исключаю, что здесь есть эксперты в области ИИ. И был бы рад пообщаться.
    Наука - это не когда смотрят на что-то сложное и говорят "ух ты..". Наука - это когда сложное разбирают на элементарные кусочки, каждый из которых объяснить проще, чем целое.
    Правильно поставленный вопрос зачастую важнее описания сложной вещи.
    Вопрос здесь такой:
    Можно ли ИНС обучить ходу ладьи? Не заучивая все 500 правильных вариантов.
    hornet и Undying нравится это.
  32. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    77
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    В ТулГУ многослойные персептроны изучают:
    https://tidings.tsu.tula.ru/tidings/pdf/web/file/tsu_izv_technical_sciences_2016_02.pdf
    Это не наука, это позор. Попробуйте найти более квалифицированные источники.
  33. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.474
    Симпатии:
    3.068
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Всё-таки, учитывая достаточно специфический и прикладной характер тульских изделий, я бы не относился к тульской науке так уж свысока. Изделия, по крайней мере, работают - доказано на практике многократно.
    А каковы ваши научные достижения, ув. Polarity, которые позволяют вам так снисходительно бросаться словами типа "позор"? Ссылками на публикации не поделитесь?
  34. Polarity Новичок

    • Новичок
    Рег.:
    24.04.2018
    Сообщения:
    77
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    Для того чтобы понять что это "позор", мне не нужны публикации. Я представляю где чему учат и на каком уровне. Толковых мест в России к сожалению очень мало.
    Я сейчас занимаюсь NLP, но разбираюсь достаточно неплохо в современном RL/CV.

    Ну и касательно самой дискуссии. Зачем нейронку учить умножать два числа? Или как ходит ладья?
    Есть среда, которая следит за всеми правилами игры. Она написана людьми, там никаких нейронок нет.
    Нейронная сеть альфа зеро вообще генерит оценки для всех ходов, даже для невозможных в данный момент. Но выбирается лучший ход среди возможных. Воспринимайте это как физические законы, которые иногда вам очень хотелось бы нарушить, но нельзя.
  35. Magystr Новичок

    • Новичок
    Рег.:
    19.04.2011
    Сообщения:
    62
    Симпатии:
    15
    Репутация:
    2
    Оффлайн
    Если я правильно понял, обучить нейронную сеть правильно ходить ладьей невозможно. Именно поэтому она никогда не достигнет уровня Стокфиша. Как ей при этом удалось переплюнуть остальные движки, а также превзойти на несколько порядков человеческие возможности в шахматах, уважаемые профессора всем известных университетов не комментируют.
    Программа LC0 доступна для свободного скачивания и установки. Также с ней всегда можно поиграть онлайн.

Поделиться этой страницей