Свою первую статью об ИИ я представил в 1990 году на небольшой местной конференции — «Общество искусственного интеллекта и когнитивных наук Среднего Запада». В те дни область ИИ полностью определялась исследованием «символов». Этот подход был известен как «Хороший старомодный ИИ» или GOFAI (произносится как «go fi» как «wifi»). Те из нас, кто работал над тем, что сейчас известно как «Глубокое обучение», должны были действительно утверждать, что то, что мы исследовали, должно даже рассматриваться как ИИ.

Исключение из ИИ было палкой о двух концах. С одной стороны, я не соглашался с большинством основных принципов того, что в то время определялось как ИИ. Основное предположение заключалось в том, что «символы» и «обработка символов» должны быть основой всего ИИ. Так что я был счастлив работать в области, которая даже не считалась ИИ. С другой стороны, было трудно найти людей, готовых выслушать ваши идеи, если вы не упаковали их как минимум связанные с ИИ.

На эту небольшую конференцию принимались доклады по «ИИ» и «когнитивной науке», которые я рассматривал как приглашение для идей, выходящих за рамки «символической обработки». Итак, я представил свою первую статью, и она была принята! В документе был представлен нейросетевой подход к обработке естественного языка. Многие из нас в этой области называли этот тип исследования нейронных сетей «коннекционизмом», но в наши дни этот тип исследования, как уже упоминалось, можно было бы назвать «глубоким обучением» (DL) — хотя мои первоначальные исследования не были очень глубокими… только три слоя! Современные системы DL могут состоять из сотен слоев.

Моя статья была принята на конференции, и я представил ее в Карбондейле, штат Иллинойс, в 1990 году. Позже организатор конференции Джон Динсмор предложил мне представить версию статьи для книги, которую он готовил. Я не думал, что смогу написать статью самостоятельно, поэтому попросил двух своих школьных друзей (Лизу Миден и Джима Маршалла) присоединиться ко мне. Они так и сделали, и мы закончили с главой в книге. Книга называлась Символическая и коннекционистская парадигмы: преодоление разрыва. Наша статья прекрасно вписывается в тему книги. Мы назвали нашу статью Изучение символического/субсимвольного континуума: тематическое исследование RAAM. К моему удовольствию, книга сосредоточилась на разделении этих двух подходов к ИИ. Я думаю, что поле все еще борется с этим разрывом по сей день.

Я расскажу больше об этом своем первоначальном исследовании позже. А пока я хочу поговорить о том, как область занималась визуализацией «вложений». Во-первых, в то время мы не называли эти векторы «вложениями». В большинстве исследований использовалась такая фраза, как «представление скрытого слоя». Это включало любое внутреннее представление, которое коннекционистская система изучила для решения проблемы. Как мы их тогда определяли, было три типа слоев: «входные» (куда вы подключали набор данных), «выходные» (куда вы помещали желаемые выходы, или «цели»), а все остальное — «скрытые». слои. Скрытые слои — это места, где активация сети течет между входом и выходом. Активации скрытого уровня часто многомерны и представляют собой «концепции», усвоенные сетью.

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

  1. Так называемые «диаграммы Хинтона».
  2. Кластерные диаграммы или дендограммы
  3. Проекция в 2D пространство

Первый метод был недавно созданной идеей, использованной Хинтоном и Шаллисом в 1991 году. (Это тот самый Джеффри Хинтон, которого мы знаем сегодня. Подробнее о нем в следующей статье). Эта диаграмма представляет собой простую идею с ограниченной полезностью. Основная идея заключается в том, что активации, веса или любые числовые данные могут быть представлены в виде прямоугольников: белых прямоугольников (обычно представляющих положительные числа) и черных прямоугольников (обычно представляющих отрицательные числа). Кроме того, размер поля представляет собой величину значения по отношению к максимальному и минимальному значениям в моделируемом нейроне.

Вот представление из нашей статьи, показывающее средние «вложения» на скрытом слое сети, поскольку представление слов было представлено сети:

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

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

Это тот же вид информации, что и на диаграмме Хинтона, но в гораздо более удобном формате. Здесь мы можем увидеть внутренние отношения между отдельными паттернами и паттернами в целом. Обратите внимание, что вертикальный порядок не имеет значения: горизонтальное положение точек ветвления является значимым аспектом диаграммы.

В приведенной выше дендограмме мы построили общее изображение вручную, учитывая кластер дерева, вычисленный программой. На сегодняшний день существуют методы автоматического построения такого дерева и изображения. Однако диаграмма может стать трудной для понимания, когда количество паттернов намного превышает несколько десятков. Вот пример, сделанный сегодня matplotlib. Подробнее об API можно прочитать здесь: matplotlib dendogram.

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

В то время, в 1990 году, основным методом проецирования многомерных данных в меньший набор измерений был Анализ главных компонентов (сокращенно PCA). Уменьшение размеров является активной областью исследований, и новые методы все еще разрабатываются.

Возможно, наиболее часто используемые алгоритмы уменьшения размерности сегодня:

  1. СПС
  2. т-СНЭ
  3. УМАП

Который лучший? Это действительно зависит от деталей данных и от ваших целей для создания уменьшения размеров.

PCA, вероятно, лучший метод в целом, поскольку он детерминистический и позволяет вам создать отображение из многомерного пространства в уменьшенное пространство. Это полезно для обучения на одном наборе данных, а затем для изучения того, где тестовый набор данных проецируется в изученное пространство. Тем не менее, на PCA могут влиять немасштабированные данные, и это может привести к «шару точек», что дает мало информации о структурных закономерностях.

t-SNE, что означает t-распределенное стохастическое встраивание соседей, было создано Ровейсом и Хинтоном (да, тем самым Хинтоном) в 2002 году. Это изученная проекция, и она может использовать немасштабированные данные. Однако одним недостатком t-SNE является то, что он не создает сопоставление, а является просто методом обучения для поиска кластеризации. То есть, в отличие от других алгоритмов, которые имеют методы Projection.fit() и Projection.transform(), t-SNE может выполнять только подбор. (Есть некоторые реализации, такие как openTSNE, которые обеспечивают сопоставление преобразования. Однако, похоже, что openTSNE сильно отличается от других алгоритмов, работает медленно и поддерживается в меньшей степени, чем другие формы.)

Наконец, есть UMAP, равномерное многообразное приближение и проекция. Этот метод был создан в 2018 году Макиннесом и Хили. Это может быть лучшим компромиссом для многих многомерных пространств, поскольку он довольно недорог в вычислительном отношении, но при этом способен сохранять важные репрезентативные структуры в уменьшенных измерениях.

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

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

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

Интересно, откуда берутся идеи в области искусственного интеллекта, машинного обучения и науки о данных? Рассмотрим хлопок и подписаться. Дайте мне знать, что вас интересует!