Теория сложности вычислений
Это неожиданный сосед теоремы No Free Lunch. Возможно, вы слышали о проблеме равенства классов P и NP — одной из семи проблем тысячелетия. Она посвящена времени и памяти, которые требуются для решения вычислительных задач. Кстати, за её решение назначена премия в миллион долларов.
Проще говоря, мы понимаем, что задача в теории не должна быть слишком сложной, но пока не знаем алгоритма, который решает её настолько же эффективно.
Это явление приближает учёных к ответу на вопрос, сколько ресурсов требует задача. Но нас интересует другая сторона: почему один и тот же алгоритм на похожих данных может вести себя по-разному.
Важна природа самой задачи. В ML это называют индуктивным смещением или априорными предположениями. Например:
⠀⠀⠀Пример со свёрточными
⠀⠀⠀⠀ нейронными сетями
⠀⠀⠀⠀⠀⠀⠀⠀⠀ (CNN)
Механизм их работы довольно прост — мы изобразили его на карточке. Объясним, что происходит.
Представьте фотографию чашки. Если чашка находится в левом верхнем углу изображения, мы всё равно её узнаём. Если она окажется в центре кадра или справа, ничего не изменится: это та же чашка. Для человека это очевидно, для алгоритма — нет.
Обычная полносвязная сеть рассматривает каждый пиксель независимо: перемещение объекта по изображению меняет набор входных данных.
Свёрточная сеть устроена иначе: в неё заранее встроено предположение, что один и тот же объект должен распознаваться независимо от положения. Это свойство называют трансляционной инвариантностью.
То есть мы снова сталкиваемся с парадоксом: сила алгоритма рождается не из универсальности, а из его «предубеждений». Чем больше алгоритм знает о структуре решаемой задачи, тем лучше он работает именно на этом классе задач — и тем хуже справляется с задачами, нарушающими эти предположения.
Эта идея выходит далеко за пределы компьютерного зрения:
Во всех случаях происходит одно и то же: разработчики сознательно жертвуют универсальностью ради эффективности на интересующем их классе задач.
Часто можно услышать: «Нейронная сеть может выучить любую функцию». Это не совсем так. Теорема об универсальной аппроксимации утверждает лишь, что сеть достаточного размера способна представить практически любую непрерывную функцию с нужной точностью.
Но способность выразить решение и способность эффективно его обнаружить — совершенно разные вещи.
Но если под каждую задачу нужны свои предположения, почему современные большие модели выглядят всё более универсальными?
Накидайте 🔥, если интересно, и мы раскроем ответ в следующем посте. А от читателей, работающих с нейросетями, ждём догадки в комментах!
#как_устроено





