[БЕЗ_ЗВУКА] Мы начинаем урок, посвященный визуализации данных. И давайте сначала обсудим, зачем вообще данные нужно визуализировать. Когда мы на прошлой неделе говорили про понижение размерности, мы обсуждали вот такой простой пример. Представьте, что данные выглядят вот так, видно, что закономерности явно нелинейные, и вы хотите понизить размерность до одного признака. Если вы будете пытаться спроецировать эти данные, эту выборку на прямую, то есть будете пытаться применить линейный подход к понижению размерности, то у вас ничего не получится. Какую прямую вы бы ни выбирали, вы будете терять довольно много информации. Поэтому, чтобы информацию сохранить, нужно проецировать выборку на красную кривую, которая явно нелинейная, и ее нужно подбирать, используя нелинейные методы понижения размерности. Вообще в машинном обучении мы имеем дело с высокоразмерными выборками, то есть с выборками, в которых очень много признаков. Но при этом мы хотим как-то смотреть на эти данные, понимать, как они устроены, какие там взаимосвязи, какие признаки важны, а какие нет, как соотносятся классы между собой. Чтобы это делать, можно нарисовать, например, вот такую картинку, то есть для всех пар признаков изобразить проекцию выборки на эту пару признаков, то есть пытаться понять, как соотносятся именно эти два признака между собой, а также для каждого одного признака нарисовать гистограмму распределения. Конечно, по этим картинкам можно что-то понять. Можно заметить, что какие-то пары признаков лучше разделяют классы или что какой-то один признак очень неплохо их разделяет, но при этом мы не видим картины в целом, мы не видим, как взаимодействуют признаки между собой в совокупности. Хотелось бы отобразить всю выборку в двумерное или трехмерное пространство, так чтобы по вот такой, например, картинке сразу были видны все закономерности в данных, вся структура этих данных. Например, что какие-то классы сильно перемешаны между собой, какие-то классы выделяются и их можно хорошо отделить от всего остального и так далее. Собственно, именно так мы приходим к задаче визуализации данных. Это частный случай нелинейного понижения размерности, когда размерность пространства, в которое мы пытаемся спроецировать нашу выборку, это 2 или 3 — двумерное пространство, плоскость, или трехмерное пространство, то есть просто пространство. 2 или 3, потому что мы умеем отображать данные только в пространствах размерности 2 или 3. В пространствах большей размерности мы мыслить не умеем. И при этом мы хотим спроецировать данные так, чтобы сохранить всю их структуру, чтобы после проецирования сохранились все закономерности, и мы могли их наблюдать по этой картинке. Один из классических примеров, на которых рассматривают задачу визуализации данных, это набор данных MNIST. Этот набор данных состоит из некоторого количества изображений и цифр, написанных от руки. Понятно, что все люди пишут цифры по-разному: кто-то их наклоняет, кто-то не наклоняет, кто-то делает засечки, кто-то не делает и так далее. Эти цифры очень разные. И при этом нужно их разделить на 10 классов, то есть определить по изображению, что за цифра на нем нарисована. В этом датасете каждая картинка имеет размер 28 x 28 пикселей, то есть всего каждый объект имеет 784 признака, но при этом понятно, что внутренняя размерность данных гораздо ниже. Мы могли бы использовать гораздо меньше признаков, чтобы характеризовать каждую рукописную цифру. Это можно понять, например, на простом примере. Если мы будем генерировать случайные картинки размера 28 x 28 пикселей, то будем получать что-то вот такое. На этих картинках нет ничего общего с изображениями цифр, это просто какие-то случайные изображения такого же размера. При этом вероятность того, что мы при такой случайной генерации получим именно изображение цифры или что-то похожее на нее, крайне мала. Хотя бы это дает понять, что внутренняя размерность сильно ниже. Если мы воспользуемся одним из методов визуализации, о которых будем говорить в этом уроке, то получим вот такое изображение. Всего лишь двух признаков хватит, чтобы изобразить наши цифры так, что все классы будут идеально разделимы, и при этом будут видны некоторые интересные закономерности — какие-то классы совсем не похожи на остальные, а какие-то находятся близко, а значит, что начертание у них довольно похожее друг на друга. Итак, можно поговорить про пример еще одной задачи. Эта задача используется в одном из конкурсов на сайте Kaggle. В ней требовалось взять описание товара, его характеристики, и по этому описанию понять, к какой из девяти категорий этот товар относится, то есть задача была о классовой классификации. При этом признаков было 93, то есть описание довольно высокоразмерное. Если изобразить эту выборку опять же с помощью одного из методов визуализации данных, то можно получить вот такое изображение, на котором видно, что некоторые классы хорошо выделяются в отдельные кластеры, а какие-то классы очень сильно перемешиваются между собой. И при этом эта визуализация очень качественная, в том смысле, что даже если применять сложные методы, вроде градиентного бустинга или случайных лесов для разделения классов в исходном пространстве, пространстве размерности 93, то там эти свойства будут сохраняться. Те классы, которые здесь хорошо отделимы, будут отделимы и там, а те классы, которые здесь сильно перемешаны между собой, даже в пространстве высокой размерности будет очень сложно разделить, ошибка для них будет довольно большой. Мы обсудили задачу визуализации данных. Это задача, в которой требуется отобразить выборку пространства размерности 2 или 3, и это задача, которая нужна для того, чтобы как-то посмотреть на данные, понять, какую структуру они имеют внутри себя. В следующем видео мы поговорим о том, какими методами можно данные визуализировать, что можно использовать для решения этой задачи.