🧩 В последние недели я немного занимался нейросетями для решения вращательных пазлов типа кубика Рубика, пирамидок и прочих.
Речь идёт о задачах вроде нахождения путей в графах Кэли, которые имеют колоссальное количество состояний.
Для примера:
* Кубик Рубика 3×3×3 — примерно 10^19 перемешанных состояний.
* Кубик 5×5×5 — уже примерно 10^90 состояний.
* Кубик 8×8×8 — 10^167 состояний!
😲 Для сравнения: это гораздо больше, чем число атомов в видимой Вселенной. Суперастрономические числа.
Решить такой пазл значит найти путь в графе от любого перемешанного состояния до собранного, где все грани одного цвета.
Да, интересно находить кратчайший путь, но пока оставим этот нюанс.
💡 Главное: классические алгоритмы поиска в графах здесь не работают — слишком много вершин и рёбер.
В следующих постах я попытаюсь объяснить, почему и при каких условиях нейросети могут успешно справляться с этой задачей и какие примерно вычислительные мощности должны быть при этом задействованы.
⌛ Продолжение будет (не сегодня 😉).
Речь идёт о задачах вроде нахождения путей в графах Кэли, которые имеют колоссальное количество состояний.
Для примера:
* Кубик Рубика 3×3×3 — примерно 10^19 перемешанных состояний.
* Кубик 5×5×5 — уже примерно 10^90 состояний.
* Кубик 8×8×8 — 10^167 состояний!
😲 Для сравнения: это гораздо больше, чем число атомов в видимой Вселенной. Суперастрономические числа.
Решить такой пазл значит найти путь в графе от любого перемешанного состояния до собранного, где все грани одного цвета.
Да, интересно находить кратчайший путь, но пока оставим этот нюанс.
💡 Главное: классические алгоритмы поиска в графах здесь не работают — слишком много вершин и рёбер.
В следующих постах я попытаюсь объяснить, почему и при каких условиях нейросети могут успешно справляться с этой задачей и какие примерно вычислительные мощности должны быть при этом задействованы.
⌛ Продолжение будет (не сегодня 😉).
👍8🔥1
Продолжение. Начало — тут.
Я ещё не закончил разбираться с поиском в графах Кэли / подгруппах симметрической группы, но хочу поделиться промежуточными наблюдениями и парой вопросов, которые меня в этой теме занимают. Главное — задавать правильные вопросы; возможно, кто-то из дорогих читателей подскажет подходящую идею или задаст вопрос, которого у меня пока не хватает. Поскольку в телеграме длина поста ограничена, не буду сейчас гнаться за формальной точностью — по деталям, если будет интересно, отвечу в комментариях.
Итак, что конкретно делаем с нейросетью. Мы учим её предсказывать следующий ход для сборки пазла. Как это делаем: генерируем случайные «прогулки» по графу от собранного состояния к перемешанным состояниям длины от 2 до 𝑘. Эти пары (перемешанное состояние → следующий ход по пути к собранному состоянию) скармливаем нейросети в режиме супервайзинга. Ходов у нас конечное небольшое число — пусть это 𝑚. На входе сеть получает состояние, на выходе — распределение по
𝑚 возможным ходам: оценку вероятности того, что данный ход уменьшит дистанцию до собранного состояния.
На головоломках с размерами состояния порядка
10^15 – 10^20 подход работает прекрасно. Модель небольшая, много данных не требуется — даже при том, что число случайных прогулок на порядки меньше числа всех состояний, сеть быстро учится и решает такие пазлы без видимых проблем. По опыту: на этих масштабах сложно ошибиться с архитектурой/размером модели — всё, что я пробовал (простые CNN-подобные сети, трансформеры и т.п.), работало; параметры модели обычно значительно меньше полумиллиона обучаемых весов, и пространство скрытых состояний тоже невелико. Скоро выложу код и модели на Kaggle/репозиторий. Следующий шаг — атаковать головоломки с количеством состояний ≫ 10^40.
Вопросы, которые мне кажутся интересными (и по которым хотелось бы услышать мнение сообщества):
1) Какова конкретная связь между размером графа / порядком соответствующей группы и необходимым числом обучаемых параметров, размером датасета и выбором архитектуры? Неужели действительно «любая» архитектура будет работать одинаково, как мне пока кажется? Может, я ошибаюсь — опыта мало, хотелось бы навести порядок в голове.
2) Немного теории. Вращающиеся пазлы задаются как подгруппы симметрической группы (группа перестановок). Известно, что для абелевых (т.е. коммутативных) групп число достижимых состояний с ростом длины слова увеличивается полиномиально; в более общем виде теорема Громова говорит о связи между полиномиальным ростом и виртуальной нильпотентностью группы (нилпотентность группы это, грубо говоря - насколько группа близка к коммутативности). Пазлы, как правило, не нильпотентны и в вычислительных экспериментах демонстрируют экспоненциальный рост числа достижимых состояний по мере увеличения глубины. Тогда почему нейросети так хорошо справляются с такой «экспоненциальной» структурой? Какие факторы дают им преимущество?
Господа математики (и все причастные), что думаете?
⌛ Продолжение будет (не сегодня 😉).
П.С. всё написаное соответствует моему пониманию темы на сегодняшний день и я тут ни разу не эксперт, который на это потратил годы. пытаюсь покопать в этих направлениях и пишу о том, что вижу по мере раскопок :)
Я ещё не закончил разбираться с поиском в графах Кэли / подгруппах симметрической группы, но хочу поделиться промежуточными наблюдениями и парой вопросов, которые меня в этой теме занимают. Главное — задавать правильные вопросы; возможно, кто-то из дорогих читателей подскажет подходящую идею или задаст вопрос, которого у меня пока не хватает. Поскольку в телеграме длина поста ограничена, не буду сейчас гнаться за формальной точностью — по деталям, если будет интересно, отвечу в комментариях.
Итак, что конкретно делаем с нейросетью. Мы учим её предсказывать следующий ход для сборки пазла. Как это делаем: генерируем случайные «прогулки» по графу от собранного состояния к перемешанным состояниям длины от 2 до 𝑘. Эти пары (перемешанное состояние → следующий ход по пути к собранному состоянию) скармливаем нейросети в режиме супервайзинга. Ходов у нас конечное небольшое число — пусть это 𝑚. На входе сеть получает состояние, на выходе — распределение по
𝑚 возможным ходам: оценку вероятности того, что данный ход уменьшит дистанцию до собранного состояния.
На головоломках с размерами состояния порядка
10^15 – 10^20 подход работает прекрасно. Модель небольшая, много данных не требуется — даже при том, что число случайных прогулок на порядки меньше числа всех состояний, сеть быстро учится и решает такие пазлы без видимых проблем. По опыту: на этих масштабах сложно ошибиться с архитектурой/размером модели — всё, что я пробовал (простые CNN-подобные сети, трансформеры и т.п.), работало; параметры модели обычно значительно меньше полумиллиона обучаемых весов, и пространство скрытых состояний тоже невелико. Скоро выложу код и модели на Kaggle/репозиторий. Следующий шаг — атаковать головоломки с количеством состояний ≫ 10^40.
Вопросы, которые мне кажутся интересными (и по которым хотелось бы услышать мнение сообщества):
1) Какова конкретная связь между размером графа / порядком соответствующей группы и необходимым числом обучаемых параметров, размером датасета и выбором архитектуры? Неужели действительно «любая» архитектура будет работать одинаково, как мне пока кажется? Может, я ошибаюсь — опыта мало, хотелось бы навести порядок в голове.
2) Немного теории. Вращающиеся пазлы задаются как подгруппы симметрической группы (группа перестановок). Известно, что для абелевых (т.е. коммутативных) групп число достижимых состояний с ростом длины слова увеличивается полиномиально; в более общем виде теорема Громова говорит о связи между полиномиальным ростом и виртуальной нильпотентностью группы (нилпотентность группы это, грубо говоря - насколько группа близка к коммутативности). Пазлы, как правило, не нильпотентны и в вычислительных экспериментах демонстрируют экспоненциальный рост числа достижимых состояний по мере увеличения глубины. Тогда почему нейросети так хорошо справляются с такой «экспоненциальной» структурой? Какие факторы дают им преимущество?
Господа математики (и все причастные), что думаете?
⌛ Продолжение будет (не сегодня 😉).
П.С. всё написаное соответствует моему пониманию темы на сегодняшний день и я тут ни разу не эксперт, который на это потратил годы. пытаюсь покопать в этих направлениях и пишу о том, что вижу по мере раскопок :)
Telegram
Истории (не)успеха (ИИ)ЕИ
🧩 В последние недели я немного занимался нейросетями для решения вращательных пазлов типа кубика Рубика, пирамидок и прочих.
Речь идёт о задачах вроде нахождения путей в графах Кэли, которые имеют колоссальное количество состояний.
Для примера:
* Кубик…
Речь идёт о задачах вроде нахождения путей в графах Кэли, которые имеют колоссальное количество состояний.
Для примера:
* Кубик…
👍5❤2🐳2
В общем, кратко, как это работает — а оно работает (см. тут):
1) Генерируем простым алгоритмом некоторое количество случайных прогулок по графу от собранного состояния до любых, куда заведёт генератор случайных чисел.
2) Компактифицируем дискретный граф 10^𝑛, переводя его в эмбеддинги в пространстве 𝑅^𝑑,где 𝑑≪𝑛. То есть пропускаем все сгенерированные состояния через нейросеть и говорим: вот это состояниe — оно на столько-то шагов от исходного. Учись, нейросеточка, на этом.
3) Пропускаем эти векторы через пару-тройку слоёв нейросети с нелинейностями — она ловит паттерны и учится одной простой вещи: предсказывать, насколько «близко к решению» текущее состояние, хотя никогда его напрямую не видела. Состояний-то слишком много. Поэтому ловим паттерны.
4) Beam Search делает своё дело: на каждом шаге проверяет варианты, смотрит на предсказанную «близость» и оставляет только топ‑k самых перспективных.
И вуаля — даже не видя все 10^n состояний, модель находит решение потому, что видит скрытые закономерности.
1) Генерируем простым алгоритмом некоторое количество случайных прогулок по графу от собранного состояния до любых, куда заведёт генератор случайных чисел.
2) Компактифицируем дискретный граф 10^𝑛, переводя его в эмбеддинги в пространстве 𝑅^𝑑,где 𝑑≪𝑛. То есть пропускаем все сгенерированные состояния через нейросеть и говорим: вот это состояниe — оно на столько-то шагов от исходного. Учись, нейросеточка, на этом.
3) Пропускаем эти векторы через пару-тройку слоёв нейросети с нелинейностями — она ловит паттерны и учится одной простой вещи: предсказывать, насколько «близко к решению» текущее состояние, хотя никогда его напрямую не видела. Состояний-то слишком много. Поэтому ловим паттерны.
4) Beam Search делает своё дело: на каждом шаге проверяет варианты, смотрит на предсказанную «близость» и оставляет только топ‑k самых перспективных.
И вуаля — даже не видя все 10^n состояний, модель находит решение потому, что видит скрытые закономерности.
👍5
👆👆👆
Вообще, интересно наблюдать, как для решения задач в определённых алгебраических структурах могут применяться искусственные нейронные сети. Я пока занимался этим не так много, но вот что бросается в глаза: если у тебя есть какая-то, даже совсем не плохо исследованная математическая структура — например, симметрические группы как в случае с вверху обсуждаемыми вращательными пазлами — хочется понимать, какая нейросеть её «решает». Архитектура, размер пространства скрытых состояний, все гиперпараметры — хотелось бы видеть это как мост от известных математических инструментов к ИИ-системам, которые находят решения в этих структурах.
Да, можно решать пазлы методом тыка, подбирая размер сети и другие параметры «на глаз», но куда интереснее иметь какую-то теоретическую основу, которая объясняет, как из матаппарата структуры вырастает нейросеть, способная её эффективно обрабатывать 🤷♂️
Вообще, интересно наблюдать, как для решения задач в определённых алгебраических структурах могут применяться искусственные нейронные сети. Я пока занимался этим не так много, но вот что бросается в глаза: если у тебя есть какая-то, даже совсем не плохо исследованная математическая структура — например, симметрические группы как в случае с вверху обсуждаемыми вращательными пазлами — хочется понимать, какая нейросеть её «решает». Архитектура, размер пространства скрытых состояний, все гиперпараметры — хотелось бы видеть это как мост от известных математических инструментов к ИИ-системам, которые находят решения в этих структурах.
Да, можно решать пазлы методом тыка, подбирая размер сети и другие параметры «на глаз», но куда интереснее иметь какую-то теоретическую основу, которая объясняет, как из матаппарата структуры вырастает нейросеть, способная её эффективно обрабатывать 🤷♂️
👍8❤2
начало тут 👆
🧩 Всем привет!
Есть серия соревнований на Kaggle, где в соревновательной форме можно попробовать решать открытые задачи математики на графах Кэли и подгруппах симметрической группы.
🎯 Суть
Нужно искать кратчайшие пути в графах Кэли — будь то оптимальные решения для куба Рубика 4×4×4 (Rubik’s Revenge), задачи на транспозоны или другие перестановочные головоломки.
В общем случае такие задачи NP-трудные.
Для малых размеров иногда можно найти оптимум, для больших — выигрывает тот, кто строит более короткие пути.
🔬 Научный контекст
Это классическая постановка: разложить элемент группы в произведение генераторов, или — найти путь в графе Кэли.
-Примеры: bubble sort, pancake sorting 🥞 (в котором, к слову, участвовал Билл Гейтс).
-Открытая гипотеза OEIS A065603 предсказывает, что диаметр (т.н. число Бога) равен ⌈(n+1)/2⌉ — она остаётся нерешённой уже 25 лет.
Важность темы подчёркивают работы М. Громова, Т. Тао и других. Дональд Кнут предлагал алгоритмические улучшения.
Применения: биоинформатика (оценка эволюционных расстояний), теория коммуникаций, оптимизация сетей и многое другое.
🤖 RL и компьютерные науки
Состояния = вершины графа Кэли.
Действия = рёбра (разрешённые перестановки).
Награды = всегда "1", пока не найдено решение (там 0).
Итого: классический RL с экстремально разреженной наградой.
Функция ценности = длина пути до решения, а уравнение Беллмана в этом случае напрямую отражает тривиальные соотношения на длинах путей.
Это отличная площадка для тестирования новых методов RL и pathfinding на пространствах колоссального размера (10³³ и больше).
🚀 Практика - соревнования
В соревнованиях можно попробовать себя не только с кубом Рубика, но и с другими задачами:
Pancake sorting
Transposons
Reversals
Glushkov problem
RapapportM2
Rubik's cube 444
Professor Tetraminx
Megaminx
Christophers jewel
SuperCube from IHES
Все они собраны в рамках проекта CayleyPy — это open-source crowd-sourcing инициатива для разработки AI-библиотеки по математике. Можно подключаться и вне Kaggle.
Если интересно поучаствовать, но кажется, что порог входа высокий — я могу сделать введение на созвоне и рассказать основы: что такое графы Кэли, как ставится задача и какие методы уже пробовали.
Продолжение тут и тут👇
#Puzzles #CayleyGraphs #SymmetricGroup #KaggleCompetitions
🧩 Всем привет!
Есть серия соревнований на Kaggle, где в соревновательной форме можно попробовать решать открытые задачи математики на графах Кэли и подгруппах симметрической группы.
🎯 Суть
Нужно искать кратчайшие пути в графах Кэли — будь то оптимальные решения для куба Рубика 4×4×4 (Rubik’s Revenge), задачи на транспозоны или другие перестановочные головоломки.
В общем случае такие задачи NP-трудные.
Для малых размеров иногда можно найти оптимум, для больших — выигрывает тот, кто строит более короткие пути.
🔬 Научный контекст
Это классическая постановка: разложить элемент группы в произведение генераторов, или — найти путь в графе Кэли.
-Примеры: bubble sort, pancake sorting 🥞 (в котором, к слову, участвовал Билл Гейтс).
-Открытая гипотеза OEIS A065603 предсказывает, что диаметр (т.н. число Бога) равен ⌈(n+1)/2⌉ — она остаётся нерешённой уже 25 лет.
Важность темы подчёркивают работы М. Громова, Т. Тао и других. Дональд Кнут предлагал алгоритмические улучшения.
Применения: биоинформатика (оценка эволюционных расстояний), теория коммуникаций, оптимизация сетей и многое другое.
🤖 RL и компьютерные науки
Состояния = вершины графа Кэли.
Действия = рёбра (разрешённые перестановки).
Награды = всегда "1", пока не найдено решение (там 0).
Итого: классический RL с экстремально разреженной наградой.
Функция ценности = длина пути до решения, а уравнение Беллмана в этом случае напрямую отражает тривиальные соотношения на длинах путей.
Это отличная площадка для тестирования новых методов RL и pathfinding на пространствах колоссального размера (10³³ и больше).
🚀 Практика - соревнования
В соревнованиях можно попробовать себя не только с кубом Рубика, но и с другими задачами:
Pancake sorting
Transposons
Reversals
Glushkov problem
RapapportM2
Rubik's cube 444
Professor Tetraminx
Megaminx
Christophers jewel
SuperCube from IHES
Все они собраны в рамках проекта CayleyPy — это open-source crowd-sourcing инициатива для разработки AI-библиотеки по математике. Можно подключаться и вне Kaggle.
Если интересно поучаствовать, но кажется, что порог входа высокий — я могу сделать введение на созвоне и рассказать основы: что такое графы Кэли, как ставится задача и какие методы уже пробовали.
Продолжение тут и тут👇
#Puzzles #CayleyGraphs #SymmetricGroup #KaggleCompetitions
Telegram
Истории (не)успеха (ИИ)ЕИ
В общем, кратко, как это работает — а оно работает (см. тут):
1) Генерируем простым алгоритмом некоторое количество случайных прогулок по графу от собранного состояния до любых, куда заведёт генератор случайных чисел.
2) Компактифицируем дискретный граф…
1) Генерируем простым алгоритмом некоторое количество случайных прогулок по графу от собранного состояния до любых, куда заведёт генератор случайных чисел.
2) Компактифицируем дискретный граф…
👍4
Вот несколько деталей и мотивация, почему это интересно 👆:
1️⃣ Соревнования только стартовали, а продлятся целый год — времени хватит на эксперименты, улучшения и изучение новых подходов.
2️⃣ Каждому пазлу прилагается ноутбук с примером решения.
Сегодня я выложу пример в Каггл пример ноутбука с решением для пазла Christopher’s Jewel. Но не обязательно решать так же.
Можно использовать любые методы — главное, кто найдёт самые короткие решения для заданного класса пазлов.
Если понадобится, могу помочь разобраться с ноутбуками.
3️⃣ Теоретический интерес:
Все эти соревнования основаны на нерешённых математических задачах о диаметре графа Кэли соответствующей группы.
Существует гипотеза о том, как диаметр растёт с увеличением числа элементов группы. Даже Теренс Тао пытался доказать её, но не смог.
Кто знает, может с помощью машинных методов именно вы добьётесь успеха? 💡
Например, чистые математики, которые тоже читают эту группу и не особо любят программировать и не занимаются МL могут скооперироваться с теми, кто любит программировать и МL - пишите в комменты!
4️⃣ Практическая сторона:
Некоторые задачи проще описать на примере кубика Рубика.
Для 3×3×3 известно так называемое число Бога — 20 вращений.
Для 4×4×4 и многих других головоломок диаметр не известен, и найти его — реально интересная и открытая проблема. Вот то что Теренс Тао не смог доказать, там ещё побиться надо, а это более реальный и вроде-бы быстрый, но таки новый математический результат! Есть возможность прославиться! 😀
5️⃣ И много других любопытных вопросов ждёт внутри соревнований: оптимальные пути, перестановочные головоломки, алгоритмические эксперименты, RL с разреженной наградой и т.д.
🚀 В общем, есть где развернуться и проверить себя на пересечении математики, программирования и AI.
Хотите лайв-стрим с введением в эти темы и парой советов как лучше в эту тему вьехать?
1️⃣ Соревнования только стартовали, а продлятся целый год — времени хватит на эксперименты, улучшения и изучение новых подходов.
2️⃣ Каждому пазлу прилагается ноутбук с примером решения.
Сегодня я выложу пример в Каггл пример ноутбука с решением для пазла Christopher’s Jewel. Но не обязательно решать так же.
Можно использовать любые методы — главное, кто найдёт самые короткие решения для заданного класса пазлов.
Если понадобится, могу помочь разобраться с ноутбуками.
3️⃣ Теоретический интерес:
Все эти соревнования основаны на нерешённых математических задачах о диаметре графа Кэли соответствующей группы.
Существует гипотеза о том, как диаметр растёт с увеличением числа элементов группы. Даже Теренс Тао пытался доказать её, но не смог.
Кто знает, может с помощью машинных методов именно вы добьётесь успеха? 💡
Например, чистые математики, которые тоже читают эту группу и не особо любят программировать и не занимаются МL могут скооперироваться с теми, кто любит программировать и МL - пишите в комменты!
4️⃣ Практическая сторона:
Некоторые задачи проще описать на примере кубика Рубика.
Для 3×3×3 известно так называемое число Бога — 20 вращений.
Для 4×4×4 и многих других головоломок диаметр не известен, и найти его — реально интересная и открытая проблема. Вот то что Теренс Тао не смог доказать, там ещё побиться надо, а это более реальный и вроде-бы быстрый, но таки новый математический результат! Есть возможность прославиться! 😀
5️⃣ И много других любопытных вопросов ждёт внутри соревнований: оптимальные пути, перестановочные головоломки, алгоритмические эксперименты, RL с разреженной наградой и т.д.
🚀 В общем, есть где развернуться и проверить себя на пересечении математики, программирования и AI.
Хотите лайв-стрим с введением в эти темы и парой советов как лучше в эту тему вьехать?
Telegram
Истории (не)успеха (ИИ)ЕИ
начало тут 👆
🧩 Всем привет!
Есть серия соревнований на Kaggle, где в соревновательной форме можно попробовать решать открытые задачи математики на графах Кэли и подгруппах симметрической группы.
🎯 Суть
Нужно искать кратчайшие пути в графах Кэли — будь…
🧩 Всем привет!
Есть серия соревнований на Kaggle, где в соревновательной форме можно попробовать решать открытые задачи математики на графах Кэли и подгруппах симметрической группы.
🎯 Суть
Нужно искать кратчайшие пути в графах Кэли — будь…
🔥4
Кто хочет лайв-стрим с введением в инструменты для соревнований по нахождениям путей в графах Кэли/подгруппах симметрической группы?
Anonymous Poll
27%
Я собираюсь участвовать и хочу лайв-стрим
64%
Я ещё не знаю, буду ли участвовать, но хочу лайв-стрим
0%
Я буду участвовать, но не хочу лайв-стрим
9%
Я не буду участвовать и не хочу лайв-стрим