?

Log in

No account? Create an account

Компьютерная лингвистика

Новостная лента www.solarix.ru

Previous Entry Share Next Entry
Реализация линейной регрессии МНК с autograd - библиотекой для символического дифференцирования
kelijah
Случайно наткнулся недавно на Autograd - питоновскую либу, которая умеет для функции, заданной исходным текстом в коде, получить функцию же частной производной по указанному аргументу. Всякие tensorflow, pytorch и theano это, конечно, тоже делают под капотом. Но autograd делает это с любой питоновской функцией. Магия.

Я не смог удержаться от небольшого эксперимента с написанием реализации метода наименьших квадратов для линейной регрессии. Код берет набор пар (x,y), примерно соответствующих некоторой прямой линии (см. calc_y).  Функция loss - это целевая функция для МНК. Именно ее autograd дифференцирует по каждому из аргументов a и b. Далее - грязная реализация градиентного спуска.

Код на гитхабе

Второй вариант сделан из какого-то примера для autograd, и позволяет достаточно безболезненно увеличивать порядок полинома:

Код на гитхабе

Ну и для сравнения - решение линейной регрессии МНК на Keras:

Код на гитхабе