Машинное обучение 1, весна 2014: Лекция 3

Post on 21-Mar-2017

173 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Линейная регрессияЛинейная классификация

Линейные модели

Сергей Николенко

Computer Science Club, Казань, 2014

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Outline

1 Линейная регрессияЛинейная регрессия

2 Линейная классификацияКлассификация по-байесовскиЛогистическая регрессия

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

В предыдущей серии...

Теорема Байеса:

p(θ|D) =p(θ)p(D |θ)

p(D).

Две основные задачи байесовского вывода:1 найти апостериорное распределение на

гипотезах/параметрах:

p(θ | D) ∝ p(D |θ)p(θ)

(и/или найти гипотезу максимального правдоподобияarg maxθp(θ | D));

2 найти апостериорное распределение исходов дальнейшихэкспериментов:

p(x | D) ∝∫θ∈Θ

p(x | θ)p(D |θ)p(θ)dθ.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Метод наименьших квадратов

Линейная модель: рассмотрим линейную функцию

y(x,w) = w0 +

p∑j=1

xjwj = x>w, x = (1, x1, . . . , xp).

Таким образом, по вектору входов x> = (x1, . . . , xp) мыбудем предсказывать выход y как

y(x) = w0 +

p∑j=1

xj wj = x>w.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Метод наименьших квадратов

Как найти оптимальные параметры w по тренировочнымданным вида (xi , yi )

Ni=1?

Метод наименьших квадратов: будем минимизировать

RSS(w) =

N∑i=1

(yi − x>i w)2.

Как минимизировать?

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Метод наименьших квадратов

Можно на самом деле решить задачу точно – записать как

RSS(w) = (y −Xw)>(y −Xw),

где X – матрица N × p, продифференцировать по w,получится

w = (X>X)−1X>y,

если матрица X>X невырожденная.

Замечание:(X>X

)−1X> называется псевдообратной

матрицей Мура–Пенроуза (Moore–Penrose pseudo-inverse)матрицы X; это обобщение понятия обратной матрицы нанеквадратные матрицы.

Много ли нужно точек, чтобы обучить такую модель?

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Метод наименьших квадратов

Пример: задача классификации. Два класса; мы кодируемодин ответ как y = 1, другой ответ как y = 0 и рисуемпрямую x>w = 1

2 .

Мы видим, что данные разделяются не то чтобы совсемзамечательно.

Когда линейная модель работает хорошо, когда плохо?

Предположим, что это была смесь нескольких нормальныхраспределений – что тогда?

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регрессия

Теперь давайте поговорим о линейной регрессиипо-байесовски.

Основное наше предположение – в том, что шум (ошибка вданных) распределён нормально, т.е. переменная t,которую мы наблюдаем, получается как

t = y(x,w) + ε, ε ∼ N (0, σ2).

Иными словами,

p(t | x,w, σ2) = N (t | y(x,w), σ2).

Здесь пока y – любая функция.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регрессия

Чтобы не повторять совсем уж то же самое, мырассмотрим не в точности линейную регрессию, а еёестественное обобщение – линейную модель с базиснымифункциями:

y(x,w) = w0 +

M−1∑j=1

wjφj(x) = w>φ(x)

(M параметров, M − 1 базисная функция, φ0(x) = 1).

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регрессия

Базисные функции φi – это, например:результат feature extraction;расширение линейной модели на нелинейные зависимости(например, φj(x) = x j);локальные функции, которые существенно не равны нулютолько в небольшой области (например, гауссовские

базисные функции φj(x) = e−(x−µj )

2

2s2 );. . .

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регрессия

Рассмотрим набор данных X = {x1, . . . ,xN } со значениямиt = {t1, . . . , tN }.

Будем предполагать, что данные взяты независимо поодному и тому же распределению:

p(t | X,w, σ2) =

N∏n=1

N(tn | w>φ(xn), σ

2).

Прологарифмируем (опустим X, т.к. по нему всегдаусловная вероятность будет):

ln p(t | w, σ2) = −N2ln(2πσ2) −

12σ2

N∑n=1

(tn −w>φ(xn)

)2.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регрессия

Прологарифмируем (опустим X, т.к. по нему всегдаусловная вероятность будет):

ln p(t | w, σ2) = −N2ln(2πσ2) −

12σ2

N∑n=1

(tn −w>φ(xn)

)2.

И вот мы получили, что для максимизации правдоподобияпо w нам нужно как раз минимизироватьсреднеквадратичную ошибку!

∇w ln p(t | w, σ2) =1σ2

N∑n=1

(tn −w>φ(xn)

)φ(xn).

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регрессия

Решая систему уравнений ∇ ln p(t | w, σ2) = 0, получаемто же самое, что и раньше:

wML =(Φ>Φ

)−1Φ>t.

Здесь Φ = (φj(xi ))i ,j .

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регрессия

Теперь можно и относительно σ2 максимизироватьправдоподобие; получим

σ2ML =

1N

N∑n=1

(tn −w>MLφ(xn)

)2,

т.е. как раз выборочная дисперсия имеющихся данныхвокруг предсказанного значения.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Оверфиттинг

Пример регрессии с базисными функциями:обучающая выборка – несколько точек x = {x1, . . . , xN } снаблюдениями неизвестной функции t = {t1, . . . , tN };мы хотим понять, что это была за функция y(x), ипредсказать новые значения y(x);давайте будем просто искать функцию в виде многочлена:

y(x ,w) = w0 + w1x + w2x2 + . . .+ wdxd =

d∑j=0

wjx j .

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Оверфиттинг

Прежде всего заметим, что такую задачу все навернякарешали и безо всякого байесовского вывода:

выберем функцию ошибки – обычно выбираютсреднеквадратическое отклонение

E (w) =12

N∑n=1

(y(xn,w) − tn)2;

будем её минимизировать – возьмём производные инайдём минимум (или будем к нему двигатьсяградиентным спуском);в результате получатся оптимальные коэффициентымногочлена данной степени.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Полиномиальная аппроксимация

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Полиномиальная аппроксимация

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Полиномиальная аппроксимация

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Полиномиальная аппроксимация

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Значения RMS

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Регуляризация

Обнаружилась проблема – чем больше степеньмногочлена, тем, конечно, точнее им можно приблизитьданные, но в какой-то момент начнётся оверфиттинг;какая модель лучше?

Получится, что число параметров модели (степеньмногочлена) зависит от числа точек в наборе данных; этокак-то странно.

Можно заметить, что в какой-то момент коэффициентымногочлена начинают расти.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Значения коэффициентов

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Регуляризация

Итак, получается, что у нас сильно растут коэффициенты.

Давайте попробуем с этим бороться. Бороться будемпрямолинейно и простодушно: возьмём и добавим размеркоэффициентов в функцию ошибки.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Регуляризация

Было (для тестовых примеров {(xi , yi )}Ni=1):

RSS(L(w) =12

N∑i=1

(f (xi ,w) − yi )2.

Стало:

RSS(w) =12

N∑i=1

(f (xi ,w) − yi )2 +

λ

2‖w‖2 ,

где λ – коэффициент регуляризации (его надо будеткак-нибудь выбрать).

Как оптимизировать эту функцию ошибки?

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Регуляризация

Да точно так же – запишем как

RSS(w) =12(y −Xw)> (y −Xw) +

λ

2w>w

и возьмём производную; получится

w∗ =(X>X+ λI

)−1X>y.

Это гребневая регрессия (ridge regression); кстати,добавление λI к матрице неполного ранга делает еёобратимой; это и есть регуляризация, и это и былоисходной мотивацией для гребневой регрессии.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Гребневая регрессия: ln λ = −∞

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Гребневая регрессия: ln λ = −18

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Гребневая регрессия: ln λ = 0

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Гребневая регрессия: коэффициенты

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Гребневая регрессия: RMS

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Другая регуляризация

Почему именно так? Почему именно λ2 ‖w‖

2?

Сегодня мы ответим на этот вопрос (позже), но, вообщеговоря, это не обязательно.

Лассо-регрессия (lasso regression) регуляризует L1-нормой,а не L2:

RSS(w) =12

N∑i=1

(f (xi ,w) − yi )2 + λ

M∑j=0

|wj |.

Но всё это выглядит странно – почему такая функцияошибки? почему такой регуляризатор? откуда брать λ?..

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регуляризация

А теперь давайте посмотрим на регрессию с совсембайесовской стороны.Напомним основу байесовского подхода:

1 найти апостериорное распределение нагипотезах/параметрах:

p(θ | D) ∝ p(D |θ)p(θ)

(и/или найти максимальную апостериорную гипотезуarg maxθp(θ | D));

2 найти апостериорное распределение исходов дальнейшихэкспериментов:

p(x | D) ∝∫θ∈Θ

p(x | θ)p(D |θ)p(θ)dθ.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регуляризация

В нашем рассмотрении пока не было никаких априорныхраспределений.

Давайте какое-нибудь введём; например, нормальное(почему так – позже):

p(w) = N (w | µ0,Σ0).

Рассмотрим набор данных X = {x1, . . . ,xN } со значениямиt = {t1, . . . , tN }. В этой модели мы предполагаем, чтоданные независимы и одинаково распределены:

p(t | X,w, σ2) =

N∏n=1

N(tn | w>φ(xn), σ

2).

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регуляризация

Тогда наша задача – посчитать

p(w | t) ∝ p(t | X,w, σ2)p(w)

= N (w | µ0,Σ0)

N∏n=1

N(tn | w>φ(xn), σ

2).

Давайте подсчитаем.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регуляризация

Получится

p(w | t) = N (w | µN ,ΣN),

µN = ΣN

(Σ−1

0 µ0 +1σ2Φ

>t

),

ΣN =

(Σ−1

0 +1σ2Φ

)−1

.

Теперь давайте подсчитаем логарифм правдоподобия.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Байесовская регуляризация

Если мы возьмём априорное распределение около нуля:

p(w) = N (w | 0,1αI),

то логарифм правдоподобия получится

ln p(w | t) = −1

2σ2

N∑n=1

(tn −w>φ(xn)

)2−α

2w>w + const,

то есть в точности гребневая регрессия.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Пример

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Пример

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Пример

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Пример

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Лассо

Теперь давайте рассмотрим лассо-регрессию:

L(w) =12

N∑i=1

(f (xi ,w) − yi )2 + λ

p∑j=0

|wj |.

Главное отличие – в форме ограничений (т.е. формеаприорного распределения); что это вообще значит?

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Лассо

Мы можем переписать регрессию с регуляризаторомпо-другому:

w∗ = arg minw

12

N∑i=1

(f (xi ,w) − yi )2 + λ

p∑j=0

|wj |

,эквивалентно

w∗ = arg minw

{12

N∑i=1

(f (xi ,w) − yi )2

}при

p∑j=0

|wj | ≤ t.

Упражнение. Докажите это.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Гребень и лассо

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Гребень и лассо

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Обобщение

Можно рассмотреть обобщение гребневой илассо-регрессии:

L(w) =12

N∑i=1

(f (xi ,w) − yi )2 + λ

p∑j=0

(|wj |)q.

Упражнение. Какому априорному распределению напараметры w соответствует эта задача?

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация Линейная регрессия

Разные q

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация

Классификация по-байесовскиЛогистическая регрессия

Outline

1 Линейная регрессияЛинейная регрессия

2 Линейная классификацияКлассификация по-байесовскиЛогистическая регрессия

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация

Классификация по-байесовскиЛогистическая регрессия

Классификация

Теперь – о задаче классификации. Пусть есть несколькоклассов {Ck }, и мы хотим узнать, к какому классупринадлежит x.

Небайесовский подход – придумать функцию f (x)(дискриминант), которая будет выдавать метку класса k(пример: расстояние до разделяющей поверхности).

Байесовский подход – оценить распределения p(x | Ck) поотдельности для каждого класса Ck , а затеммаксимизировать апостериорную вероятность:

k∗ = arg maxkp(Ck | x) = arg maxkp(x | Ck)p(Ck).

Ну, или просто напрямую искать p(Ck | x), если это проще.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация

Классификация по-байесовскиЛогистическая регрессия

Классификация

Чем байесовский подход лучше:если нужно минимизировать меняющиеся риски(коэффициенты при p(Ck | x) меняются), не нужнопереобучать модель;можно скомпенсировать несбалансированные априорныераспределения;можно совместить разные модели – если есть p(Ck | x) иp(Ck | y), можно предположить условную независимость(наивный байес) и подсчитать

p(Ck | x,y) ∝ p(x,y | Ck)p(Ck) ∝

p(x | Ck)p(y | Ck)p(Ck) ∝p(Ck | x)p(Ck | y)

p(Ck).

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация

Классификация по-байесовскиЛогистическая регрессия

Логистическая регрессия

Давайте каждому классу сопоставим плотность p(x | Ck),найдём априорные распределения p(Ck), будем искатьp(Ck | x) по теореме Байеса.

Для двух классов:

p(C1 | x) =p(x | C1)p(C1)

p(x | C1)p(C1) + p(x | C2)p(C2).

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация

Классификация по-байесовскиЛогистическая регрессия

Логистическая регрессия

Перепишем:

p(C1 | x) =p(x | C1)p(C1)

p(x | C1)p(C1) + p(x | C2)p(C2)=

11+ e−a = σ(a),

где

a = lnp(x | C1)p(C1)p(x | C2)p(C2)

, σ(a) =1

1+ e−a .

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация

Классификация по-байесовскиЛогистическая регрессия

Логистическая регрессия

σ(a) – логистический сигмоид:

σ(a) =1

1+ e−a

σ(−a) = 1− σ(a).

a = ln(σ

1−σ

)– логит-функция.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация

Классификация по-байесовскиЛогистическая регрессия

Логистическая регрессия

В случае нескольких классов получится

p(Ck | x) =p(x | Ck)p(Ck)∑j p(x | Cj)p(Cj)

=eak∑j e

aj.

Здесь ak = ln p(x | Ck)p(Ck).eak∑j eaj – нормализованная экспонента, или

softmax-функция (сглаженный максимум).

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация

Классификация по-байесовскиЛогистическая регрессия

Логистическая регрессия

Итак, предположим, что у нас два класса, и апостериорноераспределение – логистический сигмоид на линейнойфункции:

p(C1 | φ) = y(φ) = σ(w>φ), p(C2 | φ) = 1− p(C1 | φ).

Можно ввести предположения о виде p(C | φ) – например,предположить классы гауссовскими; так получаются LDA(linear discriminative analysis) и QDA (quadraticdiscriminative analysis).

Логистическая регрессия – это когда мы напрямуюоптимизируем w.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация

Классификация по-байесовскиЛогистическая регрессия

Логистическая регрессия

Для датасета {φn, tn}, tn ∈ {0, 1}, φn = φ(xn):

p(t | w) =

N∏n=1

y tnn (1− yn)

1−tn , yn = p(C1 | φn).

Ищем параметры максимального правдоподобия,минимизируя − ln p(t | w):

E (w) = − ln p(t | w) = −

N∑n=1

[tn ln yn + (1− tn) ln(1− yn)] .

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация

Классификация по-байесовскиЛогистическая регрессия

Логистическая регрессия

Пользуясь тем, что σ ′ = σ(1− σ), берём градиент:

∇E (w) =

N∑n=1

(yn − tn)φn.

Если теперь сделать градиентный спуск, получим как разразделяющую поверхность.

Тут всё не так просто – если данные действительноразделимы, то может получиться жуткий оверфиттинг(‖w‖→∞), а для решения других байесовских задачнужны более сложные приближённые алгоритмы; но обэтом уже не будем.

Сергей Николенко Линейные модели

Линейная регрессияЛинейная классификация

Классификация по-байесовскиЛогистическая регрессия

Thank you!

Спасибо за внимание!

Сергей Николенко Линейные модели

top related