Jak zacząć korzystać z uczenia maszynowego?

Próby projektowania maszyn mądrzejszych od ludzi nie są niczym nowym.

Jednym z bardzo wczesnych ataków, jakie informatyka przeprowadziła na ludzką „inteligencję”, była gra w szachy. Szachy są (czy powinniśmy powiedzieć, że były?) przyjmowane przez wielu jako ostateczny test ludzkiego intelektu i kreatywności, aw latach sześćdziesiątych i siedemdziesiątych istniały różne szkoły myślenia w informatyce.

Niektórzy uważali, że to tylko kwestia czasu, zanim komputery wyprzedzą ludzi w grze w szachy, podczas gdy inni wierzyli, że to się nigdy nie stanie.

Kasparow kontra Deep Blue

Najbardziej sensacyjnym wydarzeniem z udziałem człowieka kontra maszyna w bitwie myśli był mecz szachowy z 1996 roku pomiędzy ówczesnym mistrzem świata Garrym Kasparowem (i prawdopodobnie najlepszym szachistą wszechczasów) i Głęboki błękitsuperkomputer IBM zaprojektowany na to wydarzenie.

Źródło obrazu: Wikipedia

Krótko mówiąc, Kasparow wygrał przekonująco mecz 1996 (4-2), ale przegrał rewanż w 1997 (4,5-3,5) pośród wielu spór i zarzuty bezpośredniego oszustwa Kasparowa wobec IBM.

Niezależnie od tego, skończyła się era szachów i informatyki. Komputery były mądrzejsze niż jakikolwiek żywy człowiek. IBM, zadowolony z zemsty, zdemontował Deep Blue i ruszył dalej.

Dzisiaj żaden arcymistrz nie jest w stanie pokonać żadnego zwykłego silnika szachowego działającego na zwykłym sprzęcie.

Czym nie jest uczenie maszynowe?

Zanim przyjrzymy się dokładniej uczeniu maszynowemu, usuńmy z drogi kilka nieporozumień. Uczenie maszynowe nie jest w żadnym razie próbą replikacji ludzkiego mózgu. Pomimo sensacyjnych przekonań takich jak Elon Musk, informatycy utrzymują, że nie szukają tego świętego ziarna, a już na pewno nie są mu bliskie.

Mówiąc najprościej, uczenie maszynowe to praktyka stosowania procesów uczenia się przez przykład na komputerach. Kontrastuje to z tradycyjnym podejściem polegającym na poleganiu na ludzkim programiście, który wymyśla wszystkie możliwe scenariusze i zasady twardego kodu dla nich w systemie.

Szczerze mówiąc, na tym polega uczenie maszynowe: dostarczanie tony danych do komputera, aby mógł uczyć się na przykładach (próba → błąd → porównanie → poprawa), zamiast polegać na kodzie źródłowym.

Zastosowania uczenia maszynowego

Tak więc, jeśli uczenie maszynowe nie jest czarną magią i nie spowoduje powstania Terminatorów, do czego jest przydatne?

Uczenie maszynowe pomaga w przypadkach, w których tradycyjne programowanie jest płaskie, a przypadki te zazwyczaj należą do jednej z dwóch kategorii.

Jak sama nazwa wskazuje, Klasyfikacja dotyczy prawidłowego etykietowania rzeczy, podczas gdy Prognozowanie ma na celu skorygowanie przyszłych prognoz, biorąc pod uwagę wystarczająco duży zestaw danych dotyczących przeszłych wartości.

Niektóre interesujące zastosowania uczenia maszynowego to:

Filtrowanie spamu

Spam e-mailowy jest wszechobecny, ale próba jego powstrzymania może być koszmarem. Jak definiuje się spam? Czy to obecność określonych słów kluczowych? A może sposób, w jaki jest napisany? Trudno wymyślić wyczerpujący zestaw zasad, jeśli chodzi o program.

Dlatego korzystamy z uczenia maszynowego. Pokazujemy systemowi miliony wiadomości spamowych i niebędących spamem i pozwalamy mu rozgryźć resztę. To był sekret doskonałych filtrów antyspamowych Gmaila, które wstrząsnęły osobistą pocztą e-mail na początku XXI wieku!

Zalecenia

Wszystkie duże firmy e-commerce mają dziś potężne systemy rekomendacji. Czasami ich zdolność do polecania rzeczy, które „możemy” uznać za przydatne, jest niezwykle dokładna, mimo że nigdy wcześniej nie kliknęliśmy tego przedmiotu.

Zbieg okoliczności? Zupełnie nie!

Uczenie maszynowe ciężko pracuje tutaj, pożerając terabajty po terabajtach danych i próbując przewidzieć nasze zmienne nastroje i preferencje.

Chatboty

Czy natknąłeś się na obsługę klienta pierwszego poziomu, która wydawała się dziwnie zautomatyzowana, a mimo to była w stanie prowadzić interesującą rozmowę?

Cóż, w takim razie zostałeś pokonany przez uczenie maszynowe!

Uczenie się z rozmów i ustalanie, co powiedzieć, kiedy to nadchodząca i ekscytująca dziedzina aplikacji chatbota.

Usuwanie chwastów

W rolnictwie roboty oparte na uczeniu maszynowym są wykorzystywane do selektywnego opryskiwania chwastów i innych niechcianych roślin wśród upraw.

W przeciwnym razie musiałoby to być zrobione ręcznie lub byłoby szalenie marnotrawstwem, ponieważ system spryskałby produkt również zabójczym płynem!

Interakcja głosowa z systemami komputerowymi to już nie science fiction. Dziś mamy cyfrowych asystentów, takich jak Alexa, Siri i Google Home, które potrafią werbalnie przyjmować polecenia i nie psują (no, prawie!).

Niektórzy mogą twierdzić, że najlepiej unikać tego wynalazku, ponieważ sprawia, że ​​ludzkość jest bardziej leniwa niż kiedykolwiek, ale nie można spierać się ze skutecznością.

Diagnoza medyczna

Jesteśmy u progu rewolucji w diagnostyce medycznej, ponieważ systemy oparte na uczeniu maszynowym zaczynają przewyższać doświadczonych lekarzy w zakresie diagnoza przez promienie rentgenowskie itp.

Należy pamiętać, że nie oznacza to, że wkrótce lekarze nie będą potrzebni, ale że jakość opieki medycznej dramatycznie wzrośnie, a koszty spadną (chyba że kartele biznesowe dyktują inaczej!).

To była tylko próbka tego, do czego służy uczenie maszynowe. W dzisiejszych czasach dzieją się autonomiczne samochody, boty do grania w gry strategiczne, maszyny do składania koszulek, łamanie captcha i kolorowanie czarno-białych zdjęć.

Rodzaje uczenia maszynowego

Techniki uczenia maszynowego są dwojakiego rodzaju.

Uczenie nadzorowane, w którym systemem kieruje ludzki osąd, oraz Uczenie się nienadzorowane, w którym system musi sam się uczyć. Innym sposobem powiedzenia tego samego byłoby to, że w Supervised Learning mamy zestaw danych zawierający zarówno dane wejściowe, jak i oczekiwane dane wyjściowe, które system wykorzystuje do porównania i autokorekty. Jednak w nienadzorowanym uczeniu się nie ma danych wyjściowych, które można by zmierzyć, więc wyniki mogą się znacznie różnić.

Ekscytująca i mrożąca krew w żyłach aplikacja nienadzorowanego uczenia maszynowego?

Były to boty grające w gry planszowe, w których program uczy się zasad gry i warunków wygranej, a następnie pozostawia się samemu sobie. Program następnie rozgrywa miliony gier przeciwko sobie, ucząc się na swoich błędach i wzmacniając korzystne decyzje.

Jeśli masz wystarczająco mocny komputer, światową sztuczną inteligencję możesz przygotować w ciągu kilku godzin!

Poniższe obrazy zwięźle ilustrują te pomysły (źródło: Medium):

Zasoby ułatwiające rozpoczęcie pracy z uczeniem maszynowym

Więc teraz, gdy jesteś już zafascynowany uczeniem maszynowym i tym, jak może pomóc Ci podbić świat, od czego zacząć?

Poniżej wymieniłem kilka fantastycznych zasobów w Internecie, które mogą pomóc w osiągnięciu biegłości w uczeniu maszynowym bez uzyskania doktoratu. w informatyce! Jeśli nie jesteś badaczem uczenia maszynowego, uznasz, że dziedzina uczenia maszynowego jest równie praktyczna i przyjemna jak programowanie w ogóle.

Więc nie martw się, bez względu na obecny poziom możesz, jak dobry program uczenia maszynowego, uczyć się i stawać się coraz lepszym.

#1. Programowanie

Pierwszym wymogiem wejścia do uczenia maszynowego jest nauka programowania. Dzieje się tak, ponieważ systemy uczenia maszynowego mają postać bibliotek dla różnych języków programowania.

Najbardziej polecany jest Python, częściowo dlatego, że jest niesamowicie przyjemny do nauki, a częściowo dlatego, że ma ogromny ekosystem bibliotek i zasobów.

The urzędnik Przewodnik dla początkujących to świetne miejsce na rozpoczęcie, nawet jeśli znasz trochę Pythona. Albo weź to Kurs Bootcamp zostać bohaterem od zera.

#2. Pomyśl o statystykach

Kiedy już skończysz z podstawami Pythona, moją drugą rekomendacją byłoby przejrzenie dwóch wybitnych książek. Są w 100% bezpłatne i dostępne do pobrania w formacie PDF. Pomyśl o statystykach oraz Pomyśl Bayesa to dwa nowoczesne klasyki, które każdy początkujący inżynier uczenia maszynowego powinien uwewnętrznić.

#3. Udemy

W tym momencie polecam wziąć kilka kursów z Udemy. Interaktywny format we własnym tempie pomoże Ci wejść w sedno i zbudować pewność siebie.

Upewnij się, że zapoznałeś się z podglądem kursu, recenzjami (zwłaszcza tymi negatywnymi!) i ogólnym stylem kursu, zanim zaczniesz.

W serwisie YouTube można również bezpłatnie natknąć się na niesamowite samouczki. Sentdex to jeden z takich kanałów, który mogę polecić, gdzie zawsze jest mnóstwo zabawy, ale jego podejście nie jest przyjazne dla początkujących.

#4. Andrzej Ng

Kurs prowadzony przez Andrew Ng on Coursera jest prawdopodobnie najpopularniejszym zasobem edukacyjnym dotyczącym podstaw uczenia maszynowego.

Chociaż używa języka programowania R, pozostaje niezrównany w sposobie traktowania tematu i jasnych wyjaśnień. Dzięki temu kursowi Andrew Ng osiągnął nieco boską postawę w kręgach ML, a ludzie liczą na jego najwyższą mądrość (nie żartuję!).

To nie jest kurs dla początkujących, ale jeśli już dobrze radzisz sobie z danymi i nie masz nic przeciwko dodatkowym badaniom, ten kurs jest najlepszą rekomendacją.

#5. Udacity

Zostań inżynierem uczenia maszynowego, zdobywając ten nanostopień przez Udacity.

Ukończenie i zakończenie kursu zajmie około 3 miesięcy, oczekuje się, że będziesz miał dobre pojęcie o algorytmach uczenia maszynowego, jak je modelować i wdrażać do produkcji.

Wniosek

Zasoby w Internecie nie mają końca, a na początku możesz łatwo się zgubić. Większość samouczków i dyskusji jest matematycznie trudna lub pozbawiona struktury i może złamać twoją pewność siebie, zanim jeszcze zaczniesz.

Dlatego chciałbym cię ostrzec przed samozniszczeniem: trzymaj się skromnie i poruszaj się minimalnymi krokami. Uczenie maszynowe nie jest czymś, z czym możesz się oswoić w ciągu jednego lub dwóch dni, ale wkrótce zaczniesz się dobrze bawić i kto wie, może nawet stworzysz coś przerażającego!

Baw się dobrze!