Интеллектуальный анализ данных учебное пособие. ИАД Лекции Замятин 20. Интеллектуальный анализ данных
Скачать 2.95 Mb.
|
Сеть Хэмминга. Трехслойная сеть с обратной связью. Исполь- зуется для классификации бинарных векторов; основным крите- рием в ней является расстояние Хэмминга (рис. 35). Рис. 35. Схема сети Хэмминга 𝓌 11 𝓌 12 𝓌 𝑚𝑛 𝑥 1 𝑥 2 𝑥 𝑗 𝑥 𝑛 +1 –ɛ –ɛ –ɛ –ɛ –ɛ +1 +1 +1 –Ϩ –Ϩ • –ɛ –ɛ –ɛ –ɛ –ɛ • • 𝑦 1 𝑦 2 𝑦 𝑘 𝑦 𝑚 Обратная связь Вход 1-й слой 2-й слой Выход Интеллектуальный анализ данных 128 При такой топологии каждый нейрон имеет связь с выходом остальных нейронов, в том числе и с самим собой. Каждый вектор будет принимать только бинарные значения. Нейроны второго слоя связаны между собой ингибиторными (отрицательными обрат- ными) синаптическими связями. Размерность векторов слоя X и слоя Y идентичная, т.е. количество нейронов на втором и третьем слоях равно количеству классов. По сравнению с сетью Хопфилда сеть Хэмминга характеризу- ется меньшими затратами на память и объемом вычислений, в том числе потому, что обучение происходит за один цикл. Самоорганизующаяся сеть Кохонена. Широко используется для задач визуализации и кластеризации и относится к классу алго- ритмов с обучением без учителя (рис. 36). Рис. 36. Схема самоорганизующейся сети Кохонена Алгоритм обучения такой сети можно описать следующим образом: Шаг 1. Инициализация весовых коэффициентов. Шаг 2. Подача входного вектора. Карта объектов Матрица весов Входной вектор 𝑥 0 𝑥 1 𝑥 2 8. Нейросетевые подходы и глубокое обучение 129 Шаг 3. Изменение весовых коэффициентов нейронов по фор- муле 𝑤 𝑖 𝑛𝑒𝑤 = 𝑤 𝑖 𝑜𝑙𝑑 + η × ℎ 𝑐𝑖 × (𝑥 − 𝑤 𝑖 𝑜𝑙𝑑 ), где ℎ 𝑐𝑖 – функция соседства нейронов. Шаги 2, 3. Повторять n раз Фактически самоорганизующаяся сеть Кохонена является мето- дом преобразования n-мерного пространства в пространство более низкой размерности, в частности двумерное. Сеть Джордана / Элмана. Получается из многослойного пер- септрона введением обратных связей, только связи идут, например, не от выхода сети, а от выходов внутренних нейронов с задержкой на один или несколько тактов. Рис. 37. Топология сети Джордана Связь 𝑥 1 𝑥 2 𝑥 𝑁 … 1 … … 1 𝑦 1 𝑦 𝑀 Интеллектуальный анализ данных 130 Это позволяет учесть предысторию наблюдаемых процессов и накопить информацию (краткосрочно) для выработки правильной стратегии управления (например, движущимися объектами), так как их главной особенностью является запоминание последователь- ностей (рис. 37, 38) Рис. 38. Топология сети Элмана У сети Джордана слой контекста обрабатывает данные с выход- ного слоя, а у сети Элмана – со скрытого слоя. Связь 𝑥 1 𝑥 2 𝑥 𝑁 … 1 … … 1 𝑦 1 𝑦 𝑀 8. Нейросетевые подходы и глубокое обучение 131 8.3. Сверточные нейронные сети (Convolutional Neural Networks) Сверточная нейронная сеть – специальная архитектура искус- ственной нейронной сети, разработанная для эффективного распо- знавания изображений (Deep Learning). Название архитектура сети получила из-за наличия операции свертки, суть которой в том, что каждый фрагмент изображения умножается на матрицу (ядро) свертки поэлементно, а результат суммируется и записывается в аналогичную позицию выходного изображения. Состоит из не- скольких слоев (5–1 000). Можно выделить следующие основные области применения сверточных нейронных сетей: Обработка изображений: – определение расположения и распознавание объектов; – сегментация;. – оптическое распознавание символов (OCR); – определение и распознавание лиц; – восстановление изображений. Классификация текстов. Обработка аудио: – классификация музыка; – распознавание речи. На рис. 39 представлена классическая упрощенная схема CNN. Рис. 39. Архитектура простейшей сверточной нейронной сети Входное изображение Свертка Максимальный «пулинг» Полностью связанный слой Интеллектуальный анализ данных 132 Сверточный слой (convolution layer) – основной блок сверточной нейронной сети. В операции свертки используется ограниченная матрица весов небольшого размера (ядро свертки), которая приме- няется для всех нейронов выходного слоя: 𝑙 𝑎,𝑏 = 𝑓(∑ ∑ 𝑥 𝑖,𝑗 × 𝑘 𝑖,𝑗 𝑗 𝑖 ). (8.10) Слой, получающийся в результате операции свертки такой мат- рицей, формирует так называемую карту признаков (feature map). При этом ядра свертки формируются в процессе обучения сети ме- тодом обратного распространения ошибки. Далее выполняется уменьшение размерности сформированных карт признаков. Эта операция называется субдискретизацией (англ. pooling, операция подвыборки). Поскольку карта признаков представляет собой набор признаков и их координат, то после операции субдискретизации на выходе получается уплотненная карта признаков, когда группа пикселей уплотняется до одного пикселя. При этом выбирается пиксель, име- ющий максимальное значение (когда используется для преобразо- вания функция максимума). Также могут использоваться функции усредненного значения (рис. 40). Рис. 40. Уменьшение размера карты признаков 21 8 8 12 9 4 18 9 8 12 19 7 10 3 12 10 21 10 12 18 12 9 7 15 пулинг среднего пулинг максимума 8. Нейросетевые подходы и глубокое обучение 133 Слои свертки и пулинга могут чередоваться любое количество раз. После нескольких слоев свертки и пулинга входное изображе- ние превращается из сетки пикселей в более абстрактную карту признаков. В итоге остается большое число каналов входных сигна- лов, хранящих небольшое число данных. Эти данные передаются на обычную полносвязную нейронную сеть, при этом слои такой сети уже обладают сравнительно небольшой размерностью. Как и в любой нейронной сети, в CNN в основе преобразований лежит использование функций активации. Традиционно в качестве функции активации использовались функции типа гиперболиче- ского тангенса или сигмоиды. С 2000-х гг. наиболее широко исполь- зуемой стала функция на ReLU (англ. rectified linear unit), по сути, представляющая собой функцию отсечения отрицательной части скалярной величины (рис. 41): 𝑓(𝑥) = max(0, 𝑥). (8.11) Softplus на рис. 41.– функция приближения для функции ReLu, называемая также SmoothReLU: 𝑓(𝑥) = ln[1 + exp(𝑥)]. (8.12) Рис. 41. Функция активации ReLU Интеллектуальный анализ данных 134 Основные преимущества использования такой функции акти- вации: 1) биологическая правдоподобность (0 при отрицательных зна- чениях); 2) легкость для вычисления; 3) повышение скорости сходимости стохастического градиент- ного спуска. Недостатки: 1) значение не ограничено; 2) может приводить к «смерти» нейронов (при обучении веса станут такими, что нейрон никогда больше не активируется, с дан- ного момента градиент для этого нейрона всегда будет равен нулю). 8.4. Популярные архитектуры CNN Рассмотрим примеры наиболее популярных архитектур сверточ- ных нейронных сетей. AlexNet. CNN, оказавшая большое влияние на развитие алго- ритмов компьютерного зрения. Сеть с большим отрывом выиграла конкурс по распознаванию изображений ImageNet LSVRC-2012 в 2012 г. (с количеством ошибок 15,3% против 26,2% у второго места) (рис. 42). GoogleNet. Победитель ILSVC 2014 г. с ошибкой всего 6,67%. Состоит из Inception модулей, основанных на нескольких очень маленьких свертках для резкого уменьшения количества призна- ков. Такая архитектура, например, позволила сократить количе- ство признаков до 4 млн по сравнению с 60 млн в AlexNet (рис. 43). VGG16-19. Одна из самых знаменитых моделей, отправленных на соревнование ILSVRC 2014 г., достигшая точности в 92,7% при тестировании на ImageNet в задаче распознавания объектов на изображении (рис. 44). Она является улучшенной версией AlexNet, в которой заменены большие фильтры (размера 11 и 5 в первом и втором сверточных слоях соответственно) на несколько фильтров размера 3 × 3, следующих один за другим. 135 8. Нейросетевые подходы и глубокое обучение Р ис 42 А рх итек ту ра A le x Ne t 1 1 1 1 22 22 3 55 48 5 5 5 48 5 5 3 3 3 192 3 3 3 3 128 2 2 3 3 3 3 128 192 3 3 1 1 192 192 1 1 3 3 128 128 2 0 4 8 2 0 4 8 2 0 4 8 1 0 0 0 Ш аг 4 М ак сим ал ьн ы й пу л М ак сим ал ьн ы й п ул М ак сим ал ьн ы й пу л 2 0 4 8 136 Интеллектуальный анализ данных Р ис 43 In ce p tio n м оду ль G o o g le Ne t Св ер тк а 1 × 1 Св ер тк а 3 × 3 Св ер тк а 5 × 5 Св ер тк а 1 × 1 Св ер тк а 1 × 1 Свер тк а 1 × 1 М ак сим ал ьн ы й п ул 3 × 3 Об ъед ин ени е ф ил ьтр ов Пр еды ду щ ий с ло й 137 8. Нейросетевые подходы и глубокое обучение Р ис 44 А рх итек ту ра с ве рто чно й не йр ос ети V G G 1 6 Бл ок 3 25 6 ф ил ьтр ов на в ы хо де Свер тка Свер тка Свер тка Мак сим альн ый пул Свер тка Свертк а Мак сим альн ый пул Свер тка Свер тка Мак сим альн ый пул Свертк а Свер тка Свер тка Мак сим альн ый пул Свер тка Свер тка Свер тка Мак сим альн ый пул Выра вни вани е Сжатие Сжатие Сжатие Бл ок 1 64 ф ил ьтр а на в ы хо де Бл ок 2 12 8 ф ил ьтр ов на в ы хо де Бло к 4 51 2 ф ильт ро в на вых оде Бл ок 5 51 2 ф ил ьтр ов на в ы хо де П ол но св яз ны й кл ас сиф ик ато р Интеллектуальный анализ данных 138 ResNets (Residual Networks). Глубокие сверточные нейронные сети превзошли человеческий уровень классификации изображений в 2015 г. Когда более глубокая сеть начинает сворачиваться, возни- кает проблема: с увеличением глубины сети точность сначала уве- личивается, а затем быстро ухудшается. Это означает, что если про- сто добавлять слои в обычную CNN, она будет тренироваться хуже. Одно из решений этой проблемы – давать возможность пропускать сигнал без изменений от определенных слоев. Рис. 45. Быстрое соединение в ResNets Особенность ResNets основана на понятии быстрого соединения, которое превращает сеть в ее остаточную (residual) версию (рис. 45). 8.5. Среды и фреймворки глубинного обучения Torch – библиотека для научных вычислений с широкой под- держкой алгоритмов машинного обучения, реализована на языке Lua с использованием C и CUDA. Theano – это расширение языка Python, позволяющее эффек- тивно вычислять математические выражения, содержащие много- мерные массивы. В состав Theano входит компилятор, который Результат уровня Результат уровня + x F(x) F(x) + x Идентичный x 8. Нейросетевые подходы и глубокое обучение 139 переводит математические выражения, написанные на языке Python, в эффективный код на C или CUDA. Tensorflow – библиотека для машинного обучения от Google. Caffe разработан Berkeley AI Research. Один из основных фреймворков индустрии. Есть интерфейсы под множество языков, в том числе Python, C++, Matlab. Поддерживает вычисления с помо- щью CUDA. Keras – удобный python-интерфейс для построения архитектур и обучения нейронных сетей на популярных фреймворках. DIGITS – разработка NVIDIA, web-интерфейс с инструментами для обучения сетей на выборках изображений. Работает на основе одной из популярных библиотек для машинного обучения. Таблица 12 Использование различных типов сетей при решении задач машинного обучения Задача Используемые типы сетей Классификация Персептрон, сверточная нейронная сеть, сеть радиально- базисных функций, сеть Хопфилда, сеть Хэмминга, сеть Джордана, сеть Элмана, Long Short-Term Memory Кластеризация Самоорганизующаяся карта Кохонена Аппроксимация Персептрон, сеть радиально-базисных функций Предсказание Персептрон, сеть радиально-базисных функций, сеть Джордана, сеть Элмана, Long Short-Term Memory Управление Персептрон, сеть радиально-базисных функций, сеть Джордана, сеть Элмана, Long Short-Term Memory Сжатие данных и ассоциативная память Сеть Хопфилда, сеть Хэмминга Оптимизация Самоорганизующаяся карта Кохонена Сравнение использования различных типов сетей при решении задач машинного обучения приведено в табл. 12. Интеллектуальный анализ данных 140 9. ОБРАБОТКА ЕСТЕСТВЕННОГО ЯЗЫКА Обработка естественного языка (англ. Natural Language Pro- cessing) – общее направление искусственного интеллекта и матема- тической лингвистики. Оно изучает проблемы компьютерного анализа и синтеза естественных языков. Применительно к искус- ственному интеллекту анализ означает понимание языка, а синтез – генерацию грамотного текста. Решение этих проблем будет озна- чать создание более удобной формы взаимодействия компьютера и человека [102]. Интеллектуальная обработка текстов – это целый комплекс задач, направленный на извлечение из текста интересую- щей информации (знаний) или генерация осмысленного текста на естественном для понимания человеком языке. 9.1. Основные задачи обработки текста Перечислим основные задачи обработки текста в порядке увели- чения их сложности [55]. При этом выделим три основных класса таких задач. Задачи первого класса можно условно назвать синтаксическими; эти задачи, как правило, очень хорошо определены и представляют собой задачи классификации или задачи порождения дискретных объектов, и решаются многие из них сейчас уже довольно неплохо. Например: – частеречная разметка (англ. part-of-speech tagging) – разметка в заданном тексте слова по частям речи (существительное, глагол, прилагательное и т.п.) и, возможно, по морфологическим призна- кам (род, падеж и т.п.); – морфологическая сегментация (англ. morphological segmen- tation) – разделение слова в заданном тексте на морфемы, т.е. син- таксические единицы вроде приставок, суффиксов и окончаний; для некоторых языков (например, английского) это не очень актуально, но в русском языке морфологии очень много; 9. Обработка естественного языка 141 – стемминг (англ. stemming) – выделение основы слов; – лемматизация (англ. lemmatization) – приведение слов к ба- зовой форме (например, форме единственного числа мужского рода); – пословная сегментация (англ. word segmentation) – нетриви- альная задача, например, для языков с иероглифами без пробелов, где деление на слова происходит по-разному; – выделение границ предложения (англ. sentence boundary disambiguation) – разбиение заданного текста на предложения (не всегда тривиальная задача, так как внутри предложения могут быть различные знаки препинания, включая «.»); – распознавание именованных сущностей (англ. named entity recognition) – поиск в тексте собственных имен людей, географиче- ских и прочих объектов, разметка их по типам сущностей (имена, топонимы и т.п.); – разрешение смысла слов (англ. word sense disambiguation) – выбор из омонимов по смыслу одного и того же слова в контексте; – синтаксический парсинг (англ. syntactic parsing) – построение синтаксического дерева по заданному предложению (и, возможно, его контексту); – разрешение кореференций (англ. coreference resolution) – определение объектов или частей текста, к которым относятся те или иные слова и обороты. Второй класс включает задачи, которые требуют понимания тек- ста, но по форме все еще представляют собой хорошо определенные задачи с правильными ответами (например, задачи классификации), для которых легко придумать не вызывающие сомнений метрики качества. К таким задачам, в частности, относят: – языковые модели (англ. language models) – по заданному от- рывку текста предсказать следующее слово или символ. Задача важна, например, для распознавания речи; – информационный поиск (англ. information retrieval) – главная задача, решаемая поисковыми системами: по заданному запросу найти среди огромного множества документов наиболее релевант- ные данному запросу; Интеллектуальный анализ данных 142 – анализ тональности (англ. sentiment analysis) – определение по тексту его тональности (позитив / негатив). Анализ тональности используется в онлайн-торговле для анализа отзывов пользовате- лей, в финансах и трейдинге для анализа статей в прессе, отчетов компаний и тому подобных текстов и т.п.; – выделение отношений или фактов (англ. relationship extraction, fact extraction) – выделение из текста хорошо определенных отно- шений или фактов об упоминающихся сущностях; например, кто с кем находится в родственных отношениях, в каком году основана упоминающаяся в тексте компания и т.д.; – ответы на вопросы (англ. question answering) – в зависимости от постановки это может быть классификация из ограниченного небольшого набора вариантов ответов, или классификация с очень большим числом классов (ответы на фактологические во- просы вроде «кто?» или «в каком году?»), или даже порождение текста (если отвечать на вопросы нужно в рамках естественного диалога). Наконец, к третьему классу отнесем задачи, в которых требуется не только понять уже написанный текст, но и породить (генериро- вать) новый. Здесь метрики качества уже не всегда очевидны. К та- ким задачам относят, например: – собственно порождение текста (англ. text generation); – автоматическое реферирование (англ. automatic summariza- tion) – породить краткое содержание текста, сохранив основную суть. Это можно рассмотреть как задачу классификации, если про- сить модель выбрать из текста готовые предложения, лучше всего отражающие общий смысл, а можно как задачу порождения, если краткое содержание нужно написать с нуля; – машинный перевод (англ. machine translation) – по тексту на одном языке породить соответствующий текст на другом языке; – диалоговые модели (англ. dialog and conversational models) – поддержать разговор с человеком. Уже сегодня есть удачные при- меры таких чат-ботов (например, «онлайн-консультанты» на раз- ных торговых сайтах). |