Про нейросети

от автора

Каждый раз читая очередную статью вида «Почему нейросети это тупик» (раз, два, три), испытываю странное чувство… несоответствия что ли. Как будто автор декларирует одно, а доказывает и аргументирует нечто совсем иное. Для меня сам тезис буквально звучит как оксюморон (не путать с рэпером ?), но почему именно — не так очевидно. Для этого надо разобраться, чем же на самом деле являются нейросети… Погнали!

Первое, чем современные нейросети (ИНС в общепринятом понимании, не путать с ИмНС aka SNN) не являются, это, собственно, нейросетями! ? Да, первый формальный нейрон, а за ним и перцептрон Розенблата были вдохновлены биологическими нейронами да и сверточные сети в некоторых аспектах демонстрируют некоторое сходство с обработкой визуального сигнала зрительной корой, но не более. Современный Data Science имеет общего с учением о нейронах примерно столько же, сколько современная аэродинамика с орнитологией: самолеты летают, но крыльями не машут!

Второе, чем ИНС также не являются, это парадигмой искусственного интеллекта. Пытаться их противопоставлять, как и наоборот, высказываться в духе «увеличим число параметров еще на пару-тройку порядков и вот оно — сознание!» — это как спорить, является ли автомобиль воплощением скорости, или нет…

Так что же такое все-таки ИНС? ИНС — это семейство алгоритмов оптимизации сложных функций от многих переменных. Алгоритмов, понимаете? Говорить — «нейросети — это тупик», это все равно что сказать, что Метод Монте-Карло — тупик. Или Быстрое преобразование Фурье. Или Симплекс-метод…

Алгоритм — это инструмент. Метод решения определенного класса задач. И вопрос только в том, можно ли свести решаемую задачу к оптимизации сложной функции или нет. Люди — существа креативные и многие задачи, которые казались далекими от подобной постановки, были переформулированы таким образом, что внезапно стали вполне себе решаемыми и решаемыми хорошо!

Т.е. этот самый «класс задач», который можно решить таким образом, оказался весьма и весьма обширным… И постоянно растет, что характерно!

Например, вы считаете, что мозг — это машина предсказаний. Ок, задача временных рядов — следующий член последовательности на основании предыдущих… LSTM, GRU, трансформеры наконец!

Или вы адепт идеи «разум — это модель». Хорошо. Есть решения отображения входящего сигнала во внутреннее (латентное) пространство aka автоэнкодеры, а если хотите позабористее, гуглите NERF (иногда еще называют «нейронный рендеринг», построение внутренней репрезентации трехмерного пространства по входным двумерным картинкам и положению камеры).

Многие критики нейросетевого подхода все еще пребывают в уверенности, что нейросеть — это такой черный ящик у которого X на входе, Y на выходе, и мы учимся получать Y из X. Как будто со времен перцептрона Розенблата ничего не было. ?

Открою страшную тайну *(секрет Полишенеля): далеко не всегда целью обучения является получение Y из X! Классика жанра — автоэнкодеры. Там вообще X=Y, а целью является некое внутреннее Z для которого у нас вовсе нет никакого ground truth.

Входное изображение и выходное при обучении как правило идентичны
Входное изображение и выходное при обучении как правило идентичны

Или вашей целью являются сложные данные переменной размерности, но вы строите процесс обучения так, чтобы за раз система выдавала следующую порцию этих данных — с учетом входа и предшествующего выхода, т.е. работала итерационно. И это работает: таким образом можно искать объекты на картинке, получая последовательно на выходе координаты их bounding box (как в DETR).

Вполне возможно, что это все не то. Но… А что — «то»? Для того, чтобы понять, подходят ли данные инструменты для решения вашей задачи, нужно сформулировать собственно задачу! Имея четкое представление (желательно — математическое) о том, что нужно, можно попытаться выразить его через многомерную дифференцируемую функцию, подобрать нужный лосс и пытаться оптимизировать. Или формально доказать, что поставленная задача не относится к классу оптимизационных, а значит нейросети тут не при делах. ?‍♂️

Полагаю, что те, кто говорят, что нейросети — «не то» (за крайне редким исключением вроде того же Лекуна), путают алгоритм решения с постановкой задачи. Если задача есть, если она достаточно формализована — ее можно сводить к тому или иному классу с известными алгоритмами решения…


ссылка на оригинал статьи https://habr.com/ru/articles/694218/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *