Вопрос о том, что такое нейросети, довольно часто всплывает в современных средствах массовой информации. Искусственные нейронные сети — это разновидность алгоритма машинного обучения, структура которого примерно аналогична структуре человеческого мозга.
Как и другие виды алгоритмов машинного обучения, они могут решать проблемы методом проб и ошибок, не будучи явно запрограммированными правилами, которым нужно следовать. Их часто называют «искусственным интеллектом», и, хотя они намного менее развиты, чем искусственный интеллект в научной фантастике, они могут управлять беспилотными автомобилями, показывать рекламу, распознавать лица, переводить тексты и даже помогать художникам создавать новые картины.
О том, что такое нейросети, впервые стало известно в 1950-х годах. Тогда они были разработаны для проверки теорий о том, как взаимосвязанные нейроны в человеческом мозге хранят информацию и реагируют на входные данные. Как и в мозге, результативность искусственной нейронной сети зависит от силы связей между ее виртуальными нейронами. Но в этом случае «нейроны» являются не настоящими клетками, а подключенными модулями компьютерной программы. Когда виртуальные нейроны соединены в несколько слоев, это называется глубоким обучением.
Процесс обучения настраивает эти соединения методом проб и ошибок, пытаясь максимизировать производительность нейронной сети при решении некоторой проблемы. Целью может быть сопоставление входных данных и прогнозирование новых данных, которые сеть не видела раньше (контролируемое обучение), или поиск новых решений проблемы (обучение с подкреплением). Архитектура нейронной сети, включая количество и расположение нейронов, а также разделение полномочий между специализированными подмодулями, обычно выстраивается в зависимости от характера проблемы.
Растущая доступность дешевых облачных вычислений и графических процессоров является ключевым фактором роста популярности нейронных сетей. При этом они становятся все более мощными и доступными. Доступность больших объемов обучающих данных, таких как маркированные медицинские изображения, спутниковые снимки или истории просмотров веб-страниц, также помогла повысить мощность нейронных сетей. Кроме того, распространение новых инструментов с открытым исходным кодом, например, Tensorflow, Keras и Torch, помогло сделать нейронные сети доступными для специалистов из самых разных областей. Понимание того, что такое нейросети, позволяет активно применять их в коммерческих приложениях. Также для разработчиков стало очевидным, что существуют и новые способы использования возможностей нейронных сетей, в том числе их стали применять в научных исследованиях.
Нейронные сети отлично умеют сопоставлять шаблоны и находить тонкие тенденции в многомерных данных. Они способны продвигаться к своей цели, даже если программист не знает заранее, как решить проблему, когда решения являются сложными или малопонятными. Это делает нейронные сети необычайно гибким инструментом. А тот факт, что фреймворки нейронных сетей могут специализироваться на решении таких задач, как классификация данных, прогнозирование и проектирование устройств и систем, только добавляет им гибкости.
Нейронные сети также особенно хорошо подходят для проектов, которые генерируют слишком много данных, чтобы их можно было легко отсортировать или сохранить, особенно если есть вероятность допустить случайную ошибку. Часто они используются, чтобы пометить события, представляющие интерес, для проверки людьми. Например, в одном астрономическом исследовании команда из обсерватории де Соверни в Швейцарии использовала нейронную сеть для изучения огромных наборов данных изображений галактик в поисках тех, которые могут содержать гравитационные линзы.
Другой тип нейронной сети может генерировать прогнозы на основе входных данных. Сети этого типа, например, использовались для предсказания спектра поглощения наночастицы на основе ее структуры после того, как были приведены примеры других наночастиц и их спектры поглощения. Такие сети также используются в химии и при создании медикаментов, например для предсказания прочности связывания белков и лигандов на основе изучения их структуры.
В рамках техники, называемой обучением с подкреплением, нейронные сети могут применяться для решения задач проектирования. При обучении с подкреплением вместо того, чтобы стараться имитировать список примеров, нейронная сеть пытается максимизировать значение оценочной функции. Например, нейронная сеть, управляющая конечностями робота, может настраивать собственные связи таким образом, чтобы методом проб и ошибок максимизировать горизонтальную скорость робота.