Содержание статьи
Что такое нейросеть и как она работает. Объясняем простыми словами
Машинное обучение и глубокое обучение
В основе искусственной нейронной сети лежит устройство нервной ткани человека. Она состоит из нервных клеток, связанных между собой длинными отростками. В клетках происходят нервные импульсы, они передаются по отросткам в другие клетки. Таким образом нервная ткань обрабатывает или генерирует информацию. Сами импульсы очень сложно расшифровать: это не понятные человеку данные, а набор слабых электрических токов, которые нейроны воспринимают как информацию.
Нейронная сеть медленно накапливает знания из этих наборов данных, которые заранее дают правильный ответ. После обучения сеть начинает делать предположения об этническом происхождении или эмоциях нового изображения человеческого лица, которое она никогда раньше не обрабатывала.
В 1958 году американский психолог Корнеллского университета Фрэнк Розенблатт повторил математическую модель нейросети с помощью компьютерного кода. Его нейрокомпьютер «Марк-1» был построен на идее персептрона — математической модели биологического нейрона. Нейросеть имела один слой (данные от входа сразу шли на вывод), но её уже можно было обучить. Она могла сама относить объекты по категориям. Например, распознавать печатные буквы на карточках.
Кроме того, есть входной и выходной слои. Входной принимает информацию и преобразовывает ее, например переводит картинку в матрицу из чисел. Выходной обрабатывает результат и представляет его в понятном человеку виде. Например, результат 0,77827273 он представит как «с точностью в 78% это такой-то предмет».
При контролируемом обучении специалисты по работе с данными предлагают искусственным нейронным сетям помеченные наборы данных, которые заранее дают правильный ответ. Например, сеть глубокого обучения, обучающаяся распознаванию лиц, обрабатывает сотни тысяч изображений человеческих лиц с различными терминами, связанными с этническим происхождением, страной или эмоциями, описывающими каждое изображение.
Обучение нейронной сети — это процесс обучения нейронной сети выполнению задачи. Нейронные сети обучаются путем первичной обработки нескольких больших наборов размеченных или неразмеченных данных. На основе этих примеров сети могут более точно обрабатывать неизвестные входные данные.
Процесс обучения бывает ручным и автоматическим и выглядит обычно так. Нейросети дают на вход разные данные, она анализирует их, а потом ей сообщают, каким должен быть правильный ответ. Сеть устроена так, что будет «стремиться» подогнать веса синапсов, чтобы выдавать верные результаты.
Как и люди, нейросети могут правильно решать новые задачи, опираясь на предшествующий опыт. Эти умные программы анализируют новую информацию, обобщают её и применяют выученные шаблоны к новым задачам. Если дать нейросети примеры «правильной» работы для решения задачи, то она может совершенствовать свою работу дальше.
Нейросеть — аналог мозга?
Но разработки в этом направлении ведутся — правда, пока такие проекты находятся на стадии исследований. И даже с небольшим по сравнению с мозгом количеством нейронов нейросети могут достигать поразительных результатов в обучении. Некоторые даже проходят тест Тьюринга, но с оговоркой: сознания у них нет, просто они хорошо научились имитировать его наличие. Иногда даже человек не всегда способен распознать в своем собеседнике нейронную сеть.
Сервисы глубокого обучения AWS используют возможности облачных вычислений, чтобы вы могли масштабировать свои нейронные сети глубокого обучения с меньшими затратами и оптимизировать их для повышения скорости. Вы также можете использовать подобные сервисы AWS для полного управления конкретными приложениями глубокого обучения:
Классификация Такие нейросети берут заданные данные и классифицируют их. Например, могут догадаться, к какому жанру относится текст, или оценить платежеспособность человека по его банковскому профилю Предсказание Эти сети делают какие-то выводы на основе заданной информации. Сюда можно отнести как предсказание будущих доходов по текущим данным, так и «дорисовывание» картинки Распознавание Часто применяемая задача — распознавать те или иные объекты. Такие нейросети используются в умных камерах, при наложении фотофильтров, в камерах видеонаблюдения и других подобных программах и устройствах.
Скрытые слои получают входные данные от входного слоя или других скрытых слоев. Искусственные нейронные сети могут иметь большое количество скрытых слоев. Каждый скрытый слой анализирует выходные данные предыдущего слоя, обрабатывает их и передает на следующий слой.
Скрытые слои в сверточных нейронных сетях выполняют определенные математические функции (например, суммирование или фильтрацию), называемые свертками. Они очень полезны для классификации изображений, поскольку могут извлекать из них соответствующие признаки, полезные для распознавания и классификации. Новую форму легче обрабатывать без потери функций, которые имеют решающее значение для правильного предположения. Каждый скрытый слой извлекает и обрабатывает различные характеристики изображения: границы, цвет и глубину.
С другой стороны, при глубоком обучении специалист по работе с данными предоставляет программному обеспечению только необработанные данные. Сеть глубокого обучения извлекает функции самостоятельно и обучается более независимо. Она может анализировать неструктурированные наборы данных (например, текстовые документы), определять приоритеты атрибутов данных и решать более сложные задачи.
Веса. Веса — числовые значения внутри синапсов нейронов. Нейросеть подсчитывает их самостоятельно в ходе обучения. Когда нейронная сеть сталкивается в ходе обучения с каким-то признаком, который нужно запомнить, она пересчитывает веса. При этом доподлинно неизвестно, какие именно числовые значения отвечают за те или иные признаки — и как именно признаки в них преобразуются.
В последние годы с развитием нейронных сетей их стали использовать в том числе в SMM. Уже сейчас есть блоги, где изображения и другой контент частично генерируются нейросетями. Применяют их и в развлекательных целях: различные сервисы «перерисовывают» лица людей, делают из них картины, персонажей мультфильмов, вставляют лица в отрывки из кино. Все это возможно благодаря машинному обучению и нейросетям.
Обработка естественного языка
Нейронные сети помогают компьютерам принимать разумные решения с ограниченным участием человека. Они могут изучать и моделировать отношения между нелинейными и сложными входными и выходными данными. Например, нейронные сети могут выполнять следующие задачи.
Нейронные сети могут анализировать человеческую речь независимо от ее речевых моделей, высоты, тона, языка и акцента. Виртуальные помощники, такие как Amazon Alexa и программное обеспечение для автоматической транскрипции, используют распознавание речи для выполнения следующих задач:
Искусственная нейронная сеть — не модель человеческого мозга: даже самые мощные из существующих сетей не могут достигнуть таких мощностей и подобного количества нейронов. В человеческом мозгу огромное количество нервных клеток — десятки миллиардов. В искусственных нейросетях намного меньше нейронов. Для создания нейронной сети, по возможностям равной человеческому мозгу, сейчас нет мощностей.
Структура. Нейросеть состоит из искусственных нейронов, которые соединяются между собой. У самой примитивной нейронной сети один слой нейронов, у более сложных — несколько. Часто каждый слой занимается своей задачей, например, один распознает, другой преобразует.
Нейронными сетями занимаются специалисты по машинному обучению. Они не пишут программы, основанные на алгоритмах: вместо этого они создают модель и обучают ее, а потом тестируют, насколько хорошо она работает. Есть отдельные компании, специализирующиеся на разработке нейросетей, а есть продуктовые отделы крупных IT-организаций, например Google.
Искусственные нейронные сети постоянно обучаются, используя корректирующие циклы обратной связи для улучшения своей прогностической аналитики. Проще говоря, речь идет о данных, протекающих от входного узла к выходному узлу по множеству различных путей в нейронной сети. Правильным является только один путь, который сопоставляет входной узел с правильным выходным узлом. Чтобы найти этот путь, нейронная сеть использует петлю обратной связи, которая работает следующим образом: