На прошлой неделе наш пост был посвящен обзору нейронных сетей и глубокого обучения. Публикация на этой неделе пытается дать вам более глубокое понимание приложений нейронных сетей.
Введение
Нейронные сети, смоделированные аналогично человеческому мозгу, по сути представляют собой набор алгоритмов машинного обучения, предназначенных для обработки сложных данных. Обычно они состоят из тысяч взаимосвязанных узлов, организованных в слои с прямой связью. Прямая связь означает, что конкретный узел получает данные от узлов на уровне ниже него и отправляет данные узлам на уровне над ним.
Нейронные сети обычно используются для обучения компьютеров выполнению задач на основе обучающих примеров, то есть наборов данных, которые были помечены заранее. Это позволяет им обнаруживать закономерности, сильно коррелирующие с метками, которые затем можно применять к немаркированным данным. Хорошим примером является распознавание изображений, когда нейронная сеть может получать тысячи помеченных изображений, скажем, собак, пока она не изучит шаблоны изображений, описывающие собаку. Затем он может использовать эти шаблоны, чтобы определить, содержит ли данное изображение собаку или нет.
Как работают нейронные сети?
Проще говоря, нейронные сети работают с использованием взвешенных соединений. Узел присваивает номер («вес») каждому из своих входящих соединений и умножает элемент данных, другое число, полученное по этому соединению, на его вес. Затем он суммирует все взвешенные данные от своих подключений. Если число превышает пороговое значение, оно передается всем исходящим соединениям, т. е. узел «срабатывает», в противном случае данные с этого узла не передаются.
Во время обучения всем весам и порогам присваиваются случайные значения. Данные подаются на входной уровень и проходят через все последующие уровни, преобразовываясь путем умножения и сложения, пока, наконец, не достигают выходного уровня. Веса и пороговые значения постоянно корректируются во время обучения до тех пор, пока не будут разработаны повторяемые прогностические шаблоны, которые пытаются сопоставить метки обучения с прогнозами модели.
После этого краткого введения в нейронные сети давайте рассмотрим некоторые из основных приложений нейронных сетей.
Распознавание изображений и символов
Как мы упоминали ранее, распознавание изображений с помощью нейронных сетей работает путем обучения сети распознавать изображения с помощью меток. После того, как нейронная сеть научилась распознавать изображение, в сеть можно передать новое изображение, чтобы увидеть, дает ли оно тот же результат, что и в обучающем наборе.
Финансовые прогнозы
Нейронные сети зарекомендовали себя как мощный инструмент для предсказаний в таких областях, как фондовый рынок, предсказание валюты и фьючерсов, оценка долгового риска, одобрение кредита и т. д. Хорошие результаты были получены при использовании многоуровневых сетей с обратным распространением, однако основная задача заключается в определение того, какой набор параметров и переменных, таких как предыдущая производительность, экономические показатели, рыночная оценка и т. д., приведет к оптимальной нейронной сети.
Прогноз погоды
Подобно финансовым прогнозам, нейронные сети можно обучать на прошлых данных с использованием погодных переменных, таких как атмосферное давление, температура, ветер и т. д. Это позволяет затем использовать их для прогнозирования будущих погодных условий с использованием существующих данных. Однако в условиях быстро меняющегося экологического ландшафта проблема снова заключается в создании связного набора переменных, которые могут учитывать колебания во времени, а также погодные аномалии.
Автономные автомобили
Важным аспектом беспилотных автомобилей является компьютерное зрение, то есть то, что видят автономные транспортные средства и как они классифицируют то, что видят. Обе эти области в значительной степени используют нейронные сети. Сверточные нейронные сети имеют дополнительные слои (сверточные слои), которые могут обнаруживать сложные функции, такие как лица, что делает их чрезвычайно полезными для беспилотных транспортных средств.
Проблемы с оптимизацией
Задачи оптимизации обычно состоят из целевой функции и набора ограничений на переменные функции. Основное внимание в этих задачах уделяется выяснению значений переменных, которые приводят к оптимальному значению функции (максимум/минимум), при этом удостоверяясь, что все ограничения соблюдены. Однако некоторые задачи имеют действительно большое количество допустимых решений, из которых необходимо выбрать оптимальное решение (O(2N) или O(N!). Для таких NP-сложных задач, например. Проблема коммивояжёра, традиционные подходы не самые простые. Для таких задач можно использовать нейронные сети, такие как Сеть Хопфилда.
Первоначально опубликовано на www.triconinfotech.com 7 марта 2019 г.