Нейронная сеть — компьютерная программа, работающая по принципу естественной нейронной сети в мозге. Целью таких искусственных нейронных сетей является выполнение таких когнитивных функций, как решение задач и машинное обучение. Теоретическая основа нейронных сетей была разработана в 1943 году нейрофизиологом Уорреном Маккалохом из Иллинойского университета и математиком Уолтером Питтсом из Чикагского университета. В 1954 году Белмонту Фарли и Уэсли Кларку из Массачусетского технологического института удалось запустить первую простую нейронную сеть. Основная привлекательность нейронных сетей заключается в их способности имитировать навыки мозга по распознаванию образов. Среди коммерческих применений этой способности нейронные сети использовались для принятия инвестиционных решений, распознавания почерка и даже обнаружения бомб.
Отличительной особенностью нейронных сетей является то, что знания об их области распределены в самой сети, а не записаны в явном виде в программе. Эти знания моделируются в виде связей между элементами обработки (искусственными нейронами) и адаптивных весов каждой из этих связей. Затем сеть обучается, подвергаясь воздействию различных ситуаций. Нейронные сети способны достигать этого путем изменения веса связей между взаимодействующими нейронами, сгруппированными в слои, как показано на рисунке простой сети с прямолинейным движением. Входной слой искусственных нейронов получает информацию из окружающей среды, а выходной слой передает ответ; между этими слоями может быть один или несколько «скрытых» слоев (не имеющих прямого контакта с окружающей средой), где происходит основная обработка информации. Выходной сигнал нейронной сети зависит от весов связей между нейронами в разных слоях. Каждый вес указывает на относительную важность той или иной связи. Если сумма всех взвешенных входов, полученных определенным нейроном, превысит определенное пороговое значение, нейрон пошлет сигнал каждому нейрону, с которым он связан в следующем слое. Например, при обработке кредитных заявок входные данные могут представлять собой данные профиля заявителя, а выходные — решение о выдаче кредита.
Две модификации этой простой нейронной сети с прямолинейным движением объясняют рост числа приложений, таких как распознавание лиц. Во-первых, сеть может быть оснащена механизмом обратной связи, известным как алгоритм обратного распространения, который позволяет регулировать веса соединений в сети, обучая ее в ответ на репрезентативные примеры. Во-вторых, могут быть разработаны рекуррентные нейронные сети, в которых сигналы идут в обоих направлениях, а также внутри и между слоями, и эти сети способны на гораздо более сложные схемы ассоциаций. (На самом деле, для больших сетей может быть крайне сложно проследить, как именно был определен выход).
Обучение нейронных сетей обычно включает в себя контролируемое обучение, при котором каждый обучающий пример содержит значения как входных данных, так и желаемого выходного сигнала. Как только сеть сможет достаточно хорошо работать на дополнительных тестовых примерах, ее можно применять к новым примерам. Например, исследователи из Университета Британской Колумбии обучили нейронную сеть с прямолинейным движением на данных о температуре и давлении в тропической части Тихого океана и в Северной Америке, чтобы предсказывать будущие глобальные погодные условия.
В отличие от этого, некоторые нейронные сети обучаются с помощью неконтролируемого обучения, при котором сети предоставляется набор входных данных и ставится задача обнаружить закономерности без указания, что именно нужно искать. Такая нейронная сеть может быть использована, например, в анализе данных, чтобы обнаружить кластеры клиентов в хранилище маркетинговых данных.
Нейронные сети находятся в авангарде когнитивных вычислений, цель которых — заставить информационные технологии выполнять некоторые из более продвинутых умственных функций человека. Системы глубокого обучения основаны на многослойных нейронных сетях и обеспечивают, например, возможность распознавания речи мобильного помощника Siri от Apple. В сочетании с экспоненциально растущими вычислительными мощностями и огромными массивами больших данных нейронные сети глубокого обучения влияют на распределение работы между людьми и машинами.