Содержание статьи
Что такое нейронная сеть
Нейросети нужен человек
Нейронные сети прямого распространения (Feed forward neural networks, FFNN). Прямолинейный вид нейросетей, при котором соседние узлы слоя не связаны, а передача информации осуществляется напрямую от входного слоя к выходному. FFNN имеют малую функциональность, поэтому часто используются в комбинации с сетями других видов.
Рекуррентные нейронные сети (Recurrent neural network, RNN). Используют направленную последовательность связи между узлами. В RNN результат вычислений на каждом этапе используется в качестве исходных данных для следующего. Благодаря этому, рекуррентные нейронные сети могут обрабатывать серии событий во времени или последовательности для получения результата вычислений.
Обучение нейронной сети — это процесс обучения нейронной сети выполнению задачи. Нейронные сети обучаются путем первичной обработки нескольких больших наборов размеченных или неразмеченных данных. На основе этих примеров сети могут более точно обрабатывать неизвестные входные данные.
В середине XX века двое ученых, Уоррен Маккаллок и Уолтер Питтс, предположили, что нейроны в мозгу человека, если говорить просто, оперируют двоичными числами, как и компьютеры. Они создали конструкцию электронных аналогов нейронов и предсказали, что такая сеть сможет повторять работу мозга: обучаться, распознавать текст и изображения и многое другое. Их исследование, опубликованное в 1943 году, легло в основу работы «Логическое исчисление идей, относящихся к нервной активности». Ее можно считать точкой отсчета существования нейросетей — математических моделей, построенных по принципу организации и функционирования биологических нейронных сетей — нервных клеток живого организма.
Однако без помощи человека нейросеть не справится ни с одной задачей. Алгоритм необходимо верно подобрать под конкретную ситуацию, обучить его, выявить ошибки, а затем доработать. Не существует и нейросетей, которые могут одновременно хорошо выполнять различные категории задач и самостоятельно определять, что нужно делать.
Выходной слой дает окончательный результат обработки всех данных искусственной нейронной сетью. Он может иметь один или несколько узлов. Например, при решении задачи двоичной классификации (да/нет) выходной слой будет иметь один выходной узел, который даст результат «1» или «0». Однако в случае множественной классификации выходной слой может состоять из более чем одного выходного узла.
Нейронная сеть — это последовательность нейронов, которые обрабатывают данные и обмениваются ими друг с другом. Связь между нейронами осуществляется благодаря синапсам, усиливающим или ослабляющим сигнал. В зависимости от параметров синапсов и характеристик нейронов на выходе можно получить результаты, схожие с тем, что может выдать человеческий мозг. Условно говоря, если человек может распознать, что на картинке изображен кот, то и правильно обученная нейросеть должна делать так же, с высоким уровнем точности.
С другой стороны, при глубоком обучении специалист по работе с данными предоставляет программному обеспечению только необработанные данные. Сеть глубокого обучения извлекает функции самостоятельно и обучается более независимо. Она может анализировать неструктурированные наборы данных (например, текстовые документы), определять приоритеты атрибутов данных и решать более сложные задачи.
Обобщать и делать выводы
Архитектура нейронных сетей повторяет структуру человеческого мозга. Клетки человеческого мозга, называемые нейронами, образуют сложную сеть с высокой степенью взаимосвязи и посылают друг другу электрические сигналы, помогая людям обрабатывать информацию. Точно так же искусственная нейронная сеть состоит из искусственных нейронов, которые взаимодействуют для решения проблем. Искусственные нейроны — это программные модули, называемые узлами, а искусственные нейронные сети — это программы или алгоритмы, которые используют вычислительные системы для выполнения математических вычислений.
Машинное зрение — это способность компьютеров извлекать информацию и смысл из изображений и видео. С помощью нейронных сетей компьютеры могут различать и распознавать изображения так, как это делают люди. Машинное зрение применяется в нескольких областях, например:
Примечание: Работа нейронной сети сравнима с действиями человека: сталкиваясь с незнакомым предметом, он узнает его свойства и делает выводы. Аналогичные процессы происходят в узлах нейросетей, когда решая определенную задачу, они используют полученный опыт для дальнейшего обучения.
Нейронные сети могут отслеживать действия пользователей для разработки персонализированных рекомендаций. Они также могут анализировать все действия пользователей и обнаруживать новые продукты или услуги, которые интересуют конкретного потребителя. Например, стартап из Филадельфии Curalate помогает брендам конвертировать сообщения в социальных сетях в продажи. Бренды используют службу интеллектуальной маркировки продуктов (IPT) Curalate для автоматизации сбора и обработки контента пользователей социальных сетей. IPT использует нейронные сети для автоматического поиска и рекомендации продуктов, соответствующих активности пользователя в социальных сетях. Потребителям не нужно рыться в онлайн-каталогах, чтобы найти конкретный продукт по изображению в социальных сетях. Вместо этого они могут использовать автоматическую маркировку Curalate, чтобы с легкостью приобрести продукт.
На сегодняшний день основные сферы применения нейросетей — это прогнозирование, принятие решений, распознавание образов, оптимизация и анализ данных. Машинное обучение лежит в основе большинства систем распознавания и синтеза речи, а также распознавания и обработки изображений. Сфера применения уже не имеет значения: автоматически регулировать экспозицию в приложении камеры на смартфоне или искать браконьеров на фотографиях в Саяно-Шушенском заповеднике — алгоритму по большому счету все равно.
При контролируемом обучении специалисты по работе с данными предлагают искусственным нейронным сетям помеченные наборы данных, которые заранее дают правильный ответ. Например, сеть глубокого обучения, обучающаяся распознаванию лиц, обрабатывает сотни тысяч изображений человеческих лиц с различными терминами, связанными с этническим происхождением, страной или эмоциями, описывающими каждое изображение.
Нейронные сети прямого распространения
Несмотря на невозможность практической реализации, именно тогда были придуманы новые алгоритмы, в том числе сверточные и рекуррентные: сверточные используются для классификации изображений, а рекуррентные — для анализа текста и машинного перевода. В журналах того времени писали, что роботы вот-вот заменят человека, стартапы обещали небывалую прибыль бизнесу, но нейросети все равно считались идеей, которая работает только на бумаге.
Рекуррентные нейронные сети. Связь между узлами в таких нейросетях образует направленные последовательности. При этом каждый следующий этап работы может использовать результат предыдущего в качестве входных данных. Проще говоря, у этих нейросетей есть внутренняя память, поэтому они могут работать с наборами данных разной длины, делить на части, сохранять и обращаться к уже обработанным блокам. Именно рекуррентные сети используются для обработки языков, распознавания и синтеза речи, машинного перевода.
Скрытые слои получают входные данные от входного слоя или других скрытых слоев. Искусственные нейронные сети могут иметь большое количество скрытых слоев. Каждый скрытый слой анализирует выходные данные предыдущего слоя, обрабатывает их и передает на следующий слой.
К концу XX века алгоритмов стало больше, вычислительные машины научились делать более мощными и компактными, а кроме того, появились наборы данных для обучения. Желания ученых наконец стали осуществимы. Вскоре им удалось добиться успеха в распознавании речи, а затем и в области компьютерного зрения (подробнее об этом читайте в нашем материале «Смотри внимательно») — в 2012 году была опубликована знаковая статья, посвященная нейросети ImageNet и глубокому обучению.
Глубокие нейронные сети или сети глубокого обучения имеют несколько скрытых слоев с миллионами связанных друг с другом искусственных нейронов. Число, называемое весом, указывает на связи одного узла с другими. Вес является положительным числом, если один узел возбуждает другой, или отрицательным, если один узел подавляет другой. Узлы с более высокими значениями веса имеют большее влияние на другие узлы.
Теоретически глубокие нейронные сети могут сопоставлять любой тип ввода с любым типом вывода. Однако стоит учитывать, что им требуется гораздо более сложное обучение, чем другим методам машинного обучения. Таким узлам нужны миллионы примеров обучающих данных, а не сотни или тысячи, как в случае с простыми сетями.
Нейронная сеть медленно накапливает знания из этих наборов данных, которые заранее дают правильный ответ. После обучения сеть начинает делать предположения об этническом происхождении или эмоциях нового изображения человеческого лица, которое она никогда раньше не обрабатывала.
Нейросети прямого распространения. Узлы таких нейросетей не связаны друг с другом в пределах одного слоя, а информация передается от одного слоя к другому. Это один из базовых типов нейросети, по сути логичное развитие идеи перцептрона. Он не может обеспечить высокой производительности, но хорошо работает в связке с другими нейросетями. Например, если дать такой нейросети кусочек задачи по обработке нескольких пикселей изображения, она сделает это быстро, но результаты все равно нужно будет обработать.
Примечание: При такой модели обучение нейронной сети сводится к изменению коэффициенту весов, то есть связи между отдельными нейронами. Если вес положительный — сигнал в нейроне усиливается, нулевой — нейроны не влияют друг на друга, отрицательный — сигнал в принимающем нейроне погашается.