Метод Уэлфорда и одномерная линейная регрессия |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-08-16 13:43 Одномерная линейная регрессия — один из самых простых регрессионных методов (и вообще один из самых простых методов машинного обучения), который позволяет описывать линейную зависимость наблюдаемой величины от одного из признаков. В общем случае в задачах машинного обучения приходится сталкиваться с большим количеством различных признаков; одномерная линейная регрессия в таком случае выбирает тот из них, который позволяет добиться наилучшей корреляции с целевой функцией. В предыдущем посте из этой серии мы обсудили точность вычислений средних и ковариаций, а также познакомились с методом Уэлфорда, который во многих случаях позволяет избежать вычислительных погрешностей в этих задачах. Сегодня мы рассмотрим практическое применение метода Уэлфорда в задаче одномерной линейной регрессии. Содержание
1. Одномерная линейная регрессия В задаче одномерной линейной регрессии мы предполагаем, что имеются две последовательности вещественных чисел: признаки и ответы . Кроме того, имеется вектор соответствующих весов . Как и всегда, мы будем предполагать, что эти последовательности содержат потенциально бесконечное количество элементов, но на данный момент рассмотрены только первых элементов каждой из последовательностей. Нашей задачей будет восстановить линейную зависимость между признаками и ответами, то есть, построить линейную решающую функцию : При этом минимизируется среднеквадратичный функционал потерь: Для анализа проще работать с формулой, свободной от радикала и нормировки: Поскольку точки минимума для функционалов и совпадают, такая замена корректна. 2. Решение для центрированных выборок Для функционала потерь легко записать производные по и : Если приравнять их к нулю, получим: Важное отступление. Приравнивание производной нулю в данном случае корректно, т.к.: Если бы оптимальный параметр равнялся нулю, найти решение не составило бы труда. Можно заметить, что центрирование, стандартный для машинного обучения способ предобработки выборки, приводит именно к этому эффекту. Действительно, рассмотрим задачу для центрированных переменных: Сумма взвешенных признаков теперь равняется нулю, так же, как и сумма взвешенных ответов: Тогда оптимальное значение свободного параметра равняется нулю: А это значит, что и оптимальное значение параметра найти легко: 3. Решение в общем случае Теперь давайте попробуем вернуться к общему случаю нецентрированных данных. Если — решающая функция для центрированного случая, значения которой определяются формулой и приближают величину , то следующая решающая функция аппроксимирует уже величину : Поэтому решение изначальной задачи одномерной линейной регрессии можно записать следующим образом: Здесь мы используем введенное в прошлой статье обозначение для взвешенного среднего: Можно понять, что такой переход корректен, еще одним способом. Если решение для центрированных данных оптимально, то параметры и доставляют минимум функционалу потерь : Произведём теперь замену переменных, вернувшись к нецентрированным данным: Получившееся выражение описывает значение функционала потерь для несмещённых данных в соответствии с формулами для и , которые мы получили выше. Значение функционала при этом достигает минимума, следовательно, задача решена корректно! 4. Применение метода Уэлфорда Теперь заметим, что при вычислении параметра используются те самые ковариации, вычислением которых мы занимались в предыдущей статье. В самом деле, используя обозначения из неё, можно записать: Это значит, что для вычисления коэффициента регрессии требуется два раза вычислить ковариации при помощи метода Уэлфорда. В процессе этих вычислений мы одновременно найдём и средние величины, необходимые для вычисления свободного коэффициента регрессии. Код для добавления очередного элемента в выборку состоит из обновления средних и дисперсий для признаков и ответов, а также ковариации между признаками и ответами:
А так выглядит метод, который решает задачу нахождения оптимальных параметров одномерной линейной регрессии после добавления всех элементов:
Величина Объединение всех вычислений в рамках одного класса позволяет избежать некоторых накладных расходов. Скажем, если бы в реализации использовались два объекта для хранения средних и три объекта для хранения ковариаций (признаки с признаками, ответы с ответами, признаки с ответами), то сумма весов обновлялась бы пять раз для каждого примера из выборки. 5. Экспериментальное сравнение методов Для практического сравнения я написал программу, в которой реализуются различные способы решения задач одномерной и многомерной линейной регрессии. О многомерной регрессии речь пойдёт в следующих статьях, а сейчас сосредоточимся на одномерном случае. Сравнивать будем, как обычно, "наивные" методы, методы, основанные на суммировании методом Кэхэна, и методы, основанные на методе Уэлфорда. "Наивные" методы непосредственно применяют формулы для вычисления ковариаций:
Класс является шаблонным и имеет специализации со счетчиками типа double и типа TKahanAccumulator. Кроме того, реализован класс Для проверки разработанных методов воспользуемся модельными данными из коллекции LIAC. Некоторые из наборов данных для удобства помещены в директорию data в формате, который понимает написанная программа. Данные в задачах "портятся" простым способом: значения признаков и ответов умножаются на некоторое число, после чего к ним прибавляется некоторое другое число. Таким образом мы можем получить проблемный с точки зрения вычислений случай: большие средние значения по сравнению с величинами разбросов. В режиме Например, для выборки kin8nm результаты работы получаются следующими:
В данном случае уменьшение всех значений в выборке в 10 тысяч раз вместе с одновременным добавлением к ним величины в 10000 приводит к неработоспособности стандартного алгоритма, даже при использовании суммирования по методу Кэхэна. Аналогичные результаты получаются и на других выборках, в том числе и тех из них, что встречаются в реальной жизни в продакшене. Заключение Итак, сегодня мы поговорили о задаче одномерной линейной регрессии, разобрались с тем, как получаются аналитические решения в этой задаче и как использовать метод Уэлфорда для нахождения решений. Метод Уэлфорда делает решение задачи существенно более устойчивым к возможным проблемам в данных. Однако, этот метод оказывается в 2-4 раза медленнее стандартного алгоритма, поэтому на практике нужно решить для себя, что в данный момент важнее — не зависеть от возможных проблем в данных или работать максимально быстро. Если же есть необходимость много раз строить модели на различных данных и нет возможности контролировать качество каждой полученной модели, я бы рекомендовал использовать метод Уэлфорда. В следующей статье мы поговорим о применении метода Уэлфорда для решения задачи многомерной линейной регрессии. Литература
Источник: habrahabr.ru Комментарии: |
|