(←) предыдущая запись ; следующая запись (→)
Машинное обучение — это, по большому счёту, наука о выявлении скрытых закономерностей. Я, когда рассказываю школьникам про ML обычно начинаю разговор с какой-нибудь задачи по обработке данных физического эксперимента, где возникает линейная зависимость. Ну, скажем, мы измерили длину стержня при разных температурах и хотим понять, какой зависимостью они связаны. Дальше мы строим простенькую зависимость y = k*x + b, а точнее длина = k * температура + b и выявляем закономерность и её параметры k, b. Нам помогает то, что мы заранее знаем, что получится прямая, а значит нам достаточно всего лишь определить параметры этой прямой. Эта нехитрая задача определения параметров прямой называется «линейная регрессия». Задача действительно нехитрая: всего лишь требуется провести прямую через десяток точек так, чтобы точки не слишком далеко от неё находились. Можно это сделать на глаз при помощи карандаша и линейки, а можно написать формулу.
Возьмём какую-нибудь задачу посложнее. Скажем, будем измерять мощность излучения нагретого тела в зависимости от его температуры. Тут нам может не хватить линейной зависимости. Но мы можем догадаться, что многочлен большей степени нам может подойти. Возьмё, скажем, полином шестой степени (y=ax^6+bx^5+cx^4+dx^3+ex^2+fx+g). Тут требуется оценить уже не два, а целых семь параметров. Называется такая задача полиномиальной регрессией, потому что зависимость описывается в форме полинома. На практике тут тоже нет ничего сложного. Карандашом и линейкой уже не обойтись, но по формулам эта задача мало чем отличается от линейной регрессии.
Важно, что у нас фактически появился гиперпараметр, описывающий не просто какие-то коэффициенты модели, а саму её «архитектуру». Этим гиперпараметром является степень многочлена: а вдруг наша зависимость описывается многочленом не 6-й степени, а 42-й (и имеет 43 параметра). А на самом деле хватило бы и 4-й степени, причём требуется не пять параметров, а один.
Если мы заранее не знаем степень многочлена, то вид зависимости мы пытаемся угадать, подобрав этот гиперпараметр. Есть разные способы ограничивать модель, чтобы в итоге прийти к правильной закономерности.
Рассмотрим теперь какую-нибудь механическую систему. У неё есть разные движущиеся части, положение и скорости которых мы можем измерять. Мы хотим, понаблюдав за системой, научиться описывать её движение. Мы измеряем координаты и скорости компонентов системы и обучаем нашу модель, например, предсказывать следующее положение системы. Или что-нибудь в том же духе. Вообще говоря, при правильно подобранной архитектуре, полиномиальная регрессия в состоянии будет «вывести» законы сохранения энергии, импульса и момента импульса.
Перейдём теперь к более современным подходам. Сейчас машинное обучение в основном базируется на нейросетях. Нейросеть это всего лишь один из способов параметризации закономерностей. Фактически нейросеть представляет из себя одну БОЛЬШУЮ формулу с кучей параметров, которые надо подобрать. Но формула одна и фиксированная.
Давно доказано, что любую закономерность можно сколь угодно точно приблизить нейросетью. Однако стандартно используемые слои и архитектуры не особо «физичны», поэтому чтобы увидеть в нейросети закономерности напоминающие привычные нам степени-экспоненты-логарифмы или хотя бы просто операцию деления, нужно очень постараться.
Interpretability — это одна из важных проблем современного машинного обучения. Обычно от модели хотят, чтобы она дала понимание, какие параметры как влияют на ответ, и этого добиться можно. Но в ряде задач хотелось бы, конечно, большего. Вот, скажем, можно ли «сконденсировать» понимание закономерности, зашифрованное в параметрах нейросети, в человекочитаемые формулы как это автоматически происходит с полиномиальной регрессией? В качестве первого шага хотелось бы потребовать от нейросети возможности оперировать не измеренными координатами-импульсами, а чем-нибудь типа энергии системы и других интегралов движения (интегралы движения — величины, которые сохраняются при движении системы).