Мы пользуемся чатом GPT, переводчиками, иногда играем в топовые приложения, которые делают из наших фотографий картины Рембрандта, а из нас – кавайных персонажей японских мультфильмов. Что же стоит за этим прогрессом? Правильный ответ: новейшие алгоритмы обработки информации, которые учёные и программисты «подсмотрели» у природы.
Математические алгоритмы, похожие на мозг
По принципу работы мозга. Это понятие находится на стыке сразу нескольких наук: нейрофизиологии, математики, кибернетики и программирования. Впервые идею искусственной нейронной сети описали ещё в 1943 году. . В их представлении мозг упрощался до простейшей взаимосвязанной цепи, где каждое звено может обрабатывать информацию по принципу нескольких входных данных, анализа и одного выхода с последующей передачей ответа другому звену.
Каждое такое звено — условный нейрон, напоминающий тело со множеством коротких отростков —дендритов и одним длинным — аксоном. Тонкие нервные окончания и места соприкосновения одного нейрона с другим называются синапсами. По дендритам информация поступает в нейрон и только по аксону передаётся дальше. Удивительно, что у каждого нейрона могут быть тысячи синапсов, по которым поступает информация, но выход — один.
Наш простейший нейрон — идеальный вычислительный элемент. Его задача — оценить некоторые факты на входе и дать им оценку в зависимости от своей настройки — синаптических весов. В это время в его теле суммируются факты, умноженные на вес каждого, затем готовая оценка по аксону переходит в следующий нейрон.
Искусственный нейрон: упрощение и обучение
Создать технологии, работающий по такой логике, не удавалось долгое время, пока опытные программисты и инженеры не придумали модели и режимы работы с нейросетями. В текущих разработках нейроны объединены в последовательно расположенные слои. Отдельно выделены два крайних слоя — входной и выходной. Через входной слой нейросеть получает информацию, через выходной передает результат её обработки.
Все промежуточные слои называются скрытыми. Каждый скрытый слой соединен с двумя соседними (предыдущим и следующим) сложной системой связей. В простейшем случае сигналы попадают в каждый нейрон по цепочке из предыдущего слоя, обрабатываются, а затем поступают в каждый нейрон следующего слоя. И это ещё не всё.
Каждая связь имеет «вес». То есть, сигнал от одного нейрона, переходя в следующий, меняет значение за счет умножения на этот «вес». Если весам связей присвоить случайные значения, то ничего осмысленного нейросеть делать не будет. Другими словами их надо ещё правильно подобрать, а точнее обучить.
Ученье — свет
Допустим, мы обучаем нейросеть отличать изображения кошек от изображений собак. Тогда на входной слой нейросети мы отдаём изображение, а на выходе нейросеть возвращает пару действительных чисел — от 0 до 1 каждое. Первое означает, насколько нейросеть уверена, что это собака, а второе — что кошка. Спустя множество разных картинок, с которыми мы провернем то же самое, веса связей между нейронами выстроятся таким образом, что она будет хорошо отличать кошек от собак.
Как люди с детства постигают жизнь методом проб и ошибок, так и нейросеть учится решать определенные задачи. Она получает исходные параметры и то, что хотим получить в итоге, а потом сама выстраивает необходимые для этого пути по методу обратного распространения ошибки. В нем полученный результат сравнивается с введенным нами эталоном, пока мы не получим оптимальный результат.
Здесь тоже возможно несколько вариантов развития событий:
- Вариант первый — обучение с учителем.
- Вариант второй — обучение без учителя.
- Вариант третий— смешанный или обучение с подкреплением.
По такому принципу устроен самый простой тип нейросети — перцептрон. Это основа, на которой построены остальные варианты. Например, есть сверточные нейросети, анализируют объект одновременно по ряду характеристик, сложение которых затем приводит к единой картине.
Также есть рекуррентные нейросети, их главная особенность — наличие памяти. Она запоминает каждый предыдущий полученный в процессе обработки результат и берёт его в основу нового анализа, точно определяя динамику процесса и делая правильные предсказания. Например, такие нейросети используют на биржах.
Изображения: Unsplesh