Ta seria jest próbą uczynienia sieci neuronowych zrozumiałymi dla ludzi, którzy nie wiedzą nic więcej niż matematykę w szkole średniej. Nie ma większego horroru niż oglądanie żmudnych równań matematycznych i długich wierszy kodu za kodem, nie mając pojęcia, jak z nich skorzystać. Odbiera całą zabawę!

Bez zbędnych ceregieli zacznijmy od zrozumienia prostego problemu klasyfikacji, który delikatnie wprowadzi koncepcje stojące za sieciami neuronowymi.

Załóżmy, że jesteś menadżerem ds. rekrutacji w firmie, która chce zatrudnić studentów na letnie staże. Możesz otrzymać CV studenta, który ma średnią 3.0 i ukończył 10 osobistych projektów, decydujesz się zatrudnić studenta. Inne CV może zawierać 1.0 GPA i 2 projekty osobiste, odrzucasz aplikację. Teraz musisz zdecydować się na kolejne CV z oceną średnią 2,7 i 8 projektami osobistymi, czy zostanie zaakceptowane, czy nie?

Aby znaleźć odpowiedź, zacznijmy od naniesienia istniejących danych na wykres z GPA na osi X i liczbą projektów na osi Y.

Niebieska kropka pokazuje ucznia, który został przyjęty, pomarańczowa kropka to studenta, który został odrzucony, a szara kropka to student, na którego musimy się zdecydować. Teraz dodajmy wszystkie akceptacje i odrzucenia, które mogły mieć miejsce w ciągu ostatnich kilku lat i dodaj te dane do naszego wykresu.

Zwróć uwagę na linię oddzielającą niebieskie od pomarańczowych kropek, wyraźnie wskazuje, że student z oceną 2,7 GPA i 8 projektami powinien zostać przyjęty. Ten wiersz nazywa się „modelem” w żargonie AI/sieci neuronowych/ML (zawsze wpadałem w panikę, gdy usłyszałem to określenie, ale naprawdę nie jest tak źle, prawda?). Nam, ludziom, łatwo jest narysować tę linię, ale wiąże się to z przyziemnym zadaniem uważnego wykreślenia każdego punktu danych, a następnie znalezienia linii najlepiej dopasowanej. Dobra wiadomość, komputery stworzono po to, aby odciągnąć od nas całą tę nudną pracę, abyśmy mogli skupić się na ważniejszych zadaniach. Jak więc sprawić, by komputery znalazły dla nas model?

Zacznijmy od podstawowej matematyki. Oś poziomą odpowiadającą GPA oznaczymy zmienną x1, a oś pionową odpowiadającą liczbie projektów – zmienną x2. Zatem linia graniczna oddzielająca niebieskie i pomarańczowe kropki będzie miała równanie liniowe:

To równanie tak naprawdę przedstawia wynik ucznia i można je zapisać w formacie:

Teraz, ilekroć chcemy sprawdzić, czy nowy uczeń kwalifikuje się, czy nie, wprowadzamy każdą z wartości w tym równaniu i jeśli wynik jest pozytywny, akceptujemy ucznia, w przeciwnym razie nie. Wpiszmy 2,7 ​​jako GPA i 8 jako liczbę projektów. Otrzymujemy ocenę 3,9. Uczeń kwalifikuje się!

W bardziej ogólnej formie będziemy mieli równanie modelu jako:

lub w postaci wektorowej jako:

Gdzie

I

i po prostu bierzemy iloczyn dwóch wektorów. Zgodnie z konwencją, W będzie oznaczało wagi, x dane wejściowe, a b – obciążenie. Możemy oznaczyć wyniki pozytywne jako 1 (niebieskie kropki), a wyniki negatywne jako 0 (pomarańczowe kropki).

Ostatecznie prognoza naszego modelu będzie następująca:

co oznacza, że ​​nasz algorytm będzie próbował przewidzieć 1, jeśli wynik jest większy niż 0, i 0, jeśli wynik jest mniejszy niż 0. Im dokładniej nasz algorytm może przewidywać etykiety, które już mają dane, tym lepiej to działa, co jest dokładnie równoważny linii najlepszego dopasowania, która oddziela niebieskie kropki od pomarańczowych kropek.

W tym artykule zatrzymam się w tym miejscu i mam nadzieję, że już zaznajomiliśmy się z pewnymi zagadnieniami związanymi z klasyfikacją, ich działaniem i sposobem, w jaki algorytmy próbują znaleźć przewidywania. Było to proste tło, które chciałem przedstawić, zanim zagłębimy się w szczegóły. zanurz się w niesamowitym świecie sieci neuronowych. Do następnego razu, adios!

Sugestie ulepszeń są mile widziane :)