Нейронные сети как деревья решений

Получите всю мощь нейронной сети с интерпретируемой структурой дерева решений

Недавний бум искусственного интеллекта ясно показал силу глубоких нейронных сетей в различных задачах, особенно в области задач классификации, где данные являются многомерными и имеют сложные нелинейные отношения с целевыми переменными. Однако объяснение решений любого нейронного классификатора — невероятно сложная задача. В то время как многие апостериорные методы, такие как DeepLift [2] и Layer-Wise Relevance Propagation [3], могут помочь в объяснении отдельных решений, объяснить глобальные механизмы принятия решений (или то, что обычно ищет модель) гораздо сложнее.

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

Таким образом, проблема заключается в том, что нам нужна дискриминационная способность нейронной сети, но с интерпретируемостью дерева решений. Так почему бы нам просто не структурировать нашу сеть в виде дерева? Что ж, это основной подход, использованный Фроссом и Хинтоном (2017) в их статье «Преобразование нейронной сети в мягкое дерево решений» [1]. В этой статье я разберу ключевые механизмы, лежащие в основе нейронного дерева решений, и объясню некоторые преимущества их подхода, а также некоторые факторы, которые необходимо учитывать при практическом применении этой методологии. Хотя в основном мы будем обсуждать деревья классификации, описанные подходы также можно применить к деревьям регрессии с относительно небольшим количеством настроек.

Методология

Мягкий против. Деревья сложных решений

Прежде чем углубиться в то, как построить нейронную сеть в мягкое дерево решений, давайте сначала определим, что такое мягкое дерево решений.

Когда люди думают о деревьях решений (например, реализованных в sklearn), они думают о жестких деревьях решений, где каждое решение является детерминированным.

Если условие выполнено, идем в сторону левой ветки, в противном случае идем вправо. У каждого конечного узла есть класс, и предсказание делается простым просмотром дерева и выбором класса, в котором мы окажемся. Чем большим мы позволяем дереву расти, тем больше путей мы можем выбрать для достижения окончательного решения.

Мягкие деревья решений имеют много общего, но работают немного по-разному.

В то время как в жестких деревьях решений каждое разветвление является детерминированным, мягкие деревья решений определяют вероятность перехода в определенную ветвь при выполнении условия. Таким образом, в то время как жесткое дерево решений выводит одно значение, мягкие деревья решений вместо этого выводят распределение вероятностей для всех возможных классов, где вероятность класса является произведением вероятностей, через которые мы проходим, чтобы достичь листьев. Например, вероятность одобрения в приведенном выше дереве равна P(b1|X)(1-P(b2|X) + (1-P(b2|X))(1- P(b3|X)).Решением о классификации будет тогда только класс с наибольшей вероятностью.

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

Одним из недостатков этих деревьев является небольшое снижение интерпретируемости. С точки зрения заинтересованных сторон, проще понять «мы одобрили кредит, потому что человек зарабатывал 100 тысяч долларов в год и имел долг менее 400 тысяч долларов» по ​​сравнению с:

Если доход превышает 100 тысяч долларов, у нас есть вероятность 0,7, чтобы пойти вправо, а если долг меньше 400 тысяч, у нас есть вероятность 0,8 для одобрения, что приводит к вероятности 0,56 плюс все, что происходит в левой ветви.

Это не означает, что их нельзя интерпретировать (поскольку можно точно видеть, на что смотрит модель), но просто требуется немного больше помощи от разработчика модели.

Наклонные деревья решений

Вторая концепция, которая требуется перед тем, как перейти к нейронным деревьям решений, — это концепция «наклонных» деревьев решений.

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

Некоторыми примерами значений в узлах решений могут быть «Доход — Долг › 0». Это может привести к более сильным границам принятия решений. Недостатком является то, что без надлежащей регуляризации эти границы могут становиться все более сложными.

Собираем это вместе

Теперь, когда мы понимаем Мягкие и Наклонные деревья решений, мы можем объединить их, чтобы понять нейронную формулировку.

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

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

Каждый листовой узел содержит N-мерный тензор, где N — количество классов. Этот тензор представляет распределение вероятностей выборок, принадлежащих к классу.

Как и в мягком дереве решений, выходом этого нейронного дерева является распределение вероятностей классов. Выходное распределение равно сумме распределений, умноженных на вероятность пути для достижения этого распределения.

Обучение дерева

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

Функция потерь для этого дерева аналогична кросс-энтропийным потерям. В этом уравнении P^l(x) — это вероятность достижения конечного узла l с учетом данных точка x,T_k — вероятность того, что цель относится к классу k (1 или 0), а Q_k^l — элемент тензора (распределение вероятностей) в листовом узле l, соответствующему классу k.

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

Одна потенциальная ловушка, с которой мы можем столкнуться в процессе обучения, заключается в том, что модель может сильно отдавать предпочтение одной ветви и не использовать силу дерева. Чтобы не застрять на плохих решениях, рекомендуется ввести штраф к функции потерь, который побуждает дерево использовать как левое, так и правое поддеревья.

Штраф представляет собой перекрестную энтропию между желаемым усредненным распределением (50/50 как для левого, так и для правого деревьев) и фактическим средним распределением, определенным как альфа.

В этом уравнении P^i(x) — это вероятность пути от корневого узла к узлу i для заданной точки данных х. Затем мы суммируем штраф по всем внутренним узлам.

В этом уравнении лямбда — это гиперпараметр, определяющий силу штрафа. Однако это может вызвать некоторые проблемы при спуске по дереву, у данных меньше шансов попасть в разделение 50/50, поэтому вместо этого рекомендуется использовать адаптивную лямбду, которая изменяется в зависимости от глубины дерева. Это изменит наказание на:

По мере углубления в дерево рекомендуется уменьшать лямбду, пропорциональную 2^-d.

Визуализация результатов

Хотя преобразование нейронной сети в дерево интересно, основная причина, по которой можно пойти по этому пути, заключается в обеспечении большей интерпретируемости модели.

Давайте сначала посмотрим на интерпретацию классической задачи — классификации цифр в MNIST:

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

Глядя на это дерево, мы можем увидеть некоторые интересные особенности. Например, если мы посмотрим на самый правый внутренний узел, потенциальные классификации будут между 3 и 8. Фактически, мы можем увидеть контур 3 в визуализации узла решения. Белые области, по-видимому, указывают на то, что модель ищет линии, которые замыкают внутренние петли числа 3, превращая его в число 8. Мы также можем видеть, что модель ищет форму нуля в 3-м узле слева в нижний набор внутренних узлов.

Еще один интересный пример — предсказание выигрышей в Connect4.

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

Заключение

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

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

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

Ресурсы и ссылки

  1. Реализация мягкого дерева решений в PyTorch
  2. Дополнительные сведения о XAI и прогнозировании временных рядов см.

Рекомендации

[1] Н. Фросс, Г. Хинтон. Преобразование нейронной сети в мягкое дерево решений (2017). Конференция Искусственный интеллект в действии 2017 г.

[2] А. Шрикумар, П. Гринсайд, А. Джунджае. Изучение важных функций путем распространения различий в активации (2017). Международная конференция по машинному обучению PMLR 2017.

[3] С.Бах, А.Биндер, Г.Монтавон, Ф.Клаушен, К-Р. Мюллер, В. Самек. О пиксельных объяснениях решений нелинейного классификатора путем послойного распространения релевантности (2015). PloS один, 10(7), e0130140

[4] Л. Чжан, Дж. Варадараджан, П. Н. Сугантан, Н. Ахуджа, П. Мулен. Надежное визуальное отслеживание с использованием наклонных случайных лесов (2017). Конференция по компьютерному зрению и распознаванию образов 2017.