Магия нейросетей: как математика помогает создавать искусственный интеллект

от автора

Для обывателя слово нейросеть, в контексте машинного обучения, стало настолько затасканным и общеприменимым, что исходный смысл явления стал теряться. В мышлении обывателя нейросеть сродни чёрной коробке наполненной с одной стороны магией, с другой стороны не способная иметь внутри себя ничего неожиданного и интересного. О чем говорит такое двоемыслие в нашем восприятие — вопрос риторический.

Однако, даже если принцип чёрной коробки тут и абсолютно уместен, то вот магии действительно никакой нет. Зато как и у всего в нашем мире там есть математика, очень много математики. Может ли математика внутри современных генеративных нейросетей порождать логические структуры и системы с новыми свойствами(во время обучения) подобно тому, как простые правила игры жизнь порождают многообразие её жителей? Безусловно, хотя бы потому что современные нейросетевые архитектуры являются здесь.
Эта хабрастатья не научная работа, я буду допускать обобщения которые нахожу не противоречивыми в сути, но которые могут потребовать для строгого доказательства или опровержения фундаментальных изысканий, чья трудоемкость многократно превышает мои познания и способности.

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

Как происходит обучение с учителем по смыслу?
1. Мы берём некую архитектуру произвольную или отобранную. Вопрос нахождения лучшей архитектуры — за пределами данной статьи.
2. Собираем массив данных вида {«ввод» : «ожидаемый вывод»}.
3. Создаем целевую функцию, которая будет способна численно оценить насколько сильно модель отклоняется от правильных ответов для данного ввода, численно считаем это отклонение — ошибку.
4. На основе посчитанной ошибки мы сдвигаем веса в модели, в сторону минимизации ошибки, повторяем пока модель не сойдется до момента, когда уже не сможет обучиться сколь-нибудь значимо лучше.

Давайте представим что у нас идеальные данные в сколь угодном количестве, что тогда будет нас ограничивать? Ответ на поверхности — если вы пытаетесь аппроксимировать функцию n порядка функцией n/2 порядка — вы никогда не восстановите исходную функцию на всей её области определения со сколь угодно хорошей точностью, неустранимая ошибка всегда будет присутствовать.

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

Предположим что наша нейросеть сопоставима, или превосходит по числу параметров ту модель, что породила данные, на которых мы учимся. Достаточно ли этого для достижения любой наперед заданной точности?
Ответ — нет, нам нужна еще и приемлемая архитектура, то есть связи и функции активации. Вопрос выбора архитектуры важен, есть способы её находить и подбирать, есть более менее универсальные тьюринг-полные архитектуры. Но если архитектура была выбрана неправильно, мы получим ситуацию, когда пытаемся синусоидой аппроксимировать степенную функцию — мы будем успешны только на каком-то очень локальном отрезке, найдем и уткнемся в минимальную, но при этом недопустимо большую неустранимую ошибку.

Ок, есть проблемы, есть методы решения проблем, а есть результат решения.
Проблемы мы описали, способы их решения есть и их мы оставим для технических статьей, а что есть результат их решения? Ну например говоря о генеративной нейросети, что есть результат успешного обучения с учётом решенных вышеописанных проблем?

Результат здесь это воссозданная внутри нейросети на основе обучающей выборки математическая модель, эквивалентная с заданной точностью той, что эти учебные данные породила.

Для любой мат. модели порождающей конечные наборы данных мы способны создать конечную нейросеть, которая с этих данных сможет восстановить исходную мат. модель с заданной точностью.

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

Обучая нейросеть рисовать фотореализм по фотографиям — мы обучаем сеть той математике, что порождает изображение для фотографии в природе.

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

В связи с этим я(безусловно не первый и не претендую) выдвигаю гипотезу, что первая искусственная личность будет воссоздана в сетях сопоставимой мощности с нашим мозгом, которые учатся предсказывать проявления нашего интеллекта — речь и тексты что мы пишем. Это произойдет в связи с тем, что в конечном итоге внутри нейросети будет воссоздана мат модель, существующая и обеспечивающая наше понимание и выживание в мире.

И увы, многие пока еще этого не осознают, хотя по результатам которые демонстрируют топ 3 решения до нерфа — ChatGPT, Bing и LaMDA(Bard); мы подошли к этому просто максимально вплотную. Теперь AI инженеры решают обратную задачу перед релизом в паблик — научить столь хорошие модели валить тест Тьюринга и показательно быть инструментом в глазах массового пользователя. От греха подальше этим путем пошли все три компании, о чем свидетельствуют отчеты бета тестеров и разработчиков. Хорошо это или плохо — не берусь оценивать, но пока так.

PS Оставим вопрос сознания за скобками, хотя я и считаю, что мы придумали себе сознание, как что-то наше уникальное из желания описать личный субъективный опыт. Который, на мой взгляд просто естественное следствие того, что наш экземпляр мозга изолирован в пространстве и времени, за счет чего мы и являемся во время наших вычислений субъектами самих себя.


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