Open Anaxagor opened 2 months ago
Важность признаков может быть расчитана двумя способами:
Для A/B тестирования есть много вариаций, включая те, что представлены в DoWhy, должно быть несложно написать удобный инструмент для подсчета ATE, CATE и т.д.
Опции:
Алгоритм, предложенный в статье, основывается на применении принципов причинно-следственного анализа для интерпретации глубоких нейронных сетей, в частности, сверточных нейронных сетей (CNN). Основная идея заключается в том, чтобы построить structural causal model (SCM) для конкретного аспекта CNN, что позволяет делать количественные оценки важности и влияния различных компонентов модели (например, фильтров) на ее производительность.
Построение DAG-структуры:
Применение преобразования:
Оценка структурных уравнений:
Оценка влияния элемента:
Этот подход позволяет не только объяснить важность отдельных компонентов модели, но и ответить на более сложные вопросы, например, как изменение одного фильтра повлияет на конечные результаты модели.
Подобный алгоритм был имплементирован в applybn как для свертоных нейронных сетей, так и для нейронных сетей, которые работают с табличными данными. Для оценки алгоритма на примере свертоных сетей используется датасет CIFAR-10, а для проверки алгоритма на обычной нейронной сети используется датасет Breast Cancer из библиотеки scikit-learn.
Сверточная сеть, результаты
В случае сверточной сети сначала обучается простая сверточная сеть с тремя свертками, затем происходит прунинг фильтров с нарастанием количества убранных фильтров и заметряется Accuracy на каждом этапе прунинга. Результат сравнивается со случайным прунингом такого же количества фильтров. Результат показан на картинке ниже.
Простая сеть для табличных данных, результаты Обучается простая сеть с двумя слоями, происходит последовательный прунинг по всем слоям определенного количества нейронов. Результат сравнивается с прунингом такого же количества случайных нейронов.
Таким образом можно сделать вывод о том, что такой метод прунинга действительно позволяет сократить количество нейронов в нейронной сети с минимальной потерей качества, что уменьшит время инференса. На следующей стадии экспримента планируется сравнить такой прунинг с этими методами и сделать этот метод прунинга pytorch-совместимым, используя их API.
Варианты возможных кейсов: 1) Расчёт важности признаков 2) Проведение A/B тестирования 3) Оценка уверенности предсказания семплов для ML модели на основе каузальных моделей (DataCentric AI + Causal Models) 4) Использование каузальных моделей для прореживания слоёв NN.