Чернобровов АлексейАналитик

Место нейросетей в Data Science: краткий ликбез и последние тренды

В этой статье мы рассмотрим одно из наиболее популярных сегодня понятий – нейронные сети, которые, фактически, стали «лицом» современного искусственного интеллекта. Как работает этот метод машинного обучения (Machine Learning), почему он стал таким востребованным в 21 веке, что такое глубокие нейросети и чего ждать от них в будущем – читайте в этом материале.

 

Краткая история нейросетей

Прежде всего, отметим, что нейронные сети – это не единственные методы машинного обучения и искусственного интеллекта. Помимо нейросетей в классе обучения с учителем выделяют методы коррекции и обратного распространения ошибки (backpropagation), а также машину опорных векторов (SVM, Support Vector Machine), применение которой в задаче одноклассовой классификации я описывал в здесь. Еще среди ML-методов различают обучение без учителя (альфа- и гамма-системы подкрепления, метод ближайших соседей), обучение с подкреплением (генетические алгоритмы), частичное, активное, трансиндуктивное, многозадачное и многовариантное обучение, а также бустинг и байесовские алгоритмы [1].

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

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

Здесь стоит упомянуть теоретическую базу нейросетей в виде теоремы Колмогорова-Арнольда о представимости непрерывных функций нескольких переменных суперпозицией непрерывных функций одной переменной. Эта теорема была доказана советскими учеными А.Н. Колмогоровым и В.В. Арнольдом в 1957 году, а в 1987 году переложена американским исследователем Хехт–Нильсеном для нейронных сетей. Она показывает, что любая функция многих переменных достаточно общего вида может быть представлена с помощью двухслойной нейронной сети с прямыми полными связями нейронов входного слоя с нейронами скрытого слоя с заранее известными ограниченными функциями активации (например, сигмоидальными) и нейронами выходного слоя с неизвестными функциями активации.

Из этой теоремы следует, что для любой функции многих переменных существует отображающая ее нейросеть фиксированной размерности, при обучении которой могут использоваться три параметра [2]:

  • область значений сигмоидальных функций активации нейронов скрытого слоя;
  • наклон сигмоид нейронов этого слоя;
  • вид функций активации нейронов выходного слоя.

Еще одной ключевой вехой в истории нейросетей стало изобретение перцентрона Фрэнком Розенблаттом в 60-хх гг. XX века. Благодаря успешным результатам использования перцептронов в ограниченном круге задач (прогнозирование погоды, классификация, распознавание рукописного текста), нейросети стали весьма популярны среди ученых по всему миру. Например, в СССР нейросетями занимались в Институте проблем передачи информации ученые научной школы М. М. Бонгарда и А.П. Петрова (1963-1965 гг.). Однако, поскольку существовавшие на то время вычислительные мощности не могли эффективно реализовать теоретические алгоритмы на практике, исследовательский энтузиазм к этим ML-методам временно упал.

Следующая волна интереса к нейросетям началась спустя 20 лет, в 80-х годах прошлого века и, по сути, продолжается до сих пор. Здесь стоит отметить различные вариации сетей Кохонена и Хопфилда, развившиеся в модели глубокого обучения – тенденции, подробнее о которых мы поговорим далее [3].

победы ИИ над человеком в играх

 

Что такое нейросети и как они работают

Начнем с классического определения: искусственная нейронная сеть (нейросеть) – это математическая модель с программной или аппаратной реализацией, построенная по принципу организации и функционирования биологических нейронных сетей – нервных клеток живого организма. Нейросеть представляет собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов), где каждый из них работает только с сигналами, которые он периодически получает и посылает сам другим нейронам [3].

Характерным отличием нейросетей от других вычислительных моделей является их ориентация на биологические принципы, благодаря чему они обладают следующими качествами:

  • массовый параллелизм;
  • распределённое представление информации и вычисления;
  • способность к обучению и обобщению;
  • адаптивность;
  • свойство контекстуальной обработки информации;
  • толерантность к ошибкам;
  • низкое энергопотребление.

 

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

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

Типовая нейросеть состоит из трех компонентов (рис. 1):

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

 

Строение нейросети
Рис. 1. Строение нейросети

 

Каждый нейрон предыдущего слоя передает сигналы нейронам последующего методом прямого или обратного распространения ошибки по синаптическим связям с весовыми коэффициентами (рис. 2). На рисунке 2 показана схема искусственного нейрона, где

  • 1- нейроны, выходные сигналы которых поступают на вход данному (xi);
  • 2- сумматор входных сигналов;
  • 3- вычислитель функции активации;
  • 4- нейроны, на входы которых подаётся выходной сигнал данного;
  • 5- wi— веса входных сигналов

 

Схема искусственного нейрона
Рис. 2. Схема искусственного нейрона

 

Математически нейрон – то сумматор, результат которого y=f(u) определяется через его входы и весовые коэффициенты [4]:

, где

  • xi – это возможные значения сигналов на входах нейрона, которые лежат в интервале [0,1] и могут быть дискретными или аналоговыми;
  • wi – весовые коэффициенты, на которые умножается значение входного сигнала нейрона xi для его инициализации – смещения активационной функции по горизонтальной оси, с целью формирования порога чувствительности.
  • x0 – это дополнительный вход нейрона, сигнал с которого умножается на вес w0.

Таким образом, выход каждого нейрона является результатом его нелинейной непрерывной и монотонной функции активации: сигмоиды, синусоиды, Гауссовой, ступенчатой и подобных им (рис. 3). Функция активации определяет зависимость сигнала на выходе нейрона от взвешенной суммы сигналов на его входах. Благодаря ее нелинейности нейросети с достаточно небольшим числом узлов и слоев могут решать довольно сложные задачи прогнозирования, распознавания и классификации. Различные функции активации отличаются друг от друга следующими характеристиками [5]:

  • область значений, например, от минус до плюс бесконечности или ограниченный промежуток типа [0,1], (-π/2; π/2) и т.д. – при ограниченном множестве значений функции активации градиентные методы обучения более стабильны, т.к. эталонные представления существенно влияют лишь на ограниченные связи (их весовые коэффициенты). Если область значений функции активации бесконечна, то обучение более эффективно, т.к. используется большинство весов, однако, в этом случае нейросеть обучается медленнее.
  • порядок гладкости, определяющий непрерывность ее производной, что позволяет использовать методы оптимизации на основе градиентного спуска и обеспечивает более высокую степень общности;
  • монотонность (самой функции и ее производной), что означает характер убывания или возрастания на всей области определения. Для монотонной функции активации поверхность ошибок, ассоциированная с одноуровневой моделью, гарантированно будет выпуклой, у которой локальный экстремум (минимум или максимум) совпадает с глобальным, что важно для задач оптимизации.
  • аппроксимация тождественной функции около начала координат – при наличии этого свойства нейронная сеть будет обучаться эффективно, если её веса инициализированы малыми случайными значениями.

 

Как правило, для каждого типа решаемой задачи и топологии сети, характерна своя функция активации. Например, в многослойных перцептронах используется сигмоида в форме гиперболического тангенса, которая хорошо нормализуется, усиливая слабые сигналы и не уходя в бесконечное возрастание от сильных. В радиально-базисных сетях чаще всего используются Гауссова, мультиквадратичная или обратно мультиквадратичная функции активации, параметры которых позволяют настраивать расходимость радиуса, регулируя область действия каждого нейрона [5].

 

Наиболее распространенные функции активации
Рис. 3. Наиболее распространенные функции активации

 

Искусственные нейроны объединяются в сети с различной топологией, в зависимости от решаемой задачи (рис. 4). Например, для распознавания образов часто используются перцептроны и сверточные нейросети (обучение с учителем), сети адаптивного резонанса (без учителя) и радиально-базисных функций (смешанное обучение). Для анализа данных применяются сети Кохонена (самоорганизующаяся карта и сети векторного квантования сигналов). Также на выбор типа сети влияет характер обучающего датасета. В частности, при прогнозировании временных рядов экспертная оценка уже содержится в исходных данных и может быть выделена при их обработке, поэтому в этих случаях можно использовать многослойный перцептрон или сеть Ворда [3].

 

Популярные топологии нейросетей
Рис. 4. Популярные топологии нейросетей

 

Современные тренды развития нейросетевых технологий

Итак, особенно активно текущие нейросетевые технологии развиваются с 2000-х годов, когда мощность графических процессоров стала достаточной для быстрого и недорогого обучения нейросетей, а также в мире накопилось большое количество датасетов для тренировки. К примеру, до 2010 года не существовало базы данных, чтобы качественно обучить нейросети решать задачи по распознаванию и классификации изображений. Поэтому нейросети часто ошибались, путая кошку с собакой, или снимок здорового органа с больным. Однако, с появлением базы ImageNet в 2010 году, которая содержала 15 миллионов изображений в 22 тысячах категорий и была доступна для любого исследователя, качество результатов существенно улучшилось. Кроме того, к этому времени появились новые достижения ученых в области искусственного интеллекта: Джеффри Хинтон реализовал предобучение сети при помощи машины Больцмана, обучая каждый слой отдельно. Ян ЛеКан предложил использовать сверточные нейросети для распознавания изображений, а Иошуа Бенджио разработал каскадный автокодировщик, позволивший задействовать все слои в глубокой нейронной сети [6]. Именно эти исследования легли в основу современных тенденций развития нейросетевых технологий, наиболее значимыми среди которых можно назвать следующие:

  • глубокое обучение (Deep Learning, DL) – иерархическое сочетание нескольких алгоритмов обучения (с учителем, без учителя, с подкреплением), когда нейросеть сперва тренируется на большом количестве данных общего характера, а затем целенаправленно обучается на датасетах, специфичных для конкретной задачи.
  • гибридное обучение – сочетание DL-моделей с байесовскими подходами, которые хорошо подходят для вероятностного моделирования и вычисления причинно-следственных отношений в биоинформатике (генетические сети, структура белков), медицине, классификации документов, обработке изображений и системах поддержки принятия решений [7]. Байесовские алгоритмы значительно повышают качество обучения, способствуя генерации тренировочных данных, максимально близких к реальным, в генеративно-состязательных сетях (GAN, Generative adversarial network) [8].
  • автоматическое обучение (AutoML) – автоматизация всех ML-процессов, от предварительной подготовки данных до анализа результатов моделирования. Инструменты AutoML (Google AutoML, Auto Keras, RECIPE, TransmogrifAI, Auto-WEKA, H2O AutoML и другие фреймворки и библиотеки) существенно облегчают работу Data Scientist’a, экономя его время за счет автоматического конструирования признаков, оптимизации гиперпараметров, поиске наилучшей архитектуры, подборе каналов и оценочных метрик, определения ошибок и выполнения других ML-процедур [9]. Также AutoML можно рассматривать как способ демократизации AI, который позволяет создавать ML-модели без сложного программирования [10].

 

Далее мы рассмотрим более подробно методы глубокого и автоматического ML.

 

Глубокое обучение: принципы работы и результаты использования

К глубокому обучению относят класс ML-моделей, основанных на обучении представлениями (feature/representation learning), а не на специализированных алгоритмах под конкретные задачи. В DL многослойные нейронные сети играют роль многоуровневой системы нелинейных фильтров для извлечения признаков. Для DL-моделей характерно иерархическое сочетание нескольких алгоритмов обучения: с учителем, без учителя, с подкреплением. Архитектура нейросети и состав ее нелинейных слоёв зависит от решаемой задачи. При этом используются скрытые переменные, организованные послойно, например, узлы в глубокой сети доверия и глубокой ограниченной машине Больцмана. При этом, независимо от архитектурных особенностей и прикладного назначения, для всей DL-сетей характерно предварительное обучение на большом объеме общих данных с последующей подстройкой на датасетах, специфичных для конкретного применения [11].

Например, одна из наиболее известных реализаций DL-моделей, нейронная сеть BERT, о которой я рассказывал здесь, предварительно обучена на статьях из Википедии, чтобы затем использоваться в распознавании текстов. По аналогичному принципу работает нейросеть XLNet, также применяемая в задачах обработки естественного языка для анализа и генерации текстов, извлечения данных, информационного поиска, синтеза речи, машинного перевода, автоматического реферирования, аннотирования, упрощения текстовой информации и прочих NLP-проблем [12]. Другая глубокая нейросеть, CQM (Calibrated Quantum Mesh), также показывает отличные результаты (более 95%) в понимании естественного языка, извлекающая смысл слова на основе вероятностного анализа его окружения (контекста) без использования заранее заданных ключевых слов [13]. На рисунке 5 показано использование предварительно подготовленной модели в качестве объектов в отдельной нисходящей DL-сети при трансферном обучении в NLP-задачах [14].

 

Схема трансферного обучения в DL-сетях
Рис. 5. Схема трансферного обучения в DL-сетях

 

Среди других DL-моделей стоит упомянуть капсульные сети, которые, в отличие от сверточных сетей, обрабатывают визуальные образы с учетом пространственной иерархии между простыми и сложными объектами, что повышает точность классификации и снижает объем данных для обучения [15]. Также отметим глубокое обучение с подкреплением (DRL, Deep Reinforcement Learning), работающее по принципу взаимодействия нейросети с окружающей средой посредством наблюдений, действий, штрафов и вознаграждений [16]. DRL считается наиболее универсальным из всех ML-методов, поэтому его можно использовать в большинстве бизнес-приложений. В частности, именно к DRL-моделям относится нейросеть AlphaGo, которая в 2015 году впервые победила человека в соревнованиях по древней китайской игре го, а в 2017 – обыграла сильнейшего профессионального игрока в мире [6].

А для распознавания образов, получения фотореалистичных изображений, улучшения качества визуальной информации и обеспечения кибербезопасности активно используются GAN-подобные сети. GAN-сеть представляет собой комбинацию двух конкурирующих нейросетей, одна из которых (G, генератор) генерирует образцы,а другая (D, Дискриминатор) старается отличить правильные («подлинные») образцы от неправильных, обрабатывая все данные. Со временем каждая сеть улучшается, благодаря чему качество обработки данных существенно возрастает, т.к. в процесс обучения уже заложена функция обработки помех. Эту систему DL-обучения без учителя впервые описал Ян Гудфеллоу из компании Google в 2014 году, а сама идея состязательного обучения была выдвинута в 2013 году учеными Li, Gauci и Gross. Сегодня GAN-сети активно используются в видеоиндустрии и дизайне (для подготовки кадров фильмов или мультипликации, сцен компьютерных игр, создания фотореалистичных изображений), а также в космической промышленности и астрономии (для улучшения снимков, полученных из астрономических наблюдений) [17]. Таким образом, GAN-сети отлично подходят для широкого спектра задач обучения без учителя, где помеченные данные не существуют или процесс их подготовки слишком дорог, например, создание 3D-образа удаленного объекта на основе его фрагментарных изображений. Благодаря состязательному подходу, этот ML-метод оказывается быстрее аналогичных DL-моделей, т.к. используются сразу две сети с противоположными локальными целями, направленными на общий глобальный результат [10].

 

AutoML: инструментальные возможности

Ценность AutoML состоит в «демократизации» машинного обучения: эта технология позволяет бизнес-пользователям, а не только опытным Data Scientist’ам работать с мощными средствами аналитики и прогнозирования. Средства AutoML нацелены на максимальное упрощение процессов создания и применения сложных алгоритмов: благодаря упрощенным пользовательским интерфейсам они позволяют быстро создавать необходимые модели, снижая вероятность ошибочных вычислений. AutoML-системы рассчитан на обработку большого объема данных, включая предварительную подготовку датасетов: пользователи могут самостоятельно идентифицировать метки, выбирать нужные участки информационного набора в режиме UI. Такой подход значительно отличается от традиционной работы Data Scientist’а, позволяя сосредоточиться на бизнес-задаче, а не на проблемах обработки данных. Многие платформы ML совместимы с Android и iOS, поэтому модели могут быть плавно и быстро интегрированы с мобильными приложениями [18]. Среди наиболее известных AutoML-решений стоит отметить следующие:

  • Microsoft Azure ML— облачный сервис, который позволяет пользователям загружать свои данные, применяя графический интерфейс для разработки кода, который сам создает нейронные сети для анализа данных. Программа работает на любом устройстве, требуя от пользователя минимума знаний о данных или программировании. Сервис включает в себя инструменты Machine Learning Studio и Machine Learning API Service, которые позволяют создавать модели, определяющие вероятность того или иного события, используя данные, хранящиеся в SQL Server и других платформах, включая Azure HDInsight (реализация Apache Hadoop от Microsoft) [18].
  • Google Cloud AutoML помогает самостоятельно создавать и обучать DL-модели распознавания изображений и объектов, а также NLP-задач, в т.ч. по машинному переводу. В частности, AutoML Vision включает в себя распознавание лиц, меток, почерка, логотипа, модерацию контента, оптическое распознавание символов и другие подобные задачи обработки графической информации. Например, ML-классификаторы Google Cloud используются в техасском научно-исследовательском институте Гарта TAMUCC для определения атрибутов в больших наборах данных изображений береговой линии вдоль Мексиканского залива. AutoML Natural language Toolkitпозволяет классифицировать контент в конкретные категории, извлекая из текста смысловые структуры и распознавая его элементы. Это позволяет быстро искать, переводить, аннотировать, сжимать и фильтровать текстовые данные, чем успешно пользуются сервисы Rewordify Hater News, Smmry, Grammarly, Google WebSpeech, Vocalware и множество других бизнесов. Однако, пока большинство функциональных возможностей Google Cloud AutoML доступны и работают в полной мере только на английском языке. Также корпорация Google предлагает AutoML Data Science Toolkit – целый набор инструментов для работы с большими данными объемами данных. Благодаря использованию этого инструмента японский маркетплейс Mercari повысил эффективность классификации своих брендовых товаров на 16%, добившись точности распознавания продукции, равной 91,3% [19].
  • Amazon SageMaker предлагает простой в эксплуатации сервис по ускоренной разработке ML-моделей и развертывание их на облачной платформе AWS. Система включает готовые алгоритмы, а также интегрированную командную оболочку Jupyter, позволяя пользоваться как общими алгоритмами и фреймворками обучения, так и создавать собственные с помощью контейнеров Docker. Для ускоренного обучения ML-моделей они могут тиражироваться на несколько экземплярах облачного кластера [18].
  • Auto-Keras— в отличие от вышеперечисленных AutoML-систем, эта библиотека с открытым исходным кодом, разработанная в техасском университете (Texas A&M University), предоставляет функции для автоматического поиска архитектуры и гиперпараметров DL-моделей. По сути, Auto-Keras – это обычный «питоновский» пакет, для работы с которым необходима ML-библиотека, например, Theano или Tensorflow. Auto-Keras автоматически выполняет поиск архитектуры нейронной сети, подбирая её структуру и гиперпараметры для оптимального решения заданной задачи (классификация, регрессия и т.д.), что существенно облегчает процесс ML-моделирования [20].

 

Вместо заключения

Подведем краткое резюме о положении нейросетей в современной Data Science:

  • нейронные сети – это не единственный, хотя, возможно, самый популярный и наиболее перспективный на сегодняшний день ML-метод;
  • несмотря на почти 80-летнюю историю существования, математический аппарат нейросетей стал активно использоваться на практике только в 21 веке, с появлением быстрых и относительно дешевых вычислительных мощностей, способных эффективно реализовать заложенные в него идеи;
  • наблюдается явная тенденция к демократизации ML вообще и нейросетей в частности, которые все больше применяются не только в научных исследованиях, но и в различных бизнес-задачах и приложениях развлекательного характера;
  • также стоит отметить тренд к упрощению работы Data Scientist’a в связи с появлением инструментов AutoML, позволяющих автоматизировать многие этапы моделирования, в т.ч. сложную настройку весовых коэффициентов, оптимизацию гиперпараметров и прочие трудозатратные процедуры.

 

Итак, наиболее явными из современных ML-трендов являются нейросети глубокого обучения и средства AutoML, которые обеспечивают рост популярности DS, в т.ч. среди обывателей, что, в свою очередь, влечет к расширению прикладного использования и дальнейшему развитию всех методов AI.

 

Источники

  1. Машинное обучение
  2. Круглов В.В., Борисов В. В. Искусственные нейронные сети. Теория и практика. - 2-е изд., стереотип. - М.: Горячая линия-Телеком, 2002. - 382 с.
  3. Искусственная нейронная сеть
  4. Искусственный нейрон
  5. Функция активации
  6. Нейросети: как искусственный интеллект помогает в бизнесе и жизни
  7. Байесовская сеть
  8. Bayesian Conditional Generative Adverserial Networks
  9. AutoML
  10. Топ-10 трендов технологий искусственного интеллекта (ИИ) в 2018 году
  11. Глубокое обучение
  12. NLP – обработка естественного языка
  13. CQM — другой взгляд в глубоком обучении для оптимизации поиска на естественном языке
  14. The State of Transfer Learning in NLP
  15. Dynamic Routing Between Capsules. Sara Sabour, Nicholas Frosst, Geoffrey E. Hinton 
  16. Обучение с подкреплением
  17. Генеративно-состязательная сеть
  18. AutoML поможет справиться с нехваткой ИИ-специалистов
  19. AutoML от Google и новые возможности машинного обучения
  20. Библиотеки для глубокого обучения: Keras

 

Контакты