Pull to refresh

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

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

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

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

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

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

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

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

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

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.