Найти тему

Нейронные сети: оптимизация и обучение. Введение

Оглавление

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

Отставлю в сторону лирические отступления и отходы от темы. Но для сохранения логики, прорезюмирую то, о чём писал ранее.

Нейронные сети: основная сюжетная линия

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

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

Про нейронные сети начали говорить давно. Но только формулирование математической модели нейрона дало толчок началу практического построения и использования нейросетей.

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

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

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

Продолжаем

Нейроны в нейронных сетях

Нейроны в нейросетях представлены программными модулями. Логика, зашитая в их алгоритмах, полностью соответствует основным функциям нейронов человека, описанным в математической модели нейрона.

Есть специальные модули, отвечающие за приём входных сигналов. Программные нейроны, специальным образом обменивающиеся результатами своей работы, образуют слои нейронов. Автоматически задаются (а затем и пересчитываются) веса связей нейронов между собой (аналог силы синаптических связей в мозге).

Нейроны в слоях могут быть связаны друг с другом по-разному. Тем самым, они имитируют многочисленные типы нейронов человеческого мозга.

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

Если полученная в результате расчётов сумма превышает пороговое значение, нейрон активируется и передает сигнал другим нейронам.

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

Многочисленные операции с весами (обычно, это — перемножение матриц) требуют производительных вычислительных ресурсов. Поэтому для ускорения работы применяются специализированные процессоры.

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

Задачи оптимизации

Из них классическими считаются следующие:

Задача коммивояжёра.

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

Задача наполнения рюкзака.

Мы собираемся за город на пикник. У нас имеется рюкзак ограниченной ёмкости или грузоподъёмности. Кроме того, имеется набор необходимых для отдыха на природе продуктов, предметов, утвари, каждый со своим объёмом или весом. Нужно из всех доступных вещей выбрать те, которые максимально заполнят рюкзак по объёму или весу. Здесь минимизируется разница между объёмом (грузоподъёмностью) рюкзака и суммарным объёмом (весом) выбранных вещей.

Заполнение вагонов грузами.

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

Реальные задачи оптимизации

— Целое море производственных задач.

Имеется ограниченный набор сырья, материалов, рабочей силы. Рассчитаны нормы расходов материалов на производство того или иного изделия и трудозатраты. Известны возможные поставщики и покупатели. Требуется рассчитать: что, в каком количестве, с привлечением каких трудовых ресурсов и с какой скоростью нужно использовать для производства продукции. С учетом ограниченного запаса материалов на складах. У кого закупать сырьё и кому продавать свои изделия или товары для минимизации затрат и максимизации прибыли. Определить оптимальный график закупок и отгрузок, чтобы не останавливалось производство и не страдали покупатели. В общем, эта глобальная постановка задачи распадается на огромное множество подзадач по оптимизации какого-либо производственного процесса.

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

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

  • Классификация и распознавание (текстов, изображений, звуков, паттернов, ситуаций).
  • Генерация новых текстов, изображений, звуков.
  • Прогнозы.
  • Выявление скрытых закономерностей.
  • Задачи с нечёткой логикой.
  • Задачи, требующих непозволительно много ресурсов и времени, но решаемые с помощью инструментов нейронных сетей (например, генетических алгоритмов).
  • Ещё очень много всякого...

Математическая модель задач оптимизации для нейронных сетей

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

Что же оптимизируется в нейронных сетях?

Общий ответ очень простой для большинства случаев.

Именно значение этой функции. Или, говоря иначе

В нейронных сетях минимизируется (как правило) отклонение от набора эталонных или обучающих образцов.

Тут мы вплотную подошли к объяснению этого туманного утверждения.

Но это затронет две очень немаленькие и непростые темы: оптимизация в работе нейронных сетей и обучение искусственного интеллекта.

Однако, будет слишком тяжело и затруднительно всё это читать в одной статье (не говоря уже о том, что сначала это нужно выложить в текст). Так что, продолжение следует.

PS.

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

Имеется также постоянно обновляемый гид-путеводитель по статьям канала.

#мозг #нейроны #синаптическиесвязи #память #оптимизациянейронныхсетей #обучениенейронныхсетей