Дмитрий Колодезев

Работаю в Промсофте. Анализирую данные. Консультирую и учу.

Датафест 2020 - Iterpretable ML


На Датафесте 2020 обсуждали новости Iterpretable ML. Страница трека

Краткое содержание:

  • Shap и Lime перестали быть магией и встроены в каждую кофеварку (и их все равно никто не понимает)
  • Большие и маленькие вендоры делают autoML с объяснением.
  • Много хороших инструментов для обучения на примерах.
  • Нейронки, наконец, догнали таблички. Скоро эмбеддинги подтянутся.
  • Похоже, мы делали все это время не то, но все будет хорошо.

Подробнее:

В дело включились большие вендоры.

  • Microsoft: responsible-ml и machine-learning-interpretability
    • Understand machine learning models
      • Interpret and explain model behavior
      • Assess and mitigate model unfairness
    • Protect people and their data
      • Prevent data exposure with differential privacy
      • Work with encrypted data using homomorphic encryption
    • Control the end-to-end machine learning process
      • Document the machine learning lifecycle with datasheets
    • Все это идет в opensource
      • interpretml
      • DiCE Ищет контрпримеры для TF или PyTorch моделей. scikit-learn обещали впилить. По наводке @tEarth - можно взять https://github.com/microsoft/hummingbird и сконвертировать модель в PyTorch
      • https://www.microsoft.com/en-us/research/blog/open-source-library-provides-explanation-for-machine-learning-through-diverse-counterfactuals/
      • https://www.microsoft.com/en-us/research/publication/explaining-machine-learning-classifiers-through-diverse-counterfactual-examples/
      • https://www.microsoft.com/en-us/research/blog/open-source-library-provides-explanation-for-machine-learning-through-diverse-counterfactuals/
      • https://github.com/interpretml/DiCE/blob/master/docs/source/notebooks/DiCE_getting_started.ipynb
      • Объяснимый градиентный бустинг на основе GAM. Вроде как не до конца градиентный и не до конца бустинг, но это детали ;-)
      • https://github.com/interpretml/interpret-text и даже Берт они умеют объяснять
  • Google
    • https://cloud.google.com/explainable-ai
    • https://cloud.google.com/ai-platform/prediction/docs/ai-explanations/overview
    • https://cloud.google.com/blog/products/ai-machine-learning/explaining-model-predictions-on-image-data
  • Facebook
    • https://captum.ai/ - объяснение PyTorch моделей
    • https://captum.ai/docs/captum_insights
    • https://captum.ai/docs/algorithms
  • Fiddler Lab - 2018, партнеры с Facebook, "правильно объяснимый AutoML"
    • https://www.fiddler.ai/explainable-ai
    • https://blog.fiddler.ai/2020/09/ai-explained-video-series/
  • IBM - в принципе, старый инструмент, но они его развивают
    • http://aix360.mybluemix.net/
  • AWS
    • Внутри SageMaker - Shap https://aws.amazon.com/ru/blogs/machine-learning/ml-explainability-with- amazon-sagemaker-debugger/
    • В маркетплейсе куча решений про Explainable AI https://aws.amazon.com/marketplace/search/results?x=0&y=0&searchTerms=Explainable+AI
  • DataRobots
  • И даже SAP

  • @tEarth обратил внимание на опасность SHAP - бездумное использование инструмента вредно, и вообще в SHAP есть свои проблемы.

  • На distill.pub много интересных визуализаций внутренностей сетей

  • Interpretable-диссиденты:

    • "Треп Себранта": Требовать от ML интерпретируемости - то же самое, что требовать идти с флагом перед автомобилем
    • https://t.me/techsparks/1931 "Очень полезная напоминалка тем, кто настойчиво требует интерпретируемости от моделей машинного обучения, ссылаясь на то, что наш мир якобы основан на понимании. Я обычно ссылаюсь на всякие неустойчивости, хаос и квантовую физику, но здесь примеры получше: фармацевтика. Для кучи современных лекарств есть клиническая практика, но нет четкого понимания, как они работают. Да что там современных: аспирин применяют с конца XIX века, а точное описание механизма действия получено в 1995 году, до этого целый век как-то обходились. Но накопление правильных ответов без понимания причин их правильности может плохо кончиться - фундаментальная наука все-таки нужна: и эту заметку очень интересно читать до самого финала." https://www.newyorker.com/tech/annals-of-technology/the-hidden-costs-of-automated-thinking
    • Не то чтобы она новая https://arxiv.org/abs/1811.10154 - завязывайте уже интерпретировать, делайте модели нормальные
  • Интересные статьи:

    • http://www-personal.umich.edu/~harmank/Papers/CHI2020_Interpretability.pdf
    • https://arxiv.org/abs/2001.07645 SAUNet: Shape Attentive U-Net for Interpretable Medical Image Segmentation Code: https://github.com/sunjesse/shape-attentive-unet.
    • @artgor https://opendatascience.slack.com/archives/C5VQ222UX/p1579862101028000 "Главная идея: разнообразные CNN хорошо работают для сегментации, в том числе медицинских картинок. Но у них не хватает робастности и интерпретируемости. Одна из причин этого - CNN обычно учат текстуру картинок, а не форму объектов. Стандартные подходы к интерптерации - gradient-based saliency методы. Но обычно это требует дополнительные вычисления и не всегда достаточно хорошо интерпретируется. В предлагаемой архитектуре берется :unet: и добавляет второй поток данных, в который подаётся информация о форме объектов. Ещё они используют dual-attention decoder, и именно он даёт интерпретируемость без дополнительных вычислений после инференса."
    • https://exbert.net/ - и Берт тоже объясним
  • Интересные репозитории:

    • https://github.com/interpretml
    • https://github.com/SeldonIO/alibi
    • https://github.com/ModelOriented
  • Прямо сейчас разбираю:

    • https://slideslive.com/38930831/explainable-artificial-intelligence-via-representer-points-infidelities