Machine Learning — notatki z pierwszego tygodnia kursu uniwersytetu Stanford. Regresja liniowa.

Milena Michalska
rakieciara blog by Milena Michalska
4 min readAug 19, 2018

Opisałam swój problem z machine learningiem na jednej z grup(Kaggle Polska). Otóż mam za sobą parę projektów robionych z poradników, te wszystkie Get started with TensorFlow, ale we wszystkim co wykracza poza tutorial, albo co mam zacząć od zupełnego początku, się bardzo łatwo gubię. Podejrzewam że to dlatego, że nie mam w ogóle podstaw i tak na prawdę nie rozumiem głęboko, co robią machine learningowe biblioteki.

Opisałam też swoje rozwiązanie — Learn Machine Learning in 3 Months, ścieżkę nauki zaprojektowaną przez youtubera Siraja Ravala. Po komentarzach na grupie i pod samym filmem zrewidowałam swoje plany i zawróciłam jak asteroida wchodząc w pole grawitacyjne planety — zaczęłam kultowy i wszędzie polecany na początek kurs uniwersytetu Stanford na platformie Coursera. Żeby móc łatwo wrócić do przerobionej wiedzy i ją utrwalić,postanowiłam przygotować notatki, z których i wy możecie korzystać na początku swojej machine learningowej drogi. Tydzień pierwszy zawiera zagadnienia takie jak — wstęp, model i cost function, parameter learning(metoda gradientu prostego) i powtórkę z algebry liniowej.

Wstęp

Program komputerowy dostaje zadanie uczenia się z doświadczenia E, przy użyciu zadań klasy T i skali wydajności P, w taki sposób, żeby efektywność w zadaniu z T, mierzona poprzez P, podnosiła się wraz z kolejnymi doświadczeniami E.

Przykład: E to doświadczenie wielu gier w warcaby. T — pojedyncza gra. P — prawdopodobieństwo, że program wygra.
Zadaniem programu jest tak realizować wielokrotne gry w szachy, żeby efektywność w pojedynczej grze, mierzona poprzez prawdopodobieństwo wygranej, wzrastała z każdą koleją grą.

Supervised learning (uczenie nadzorowane) — algorytm dostaje zestaw,dane wejściowe i przyporządkowany do nich wynik. Dwoma jego metodami jest regression(regresja), kiedy wynik jest ciągły, np. wykres cen nieruchomości w zależności od jego wielkości i classification(klasyfikacja), gdzie wynikiem jest wartość dyskretna(0 albo 1) np. czy dana nieruchomość zostanie sprzedana za więcej czy mniej niż x.

Unsupervised learning (uczenie nienadzorowane) — jedyne co otrzymuje algorytm to dane wejściowe. Metodą działania takich algorytmów jest klastrowanie, czyli dzielenie danych które mają ze sobą coś wspólnego w klastry/zbiory. Takie uczenie może być wykorzystywane przez koncerny reklamowe, mające dane o populacji, żeby w sposób zautomatyzowany podzielić ich na grupy(według demografii, zwyczajów zakupowych), do których można skierować tworzona reklamę.
Korzystałam z rozdziału Unsupervised learning książki Machine Learning for Humans(darmowy ebook), żeby znaleźć przykłady, które bardziej by do mnie przemawiały niż te z kursu.

Model and cost function

Model danych — używamy symbolu x(i) jako oznaczenia danej wejściowej i y(i) dla danej wyjściowej. Argument i rezultat łączymy w pary (x(i),y(i)), dla uzyskania training example(przykładu treningowego). Zbiór takich par, gdzie i = 1, …, m, nazywamy training set(zestaw treningowy) lub po prostu dataset(zestaw danych).
Zadaniem naszego algorytmu uczącego się w sposób nadzorowany, jest znalezienie funkcji h : X → Y, która z jak największą skutecznością przewiduje wartość y dla danego x. Funkcja h jest nazywana hypothesis(hipotezą).
Jeśli wartość y, którą przewidujemy, jest ciągła, wtedy problem można rozwiązać z pomocą regresji.

Machine learning w tym przypadku polega na dobraniu właściwych parametrów θ0(bias, czyli skośność)​ i θ1(slope, czyli nachylenie), podstawiając kolejne wartości i sprawdzając dla nich J, czyli funkcję kosztu.
Cost function
(funkcja kosztu) — za jej pomocą mierzymy dokładność naszej hipotezy(funkcji h). Jest to funkcja odległości punktu x(i), czyli wartości z datasetu od funkcji h, czyli naszego przewidywania.

Parameter learning

Animacja pochodzi z artykułu na stronie xpertup.com

Gradient descent (metoda gradientu prostego) — metoda polegająca na schodzeniu w dół aż do uzyskania minimalnej wartości (najbliższej zgodności wartości funkcji h z rzeczywistymi wartościami z datasetu).

j — numer indeksu
α — krok

Powyższą funkcję należy powtarzać do uzyskania zbieżności.

Powtórka algebry liniowej

Formuły matematyczne zapisałam z pomocą aplikacji mathcha.io

Macierz(matrix) i wektor(vector)

Wektor jest to macierz o wymiarach ix1.

Dodawanie i odejmowanie macierzy
Mnożenie skalarne macierzy
Mnożenie dwóch macierzy

Mnożenie macierzy nie jest przemienne, oznacza to, że ABBA.
Mnożenie macierzy jest łączne, czyli (A∗B)∗C=A∗(B∗C).

Macierz tożsamościowa i inwersja macierzy

Macierzą tożsamościową (identity matrix) nazywamy taką macierz, której przekątna wypełniona jest jedynkami, a pozostałe pola to 0. Możemy ją stworzyć w programie Matlab/Octave(opensourcowy odpowiednik Matlaba) za pomocą funkcji eye(n), gdzie n to wymiar macierzy(nxn).
Macierz odwrotna (inverse matrix) do macierzy A to taka macierz, która po pomnożeniu przez macierz A da nam macierz tożsamościową.

Macierz transponowana

Gotowa na tydzień drugi

Z wiedzą z pierwszego tygodnia spisaną w jednym miejscu, mogę śmiało wkraczać w kolejny tydzień kursu, który zawiera konfigurację i podstawy używania środowiska Matlab/Octave.

--

--