Как стать автором
Обновить

Нейронные сети и почему  они лучше работают на GPU?

В данной статье я не буду останавливаться на описании, что из себя представляет нейронная сеть, потому что главная задача этого текста объяснить, почему они так хорошо работают в некоторых отраслях.

Как и много где в машинном обучении какую именно использовать модель определяют в первую очередь данные, с которыми мы имеем дело. Поэтому стоит пояснить в каких задачах применение нейросетевых моделей оправдано и даст наибольшее преимущество. В первую очередь это задачи, обрабатывающие графическую информацию - картинки и видео. В этой области начиная с 2015 года  человек справляется хуже машины с задачей определения, что находится на изображении. Вторая область которая приходит на ум это все, что связано с аудио и текстом. Кто пользовался переводчиками с одного языка на другой наверняка замечал, что в последнее время переводы стали литературны и максимально достоверны, особенно если вспоминать многострадальный PROMT. Качественный скачек эта область осуществила в 2018 году, когда Google, а немногим позже и Яндекс  перешли на использование нейронных сетей особого типа для задач перевода текста с одного языка на другой.

Что же объединяет эти области и почему не подходят классические модели машинного обучения? 

Правильнее сказать, что ML-подходы применимы, но они не дают таких порой хороших результатов, сопоставимых с результатами человека в подобных задачах. Таким образом мы подходим к ответу на первую часть вопроса. Концепция применения классического машинного обучения предполагает работу с данными и создание дополнительных признаков, чтобы алгоритм мог их корректно обрабатывать и использовать для более точных предсказаний. В задачах озвученных ранее зачастую тяжело нагенерировать новых осмысленных признаков, но нейронные сети в ходе своей работы самостоятельно строят внутри себя сложные представления данных, которыми они сами и руководствуются при решении задачи.

Почему же НС работают и причем так хорошо? Главным залогом их успеха, как полагают некоторые, является возможность за счет глубины сети(последовательности различных слоев нейронов) представлять и декомпозировать задачу на последовательные блоки, которые могут выполняться параллельно. Переходя от одного слоя к следующему сеть выучивает различные представления и позволяет смотреть на исходные данные под новым углом, выявляя новые(все более абстрактные) признаки в данных, причем абстракции, построенные сетью на ранних этапах могут быть совсем непонятными, а представления на более поздних слоях вырисовываются в что-то более осмысленное и узнаваемое. Яркий пример работы нейронной сети - создание промежуточных представлений, которые выучивает распознавать модель в рамках решения глобальной задачи (картинка с фильтрами). Интерпретация и визуализация нейронной сети - сложная вещь, причем порой не выполнимая. Именно поэтому глубокое обучение так хорошо подходит в задачах, работающих с плохо/сложно структурированной информацией. А если вспоминать про задачу работы с текстовой информацией, то тут например можно привести пример, что нейронная сеть, осуществляя перевод с одного языка на другой самостоятельно выучивается распознавать, какое слово в исходном предложении соответствует слову в переведенном предложении.

Почему же эти подходы работают и причем так хорошо? Главным залогом их успеха, как полагают некоторые, является возможность за счет глубины сети представлять и декомпозировать задачу на последовательные блоки, которые могут выполняться параллельно. Так как количество нейронов в каждом слое порой исчисляется сотнями тут-то к нам и приходит на выручку GPU, которые позволяют векторизовывать вычисления и максимально распараллеливать данные и тем самым заметно ускорять скорость вычислений.

В следующих статьях я буду писать уже более детально про алгоритмы обучения нейронных сетей, ключевые моменты с которыми сталкиваются инженеры при работе с ними, но над которыми мы порой не задумываемся и разбирать самые важные структурные компоненты глубокого обучения.

Надеюсь вам было интересно и познавательно.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.