Проблемы современного машинного обучения |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2022-02-15 09:00 машинное обучение python, Трезво про ИИ, ошибки нейронных сетей Во многих популярных курсах машинного и глубокого обучения вас научат классифицировать собак и кошек, предсказывать цены на недвижимость, покажут еще десятки задач, в которых машинное обучение вроде как отлично работает. Но вам расскажут намного меньше (или вообще ничего) о тех случаях, когда ML-модели не работают так, как ожидалось. Частой проблемой в машинном обучении является неспособность ML-моделей корректно работать на большем разнообразии примеров, чем те, что встречались при обучении. Здесь идет речь не просто о других примерах (например, тестовых), а о других типах примеров. Например, сеть обучалась на изображениях коровы, в которых чаще всего корова был на фоне травы, а при тестировании требуется корректное распознавание коровы на любом фоне. Почему ML-модели часто не справляются с такой задачей и что с этим делать – мы рассмотрим далее. Работа над этой проблемой важна не только для решения практических задач, но и в целом для дальнейшего развития ИИ. Конечно, этим проблемы машинного обучения не ограничиваются, существуют также сложности с интерпретацией моделей, проблемы предвзятости и этики, ресурсоемкости обучения и прочие. В данном обзоре рассмотрим только проблемы обобщения. Содержание Проблемы обобщения Задача обобщения в машинном обучении Утечка данных Shortcut learning: "right for the wrong reasons" Shortcut learning в языковых моделях Уровни обобщения моделей машинного обобщения Состязательные атаки Проблема неконкретизации в ML-задачах Выводы Способы решения проблем обобщения Стресс-тесты для диагностики работы модели Доменная адаптация Еще больше данных? Более крупные или более эффективные модели? Модификации способов обучения языковых моделей Архитектура моделей и структура данных Направления исследований Общий искусственный интеллект Заключение Проблемы обобщения Задача обобщения в машинном обучении Задача машинного обучения заключается в написании алгоритмов, которые автоматически выводят общие закономерности из частных случаев (обучающих примеров). Этот процесс называется обобщением (generalization), или индукцией. Часто требуется найти зависимость между исходными данными и целевыми данными в виде функции . Например, требуется определить по фотографии тип или положение изображенного объекта. Для решения этой задачи можно собрать большое количество размеченных данных (supervised learning), можно также использовать ненадежно размеченные данные (weakly-supervised learning), например фотографии из Instagram c хештегами, или даже неразмеченные данные (self-supervised learning). Но в любом случае мы используем некий набор конкретных примеров. Понятно, что чем больше доступно примеров, тем выше будет качество полученного решения (при прочих равных условиях). Больше данных – выше точность. Все логично? Существуют даже теоремы, доказывающие для различных ML-алгоритмов стремление получаемого решения к идеалу при неограниченном увеличении количества обучающих данных и размера модели (это свойство называется universal consistency; например, для нейронных сетей см. Farag? and Lugosi, 1993). При доказательстве подобных теорем считается, что данные берутся из некоего фиксированного, но неизвестного распределения . Такой подход называется statistical learning framework, он излагается почти в любой книге по машинному обучению (например, см. Deep Learning book, раздел 5.2, есть также русское издание). С развитием технологий стали доступны дешевые вычисления и огромные объемы данных, что позволило эффективно решать очень сложные задачи. Например, языковая модель GPT-3 (Brown et al., 2020) от компании OpenAI обучалась на 570 Гб текстов и имеет 175 миллиардов параметров, по приблизительным подсчетам обучение стоило миллионы долларов. Примеры текстов, которые генерирует GPT-3, можно найти здесь, здесь, здесь и здесь. В Google обучили сеть с 1.6 триллиона параметров (Fedus et al., 2021), в Китае – сеть с 1.75 триллиона параметров, и это далеко не предел: уже делаются попытки обучать сеть со 120 триллионами параметров, что примерно равно количеству синапсов в человеческом мозге. Более крупные модели и больше обучающих данных - выше точность. Казалось бы, что может пойти не так? Рассмотрим несколько примеров, когда простого увеличения объема обучающих данных может оказаться недостаточно. Начнем с проблемы утечки данных, и затем рассмотрим более общую проблему ограниченного разнообразия обучающих данных и ситуации, когда модель лишь "делает вид", что обучается. Утечка данных Утечкой данных называется ситуация, когда существует некий признак, который при обучении содержал больше информации о целевой переменной, чем при последующем применении модели на практике. Утечка данных может возникать в самых разных формах. Пример 1. При диагностике заболеваний по рентгеновским снимкам модель обучается и тестируется на данных, собранных с разных больниц. Рентгеновские аппараты в разных больницах выдают снимки с немного разной тональностью, при этом различия могут быть даже незаметны человеческим глазом. Модель может обучиться определять больницу на основе тональности снимка, а значит и вероятный диагноз (в разных больницах лежат люди с разными диагнозами), при этом вообще не анализируя изображение на снимке. Такая модель покажет отличную точность при тестировании, так как тестовые снимки взяты из той же выборки данных. Пример 2. В задаче диагностики реальных и фейковых вакансий почти все фейковые вакансии относились к Европе. Обученная на этих данных модель может не считать подозрительными любые вакансии из других регионов. При применении на практике такая модель станет бесполезна, как только фейковые вакансии станут размещаться в других регионах. Конечно можно удалить регион из признаков, но тогда модель будет пытаться предсказать регион по другим признакам (скажем, по отдельным словам в описании и требованиях), и проблема сохранится. Пример 3. В той же задаче есть признак "имя компании", и у компаний может быть по нескольку вакансий. Если компания фейковая, то все ее вакансии фейковые. Если мы разделим данные на обучающую и тестовую часть (или на фолды) таким образом, что вакансии одной и той же компании попадут и в обучающую, и в тестовую часть, то модели достаточно будет запомнить имена фейковых компаний для предсказания на тестовой выборке, в результате на тесте мы получим сильно завышенную точность. Все описанные проблемы нельзя решить просто увеличением количества обучающих данных без изменения подхода к обучению. Здесь можно возразить, что утечка данных не является проблемой самих ML-алгоритмов, поскольку алгоритм и не может знать о том, какой признак нужно учитывать, а какой нет. Но давайте посмотрим на другие похожие примеры. Shortcut learning: "right for the wrong reasons" В начале XX века жила лошадь по имени Умный Ганс, которая якобы умела решать сложные арифметические задачи, постукивая копытом нужное число раз. В итоге оказалось, что лошадь определяет момент, когда нужно прекращать стучать копытом, по выражению лица того, кто задает вопрос. С тех пор имя "умного Ганса" стало нарицательным (1, 2) – оно означает получение решения обходным путем, не решая при этом саму задачу в том смысле, какой мы хотим. Такое обходное "решение" внезапно перестает работать, если меняются условия (например, человек, задающий вопрос лошади, сам не знает ответа на него). Исследователи давно заметили, что многие современные модели глубокого обучения похожи на "умного Ганса". Вспомним хотя бы легендарную статью на Хабре про "леопардовый диван":
В самом деле, зачем модели, решающей задачу классификации, выучивать форму и другие комплексные свойства объекта, называемого "леопард", если простое присутствие нужной текстуры на изображении дает почти 100%-ю точность выявления леопарда в обучающей (и тестовой) выборке из ImageNet? То же самое касается предсказания объекта с учетом фона. Мы не закладывали при обучении никакой информации о том, на основании чего мы хотим получать предсказание: на основании объекта или окружающего его фона. Было даже обнаружено (Zhu et al., 2016), что нейронные сети способны с хорошей точностью предсказывать класс объекта, если сам объект вырезан и оставлен только фон. Shortcut learning - явление, когда модели получают верный ответ с помощью неверных в общем случае рассуждений ("right for the wrong reasons"), которые хорошо работают только для обучающего распределения данных. Поскольку обучающая и тестовая выборка обычно берутся из одного распределения, то такие модели могут давать хорошую точность и при тестировании.
Другие примеры можно найти в замечательной статье Shortcut Learning in Deep Neural Networks (Geirhos et al., 2020), опубликованной в журнале Nature и основанной на обобщении информации из более чем 140 источников. Смена угла поворота объекта, появление его в необычном (с точки зрения обучающей выборки) окружении, добавление необычного шума может полностью испортить работу модели. На иллюстрации ниже слева показаны пары изображений, одинаково классифицируемые с точки зрения человека, но совершенно разные с точки зрения сверточной нейронной сети. Справа показаны, наоборот, изображения, имеющие одинаковый класс для нейронной сети и разный для человека. В целом исследователями был сделан вывод о том, что многие современные сверточные нейронные сети предпочитают ориентироваться на локальные участки текстур (Jo and Bengio, 2017; Geirhos et al., 2018), которые могут относиться как к объекту, так и к фону, и не классифицируют объект на основании его общей формы (Baker et al., 2018). Сейчас нейронные сети начинают решать очень сложные задачи, такие как работа с трехмерными сценами, анимация объектов и прочее. Казалось бы, задача классификации собак и кошек уже давно решена? Оказывается, что нет. Как показано на примерах ниже, одна из самых современных нейронных сетей для детектирования объектов YOLOv5 может быть легко обманута необычными деталями, не относящимися к самому объекту, либо может принимать несколько объектов за один. Предсказания получены с помощью интерактивной версии YOLOv5, интерпретация выполнена с помощью Grad-CAM (Selvaraju et al., 2016; репозиторий). Оригиналы изображений можно найти по ссылкам: , , , . Добавление собачьего корма в последнем изображении существенно повышает уверенность в распознавании собаки, хотя сам корм сеть распознает как "книгу". При этом на GradCAM зависимость ответа от наличия собачьего корма в кадре не видна, так как рамка ограничена рамкой объекта. В целом даже небольшие изменения, такие как кадрирование с обрезкой 5% фона или пересохранение в jpeg сильно меняет предсказание модели в сложных для нее случаях. Сверточные сети для классификации, даже самые современные, часто классифицируют черных котов как породу собак схипперке (которые тоже имеют черную шерсть), даже если по морде и форме тела видно, что это кот. Имеются в виду, конечно, сети общего назначения, которые не дообучались специально для точного распознавания пород собак и кошек, хотя и в этом случае нет гарантии точного распознавания. Jo and Bengio, 2017 используют фильтрацию, основанную на преобразовании Фурье, для внесения в изображения помех, которые не мешают распознаванию их человеком, но сильно снижают качество работы сверточных нейронных сетей. Увеличение глубины сетей не избавляет от этой проблемы. Более того, если добавить в обучающий датасет один из типов Фурье-искажений, то это не делает сеть устойчивее к другим типам Фурье-искажений (которых может быть очень много).
Shortcut learning в языковых моделях Та же проблема есть и в языковых моделях. Например, модель BERT (Devlin et al., 2018) обучена на таком объеме текстов, который человек не прочитает за всю жизнь, но при этом она в основном выучивает поверхностные, стереотипные ассоциации слов друг с другом (word co-occurence), и вряд ли хорошо понимает смысл текста.
Попробуем протестировать некоторые из наиболее популярных на сегодняшний день языковых моделей: RoBERTa (Liu et al., 2019), ALBERT (Lan et al., 2019) и mT5 (Xue et al., 2020), взяв для тестирования их крупные варианты из репозитория HuggingFace: roberta-large, albert-xxlarge-v2 и mt5-xl. Эти модели обучались на разных задачах, в числе которых была задача предсказания закрытых маской слов в тексте, называемая masked language model objective, или cloze task. Проверим их работу на различных примерах. Примечание. Вы можете сами повторить эксперимент, используя окно "Hosted inference API" по приведенным выше ссылкам; для mT5 можно использовать этот ноутбук, требуется GPU с большим объемом памяти. Как видим, модели иногда неплохо запоминают простые факты, но при этом все рассмотренные модели часто делают ошибки там, где нужно понимать логику повествования. Если логика повествования противоречит статистике совместной встречаемости слов, то модели обычно предпочитают статистику. Например, в последних двух примерах модель ALBERT вероятно работает так: если "approaches", то "discuss", если "approach", то "propose" – потому при обучении часто встречались такие сочетания. Слово "existing" при этом ее не смущает. Здесь можно возразить, что слова, вставленные моделью, могут быть не цельными предложениями, а их частями, например "those who are eaten by whales are tiny animals", но этим нельзя объяснить все случаи в таблице. Также можно возразить, что эти модели не обучались генерировать тексты без логических ошибок, они обучались воспроизводить реальные тексты, даже если в них есть ошибки. Но даже с учетом этого, те варианты слов, которые выбирают модели, часто оказываются абсурдны и практически не могли встретиться в написанных человеком текстах. Вполне вероятно, что будь модели еще в 100 раз крупнее, обучаясь в 100 раз дольше и на большем объеме данных – они не совершили бы таких очевидных ошибок. Но даже эти модели очень большие (3.7 миллиарда параметров в mT5-XL) и обучались на сотнях гигабайт текстов, чему качество их работы на нетипичных примерах явно не соответствует – это наводит на мысль о неоптимальности подхода в целом. Проблема shortcut learning присутствует и в тех моделях, которые специально дообучались для лидербордов GLUE (Wang et al., 2018) и SuperGLUE (Wang et al., 2019). Эти бенчмарки нацелены на измерение уровня "понимания естественного языка" моделями машинного обучения. SuperGLUE содержит 8 задач, на некоторых из которых уже побит уровень человека (имеется в виду средний уровень человека, отличающегося от разметчика, т. к. разметка тоже делалась людьми). Но действительно ли уровень человека побит? Как выясняется, высокая метрика качества в SuperGLUE достигается в основном с помощью shortcut learning, при этом модели эксплуатируют систематические проблемы в разметке датасета для предсказания ответа "обходным путем" (Gururangan et al., 2018; Du et al., 2021), и мнение многих исследователей (1, 2, 3, 4 и др.) сходится в том, что на текущий момент языковые модели-трансформеры далеки от понимания смысла текстов в том смысле, в каком их понимает человек. Во введении мы рассматривали языковую модель GPT-3, имеющую огромный размер и генерирующую реалистичные тексты. Вот, что о ней думает Ян Лекун:
Cовременные языковые модели вроде GPT-3 (а также Gohper, InstructGPT, Wu Dao и другие) не стоит переоценивать, но, как мне кажется, не стоит и недооценивать. Со многими задачами они действительно очень хорошо справляются. Поскольку данный обзор посвящен проблемам машинного обучения, то в нем делается акцент на недостатках текущих ML-моделей (а значит и путях дальнейших исследований), но и преимуществ у них тоже много. Уровни обобщения моделей машинного обобщения Почти любой датасет имеет ограниченное разнообразие и не покрывает всех ситуаций, в которых желательна корректная работа модели. Особенно это проявляется в случае сложных данных, таких как изображения, тексты и звукозаписи. В данных могут существовать "паразитные корреляции" (spurious correlations), позволяющие с хорошей точностью предсказывать ответ только на данной выборке без "комплексного" понимания изображения или текста. Это как раз и есть рассмотренные выше предсказания на основе фона, отдельных текстурных пятен или отдельных рядом стоящих слов. Датасеты, в которых паразитные корреляции явно выражены, называются biased (предвзятыми). Пожалуй, что все датасеты в задачах CV и NLP в той или иной степени предвзяты. В статье о shortcut learning (Geirhos et al., 2020) авторы рассматривают несколько уровней обобщения, которые могут достигать модели машинного обучения: Uninformative features. Сеть использует признаки, которые не позволяют эффективно предсказывать ответ даже на обучающей выборке, например, нейронная сеть со случайно инициализированным выходным слоем. Overfitting features. Сеть использует признаки, которые позволяют эффективно предсказывать ответ на обучающей выборке, но не на всем распределении, из которого получена эта выборка. Под "распределением" здесь понимается вероятностное совместное распределение , из которого взяты данные (более подробно см. также этот обзор, раздел "распределение данных"). Shortcut features. Сеть использует признаки, которые позволяют эффективно предсказывать ответ на распределении данных , из которого взята обучающая (и, как правило, тестовая) выборка. Поскольку выборка является набором независимых примеров, используется термин independent and identically distributed (i. i. d.). Способность алгоритма с хорошей точностью работать на некоем фиксированном распределении данных авторы называют i. i. d. обобщением. Как мы видели выше, для этого вовсе не обязательно уметь решать саму поставленную задачу в общем виде, часто можно использовать "обходные пути" или утечки данных. Intended features. Сеть использует признаки, которые позволяют эффективно предсказывать ответ в общем случае. Такие признаки будут хорошо работать и вне обучающего распределения данных, когда "обходные пути" закрыты (например, объект находится на необычном фоне, в необычной позиции, имеет необычную текстуру и пр.). Ситуация, когда распределение данных отличается при обучении и применении называется сдвигом распределения данных (distributional shift). Иными словами, данные, на которых модель будет применяться, среднестатистически отличаются от тех, на которых модель обучалась и тестировалась. В частности, может идти речь о появлении новых типов примеров или изменении соотношения количества примеров разных типов. Это происходит из-за того, что обучающие данные часто недостаточно разнообразны и не покрывают все те типы примеров, на которых желательна корректная работа модели (либо покрывают их в неправильном соотношении). Хорошая работа модели в условиях сдвига данных называется out-of-distribution обобщением (OOD generalization), она также известна под названием domain generalization (Zhou et al., 2021; Wang et al., 2021; см. также на paperswithcode.com), очевидна ее связь с преодолением проблемы shortcut learning.
Еще один типичный пример – системы распознавания лиц. В обучающем датасете, даже очень большом, может ни быть ни одного изображения человеческого лица, на которое нанесен некий рисунок. Модель, обученная на таком датасете, научится быть инвариантной к положению лица в кадре и его выражению, и почти безошибочно идентифицировать человека. Однако модель может перестать корректно работать в случае, если надеты необычные очки или на лицо нанесен рисунок, потому что изображений такого типа не встречалось при обучении (либо они встречались чрезвычайно редко и практически не оказали влияния на обучение). В результате люди придумывают все новые и новые способы обманывать системы распознавания лиц, не пряча при этом полностью лицо. Модель не встречалась с такими изображениями при обучении и распознает лица неправильно, даже если человек на месте модели легко опознал бы знакомое лицо. Конечно, распознавание лиц может не всегда использоваться во благо обществу, но здесь речь идет об общей проблеме систем машинного обучения. Эффективное out-of-distribution обобщение остается открытой проблемой, которую необходимо решать, если мы хотим дальнейшего развития ИИ. В целом, ее можно описать так:
Состязательные атаки С работы Szegedy et al., 2013 начались исследования в области так называемых состязательных атак на нейронные сети (adversarial attacks). Авторы показали, что наложением на изображение незначительного шума можно заставить нейронные сети ошибаться в задаче классификации, предсказывая совсем другой класс. Конечно, для этого подходит не любой шум, а специальный паттерн шума, найти который можно с помощью оптимизации. Еще более неожиданным оказалось то, что в точности тот же паттерн шума заставлял ошибаться на том же изображении и другие сети, обученные с другими гиперпараметрами и на других подвыборках обучающих данных. Кроме этого, авторы работы исследовали интерпретируемость фильтров промежуточных слоев сверточных сетей. В дальнейшем было обнаружено (Kurakin et al., 2016), что "обманывать" модель с помощью зашумленных изображений можно даже в том случае, когда зашумленное изображение фотографируется камерой (см. видео). При этом разные модели удается обманывать одним и тем же паттерном шума, что позволяет осуществлять подобные атаки (с переменным успехом) даже тогда, когда используемая модель неизвестна. В 2017 году изобрели совсем простой способ "обмануть" сверточную нейронную сеть: достаточно наклеить на объект стикер со специальным рисунком, и сеть перестанет правильно классифицировать объект (Brown et al., 2017). Впрочем, такой стикер не универсален и будет работать только для определенных сетей, против которых он создавался. Обзор других многочисленных работ по состязательным атакам можно найти в Akhtar and Mian, 2018 и Akhtar et al., 2021. Проблемы состязательных атак и недостаточного out-of-distribution обобщения в компьютерном зрении, вероятно, связаны между собой. Человеческое зрение тоже подвержено такому типу атак, что доказывают оптические иллюзии. Проблема неконкретизации в ML-задачах Рассмотрим еще одну работу, изучающую поведение ML-моделей за пределами обучающего распределения данных. Для каждой задачи может существовать бесконечное количество разных обученных моделей с разными весами и вычислительными архитектурами, дающих примерно одинаковую точность на обучающей выборке. Это известная и центральная проблема машинного обучения (Mitchell, 1980). Но эта же проблема существует и в другом варианте: для каждой задачи может существовать бесконечное количество разных обученных моделей, дающих примерно одинаковую точность на обучающем распределении данных, из которого взята тестовая выборка. В работе D'Amour et al., 2020 эту проблему называют проблемой неконкретизации ML-задачи (underspecification of ML-pipeline). Например, если задачей является обучить систему распознавания изображений с помощью сверточной сети, то может существовать огромное множество разных сверточных сетей с разной архитектурой и инициализацией весов, дающих примерно одинаковую точность на тестовой выборке. При смене условий (выходе за пределы обучающего распределения) эти модели могут начать работать сильно по-разному. В одном из экспериментов авторы обучили на ImageNet 50 сверточных нейронных сетей ResNet-50 (He et al., 2015). На валидационной части ImageNet все сети давали примерно одинаковую точность 75.9% ± 0.1% (указано одно стандартное отклонение). Затем авторы протестировали сети на датасете ImageNet-С (Hendrycks and Dietterich, 2019), содержащем изображения с различными шумами и искажениями (out-of-distrubiton данные с точки зрения ImageNet). В результате на изображениях с пикселизацией сети давали точность 19.7% ± 2.4%, на изображениях с уменьшенной или увеличенной контрастностью сети давали точность 9.1% ± 0.8% и так далее. Аналогичная ситуация наблюдалась на сетях ResNet-101x3 BiT (Kolesnikov et al., 2019). Видно, что точность моделей не только стала намного хуже, но и увеличился разброс значений точности среди моделей (2.4% против 0.1%). Более того, отклонения от средней точности на разных типах искажений почти не коррелируют. Это означает, что если модель справляется лучше модели на изображениях с пикселизацией, то это не означает, что она будет лучше справляться на изображениях с измененной контрастностью. Подобный эксперимент авторы повторили и с другими данными: на медицинских изображениях, где использовались изображения и 5 камер (первые 4 камеры – обучающее распределение, 5-я камера - out-of-distrubiton данные), и получили аналогичный результат. Таким образом, поведение моделей, имеющих одинаковую точность на тестовой выборке из обучающего распределения, может быть существенно разным за пределами этого распределения. А ведь в описанных выше экспериментах речь шла о моделях лишь с разной инициализацией весов, что уж говорить о моделях с разной архитектурой? Авторы предполагают, что не только архитектура, но и, скажем, оптимизатор и стратегия управления learning rate может сильно влиять на свойства модели (помимо общей точности на обучающем распределении) и точность работы полученной модели на тех или иных примерах за пределами обучающего распределения. Выводы
Здесь еще можно вспомнить платформу Kaggle для проведения ML-соревнований. Часто считают, что рейтинг на Kaggle не полностью отражает уровень ML-специалиста из-за того, что реальный процесс ML-разработки содержит намного больше шагов, чем просто обучения модели. Однако при этом считается, что Kaggle хорошо развивает умение обучать качественные ML-модели. Исходя из рассмотренного выше можно усомниться и в этом факте. На Kaggle качество моделей как правило оценивается на том же распределении, из которого взята обучающая выборка, поэтому проблемы shortcut learning и устойчивость модели к сдвигу данных не играет особой роли. Кроме того, утечки данных (как разновидность сдвига данных) в реальной работе вредны, а на Kaggle скорее полезны. Способы решения проблем обобщения Закончив раздел "кто виноват", перейдем к разделу "что делать". Вопрос в том, как изгнать "умного Ганса" из ML-моделей и обучить их в полной мере решать поставленную задачу. Рассмотрим сначала наиболее прямолинейные способы, и закончим исследовательскими гипотезами и обзором работ, посвященных разработкам новых архитектур и методов обучения. Стресс-тесты для диагностики работы модели Авторы статей о shortcut learning (Geirhos et al., 2020) и неконкретизации (D'Amour et al., 2020) сходятся в том, что необходимо не только оценивать общую точность модели на тестовой выборке, но и оценивать точность на отдельных типах примеров. В частности, авторы предлагают следующие типы тестов:
В задачах обработки естественного языка Ribeiro et al., 2020 предлагают целый ряд проверок, которые стоит проделать на обученных моделях. Доменная адаптация Перечисленные способы помогут вывить проблемы в функционировании модели. После этого соответствующие примеры можно добавить в обучающие данные (или увеличить их процентное соотношение). Обучая модель на недостающих типах данных, мы превращаем out-of-distribution данные в in-distribution данные и повышаем качество работы модели на этих данных. Это наиболее прямолинейное решение проблемы сдвига данных называется доменной адаптацией (см. на paperswithcode.com). Для дообучения можно использовать и неразмеченные данные (см. обзор на Хабре: часть 1, часть 2). Но такой способ не универсален. Мы можем не знать заранее всех свойств данных, с которыми будет работать модель, и не иметь возможности собрать обучающие данные. Существует так называемая "проблема черного лебедя" (black swan), когда ошибка на очень редком типе примеров может привести к значительным последствиям: например, автоматически управляемый автомобиль попадет в ДТП из-за сбоя в работе его систем компьютерного зрения. Есть много примеров, когда электромобили Tesla неправильно распознавали происходящее вокруг, например, принимали луну за светофор. Насколько бы разнообразным ни был датасет, все равно может оставаться шанс, что мы что-то не учли и не добавили в него какой-то тип примеров. Если задачей является обучение модели общего назначения для дальнейшего файн-тюнинга, например, предобучение языковой модели, сети для распознавания изображений, сети для распознавания речи или же мультимодальной сети, наподобие CLIP (Radford et al., 2021), то скрытых bias'ов в данных и возможностей для shortcut learning неисчислимое множество, и невозможно устранить их все. В целом, система с низким out-of-distribution обобщением производит впечатление не слишком "интеллектуальной", а доменная адаптация часто напоминает подстановку "костылей" под модель, не способную хорошо обобщаться. Это напоминает ученика, который научился решать уравнения вида , но не может решить уравнения , потому что буква стала другой и незнакомой. Дообучив его решать уравнения с , мы выясняем, что теперь он не умеет решать уравнения с , и так далее, при этом логика его действий сильно зависит от того, какой буквой обозначена неизвестная переменная. Нужно ли искать новые архитектуры и способы обучения, способные лучше обобщаться и более устойчивые к сдвигу данных? Еще больше данных? От себя могу предположить, что, как ни странно, еще большее увеличение объема обучающих данных может помочь. С увеличением объема данных почти всегда растет разнообразие данных (умозрительно можно предположить, что если объем растет линейно, то разнообразие растет логарифмически). А ведь разнообразие данных - это именно то, что нужно? Возможно, с какого-то момента, когда loss уже нельзя будет еще сильнее понизить простым запоминанием поверхностной статистики (т. е. с помощью shortcut'ов), процесс оптимизации будет стагнировать и будет вынужден начать искать другие пути понижения loss, в том числе через систематическое обобщение. Конечно эта лишь гипотеза, и вероятно неверная. Но на мой взгляд важно иметь в виду, что зависимость качества обучения от размера модели и объема данных может быть необычной и непредсказуемой. Например, в Nakkiran et al., 2019 (double descent) была показана необычная зависимость точности на валидации от размера модели, а в Power et al., 2022 (grokking) от длительности обучения. Более крупные или более эффективные модели? Сейчас глубокое обучение в основном идет по пути экстенсивного развития, при котором улучшения достигаются увеличением объема обучающих данных и размера моделей ("stack more layers"). Разработке принципиально иных архитектур и способов обучения уделяется мало внимания и финансирования, что и понятно: в таких исследованиях нет никакой гарантии успеха и получения работающего решения в обозримые сроки. Но как мы увидели выше, простое увеличение объема данных не всегда дает решение, обладающее желаемым уровнем обобщения. Об этом говорят авторы работы, посвященной графовым сетям (Battaglia et al., 2018):
Авторы работы, посвященной системам компьютерного зрения (Yuille and Liu, 2018), также делают вывод о том, что больших данных может быть недостаточно, и нужно искать новые подходы к обучению и оценке качества моделей.
Рост результатов на различных бенчмарках, например SuperGLUE, тоже в основном обусловлен ростом размера моделей и количества обучающих данных. Но обучающие данные все же не бесконечны. Современные языковые модели и так обучаются почти на всех данных, какие удалось собрать со всего интернета. В какой-то момент, скорее всего, потребуется прекратить рост размера моделей, объема датасетов и сосредоточиться на разработке совершенно иных подходов, стандартизировав наборы обучающих данных (как предлагает Linzen, 2020) для лучшего сравнения эффективности подходов. Модификации способов обучения языковых моделей Современные языковые модели предобучаются, например, на следующих задачах:
Чтобы лучше понять свойства этих задач, можно попробовать порешать их самостоятельно. Я сделал Colab-ноутбук для генерации случайных обучающих примеров в задаче masked language modeling (MLM). Из примеров можно видеть следующее:
Следовательно, приоритетом для снижения loss на задаче MLM является запоминание фактов и статистики. Способность рассуждать и делать выводы (отображая слова в некую модель мира и обратно, как это делает человек) для снижения loss является лишь второстепенным фактором, при этом выучить эту способность должно быть намного сложнее, чем запомнить факты. Получается, что мы обучаем сеть на такой задаче, которую нельзя хорошо решить, обладая одной лишь логикой и пониманием смысла общеупотребимых слов, но можно неплохо решить с помощью запоминания огромного объема фактов и shortcut'ов. Обученная таким способом модель действительно может оказаться способной генерировать правдоподобные тексты, но лишь "вспоминая", что когда-то видела что-то похожее. Таким образом, модель долго и старательно обучается, но вовсе не тому, чего мы от нее хотим. Отсюда можно сделать вывод о том, что обучение сетей, которые действительно понимают смысл текста в том смысле, в каком его понимает человек (вместо использования shortcut'ов для имитации понимания текста) будет затруднительным, если принципиально не менять задачу предобучения или архитектуру модели. Архитектура моделей и структура данных Модель эффективно обобщается, если ее структура соответствует структуре моделируемых данных. По этой причине на выборке, сгенерированной случайно инициализированной нейронной сетью, хорошо обобщается другая нейронная сеть (Gorishniy et al., 2021), на выборке, сгенерированной случайным решающим деревом, хорошо обобщаются другие деревья, сверточные сети хорошо обобщаются на текстурах и составленных из них изображениях (Ulyanov et al., 2017), а AlphaFold 2 за счет структурного модуля хорошо обобщается на трехмерных структурах белков (Jumper et al., 2021). Какова же структура текстов и изображений? Можно назвать два основных уровня: Уровень 1. Низкоуровневая локальная структура. В изображениях это набор локальных признаков (текстуры и границы), в текстах это буквы и морфология слов. Также сюда можно отнести уровень звукового/визуального восприятия текста и интонацию. Уровень 2. Высокоуровневая иерархическая разреженная структура. В текстах эта структура начинается с синтаксиса, следующим уровнем является связь между предложениями, абзацами и более крупными частями текста. В изображениях обычно тоже есть некая иерархическая структура, соответствующая объектам и их частям в трехмерном пространстве на разном расстоянии. При этом между элементами иерархической структуры имеется разреженный граф смысловых и причинно-следственных взаимосвязей. Например, рассуждая о человеке на фотографии, мы никак не будем учитывать цвет стоящего неподалеку автомобиля. Разреженность помогает не обращать внимание на паразитные корреляции и избегать shortcut learning'а. Кроме того, когда человек воспринимает фотографию, иерархическая структура изображения отображается в модель мира, и человек сознательно или подсознательно выводы о том, логично ли изображенное на фотографии, в каком контексте и зачем оно сделано и каково развитие событий в момент съемки. С текстом все в целом аналогично. Судя по всему, для исправления проблемы shortcut learning модель должна реализовывать именно такой способ обработки изображения или текста, то есть уметь представлять входные данные (изображение или текст) как иерархическую комбинацию составляющих частей с разреженными взаимосвязями, что соответствует уровню 2, и быть способной корректно интерпретировать те же части в необычных комбинациях. По сравнению с абстрактным свойством out-of-distribution обобщения, это более конкретное желаемое свойство называют систематическим, композиционным, или комбинаторным обобщением (Bahdanau et al., 2018; Furrer et al., 2020). Достижение такого уровня обобщения остается открытой проблемой машинного обучения.
Здесь часто вспоминают символьные подходы, с которых и начинались исследования ИИ в XX веке. По структуре такие системы, кажется, обладают всем необходимым: они могут работать с объектами и их частями, то есть с интерпретируемыми промежуточными данными, работать иерархически, реализовывать сложные цепочки рассужедний, а вычисления внутри них могут затрагивать лишь немногие объекты и взаимосвязи, что означает разреженность. Непонятно лишь одно: как их обучать, чтобы они могли быть сложными и достаточно гибкими одновременно. Например, пусть некая подсистема решает, какую из операций из набора применить к данным . Для этого она выдает вероятности и выбирает операцию с наибольшей вероятностью. Допустим, на текущем примере мы выбрали операцию , и в итоге получили значение функции потерь . Производные равны нулю, поэтому такую систему не получится обучить обычным градиентным спуском. Можно попробовать рассчитать ответ, используя по очереди все , и снизить вероятности для тех , на которых loss получился выше, чем на других. Но если граф принятия решений содержит не одну, а много операций принятия решения (), тогда придется перебирать очень много разных вариантов последовательностей решений. Аналогичная проблема возникает, если мы выбираем не операцию, а один или несколько элементов среди доступных данных (hard attention). Направления исследований В машинном обучении каждый день публикуется множество научных статей. Что-то модно, что-то вышло из моды, какие-то работы еще ждут признания, а какие-то так и остались незамеченными. Приведенный ниже список статей не претендует на полноту и описывает лишь некоторые из современных направлений исследований. В перечисленных ниже работах изучаются проблемы современных систем компьютерного зрения. В некоторых из них также предлагаются различные модификации процесса обучения и способа оценки качества моделей, в том числе с помощью meta-learning.
Проблемы современных языковых моделей, проблемы данных, на которых они обучаются, и некоторые способы улучшения данных и способов обучения описаны в следующих работах:
В том числе, с помощью языковых моделей успешно решаются задачи генерации программного кода и решения математических задач, что само по себе интересно и может помочь лучше понять свойства такого типа моделей:
Исследователи давно ищут возможность обучить модели систематическому обобщению, пониманию понятий части и целого и оперированию абстрактными концепциями. Некоторые из последних работ по этой теме:
Высокая способность к обобщению также требуется при обучении агентов, так как окружение может быть очень разнообразным и меняться от действий самих агентов, а значит важным является способность агентов корректно функционировать в новых условиях, не встречавшихся раньше.
Мнение многих исследователей сходится в том, что для создания ML-систем следующего поколения, способных исправить важные недостатки текущих систем, нужно пробовать объединять нейронные сети и символьные вычисления:
Одним из многообещающих подходов к повышению обобщающей способности моделей считается meta-learning ("learning-to-learn"):
Много работ посвящено попыткам улучшения трансформера (Vaswani et al., 2017), а также попыткам перенести его обобщающие свойства (inductive biases) на другие архитектуры или найти более простые альтернативы. Трансформер можно рассматривать как графовую нейронную сеть, в которой вершины хранят информацию, а ребра не хранят информации. Однако недавно были опубликованы работы, в которых предлагаются модификации трансформера с хранением информации в ребрах (подобный подход уже использовался, например, в AlphaFold 2). Также была обнаружена интересная взаимосвязь трансформера с сетями Хопфилда.
Если модель встречается с необычным примером и не может выдать на нем корректный ответ, то можно по крайней мере научить модель сомневаться, то есть оценивать уверенность в предсказании. Это может помочь не только в случае сдвига данных, но и на тех примерах, на которых точечная оценка условного распределения даст высокую ожидаемую ошибку (то есть ответ нельзя с уверенностью предсказать из исходных данных). В этом контексте часто упоминают байесовские методы, ансамблирование и генеративные модели. Некоторые из работ по теме байесовских методов и оценки уверенности в предсказаниях:
Еще несколько общих статей о проблемах современного машинного обучения, паразитных корреляциях в данных и подходах к повышению обобщающей способности (некоторые из них подробно разбирались в этом обзоре):
Многие исследователи считают, что важно не только обучить модели выявлять статистические зависимости, но и находить в данных причинно-следственные связи. Имея лишь выборку из распределения данных, это не всегда можно сделать. Например, пусть мы имеем набор фотографий с неизвестной планеты, и на некоторых фотографиях есть огонь и есть неопознанные существа, при этом появление существ и огня на фотографиях сильно коррелирует. Что является причиной, а что следствием? Разводят ли существа огонь сами, приходят ли к уже появившемуся огню, или же оба явления имеют общую причину (прилетает звездолет, высаживает существ и оставляет на земле огонь после взлета)? Это практически невозможно определить из фотографий (или же очень сложно, по косвенным признакам). Поиска причинно-следственных связей является более сложной задачей, чем поиск статистических зависимостей. Следующие книги и статьи посвящены именно этой теме:
Отдельно можно отметить работу группы Йошуа Бенжио в институте MILA (Канада):
Различные модальности (изображения, текст и др.) могут дополнять друг друга и формировать более целостную картину мира, чем каждая модальность по отдельности, поэтому мультимодальное обучение кажется многообещающим. В последние пару лет в этой области были достигнуты впечатляющие результаты.
Одним из возможных путей к созданию ML-систем следующего поколения может стать обучение систем, способных анализировать видео и предсказывать следующие события (далее чем несколько кадров), в том числе в текстовом виде. Такие системы могут быть способы отличать статистические зависимости от причинно-следственных связей, а также соотносить текст с происходящими событиями. Похожая задача возникает при обучении агентов, которым необходимо предсказывать последствия своих и чужих действий. Агента может заменить на наблюдателя, задача которого - лишь предсказывать последствия чужих действий. Можно искать и другие способы создания самообучающейся модели мира, какая существует, например, в сознании человека.
Общий искусственный интеллект Исследователей всегда интересовала тема общего искусственного интеллекта и создания систем, которые мыслят как люди. Проблема здесь начинается с того, что разные люди по-разному определяют, что же конкретно это означает. Как мне кажется, здесь может помочь введение более узких терминов с более конкретными определениями, вместо расплывчатых и спорных понятий "общего ИИ" и "сильного ИИ". Если разные люди хотят предложить разные определения, то пусть придумают для них разные термины. Например, можно предложить такое определение: полнофункциональный искусственный интеллект - это система, способная решать все задачи, которые может решать человек. Если больше не останется таких типов задач, которые может решить практически любой человек, но не может решить ИИ (качество решения оценивается голосованием людей), то тогда можно будет считать, что создан полнофункциональный ИИ, согласно его определению. Конечно, не обязательно требовать от ИИ выполнения механических движений или, скажем, мимики лица. Поэтому можно предложить более узкое понятие: полнофункциональный текстовый искусственный интеллект - это система, способная решать все задачи, которые может решать человек в текстовом виде, будь он по ту сторону монитора и имея достаточно времени. Конечно, и такое определение может породить споры, но все же оно несколько более конкретно. Я никоим образом не являюсь специалистом по вопросу общего ИИ, но как автор обзора выскажу мнение по поводу его достижения. Меня привлекает идея постепенного улучшения, когда на каждом шаге ищутся недостатки систем текущего поколения и находятся способы их преодоления для создания систем следующего поколения. Можно провести аналогию с градиентным спуском или методом отжига: мы постепенно улучшаем решение, не пытаясь все выбросить и начать с нуля, и периодически пробуем внедрить какие-то принципиальные изменения. Тогда на текущем этапе развития машинного обучения нужно сосредоточиться на решении проблем обобщения, которым и был посвящен этот обзор. Приведу также несколько работ, в которых рассматривается вопрос общего искусственного интеллекта и сопоставления биологического интеллекта с текущими ML-системами.
Интересны работы с участием нейробиолога Карла Фристона, который исследует принципы работы человеческого мозга и их возможную связь с вариационными байесовскими методами в математической статистике:
Заключение Как мне кажется, проблемы содержатся не только в алгоритмах, но и в человеческом сознании. Людям неинтересно изучать и исследовать. Чтение статей, изучение информации воспринимается лишь как скучная необходимость, сложные вопросы и исследовательские задачи не занимают людей, а интересует в основном лишь заработок. Еще одна сложность в том что количество научных статей и книг в области исследовательского ML стремительно растет. На конференции NeurIPS 2021 было опубликовано более 2300 статей (больше, чем за 2010-2015 годы вместе взятые): одни только аннотации заняли бы целый том. Возникает острая потребность в систематизации информации. Читать статьи в оригинале долго и тяжело по нескольким причинам.
Исходя из всего этого, систематизация и изложение статей в сокращенном варианте, как мне кажется, могло бы принести огромную пользу для сообщества. Конечно, многими прилагаются усилия в этом направлении, но этого пока недостаточно. Краткие изложения статей остаются бесплатной работой для энтузиастов, тогда как пользу они приносят вполне реальную. На мой взгляд, будь эта практика более широко распространена, и будь у людей больше интереса к исследованиям, мы могли бы уже создавать такие системы искусственного интеллекта, которую бы приносили огромную пользу человечеству (в медицине, физике, интернет-технологиях, оптимизации работы людей и, стало быть, сокращении рабочей недели) и которые пока что остаются лишь в области фантастики. Данный обзор первоначально размещен на сайте generalized.ru, где вы можете найти и другие обзоры. Источник: habr.com Комментарии: |
|