Что такое обучение без учителя информатика
Полное руководство по обучению без учителя
Дата публикации Jul 31, 2019
Введение
Обучение без присмотра имеет тенденцию быть более сложным, потому что нет четкой цели для анализа, и это часто субъективно. Кроме того, трудно оценить, являются ли полученные результаты хорошими, так как не существует принятого механизма для выполнения перекрестной проверки или проверки результатов на независимом наборе данных, потому что мы не знаем истинного ответа.
В центре внимания этого руководства будут две техники:Анализ главных компонентова такжекластеризация, Мы рассмотрим, как каждый работает математически, и реализуем каждый из них в двух мини-проектах.
Давайте доберемся до этого!
Без присмотра стороны опасны!
Анализ основных компонентов (PCA)
PCA относится к процессу, с помощью которого основные компоненты вычисляются и используются для лучшего понимания данных. PCA также можно использовать для визуализации.
Каковы основные компоненты?
Предположим, вы хотите визуализироватьNнаблюдения с измерениями на множествепособенности как часть исследовательского анализа данных. Мы могли бы исследовать двумерные диаграммы рассеяния по 2 объектам одновременно, но быстро вышли бы из-под контроля, если бы было много предсказателей.
С помощью PCA мы можем найти низкоразмерное представление набора данных, который содержит как можно больше вариаций. Поэтому мы получаем только самыеинтересныйособенности, потому что они несут ответственность за большинство дисперсии.
Как найти основные компоненты?
Символфитаупоминается какнагрузки, Нагрузки должны быть максимальными:
И это все, что нужно сделать!
Методы кластеризации
Кластеризация относится к широкому набору методов поиска подгрупп или кластеров в наборе данных. Это помогает нам разделить наблюдения на отдельные группы, так что каждая группа содержит наблюдения, которые похожи друг на друга. Например, в сценарии рака молочной железы группы могут представлять степень опухоли. Это также очень полезно в маркетинге для сегментации рынка, чтобы идентифицировать группу людей, которые были бы более восприимчивы к определенному типу продукта.
Есть много методов кластеризации, но мы сосредоточимся наК-среднее кластеризацияа такжеиерархическая кластеризация, В кластеризации k-средних мы хотим разбить данные на заранее заданное числоКкластеров. С другой стороны, при иерархической кластеризации мы не знаем, сколько кластеров мы хотим. Вместо этого нам нужна дендрограмма, которая позволяет нам просматривать все кластеры, полученные для каждого возможного числа кластеров.
K-означает кластеризацию
Этот метод просто разделяет наблюдения наКкластеры. Предполагается, что:
1. Каждое наблюдение принадлежит хотя бы одному из K-кластеров.
2. Кластеры не перекрываются
Кроме того, вариации внутри каждого кластера сведены к минимуму.
Это достигается путем минимизации суммы квадратов евклидова расстояния между каждым наблюдением в кластере:
Чтобы свести к минимуму, мы следуем этому алгоритму:
1. Случайно назначьте номер от 1 доКк каждому из наблюдений. Они служат в качестве начальных кластерных назначений для наблюдений.
2. Итерируйте, пока назначения кластера не перестанут меняться:
2.а Для каждого изКкластеры, вычислить кластерцентроида,КТИкластерный центроид является векторомпособенность средства для наблюдений вКТИкластер
2.b. Присвойте каждое наблюдение группе, центр тяжести которой находится ближе всего (кратчайшее евклидово расстояние)
Обратите внимание, что алгоритм выше найдет локальный минимум. Следовательно, полученные результаты будут зависеть от начального случайного назначения кластера. Поэтому важно запускать алгоритм несколько раз.
Иерархическая кластеризация
Потенциальный недостаток кластеризации k-средних состоит в том, что для определения количества кластеров требуется участие человека.Иерархическая кластеризацияс другой стороны, не требует начального количества кластеров.
Наиболее распространенный тип иерархической кластеризациивверх дномилиагломерационногокластеризация. Это относится к тому факту, чтодендрограммыгенерируется начиная с листьев и объединяя кластеры до ствола.
Алгоритм на самом деле очень прост Начинается с определениянесходствомера между каждой парой наблюдений, как евклидово расстояние. Затем он начинает с предположения, что каждое наблюдение относится к своему кластеру. Затем два наиболее похожих кластера слиты, так что естьн-1кластеры. После этого два других подобных кластера сливаются, что приводит кн-2кластеры. Процесс повторяется итеративно до тех пор, пока все наблюдения не станут частью одного кластера.
Хотя все просто, что-то не было решено. Как определить меру различия между кластерами? Это достигается с помощью концепциисвязь, Четыре наиболее распространенных типа связей приведены в таблице ниже:
Полные, средние и центроиды являются наиболее популярными типами связей, потому что одиночная связь приводит к несбалансированным дендрограммам. Обратите внимание, что результирующая дендрограмма сильно зависит от типа используемой связи.
Кроме того, выбор подходящей меры отличия имеет решающее значение. Евклидово расстояние широко обсуждалось, но есть икорреляционное расстояние, При этом считается, что две функции похожи, если они сильно коррелированы, что означает, что они имеют схожие профили
Например, рассмотрим интернет-магазин, заинтересованный в кластеризации покупателей на основе их прошлых историй покупок. Цель состоит в том, чтобы идентифицировать подгруппы подобных покупателей, чтобы им можно было показывать рекламные объявления, которые могут их заинтересовать. Используя евклидово расстояние, покупатели, купившие всего несколько товаров, будут объединены в группы, что может быть не идеально. С другой стороны, используя корреляцию на основе расстояния, покупатели с аналогичнымипредпочтения(они купили предметы A и B, но не C и D) будут сгруппированы вместе, даже если они купили вещи разного объема.
Однако во всех случаях нам по-прежнему нужен человеческий вклад, чтобы определить конечное число кластеров, которое будет использоваться после завершения иерархической кластеризации.
Теперь, когда вы понимаете, как работают PCA и методы кластеризации, давайте реализуем их в небольшом проекте.
проект
Этот проект будет разделен на два мини-проекта. В первом мы будем использовать кластеризацию k-средних для выполненияквантование цветовна изображении.
Затем, во втором мини-проекте, мы будем использовать PCA, чтобы уменьшить размерность набора данных, что позволит нам визуализировать его с помощью 2D-графика.
Все, что вам нужно для кодирования, доступноВот,
Раскрути свой блокнот Jupyter, и пошли!
Начальная настройка
Перед началом любой реализации мы импортируем несколько библиотек, которые позже пригодятся:
В отличие от предыдущих уроков, мы не будем импортировать наборы данных. Вместо этого мы будем использовать данные, предоставленныеscikit учитьсябиблиотека.
Быстро, цветовое квантование является техникой, чтобы уменьшить количество различных цветов, используемых в изображении. Это особенно полезно для сжатия изображений при сохранении целостности изображения.
Для начала мы импортируем следующие библиотеки:
Обратите внимание, что мы импортируем образец набора данных с именемload_sample_image, Это просто содержит два изображения. Мы будем использовать один из них для цветового квантования.
Итак, давайте покажем изображение, которое мы будем использовать для этого упражнения:
И вы должны увидеть:
Теперь для квантования цвета необходимо выполнить разные шаги.
Во-первых, нам нужно изменить изображение в 2D-матрицу для манипуляции:
Затем мы обучаем нашу модель агрегированию цветов, чтобы на изображении было 64 разных цвета:
Затем мы создаем вспомогательную функцию, чтобы помочь нам восстановить изображение с количеством указанных цветов:
Наконец, теперь мы можем визуализировать, как изображение выглядит только с 64 цветами, и как оно сравнивается с исходным:
Конечно, мы можем видеть некоторые различия, но в целом целостность изображения сохраняется! Исследуйте разное количество кластеров! Например, вот что вы получите, если указать 10 цветов:
В этом упражнении мы будем использовать PCA, чтобы уменьшить размеры набора данных, чтобы мы могли легко его визуализировать.
Поэтому давайте импортируем набор данных iris изscikit учиться:
Теперь мы вычислим первые два основных компонента и посмотрим, какую долю дисперсии можно объяснить каждым:
Из приведенного выше блока кода вы должны увидеть, что первый основной компонент содержит 92% дисперсии, в то время как второй составляет 5% дисперсии. Следовательно, это означает, что для объяснения 97% дисперсии в наборе данных достаточно только двух признаков!
Теперь мы можем использовать это, чтобы легко построить данные в двух измерениях:
Как вы можете видеть, PCA был полезен для уменьшения размерности набора данных, что позволило нам построить его и визуализировать, как разделена каждая категория.
Это оно! Теперь вы понимаете, как работают самые популярные неконтролируемые методы обучения и как их применять.
Опять же, имейте в виду, что неконтролируемое обучение сложно, потому что нет метрики ошибки, чтобы оценить, насколько хорошо алгоритм работал. Кроме того, эти методы обычно используются в исследовательском анализе данных до проведения обучения под наблюдением.
Я надеюсь, что вы нашли эту статью полезной и что она нашла свой путь к вашим закладкам!
Продолжайте усердно работать!
Эти упражнения были примерами, доступными наscikit учитьсяВеб-сайт. Я просто попытался объяснить их более подробно.
Обучение без учителя: любопытный ученик
За последнее десятилетие машинное обучение беспрецедентно продвинулось в таких разных областях, как распознавание образов, робомобили и сложные игры типа го. Эти успехи в основном были достигнуты через обучение глубоких нейросетей с одной из двух парадигм – обучение с учителем и обучение с подкреплением. Обе парадигмы требуют разработки человеком обучающих сигналов, передающихся затем компьютеру. В случае обучения с учителем это «цели» (к примеру, правильная подпись под изображением); в случае с подкреплением это «награды» за успешное поведение (высокий результат в игре от Atari). Поэтому пределы обучения определяются людьми.
И если некоторые учёные считают, что достаточно обширной программы тренировок – к примеру, возможность успешно выполнить широкий набор задач – должно быть достаточно для порождения интеллекта общего назначения, то другие думают, что истинному интеллекту потребуются более независимые стратегии обучения. Рассмотрим, к примеру, процесс обучения младенца. Его бабушка может сесть с ним и терпеливо показывать ему примеры уток (работая обучающим сигналом при обучении с учителем) или награждать его аплодисментами за решение головоломки с кубиками (как при обучении с подкреплением). Однако большую часть времени младенец наивным образом изучает мир, и осмысливает окружающее через любопытство, игру и наблюдение. Обучение без учителя – это парадигма, разработанная для создания автономного интеллекта путём награждения агентов (компьютерных программ) за изучение наблюдаемых ими данных безотносительно каких-то конкретных задач. Иначе говоря, агент обучается с целью обучиться.
Ключевая мотивация в обучении без учителя состоит в том, что если данные, передаваемые обучающимся алгоритмам имеют чрезвычайно богатую внутреннюю структуру (изображения, видеоролики, текст), то цели и награды в обучении обычно весьма сухие (метка «собака» относящаяся к этому виду, или единица/ноль, обозначающие успех или поражение в игре). Это говорит о том, что большая часть того, что изучает алгоритм, должна состоять из понимания самих данных, а не из применения этого понимания к решению определённых задач.
Расшифровка элементов зрения
2012-й стал знаковым годом для глубокого обучения, когда AlexNet (названная в честь ведущего архитектора Алекса Крижевского) смела конкурентов на конкурсе классификации ImageNet. Её способность распознавать изображения не имела аналогов, однако ещё более удивительным было то, что происходит под капотом. Проанализировав действия AlexNet, учёные обнаружили, что она интерпретирует изображения через построение всё усложняющихся внутренних репрезентаций входных данных. Низкоуровневые особенности, к примеру, текстуры и грани представляются нижними слоями, а потом из них на слоях повыше комбинируются концепции более высокого уровня, вроде колёс или собак.
Это удивительно похоже на то, как обрабатывает информацию наш мозг – простые грани и текстуры в основных областях, связанных с органами чувств, собираются в сложные объекты вроде лиц в более высоких областях мозга. Таким образом сложную сцену можно собрать из визуальных примитивов, примерно так же, как смысл возникает из отдельных слов, из которых состоит предложение. Без непосредственных установок слои AlexNet обрнаужили фундаментальный зрительный «словарь», подходящий для решения задачи. В каком-то смысле, сеть научилась играть в то, что Людвиг Витгенштейн называл «языковой игрой», пошагово переходящей от пикселей к меткам изображений.
Зрительный словарь свёрточной нейросети. Для каждого слоя создаются изображения, максимально активирующие определённые нейроны. Затем реакцию этих нейронов на другие изображения можно интерпретировать, как наличие или отсутствие визуальных «слов»: текстур, книжных полок, морд собак, птиц.
Обучение переносом
С точки зрения интеллекта общего назначения самое интересное в словаре AlexNet состоит в том, что его можно использовать повторно, или переносить, на другие зрительные задачи, к примеру, на распознавание не только отдельных объектов, но и сцен целиком. Перенос в постоянно меняющемся мире совершенно необходим, и люди отлично с ним справляются: мы способны быстро приспосабливать навыки и понимание, полученные из опыта (модель мира) к любой текущей ситуации. К примеру, пианист с классическим образованием достаточно легко обучится играть джаз. Искусственные агенты, формирующие правильное внутреннее представление о мире, вероятно, должны иметь такие же возможности.
Тем не менее, у репрезентаций, полученных такими классификаторами, как AlexNet, есть свои ограничения. В частности, поскольку сеть обучена ставить сообщениям метки одного класса (собака, кошка, машина, вулкан) остальную информацию – неважно, насколько она может быть полезной для других задач – она проигнорирует. К примеру, репрезентации могут не уловить фон изображений, если метки относятся только к объектам на переднем плане. Возможное решение – дать более всесторонние тренировочные сигналы, к примеру, подробные описания изображений: не просто «собака», а «корги ловит фрисби в солнечном парке». Однако такие метки тяжело проставлять, особенно в больших масштабах, и их всё равно может быть недостаточно для восприятия всей информации, необходимой для выполнения задачи. Основное предположение обучения без учителя состоит в том, что лучший способ обучиться легко переносимым репрезентациям – это попытаться узнать о данных всё, что можно.
Если понятие переноса через обучение репрезентаций кажется вам слишком абстрактным, представьте ребёнка, обучившегося рисовать людей в стиле «палка, палка, огуречик». Он обнаружил репрезентацию внешнего вида человека, которая как очень компактна, так и хорошо адаптируется. Дополняя каждую фигурку определёнными особенностями, он может создавать портреты всех одноклассников: очки для его лучшего друга, любимую красную футболку его соседу по парте. И он выработал этот навык не для того, чтобы выполнить определённую задачу или получить вознаграждение, но в ответ на базовую потребность отображать окружающий мир.
Обучение через творчество: генеративные модели
Возможно, простейшая цель обучения без учителя, это обучить алгоритм создавать собственные примеры данных. Т.н. генеративные модели должны не просто воспроизводить данные, на которых их обучали (это просто неинтересное «запоминание»), но создавать модель класса, из которого были взяты данные. Не определённую фотографию лошади или радуги, но набор фотографий лошадей и радуг; не определённое высказывание конкретного докладчика, но общее распределение словесных высказываний. Основной принцип генеративных моделей состоит в том, что возможность создания убедительного примера данных является сильнейшим свидетельством того, что их поняли: как говорил Ричард Фейнман, «то, что я не могу создать, я не понимаю».
Пока что наиболее успешной генеративной моделью для изображений остаётся генеративно-состязательная сеть (ГСС), в которой две сети – генератор и дискриминатор – вступают в соревнование по распознаванию, похожее на соревнование специалиста по подделке и детектива. Генератор выдаёт изображения, пытаясь заставить дискриминатор поверить в их реальность; дискриминатор же награждают за то, что он обнаруживает подделки. Сгенерированные изображения сперва получаются случайными и неаккуратными, затем улучшаются за много подходов, и динамическое взаимодействие сетей приводит к появлению всё более реалистичных изображений, которые во многих случаях невозможно отличить от реальных фотографий. ГСС также могут выдавать детальные ландшафты на основании грубых набросков пользователей.
Одного взгляда на изображения ниже будет достаточно для того, чтобы убедиться, что сеть научилась изображать множество ключевых особенностей фотографий, на которых она обучалась – структуру тел животных, текстуру травы и подробности игры света и тени (даже в отражении мыльного пузыря). Тщательное изучение обнаруживает небольшие аномалии, типа лишней ноги у белой собаки и странный прямой угол у струй одного из фонтанов. И хотя создатели генеративных моделей пытаются избавиться от подобных несовершенств, то, что мы можем их видеть, говорит об одном из преимуществ воссоздания таких знакомых нам данных, как изображения: изучая образцы, исследователи могут понять, чему модель обучилась, а чему ещё нет.
Создание через предсказание
Подсказка системе (написанная человеком)
Учёные сделали шокирующее открытие, обнаружив стадо единорогов, живущих в удалённой и ранее неизученной долине Анд. Ещё более удивительным для исследователей было то, что единороги разговаривали на отличном английском языке.
Законченный моделью текст (после 10 попыток)
Учёные назвали популяцию «единороги Овида» из-за их отличительных рогов. Эти четырёхрогие серебристо-белые единороги ранее были неизвестны науке. И вот, наконец, спустя два столетия загадка того, что породило это странное явление, решена.
Доктор Хорхе Перес, биолог-эволюционист из Университета Лапаза и несколько его компаньонов изучали Анды, когда обнаружили небольшую долину, где не было никаких других животных и людей. Перес заметил в долине нечто, похожее на естественный фонтан, окружённый двумя скалистыми пиками и серебристым снегом.
Затем Перес и остальные отправились дальше в эту долину. «Когда мы добрались до одного из пиков, вода казалась голубой, и на её поверхности было немного кристаллов», — сказал Перес.
Перес и его друзья были поражены, увидев стадо единорогов. Эти существа можно было видеть с воздуха, не приближаясь к ним слишком близко, чтобы их увидеть – они были настолько близко, что они могли прикоснуться к их рогам.
Одно из интересных несоответствий – описание единорогов, как «четырёхрогих»: забавно изучать ограничения понимания сети.
Контролируя входную последовательность, используемую для подстройки предсказаний, можно использовать авторегрессивные модели для перевода одной последовательности в другой. Эта демонстрация использует условную авторегрессивную модель для перевода текста в реалистичный рукописный вид. WaveNet преобразует текст в речь естественного звучания, и сейчас используется для генерации голоса для Google Assistant. Сходный прогресс подстройки и авторегрессивной генерации можно использовать для переводов с одного языка на другой.
Авторегрессивные модели изучают данные, пытаясь предсказывать каждую их часть в определённом порядке. Можно создать более обобщённый класс сетей с обучением без учителя, строя предсказания о любой части данных на основе любой другой. К примеру, это может означать, что мы удалим одно слово из предложения и попытаемся предсказать его на основе остального текста. Обучая систему через запрос у неё множества локальных предсказаний, мы заставляем её изучать все данные в целом.
Одна из проблем генеративных моделей состоит в возможности их злонамеренного использования. Манипуляции с уликами в виде фотографий, видеороликов и аудиозаписей были возможны уже долгое время, но генеративные модели могут сильно облегчить редактирование этих материалов со злым умыслом. Мы уже видели демонстрацию т.н. deepfake – к примеру, подложное видео с Обамой. Отрадно видеть наличие серьёзных попыток, пытающихся ответить на эти вызовы – к примеру, использование статистических техник для обнаружения синтетических материалов и подтверждения аутентичных, ознакомление общественности с происходящим, и дискуссии по поводу ограничения доступности обученных генеративных моделей. Кроме того, генеративные модели и сами можно использовать для обнаружения сфабрикованных материалов и аномальных данных – к примеру, обнаруживать поддельную речь или определять аномальные платежи для защиты пользователей от мошенников. Исследователям необходимо работать над генеративными моделями, чтобы лучше понимать их и уменьшать риски в будущем.
Повторное изобретение интеллекта
Генеративные модели сами по себе очень интересны, однако мы в DeepMind относимся к ним, как к этапу пути к интеллекту общего назначения. Наделять агента способностью генерировать данные – это примерно как давать ему воображение, а, следовательно, и возможность планировать и рассуждать по поводу будущего. Наши исследования показывают, что обучение предсказанию различных аспектов окружения даже без специальной задачи по генерации данных обогащают модель мира агента, и, следовательно, улучшают его возможности по решению задач.
Эти результаты перекликаются с нашим интуитивным пониманием человеческого разума. Наша способность изучать мир без специального надзора – одно из фундаментальных свойств интеллекта. На тренировочной поездке мы можем равнодушно смотреть в окно, трогать вельвет на сиденьях, рассматривать пассажиров, едущих с нами. В этих исследованиях у нас нет цели: мы почти не можем отвлечься от сбора информации, и наш мозг без устали работает над пониманием мира вокруг нас и нашего места в нём.