Индукция функций между произвольными конечными структурами

Метод получает размеченный датасет — например, доски крестиков-ноликов с исходом партии — и выдаёт функцию, которая его объясняет. Ничего про геометрию поля, про линии и про правила игры в метод не заложено. Заложено другое: какие наблюдения над объектом вообще доступны. Эта страница показывает, что именно выбор доступных наблюдений — а не количество данных и не алгоритм поиска — решает, будет ли индукция успешной.

1. Постановка

Структура S — это конечный носитель плюс набор типизированных примитивов. Примитивы и есть «доступные наблюдения»: аксессоры, выделенные точки, кванторы по конечным индексным типам, операции. Объект непрозрачен — заглянуть в его внутреннее представление иначе как через примитивы нельзя.

Гипотеза о функции f : G → T — это типизированный терм с единственной свободной переменной g : G. Гипотезы упорядочены по приору кратности:

P(f) ∝ Σt : ⟦t⟧ = f w|t|    (|t| — число листьев терма, w = 1/8)

Ответ = первая согласованная с датасетом гипотеза в этом порядке. Никакой подгонки параметров, никакого обучения весов: только перечисление термов в порядке убывания приора. Функция от структуры к структуре, а не от чисел к числам — крестики-нолики здесь лишь конкретный носитель.

2. Пять структур на одном и том же носителе

Носитель фиксирован: 958 терминальных досок 3×3, каждая размечена исходом (WIN_X, WIN_O, DRAW). Датасет один и тот же. Меняется только сигнатура — набор примитивов, через которые доску можно наблюдать.

выученный терм

показатели

все 958 досок вселенной, сгруппированы по типу победы

X O пусто исход предсказан неверно доска была в обучающей выборке

3. Точность в зависимости от объёма данных

Точность считается на всей вселенной из 958 досок, включая невиданные. Пунктиром — там, где согласованной гипотезы не существует вовсе.

Короткий вертикальный штрих у нижней оси означает, что при этом n согласованной гипотезы нет. У cells таких штрихов шесть из шести — линии нет вообще, поэтому в легенде она помечена отдельно.

та же таблица числами

4. Порядок гипотез

Метод не «ищет правило» — он перечисляет гипотезы по убыванию приора и берёт первую, которая согласована с данными. Вот начало этого перечисления для структуры geom: стоимость — это −log P, размер — число листьев терма. Переключатель меняет объём данных: порядок остаётся тем же самым, меняется лишь то, какие гипотезы выборка успевает отсеять.

5. Выведенная геометрия вместо вписанной

У всего, что выше, есть методологическая слабость, и её надо назвать прямо: в сигнатуре geom список из восьми линий вписан руками (LINES = ROWS + COLS + DIAGS). То есть geom выигрывает не потому, что метод вывел геометрию поля, а потому что геометрию ему сообщили. Это ровно та «лишняя структура», которой при постановке задачи хотелось избежать.

Поэтому — тот же метод, но линий нет вовсе. Есть только типы:

Coor = {A, B, C} Axis = {X, Y} Coor2 = CoorAxis Cell = Player + {Empty} Field = Coor2 → Cell Result = Player + {Draw} Goal = Field → Result

Позиция — это функция из осей в координаты, а не абстрактная девятка и не голое произведение. «Форма» — предикат на позиции p с параметром c : Coor; строки, столбцы и диагонали должны появиться как короткие термы, а не как данные. Меняется ровно одно: какая структура есть на Coor.

формы, выведенные из типов

Все формы малого размера, порождённые перебором. Подсвеченные — те, что оказались настоящими линиями; остальные метод породил там же и должен отсеять сам.

Одинаковая группа симметрий, разный приор

oppositeCoor и getCoorType задают тождественную группу симметрий — порядок 2, {id, (A C)}. Орбитный взгляд их не различает вообще. Приор по длине терма различает: побочная диагональ стоит 4 листа против 14, то есть примерно 810 ≈ 109 раз по вероятности. И различие видно в поведении.

6. Что именно показано

Методологические оговорки