![]() |
![]() |
![]() |
|||||
![]() |
Вероятностная интерпретация классических моделей машинного обучения |
||||||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-12-04 22:47 Этой статьей я начинаю серию, посвященную генеративным моделям в машинном обучении. Мы посмотрим на классические задачи машинного обучения, определим, что такое генеративное моделирование, посмотрим на его отличия от классических задач машинного обучения, взглянем на существующие подходы к решению этой задачи и погрузимся в детали тех из них, что основаны на обучении глубоких нейронных сетей. Но прежде, в качестве введения, мы посмотрим на классические задачи машинного обучения в их вероятностной постановке. ![]() Классические задачи машинного обучения Две классические задачи машинного обучения — это классификация и регрессия. Давайте посмотрим ближе на каждую из них. Рассмотрим постановку обеих задач и простейшие примеры их решения. Классификация Задача классификации — это задача присвоения меток объектам. Например, если объекты — это фотографии, то метками может быть содержание фотографий: содержит ли изображение пешехода или нет, изображен ли мужчина или женщина, какой породы собака изображена на фотографии. Обычно есть набор взаимоисключающих меток и сборник объектов, для которых эти метки известны. Имея такую коллекцию данных необходимо автоматически расставлять метки на произвольных объектах того же типа, что были в изначальной коллекции. Давайте формализуем это определение. Задача нахождения Вероятностная постановка задачи классификации Чтобы решить эту задачу, удобно переформулировать ее на вероятностном языке. Итак, есть множество объектов Задача классификации теперь может быть переформулирована как задача нахождения Классификация двух нормальных распределений Давайте посмотрим, как это работает на простом примере. Положим ![]() Рис. 1. Плотности распределения Так как область определения гауссианы — вся числовая прямая, очевидно, что эти графики пересекаются, а значит, есть такие точки, в которых плотности вероятности Найдем условную вероятность классов: Т.е. Вот так будут выглядеть график плотности вероятностей ![]() Рис. 2. Плотности распределения Видно, что близко к модам гауссиан уверенность модели в принадлежности точки конкретному классу очень высока (вероятность близка к нулю или единице), а там, где графики пересекаются модель может только случайно угадывать и выдает Метод максимизации правдоподобия Большая часть практических задач не может быть решена вышеописанным способом, так как Принцип максимизации правдоподобия говорит, что если есть некоторое неизвестное распределение Логарифм и умножение на константу — монотонно возрастающие функции и не меняют положений максимумов, потому совместную плотность можно внести под логарифм и умножить на Последнее выражение, в свою очередь, является несмещенной и состоятельной оценкой ожидаемого логарифма правдоподобия: Задачу максимизации можно переписать как задачу минимизации: Последняя величина называется кросс-энтропией распределений Минимизацию на протяжении этого цикла статей мы будем проводить с помощью Stochastic Gradient Descent (SGD), а точнее, его расширения на основе адаптивных моментов, пользуясь тем, что сумма градиентов по подвыборке (так называемому “минибатчу”) является несмещенной оценкой градиента минимизируемой функции. Классификация двух нормальных распределений логистической регрессией Давайте попробуем решить ту же задачу, что была описана выше, методом максимального правдоподобия, взяв в качестве параметрического семейства Для начала нужно сгенерировать данные для обучения. Нужно сгенерировать минибатч меток классов и для каждой метки сгенерировать точку из соответствующей гауссианы:
Определим наш классификатор. Он будет простейшей нейронной сетью без скрытых слоев:
И запишем функцию потерь — кросс-энтропию между распределениями реальных и предсказанных меток:
Ниже приведены графики обучения двух моделей: базовой и с L2-регуляризацией: ![]() Рис. 3. Кривая обучения логистической регрессии. Видно, что обе модели быстро сходятся к хорошему результату. Модель без регуляризации показывает себя лучше потому, что в этой задаче не нужна регуляризация, а она слегка замедляет скорость обучения. Давайте взглянем поближе на процесс обучения: ![]() Рис. 4. Процесс обучения логистический регрессии. Видно, что обучаемая разделяющая поверхность постепенно сходится к аналитически вычисленной, при чем, чем она ближе, тем медленнее сходится из-за все более слабого градиента функции потерь. Регрессия Задача регрессии — это задача предсказания одной непрерывной случайной величины Регрессия линейно зависимых величин с нормальным шумом Давайте посмотрим, как решается задача регрессии на простом примере. Пусть есть две независимые случайные величины ![]() Рис. 5. Линия регрессии задачи про линейно зависимые величины с шумом. Решение задачи регрессии методом максимального правдоподобия Давайте сформулируем задачу регрессии через метод максимального правдоподобия. Положим Состоятельной и несмещенной оценкой этого матожидания будет среднее по выборке Таким образом, для решения задачи регрессии удобно минимизировать среднеквадратичную ошибку на обучающей выборке. Регрессия величины линейной регрессией Давайте попробуем решить ту же задачу, что была выше, методом из предыдущего раздела, взяв в качестве параметрического семейства Для начала нужно сгенерировать данные для обучения. Сначала мы генерируем минибатч входных переменных
Определим нашу модель. Она будет простейшей нейронной сетью без скрытых слоев:
И запишем функцию потерь — L2-расстояние между распределениями реальных и предсказанных значений:
Ниже приведены графики обучения двух моделей: базовой и с L2-регуляризацией: ![]() Рис. 6. Кривая обучения линейной регрессии. ![]() Рис. 7. График изменения первого параметра с шагом обучения. ![]() Рис. 8. График изменения второго параметра с шагом обучения. Видно, что обе модели быстро сходятся к хорошему результату. Модель без регуляризации показывает себя лучше потому, что в этой задаче не нужна регуляризация, а она слегка замедляет скорость обучения. Давайте взглянем поближе на процесс обучения: ![]() Рис. 9. Процесс обучения линейной регрессии. Видно, что обучаемое математическое ожидание Другие задачи В дополнение к изученным выше задачам классификации и регрессии есть и другие задачи так называемого обучения с учителем, в основном сводящиеся к отображению между точками и последовательностями: Object-to-Sequence, Sequence-to-Sequence, Sequence-to-Object. Так же есть и большой спектр классических задач обучения без учителя: кластеризация, заполнение пробелов в данных, и, наконец, явная или неявная аппроксимация распределений, которая и используется для генеративного моделирования. Именно о последнем классе задач будет идти речь в этом цикле статей. Генеративные модели В следующей главе мы посмотрим, что такое генеративные модели и чем они принципиально отличаются от рассмотренных в этой главе дискриминативных. Мы посмотрим на простейшие примеры генеративных моделей и попробуем обучить модель, генерирующую сэмплы из простого распределения данных. Благодарности Спасибо Olga Talanova за ревью этой статьи. Спасибо Sofya Vorotnikova за комментарии, редактирование и проверку английской версии. Спасибо Andrei Tarashkevich за помощь в верстке. Источник: habrahabr.ru ![]() Комментарии: |
||||||