"Standardowa edukacja zapewni Ci przeżycie. Samokształcenie - fortunę".   Jim Rohn

"Jeśli trwacie w nauce mojej, jesteście prawdziwie moimi uczniami i POZNACIE PRAWDĘ ,A PRAWDA WAS WYZWOLI"    - Jezus z Nazaretu

Deep Learning (II)



Przedstawiamy zasady uczenia maszynowego

Jak omówiono w Części 1, koncepcja uczenia się przez komputer różni się od koncepcji uczenia się przez ludzi. Jednak Część 1 tak naprawdę nie opisuje uczenia maszynowego, rodzaju uczenia się, z którego korzysta komputer, w żaden sposób. W końcu to, na co naprawdę patrzysz, to zupełnie inny rodzaj uczenia się, który niektórzy ludzie postrzegają jako połączenie matematyki, dopasowywania wzorców i przechowywania danych. Ta część rozpoczyna się od wskazania drogi do głębszego zrozumienia działania uczenia maszynowego. Jednak wyjaśnienie uczenia maszynowego nie pomaga całkowicie zrozumieć, co się dzieje, gdy z nim pracujesz. Istotne jest również to, jak działa uczenie maszynowe, o czym mowa w kolejnej części. W tej sekcji odkryjesz, że nie istnieją doskonałe metody przeprowadzania analiz. Być może będziesz musiał poeksperymentować z analizą, aby uzyskać oczekiwany wynik. Ponadto dostępne są różne podejścia do uczenia maszynowego, a każde z nich ma zalety i wady. Trzecia część obejmuje to, co odkryłeś w poprzednich dwóch częściach, i pomaga to zastosować. Bez względu na to, jak kształtujesz dane i przeprowadzasz na nich analizę, uczenie maszynowe jest w niektórych przypadkach niewłaściwym podejściem i nigdy nie zapewni użytecznych wyników. Znajomość właściwych zastosowań uczenia maszynowego jest niezbędna, jeśli chcesz otrzymywać spójne wyniki, które pomagają w wykonywaniu interesujących zadań. Celem uczenia maszynowego jest nauczenie się czegoś interesującego z danych, a następnie zrobienie z nimi czegoś interesującego.

Definiowanie uczenia maszynowego

Oto krótka definicja uczenia maszynowego: jest to aplikacja sztucznej inteligencji, która może automatycznie uczyć się i ulepszać na podstawie doświadczenia, bez konieczności bezpośredniego zaprogramowania. Uczenie się następuje w wyniku analizowania coraz większej ilości danych, więc podstawowe algorytmy się nie zmieniają, ale wewnętrzne wagi i odchylenia kodu użyte do wybrania konkretnej odpowiedzi tak. Oczywiście nic nie jest takie proste. W kolejnych sekcjach omówiono więcej na temat tego, czym jest uczenie maszynowe, abyś mógł zrozumieć jego miejsce w świecie sztucznej inteligencji i co czerpie z uczenia głębokiego. Naukowcy zajmujący się danymi często nazywają technologię używaną do implementacji uczenia maszynowego algorytmami. Algorytm to seria operacji wykonywanych krok po kroku, zwykle obliczeń, które mogą rozwiązać określony problem w skończonej liczbie kroków. W uczeniu maszynowym algorytmy wykorzystują serię skończonych kroków, aby rozwiązać problem, ucząc się na podstawie danych.

Zrozumienie, jak działa uczenie maszynowe

Algorytmy uczenia maszynowego uczą się, ale często trudno jest znaleźć dokładne znaczenie terminu uczenie się, ponieważ istnieją różne sposoby wydobywania informacji z danych, w zależności od tego, jak zbudowany jest algorytm uczenia maszynowego. Ogólnie proces uczenia się wymaga ogromnych ilości danych, które zapewniają oczekiwaną odpowiedź przy określonych danych wejściowych. Każda para wejście / odpowiedź stanowi przykład, a więcej przykładów ułatwia algorytmowi naukę. Dzieje się tak, ponieważ każda para wejście / odpowiedź pasuje do linii, klastra lub innej reprezentacji statystycznej, która definiuje dziedzinę problemu. Uczenie się to czynność polegająca na optymalizacji modelu, który jest matematyczną, podsumowaną reprezentacją samych danych, tak aby mógł przewidzieć lub w inny sposób określić odpowiednią reakcję, nawet jeśli otrzyma dane wejściowe, których wcześniej nie widział. Im dokładniej model może podać prawidłowe odpowiedzi, tym lepiej model nauczył się na podstawie dostarczonych danych wejściowych. Algorytm dopasowuje model do danych, a ten proces dopasowywania jest uczeniem. Rysunek przedstawia niezwykle prosty wykres, który symuluje to, co dzieje się w uczeniu maszynowym.



W tym przypadku, zaczynając od wartości wejściowych 1, 4, 5, 8 i 10 i łącząc je z odpowiadającymi im wyjściami 7, 13, 15, 21 i 25, algorytm uczenia maszynowego ustala, że najlepszym sposobem reprezentacji Relacja między wejściem a wyjściem to formuła 2x + 5. Ta formuła definiuje model używany do przetwarzania danych wejściowych - nawet nowych, niewidocznych danych - do obliczania odpowiadającej im wartości wyjściowej. Linia trendu (model) przedstawia wzorzec utworzony przez ten algorytm, tak że nowe dane wejściowe 3 dadzą przewidywany wynik równy 11. Mimo że większość scenariuszy uczenia maszynowego jest znacznie bardziej skomplikowana (a algorytm nie może utworzyć reguły, które dokładnie odwzorowują każde wejście na precyzyjne wyjście), przykład daje podstawowe pojęcie o tym, co się dzieje. Zamiast indywidualnie programować odpowiedź dla danych wejściowych 3, model może obliczyć poprawną odpowiedź na podstawie par wejście / odpowiedź, których się nauczył.

Zrozumieć, że to czysta matematyka

Główną ideą uczenia maszynowego jest to, że można przedstawić rzeczywistość za pomocą funkcji matematycznej, której algorytm nie zna z góry, ale której może odgadnąć po obejrzeniu pewnych danych (zawsze w postaci sparowanych danych wejściowych i wyjściowych). Możesz wyrazić rzeczywistość i całą jej trudną złożoność za pomocą nieznanych funkcji matematycznych, które algorytmy uczenia maszynowego znajdują i udostępniają jako modyfikację ich wewnętrznej funkcji matematycznej. Oznacza to, że każdy algorytm uczenia maszynowego jest zbudowany wokół modyfikowalnej funkcji matematycznej. Funkcję można modyfikować, ponieważ ma do tego celu wewnętrzne parametry lub wagi. W rezultacie algorytm może dostosować funkcję do określonych informacji zaczerpniętych z danych. Ta koncepcja jest głównym pomysłem dla wszystkich rodzajów algorytmów uczenia maszynowego. Uczenie się w uczeniu maszynowym jest czysto matematyczne i kończy się powiązaniem pewnych danych wejściowych z określonymi wynikami. Nie ma to nic wspólnego ze zrozumieniem, czego nauczył się algorytm. (Kiedy ludzie analizują dane, w pewnym stopniu budujemy zrozumienie danych). Proces uczenia się jest często opisywany jako szkolenie, ponieważ algorytm jest uczony, aby dopasować poprawną odpowiedź (dane wyjściowe) do każdego oferowanego pytania (dane wejściowe. Uczenie maszynowe, pomimo braku świadomego zrozumienia i bycia procesem matematycznym, może okazać się przydatne w wielu zadaniach. Zapewnia wielu aplikacjom sztucznej inteligencji moc naśladowania racjonalnego myślenia w określonym kontekście, gdy uczenie się odbywa się przy użyciu odpowiednich danych.

Uczenie się za pomocą różnych strategii

Uczenie maszynowe oferuje wiele różnych sposobów uczenia się na podstawie danych. W zależności od oczekiwanych wyników i typu wprowadzonych danych wejściowych, algorytmy można kategoryzować według stylu uczenia się. Wybrany styl zależy od rodzaju posiadanych danych i oczekiwanego wyniku. Cztery style uczenia się używane do tworzenia algorytmów to

•  Nadzorowane
•  Bez nadzoru
•  Samonadzorowany
•  Wzmocnienie

W poniższych sekcjach omówiono style uczenia się.

Nadzorowane

Podczas pracy z nadzorowanymi algorytmami dane wejściowe są oznaczone i mają określony oczekiwany wynik. Trening służy do tworzenia modelu dopasowanego do danych przez algorytm. W miarę postępu szkolenia przewidywania lub klasyfikacje stają się dokładniejsze. Oto kilka przykładów algorytmów uczenia nadzorowanego:

•  Regresja liniowa lub logistyczna
•  Obsługa maszyn wektorowych (SVM)
•  Naive Bayes
•  K-Nearest Neighbors (KNN)

Musisz rozróżnić między problemami regresji, których celem jest wartość liczbowa, a problemami klasyfikacyjnymi, których celem jest zmienna jakościowa, taka jak klasa lub znacznik. Zadanie regresji mogłoby określić średnie ceny domów w rejonie Bostonu, podczas gdy przykładem zadania klasyfikacyjnego jest rozróżnienie rodzajów kwiatów tęczówki na podstawie ich miary działkowej i płatkowej. Oto kilka przykładów nadzorowanego uczenia się:

Wejście danych (X): Wyjście danych (y): Aplikacja w świecie rzeczywistym

Historia zakupów klientów: lista produktów, których klienci nigdy nie kupili: system rekomendacji
Obrazy: lista pól oznaczonych nazwą obiektu: Wykrywanie i rozpoznawanie obrazu
Tekst angielski w formie pytań: Tekst angielski w formie odpowiedzi: Chatbot, aplikacja umożliwiająca konwersację
Tekst w języku angielskim: Tekst w języku niemieckim: Tłumaczenie maszynowe
Audio: Zapis tekstowy: Rozpoznawanie mowy
Obraz, dane z czujnika: Kierowanie, hamowanie lub przyspieszanie: planowanie behawioralne dla autonomicznej jazdy

Bez nadzoru

Podczas pracy z nienadzorowanymi algorytmami dane wejściowe nie są etykietowane, a wyniki nie są znane. W takim przypadku analiza struktur w danych tworzy wymagany model. Analiza strukturalna może mieć kilka celów, takich jak zmniejszenie nadmiarowości lub grupowanie podobnych danych. Przykłady uczenia się bez nadzoru to

•  Clustering
• Wykrywanie anomalii
• Sieci neuronowe

Samonadzorowany

W Internecie można znaleźć wszelkiego rodzaju rodzaje uczenia się, ale samokontrola jest odrębną kategorią. Niektórzy ludzie opisują to jako autonomiczne nadzorowane uczenie się, które daje korzyści z nadzorowanego uczenia się, ale bez całej pracy wymaganej do oznaczania danych. Teoretycznie samokontrola może rozwiązać problemy z innymi rodzajami uczenia się, z których obecnie możesz korzystać. Poniższa lista porównuje samodzielne uczenie się z innymi rodzajami uczenia się, z których korzystają ludzie.

•  Uczenie się nadzorowane: Najbliższą formą uczenia się związaną z uczeniem się bez nadzoru jest uczenie się nadzorowane, ponieważ oba rodzaje uczenia się opierają się na parach wejść i oznaczonych wynikach. Ponadto obie formy uczenia się są związane z regresją i klasyfikacją. Różnica polega jednak na tym, że samodzielne uczenie się nie wymaga od osoby etykietowania wyniku. Zamiast tego opiera się na korelacjach, osadzonych metadanych lub wiedzy dziedzinowej osadzonej w danych wejściowych w celu kontekstowego odkrycia etykiety wyjściowej.
•  Uczenie się nienadzorowane: Podobnie jak uczenie się nienadzorowane, uczenie się samodzielnie nadzorowane nie wymaga etykietowania danych. Jednak uczenie się bez nadzoru koncentruje się na strukturze danych, czyli wzorcach w danych. Dlatego nie używasz samokontroli uczenia się do zadań takich jak grupowanie, grupowanie, redukcja wymiarowości, silniki rekomendacji itp.
•  Częściowo nadzorowane uczenie: częściowo nadzorowane rozwiązanie do nauki działa jak nienadzorowane rozwiązanie do nauki, ponieważ szuka wzorców danych. Jednak częściowo nadzorowane uczenie się opiera się na połączeniu danych oznaczonych i nieoznaczonych, aby wykonywać swoje zadania szybciej niż jest to możliwe przy użyciu ściśle nieoznaczonych danych. Samodzielne uczenie się nigdy nie wymaga etykiet i używa kontekstu do wykonania swojego zadania, więc faktycznie zignorowałoby je, gdy zostały dostarczone.

Wzmocnienie

Możesz postrzegać uczenie się ze wzmocnieniem jako rozszerzenie samokontroli uczenia się, ponieważ obie formy wykorzystują to samo podejście do uczenia się z nieoznaczonymi danymi, aby osiągnąć podobne cele. Jednak uczenie się przez wzmacnianie dodaje pętlę sprzężenia zwrotnego. Kiedy rozwiązanie uczenia się ze wzmocnieniem wykonuje poprawnie zadanie, otrzymuje pozytywną informację zwrotną, która wzmacnia model w łączeniu docelowych danych wejściowych i wyjściowych. Podobnie może otrzymać negatywną informację zwrotną za nieprawidłowe rozwiązania. Pod pewnymi względami system działa tak samo, jak praca z psem w oparciu o system nagród. Szkolenie, walidacja i testowanie danych . Uczenie maszynowe jest procesem, tak jak wszystko jest procesem w świecie komputerów. Aby zbudować skuteczne rozwiązanie do uczenia maszynowego, wykonuj te zadania w razie potrzeby i tak często, jak potrzeba:

•  Szkolenie: uczenie maszynowe rozpoczyna się, gdy trenujesz model przy użyciu określonego algorytmu w odniesieniu do określonych danych. Dane szkoleniowe są oddzielne od innych danych, ale muszą być również reprezentatywne. Jeśli dane uczące nie reprezentują naprawdę domeny problemu, wynikowy model nie może dostarczyć użytecznych wyników. Podczas procesu uczenia widzisz, jak model reaguje na dane uczące i w razie potrzeby wprowadzasz zmiany w używanych algorytmach i sposobie, w jaki masujesz dane przed wprowadzeniem do algorytmu
•  Weryfikacja: wiele zbiorów danych jest wystarczająco dużych, aby podzielić je na część szkoleniową i testową. Najpierw trenujesz model przy użyciu danych uczących, a następnie weryfikujesz go przy użyciu danych testowych. Oczywiście dane testowe muszą ponownie dokładnie reprezentować dziedzinę problemu. Musi być również statystycznie zgodny z danymi uczącymi. W przeciwnym razie nie zobaczysz wyników odzwierciedlających rzeczywiste działanie modelu.
•  Testowanie: po przeszkoleniu i walidacji modelu nadal musisz przetestować go przy użyciu rzeczywistych danych. Ten krok jest ważny, ponieważ musisz sprawdzić, czy model rzeczywiście będzie działał na większym zbiorze danych, którego nie używałeś ani do szkolenia, ani do testowania. Podobnie jak w przypadku etapów szkolenia i walidacji, wszelkie dane używane na tym etapie muszą odzwierciedlać domenę problemową, z którą chcesz współdziałać przy użyciu modelu uczenia maszynowego.

Szkolenie zapewnia algorytm uczenia maszynowego z różnego rodzaju przykładami pożądanych danych wejściowych i wyjściowych, których oczekuje się od tych danych wejściowych. Algorytm uczenia maszynowego wykorzystuje następnie te dane wejściowe do tworzenia funkcji matematycznej. Innymi słowy, uczenie to proces, w którym algorytm sprawdza, jak dostosować funkcję do danych. Wynik takiej funkcji jest zwykle prawdopodobieństwem określonego wyniku lub po prostu wartością liczbową jako wyjściem. Aby dać wyobrażenie o tym, co dzieje się w procesie szkolenia, wyobraź sobie dziecko uczące się odróżniać drzewa od przedmiotów, zwierząt i ludzi. Zanim dziecko będzie mogło to zrobić w sposób niezależny, nauczyciel przedstawia dziecku pewną liczbę obrazów drzew, wraz ze wszystkimi faktami, które sprawiają, że drzewo można odróżnić od innych obiektów świata. Takimi faktami mogą być cechy, takie jak materiał drzewa (drewno), jego części (pień, gałęzie, liście lub igły, korzenie) oraz lokalizacja (posadzona w glebie). Dziecko buduje zrozumienie tego, jak wygląda drzewo, kontrastując wyświetlanie cech drzewa z obrazami innych, różnych przykładów, takich jak meble wykonane z drewna, które nie mają innych cech z drzewem. Klasyfikator systemów uczących się działa tak samo. Algorytm klasyfikatora zapewnia klasę jako wynik. Na przykład może ci powiedzieć, że zdjęcie, które podajesz jako dane wejściowe, pasuje do klasy drzewa (a nie do zwierzęcia lub osoby). Aby to zrobić, buduje swoje zdolności poznawcze, tworząc formułę matematyczną, która obejmuje wszystkie dane wejściowe w sposób, który tworzy funkcję, która może odróżnić jedną klasę od drugiej.

Szukam uogólnienia

Aby model uczenia maszynowego był przydatny, musi przedstawiać ogólny widok dostarczonych danych. Jeśli model nie śledzi wystarczająco dokładnie danych, jest niedopasowany - to znaczy niedostatecznie dopasowany z powodu braku szkolenia. Z drugiej strony, jeśli model zbyt dokładnie podąża za danymi, jest zbyt dopasowany, podążając za punktami danych jak rękawiczka z powodu zbyt intensywnego treningu. Niedopasowanie i nadmierne dopasowanie powodują problemy, ponieważ model nie jest wystarczająco uogólniony, aby uzyskać użyteczne wyniki. Biorąc pod uwagę nieznane dane wejściowe, wynikające z nich prognozy lub klasyfikacje będą zawierać duże wartości błędów. Tylko wtedy, gdy model jest prawidłowo dopasowany do danych, zapewni wyniki w rozsądnym zakresie błędu. Cała ta kwestia uogólniania jest również ważna przy podejmowaniu decyzji, kiedy zastosować uczenie maszynowe. Rozwiązanie uczenia maszynowego zawsze uogólnia od konkretnych przykładów do ogólnych przykładów tego samego rodzaju. Sposób wykonania tego zadania zależy od orientacji rozwiązania uczenia maszynowego i algorytmów użytych do jego działania. Problem naukowców zajmujących się danymi i innych osób korzystających z technik uczenia maszynowego i głębokiego uczenia się polega na tym, że komputer nie wyświetla znaku informującego o poprawnym dopasowaniu modelu do danych. Często kwestią ludzkiej intuicji jest podjęcie decyzji, kiedy model jest wystarczająco wyszkolony, aby zapewnić dobry ogólny wynik. Ponadto twórca rozwiązania musi wybrać odpowiedni algorytm z tysięcy istniejących. Bez odpowiedniego algorytmu dopasowującego model do danych wyniki będą rozczarowujące. Aby proces selekcji zadziałał, analityk danych musi posiadać

•  Dobra znajomość dostępnych algorytmów
•  Doświadczenie w pracy z takimi danymi
•  Zrozumienie pożądanego wyniku
•  Chęć eksperymentowania z różnymi algorytmami

Ostatni wymóg jest najważniejszy, ponieważ nie ma sztywnych reguł, które mówią, że określony algorytm będzie działał z każdym rodzajem danych w każdej możliwej sytuacji. Gdyby tak było, tak wiele algorytmów nie byłoby dostępnych. Aby znaleźć najlepszy algorytm, analityk danych często ucieka się do eksperymentowania z wieloma algorytmami i porównywania wyników.

Poznanie granic uprzedzeń

Twój komputer nie ma uprzedzeń. Nie ma celu dominacji nad światem ani utrudniania ci życia. W rzeczywistości komputery nie mają żadnych celów. Jedyne, co komputer może dostarczyć, to dane wyjściowe oparte na danych wejściowych i technice przetwarzania. Jednak stronniczość nadal dostaje się do komputera i na wiele sposobów wpływa na wyniki, które zapewnia:

•  Dane: same dane mogą zawierać nieprawdy lub po prostu nieprawdziwe informacje. Na przykład, jeśli dana wartość pojawia się w danych dwa razy częściej niż w świecie rzeczywistym, dane wyjściowe rozwiązania uczenia maszynowego są skażone, nawet jeśli same dane są poprawne.
•  Algorytm: użycie niewłaściwego algorytmu spowoduje, że rozwiązanie uczące się nieprawidłowo dopasuje model do danych.
•  Trening: zbyt dużo lub zbyt mało treningu zmienia sposób dopasowania modelu do danych, a tym samym do wyniku.
•  Interpretacja ludzka: nawet jeśli rozwiązanie uczenia maszynowego zwraca prawidłowy wynik, człowiek korzystający z tego wyniku może go błędnie zinterpretować. Wyniki są równie złe, a być może gorsze niż wtedy, gdy rozwiązanie uczenia maszynowego nie działa zgodnie z oczekiwaniami.

Musisz wziąć pod uwagę skutki uprzedzeń bez względu na rodzaj tworzonego rozwiązania do uczenia maszynowego. Ważne jest, aby wiedzieć, jakie rodzaje ograniczeń nakładają te uprzedzenia na Twoje rozwiązanie i czy jest ono wystarczająco niezawodne, aby zapewnić użyteczne wyniki.

Pamiętając o złożoności modelu

Prostsze jest zawsze lepsze, jeśli chodzi o uczenie maszynowe. Wiele różnych algorytmów może dostarczyć użytecznych danych wyjściowych z rozwiązania uczenia maszynowego, ale najlepszym algorytmem jest ten, który jest najłatwiejszy do zrozumienia i zapewnia najprostsze wyniki. Occam's Razor (http://math.ucr.edu/home/baez/physics/General/occam.html) jest ogólnie uznawany za najlepszą strategię do naśladowania. Zasadniczo Brzytwa Occam'a mówi ci, aby użyć najprostszego rozwiązania, które rozwiąże określony problem. Wraz ze wzrostem złożoności rośnie też możliwość wystąpienia błędów.

Biorąc pod uwagę wiele różnych dróg do nauki

Ucząca się część uczenia maszynowego sprawia, że jest ona dynamiczna - to znaczy może się zmieniać, gdy otrzyma dodatkowe dane. Zdolność uczenia się sprawia, że uczenie maszynowe różni się od innych rodzajów sztucznej inteligencji, takich jak wykresy wiedzy i systemy eksperkie. Nie sprawia, że uczenie maszynowe jest lepsze niż inne sztucznej inteligencji, ale jest po prostu przydatne w przypadku określonego zestawu problemów. Oczywiście problem z kwantyfikacją tego, co pociąga za sobą uczenie się, polega na tym, że ludzie i komputery inaczej postrzegają uczenie się. Ponadto komputery używają różnych technik uczenia się niż ludzie, a niektórzy ludzie mogą nie widzieć części uczenia się jako uczenie maszynowe w ogóle jako uczenie się. W poniższych sekcjach omówiono metody używane przez algorytmy uczenia maszynowego do uczenia się, aby można było lepiej zrozumieć, że uczenie maszynowe i uczenie się człowieka są z natury różne.

Zrozumienie, że nie ma darmowego lunchu

Być może słyszałeś powszechny mit, że można mieć wszystko na drodze do wyjścia komputera bez wkładania dużego wysiłku w znalezienie rozwiązania. Niestety, nie ma absolutnego rozwiązania żadnego problemu, a lepsze odpowiedzi są często dość kosztowne. Podczas pracy z algorytmami szybko odkrywasz, że niektóre algorytmy radzą sobie lepiej niż inne w rozwiązywaniu pewnych problemów, ale nie ma też jednego algorytmu, który najlepiej sprawdza się w przypadku każdego problemu. Dzieje się tak z powodu matematyki stojącej za algorytmami. Pewne funkcje matematyczne dobrze radzą sobie z przedstawieniem niektórych problemów, ale mogą uderzyć w ścianę w przypadku innych problemów. Każdy algorytm ma swoją specjalność.

Odkrywanie pięciu głównych podejść

Algorytmy mają różne formy i wykonują różne zadania. Jednym ze sposobów kategoryzacji algorytmów jest szkoła myślenia - metoda, która według grupy podobnie myślących myślicieli rozwiązałaby określony rodzaj problemu. Oczywiście istnieją inne sposoby kategoryzacji algorytmów, ale takie podejście ma tę zaletę, że pomaga lepiej zrozumieć zastosowania i orientacje algorytmów. Poniższe sekcje zawierają przegląd pięciu głównych technik algorytmicznych.

Symboliczne rozumowanie

Grupa zwana symbolistami polega na algorytmach, które wykorzystują rozumowanie symboliczne, aby znaleźć rozwiązanie problemów. Termin odwrotna dedukcja często pojawia się jako indukcja. W rozumowaniu symbolicznym dedukcja poszerza sferę ludzkiej wiedzy, podczas gdy indukcja podnosi poziom wiedzy ludzkiej. Indukcja zwykle otwiera nowe pola eksploracji, a dedukcja bada te pola. Jednak najważniejszą kwestią jest to, że indukcja jest naukową częścią tego typu rozumowania, podczas gdy dedukcja jest inżynierią. Obie strategie działają ręka w rękę, aby rozwiązać problemy, najpierw otwierając pole potencjalnych eksploracji w celu rozwiązania problemu, a następnie badając to pole, aby określić, czy w rzeczywistości go rozwiązuje. Jako przykład tej strategii, dedukcja mówi, że jeśli drzewo jest zielone, a zielone drzewa żyją, to drzewo musi być żywe. Myśląc o indukcji, powiedziałbyś, że drzewo jest zielone i że drzewo również żyje; dlatego zielone drzewa żyją. Indukcja dostarcza odpowiedzi na pytanie, jakiej wiedzy brakuje, biorąc pod uwagę znane dane wejściowe i wyjściowe.

Sieci neuronowe

Sieci neuronowe są dziełem grupy zwanej koneksjonistami. Ta grupa algorytmów stara się odtworzyć funkcje mózgu za pomocą krzemu zamiast neuronów. Zasadniczo każdy z neuronów (stworzony jako algorytm modelujący odpowiednik w świecie rzeczywistym) rozwiązuje niewielką część problemu, a użycie wielu neuronów równolegle rozwiązuje problem jako całość. Sieć neuronowa może zapewnić metodę korekty błędnych danych, a najpopularniejszą z nich jest propagacja wsteczna. Propagacja błędów, ma na celu określenie warunków, w których błędy są usuwane z sieci zbudowanych tak, aby przypominały ludzkie neurony, poprzez zmianę wag (ile danych wejściowych wpływa na wynik) i uprzedzeń (które cechy są wybierane) sieci. Celem jest kontynuacja zmiany wag i odchyleń do czasu, gdy rzeczywiste dane wyjściowe będą zgodne z docelowymi. W tym momencie sztuczny neuron odpala i przekazuje swoje rozwiązanie do następnego w kolejce neuronu. Rozwiązanie stworzone przez każdy pojedynczy neuron jest tylko częścią całego rozwiązania. Każdy neuron kontynuuje przekazywanie informacji do następnego neuronu w kolejce, aż grupa neuronów utworzy ostateczny wynik.

Algorytmy ewolucyjne

Grupa zwana ewolucjonistami w rozwiązywaniu problemów opiera się na zasadach ewolucji. Ta strategia opiera się na przetrwaniu najlepiej przystosowanych, usuwając wszelkie rozwiązania, które nie pasują do pożądanych wyników. Funkcja przystosowania określa zdolność każdej funkcji do rozwiązania problemu. Korzystając ze struktury drzewiastej, metoda rozwiązania wyszukuje najlepsze rozwiązanie w oparciu o dane wyjściowe funkcji. Zwycięzca każdego poziomu ewolucji może zbudować kolejny poziom funkcji. Następny poziom przybliży się do rozwiązania problemu, ale może go nie rozwiązać całkowicie, co oznacza, że potrzebny jest kolejny poziom. Ten konkretny typ algorytmiczny w dużym stopniu opiera się na rekurencji i językach które silnie wspierają rekurencję w celu rozwiązywania problemów. Ciekawym wynikiem tej strategii są algorytmy, które ewoluują same: jedna generacja algorytmów faktycznie tworzy następną generację.

Wnioskowanie bayesowskie

Bayesiści używają różnych metod statystycznych do rozwiązywania problemów. Biorąc pod uwagę, że metody statystyczne mogą stworzyć więcej niż jedno pozornie poprawne rozwiązanie, wybór funkcji staje się jednym z określania, która funkcja ma największe prawdopodobieństwo sukcesu. Na przykład, korzystając z tych technik, możesz zaakceptować zestaw symptomów jako dane wejściowe. Algorytm obliczy prawdopodobieństwo, że dana choroba będzie wynikiem objawów jako wynik. Biorąc pod uwagę, że wiele chorób ma te same objawy, prawdopodobieństwo jest ważne, ponieważ użytkownik zobaczy sytuacje, w których wynik o niższym prawdopodobieństwie jest w rzeczywistości prawidłowym wynikiem dla danych okoliczności. Ostatecznie algorytmy bayesowskie opierają się na założeniu, że nigdy nie można całkowicie ufać żadnej hipotezie (wynikowi, który ktoś ci dał) bez zapoznania się z dowodami użytymi do ich sformułowania (danymi wejściowymi, które druga osoba wykorzystała do sformułowania hipotezy). Analiza dowodów dowodzi lub obala hipotezę, którą potwierdzają. W związku z tym nie możesz określić, na jaką chorobę choruje ktoś, dopóki nie przetestujesz wszystkich objawów. Jednym z najbardziej rozpoznawalnych wyników z tej grupy algorytmów jest filtr spamu.

Systemy uczące się przez analogię

Analogizatory używają maszyn jądra do rozpoznawania wzorców w danych. Rozpoznając wzorzec jednego zestawu danych wejściowych i porównując go ze wzorcem znanego wyniku, można stworzyć rozwiązanie problemu. Celem jest wykorzystanie podobieństwa do określenia najlepszego rozwiązania problemu. Jest to rodzaj rozumowania, który określa, że użycie określonego rozwiązania zadziałało w danych okolicznościach w jakimś wcześniejszym czasie; dlatego też użycie tego rozwiązania w podobnych okolicznościach powinno również działać. Jednym z najbardziej rozpoznawalnych wyników z tej grupy algorytmów są systemy rekomendujące. Na przykład, kiedy wchodzisz na Amazon i kupujesz produkt, system rekomendacji wymyśla inne powiązane produkty, które możesz również chcieć kupić.

Zagłębianie się w różne podejścia

Dobrze jest mieć kilka poglądów na algorytmy, aby zrozumieć, co robią i dlaczego to robią. W poprzedniej sekcji omówiono algorytmy oparte na grupach, które je utworzyły. Jednak masz inne podejścia, których możesz użyć do kategoryzacji algorytmów. Poniższa lista kategoryzuje niektóre popularne algorytmy według podobieństwa:

•  Sztuczna sieć neuronowa: modeluje strukturę lub funkcję biologicznych sieci neuronowych (lub czasami robi jedno i drugie). Celem jest dopasowanie wzorców dla problemów związanych z regresją i klasyfikacją. Jednak technika ta naśladuje podejście stosowane przez organizmy biologiczne, zamiast ściśle polegać na podejściu opartym na prawdziwej matematyce. Oto przykłady algorytmów sztucznych sieci neuronowych:

- Perceptron
- Sieć neuronowa typu feed-forward
- Sieć Hopfield
- Radial Basis Function Network (RBFN)
- Samoorganizująca się mapa (SOM)

•  Reguła asocjacji: wyodrębnia reguły, które pomagają wyjaśnić relacje między zmiennymi w danych. Możesz użyć tych reguł, aby odkryć przydatne skojarzenia w ogromnych zbiorach danych, które zwykle są łatwe do przeoczenia. Oto bardziej popularne algorytmy reguł asocjacyjnych:

- Algorytm Apriori
- Algorytm Eclat

•  Bayesian: stosuje twierdzenie Bayesa do problemów z prawdopodobieństwem. Ta forma algorytmu ma zastosowanie w problemach klasyfikacji i regresji. Oto przykłady algorytmów Bayesa:

- Naive Bayes
- Bayes naiwny Gaussa
- Wielomianowy Na?ve Bayes
- Bayesian Belief Network (BBN)
- Sieć Bayesa (BN)

•  Klastrowanie: opisuje model organizowania danych według klasy lub innych kryteriów. Wyniki często mają charakter centroidowy lub hierarchiczny. To, co widzisz, to relacje danych w sposób, który pomaga zrozumieć dane - to znaczy, jak wartości wpływają na siebie nawzajem. Poniższa lista zawiera przykłady algorytmów klastrowania:

- K-środki
- K-mediany
- Maksymalizacja oczekiwań (EM)
- Klastrowanie hierarchiczne

•  Drzewo decyzyjne: konstruuje model decyzji w oparciu o rzeczywiste wartości znalezione w danych. Wynikowa struktura drzewa umożliwia bardzo szybkie wykonywanie porównań między nowymi danymi a istniejącymi danymi. Ta forma algorytmu jest często wykorzystywana do rozwiązywania problemów związanych z klasyfikacją i regresją. Poniższa lista przedstawia niektóre typowe algorytmy drzew decyzyjnych:

- Drzewo klasyfikacji i regresji (CART)
- Iteracyjny dychotomiser 3 (ID3)
- C4.5 i C5.0 (różne wersje zaawansowanego podejścia)
- Automatyczne wykrywanie interakcji chi-kwadrat (CHAID)

•  Głębokie uczenie: zapewnia aktualizację sztucznych sieci neuronowych, które opierają się na wielu warstwach, aby wykorzystywać jeszcze większe zbiory danych i budować złożone sieci neuronowe. Ta szczególna grupa algorytmów sprawdza się dobrze w przypadku częściowo nadzorowanych problemów uczenia się, w których ilość oznaczonych danych jest minimalna. Oto kilka przykładów algorytmów uczenia głębokiego:

- Głęboka maszyna Boltzmanna (DBM)
- Sieci głębokich przekonań (DBN)
- Konwolucyjna sieć neuronowa (CNN)
- Powtarzalna sieć neuronowa (RNN)
- Stacked Auto-Encoders

•  Redukcja wymiarowości: wyszukuje i wykorzystuje podobieństwa w strukturze danych w sposób podobny do algorytmów grupowania, ale z wykorzystaniem bez nadzoru metody. Celem jest podsumowanie lub opisanie danych przy użyciu mniejszej ilości informacji dzięki czemu zbiór danych staje się mniejszy i łatwiejszy w zarządzaniu. W niektórych przypadkach, ludzie używają tych algorytmów do rozwiązywania problemów związanych z klasyfikacją lub regresją. Tutaj jest lista typowych algorytmów redukcji wymiarowości:

- Analiza głównych komponentów (PCA)
- Analiza czynnikowa (FA)
- Wielowymiarowe skalowanie (MDS)
- t-Distributed Stochastic Neighbor Embedding (t-SNE)

•  Zbiór: Łączy grupę wielu słabszych modeli w spójną całość, której indywidualne prognozy są w jakiś sposób łączone w celu zdefiniowania ogólnej prognozy. Korzystanie z zespołu może rozwiązać pewne problemy szybciej, wydajniej lub przy mniejszej liczbie błędów. Oto kilka typowych algorytmów zbiorczych:

- Wzmocnienie
- Agregacja Bootstrapped (pakowanie)
- AdaBoost
- Losowy las
- Maszyny do zwiększania gradientu (GBM)

•  Oparte na instancjach: definiuje model problemów decyzyjnych, w którym dane szkoleniowe składają się z przykładów, które są później używane do celów porównawczych. Miara podobieństwa pomaga określić, kiedy nowe przykłady wypadają korzystnie w porównaniu z przykładami istniejącymi w bazie danych. Niektórzy nazywają te algorytmy uczeniem się opartym na pamięci lub zwycięzca bierze wszystko ze względu na sposób, w jaki działają. Poniższa lista zawiera niektóre typowe powiązane algorytmy z tą kategorią:

- K-Nearest Neighbors (KNN)
- Nauka kwantyzacji wektorów (LVQ)

•  Regresja: Modeluje relacje między zmiennymi. Ta relacja jest iteracyjnie udoskonalana za pomocą miary błędu. Ta kategoria jest intensywnie wykorzystywana w statystycznym uczeniu maszynowym. Poniższa lista przedstawia algorytmy zwykle kojarzone z tego rodzaju algorytmem:

- Zwykła regresja metodą najmniejszych kwadratów (OLSR)
- Regresja logistyczna

•  Regularyzacja: reguluje inne algorytmy, penalizując złożone rozwiązania i faworyzując prostsze. Ten rodzaj algorytmu jest często używany z metodami regresji. Celem jest zapewnienie, że rozwiązanie nie zgubi się w swojej własnej złożoności i dostarcza rozwiązania w określonym czasie przy użyciu jak najmniejszej liczby zasobów. Oto przykłady algorytmów regularyzacji:

- Regresja grzbietu
- Najmniej bezwzględny operator skurczu i wyboru (LASSO)
- Elastyczna siatka
- Regresja pod najmniejszym kątem (LARS)

•  Maszyny wektorów pomocniczych (SVM): nadzorowane algorytmy uczenia się, które rozwiązują problemy klasyfikacji i regresji poprzez oddzielenie tylko kilku przykładów danych (zwanych podpórkami, stąd nazwa algorytmu) od reszty danych za pomocą funkcji. Po oddzieleniu tych podpór przewidywanie staje się łatwiejsze. Forma analizy zależy od typu funkcji (zwanego jądrem): podstawa liniowa, wielomianowa lub radialna. Oto przykłady algorytmów SVM.

- Maszyny wektorów nośnych liniowych
- Maszyny wektorowe wspomagające radialne funkcje bazowe
- Jednoklasowe maszyny wektorowe wspierające (do uczenia się bez nadzoru)

•  Inne: masz do wyboru wiele innych algorytmów. Ta lista zawiera główne kategorie algorytmów. Niektóre kategorie, których nie ma na tej liście, należą do kategorii używanych do wyboru funkcji, dokładności algorytmów, miar wydajności i wyspecjalizowanych podpól uczenia maszynowego. Na przykład całe kategorie algorytmów są poświęcone tematowi widzenia komputerowego (CV) i przetwarzania języka naturalnego (NLP). Znajdziesz wiele innych kategorii algorytmów i możesz zacząć się zastanawiać, w jaki sposób analityk danych może dokonać dowolnego wyboru, a tym bardziej właściwego.

W oczekiwaniu na kolejny przełom

Przełomy wymagają cierpliwości, ponieważ komputery są z natury oparte na matematyce. Możesz nie widzieć ich jako takich podczas pracy z językiem wyższego poziomu, takim jak Python, ale wszystko, co dzieje się pod maską, wymaga ekstremalnego zrozumienia matematyki i danych, którymi manipuluje. W związku z tym można spodziewać się w przyszłości nowych zastosowań uczenia maszynowego i uczenia głębokiego, ponieważ naukowcy będą nadal znajdować nowe sposoby przetwarzania danych, tworzenia algorytmów i używania tych algorytmów do definiowania modeli danych. Niestety, praca z tym, co jest dostępne dzisiaj, nie wystarczy do tworzenia aplikacji jutra (pomimo tego, w co mogą wierzyć filmy). W przyszłości można spodziewać się postępu w sprzęcie, który sprawi, że aplikacje, które obecnie nie są wykonalne, będą całkiem wykonalne. Nie jest to tylko kwestia dodatkowej mocy obliczeniowej lub większej pamięci. Komputer jutra będzie miał dostęp do czujników, które nie są obecnie dostępne; procesory, które robią rzeczy, których dzisiejsze procesory nie potrafią; oraz metody sprawdzania, jak myślą komputery, których jeszcze nie przewidziano. Świat najbardziej potrzebuje teraz doświadczenia, a jego nagromadzenie zawsze wymaga czasu.

Zastanawianie się nad prawdziwymi zastosowaniami uczenia maszynowego

Fakt, że masz wiele opcji do wyboru, jeśli chodzi o sztuczną inteligencję, oznacza, że uczenie maszynowe nie jest jedyną technologią, którą powinieneś rozważyć, aby rozwiązać dany problem. Uczenie maszynowe doskonale pomaga w rozwiązywaniu określonych kategorii problemów. Aby określić, gdzie uczenie maszynowe działa najlepiej, musisz zacząć od rozważenia, w jaki sposób algorytm się uczy, a następnie zastosować tę wiedzę do zajęć z problemami, które musisz rozwiązać. Pamiętaj, że uczenie maszynowe polega na uogólnianiu, więc nie działa szczególnie dobrze w tych scenariuszach:

•  Wynik musi zawierać dokładną odpowiedź, taką jak obliczenie podróży na Marsa.
•  Możesz rozwiązać problem za pomocą uogólnień, ale inne techniki są prostsze, takie jak tworzenie oprogramowania do obliczania silni liczby.
•  Nie masz dobrego uogólnienia problemu, ponieważ problem jest źle zrozumiany, nie ma określonego związku między danymi wejściowymi a wynikami lub domena problemu jest zbyt złożona.

W poniższych sekcjach omówiono rzeczywiste zastosowania uczenia maszynowego z perspektywy tego, jak się uczy, a następnie definiuje korzyści płynące z uczenia maszynowego w określonych domenach problemowych.

Zrozumienie zalet uczenia maszynowego

To, jak możesz skorzystać z uczenia maszynowego, zależy częściowo od środowiska, a częściowo od tego, czego od niego oczekujesz. Na przykład, jeśli spędzasz czas na zakupach produktów Amazon, możesz w pewnym momencie oczekiwać, że systemy uczące się wydadzą przydatne zalecenia na podstawie wcześniejszych zakupów. Te zalecenia dotyczą produktów, o których inaczej byś nie wiedział. Rekomendowanie produktów, których już używasz lub których już nie potrzebujesz, nie jest szczególnie przydatne, dlatego w grę wchodzi uczenie maszynowe. W miarę jak Amazon gromadzi więcej danych na temat twoich nawyków zakupowych, zalecenia powinny stać się bardziej przydatne, chociaż nawet najlepszy algorytm uczenia maszynowego nigdy nie odgadnie poprawnie twoich potrzeb za każdym razem. Oczywiście uczenie maszynowe przynosi wiele innych korzyści. Deweloper może wykorzystać uczenie maszynowe, aby dodać możliwość NLP do aplikacji. Naukowiec mógłby go użyć, aby znaleźć następne lekarstwo na raka. Możesz już używać go do filtrowania spamu w swoich wiadomościach e-mail lub polegać na nim, wsiadając do samochodu, jako część interfejsu głosowego. Mając to na uwadze, następujące korzyści prawdopodobnie bardziej pasują do biznesowej perspektywy efektywnego korzystania z uczenia maszynowego, ale należy pamiętać, że istnieje również wiele innych sposobów:

•  Uprość marketing produktów: Jednym z problemów, z którymi boryka się każda organizacja, jest określenie, co i kiedy sprzedawać, na podstawie preferencji klientów. Kampanie sprzedażowe są drogie, więc jedna porażka zwykle nie wchodzi w grę. Ponadto organizacja może znaleźć dziwne fragmenty informacji: klienci mogą lubić produkty w kolorze czerwonym, ale nie w kolorze zielonym. Wiedza o tym, czego chce klient, jest niesamowicie trudna, chyba że możesz przeanalizować ogromne ilości danych dotyczących zakupów, co jest czymś, co dobrze radzi sobie z uczeniem maszynowym.
•  Dokładnie przewiduj przyszłą sprzedaż: działalność biznesowa może przypominać hazard, ponieważ nie możesz być pewien, że Twoje zakłady się opłacą. Uczenie maszynowe może śledzić sprzedaż minuta po minucie i śledzić trendy, zanim staną się oczywiste. Możliwość wykonywania tego rodzaju śledzenia oznacza, że możesz dokładniej dostroić kanały sprzedaży, aby zapewnić optymalne wyniki i upewnić się, że sklepy mają wystarczającą ilość odpowiednich produktów do sprzedaży. Nie przypomina to dokładnie patrzenia w kryształową kulę, ale jest blisko.
•  Prognozowanie przestojów pracowników i innych pracowników: Co dziwne, niektóre organizacje mają problemy, ponieważ pracownicy wybierają najgorsze możliwe okresy nieobecności w pracy. W niektórych przypadkach te nieobecności wydają się nieprzewidywalne, na przykład potrzeby medyczne, podczas gdy w innych można je przewidzieć, na przykład nagła potrzeba osobistego czasu. Śledząc różne trendy z łatwo dostępnych źródeł danych, możesz śledzić nieobecności zarówno medyczne, jak i osobiste w całej branży, lokalizacji jako całości, a w szczególności w Twojej organizacji, aby upewnić się, że masz wystarczającą liczbę osób do podjęcia pracy. wykonane w dowolnym momencie.
•  Zmniejsz liczbę błędów przy wprowadzaniu danych: Niektóre rodzaje błędów podczas wprowadzania danych można stosunkowo łatwo uniknąć, używając poprawnie funkcji formularza lub włączając moduł sprawdzania pisowni do aplikacji. Ponadto dodanie pewnych rodzajów dopasowania do wzorca może pomóc w zmniejszeniu liczby błędów związanych z pisaniem wielkich liter lub nieprawidłowych numerów telefonów. Uczenie maszynowe może przenieść redukcję błędów na inny poziom, prawidłowo identyfikując złożone wzorce, które zostaną pominięte przez inne techniki. Na przykład zamówienie klienta może wymagać jednej części A i dwóch części B, aby utworzyć całość. Dopasowanie wzorców dla tego rodzaju sprzedaży może być nieuchwytne, ale uczenie maszynowe może to umożliwić, zmniejszając liczbę błędów, które są szczególnie różne do znalezienia i wyeliminowania.
•  Popraw reguły finansowe i precyzję modelowania: Utrzymanie finansów w dobrej kondycji może okazać się trudne w organizacji dowolnej wielkości. Uczenie maszynowe umożliwia wykonywanie zadań, takich jak zarządzanie portfelem, handel algorytmiczny, gwarantowanie pożyczek i wykrywanie oszustw z większą precyzją. Nie można wyeliminować udziału człowieka w takich przypadkach, ale współpraca człowieka i maszyny może stać się niezwykle wydajną kombinacją, która nie pozwoli, aby wiele błędów mogło przejść niezauważenie.
•  Przewidywanie potrzeb konserwacyjnych: każdy system, który składa się z elementów fizycznych, prawdopodobnie wymaga różnego rodzaju konserwacji. Na przykład uczenie maszynowe może pomóc przewidzieć, kiedy system będzie wymagał czyszczenia na podstawie wcześniejszej wydajności i monitorowania środowiska. Możesz również zaplanować wymianę lub naprawę określonego sprzętu na podstawie wcześniejszych napraw i statystyk sprzętu. Rozwiązanie wykorzystujące systemy uczące się umożliwia nawet określenie, czy lepszym rozwiązaniem jest wymiana czy naprawa.
•  Rozszerz interakcję z klientem i popraw satysfakcję: Klienci lubią czuć się wyjątkowo; w rzeczywistości każdy to robi. Jednak próba ręcznego stworzenia niestandardowego planu dla każdego klienta okazałaby się niemożliwa. W źródłach internetowych można znaleźć wiele informacji o klientach, w tym wszystko, od ostatnich zakupów po spójne nawyki zakupowe. Łącząc wszystkie te dane z dobrym rozwiązaniem uczenia maszynowego i personelem obsługi klienta, który ma wymagające oczy, można wydawać się, że osobiście stworzyłeś specjalne rozwiązanie dla każdego klienta, mimo że czas potrzebny na to jest minimalny.

Odkrywanie ograniczeń uczenia maszynowego

Granice technologii są często trudne do całkowitego oszacowania, ponieważ są one często wynikiem braku wyobraźni twórcy lub konsumenta tej technologii. Jednak uczenie maszynowe ma pewne wyraźne ograniczenia, które należy wziąć pod uwagę przed użyciem tej technologii do wykonania dowolnego zadania. Poniższa lista nie jest kompletna. W rzeczywistości możesz nawet nie do końca się z tym zgadzać, ale jest to dobry punkt wyjścia.

•  Potrzeba ogromnych ilości danych szkoleniowych: w przeciwieństwie do wcześniejszych rozwiązań programowanych, uczenie maszynowe wymaga do trenowania ogromnych ilości danych. Wraz ze wzrostem złożoności problemu rośnie liczba punktów danych wymaganych do modelowania konkretnego problemu, co sprawia, że potrzeba jeszcze więcej danych. Chociaż ludzie generują coraz większe ilości danych w określonych domenach problemowych, a moc obliczeniowa potrzebna do przetwarzania tych danych również rośnie z każdym dniem, w niektórych domenach problemowych po prostu brakuje wystarczającej ilości danych lub wystarczającej mocy obliczeniowej, aby uczenie maszynowe było skuteczne.
•  Etykietowanie danych jest żmudne i podatne na błędy: podczas korzystania z techniki nadzorowanego uczenia ktoś musi oznaczyć dane, aby zapewnić wartość wyjściową. Proces etykietowania ogromnych ilości danych jest zarówno żmudny, jak i czasochłonny, co czasami utrudnia uczenie maszynowe. Problem polega na tym, że człowiek może spojrzeć na dowolną liczbę przykładów czegoś takiego jak znak stopu i wiedzieć, że wszystkie są znakami stopu, ale komputer musi mieć każdy znak stopu indywidualnie oznaczony.
•  Maszyny nie potrafią się wyjaśnić: w miarę jak systemy uczące się stają się bardziej elastyczne i wydajne; ilość ukrytych funkcji również się zwiększa. W rzeczywistości, gdy mamy do czynienia z rozwiązaniami uczenia głębokiego, okazuje się, że rozwiązanie zawiera jedną lub zwykle więcej ukrytych warstw, które tworzy rozwiązanie, ale ludzie nie poświęcili czasu na zbadanie. W związku z tym zarówno uczenie maszynowe (w pewnym stopniu), jak i uczenie głębokie (w większym stopniu) napotykają problemy, dla których przejrzystość jest ceniona i sprzeczna z niektórymi przepisami, takimi jak ogólne rozporządzenie o ochronie danych lub RODO (https://eugdpr.org /). Ponieważ proces staje się nieprzejrzysty, człowiek musi teraz przeanalizować proces, który ma być automatyczny. Potencjalnym rozwiązaniem tego problemu mogą być nowe strategie, takie jak Local Interpretable Model-Agnostic Explanations (LIME)
•  Odchylenie sprawia, że wyniki są mniej użyteczne: algorytm nie jest w stanie stwierdzić, kiedy dane zawierają różne nieprawdy. W związku z tym uważa wszystkie dane za bezstronne i całkowicie zgodne z prawdą. W rezultacie każda analiza wykonana przez algorytm wyszkolony przy użyciu tych danych jest podejrzana. Problem staje się jeszcze większy, gdy sam algorytm jest stronniczy. W Internecie można znaleźć niezliczone przykłady algorytmów błędnie identyfikujących typowe obiekty, takie jak znaki stop, z powodu kombinacji danych zawierających nieprawdę i tendencyjne algorytmy.
•  Systemy uczące się nie mogą współpracować: jedną z najważniejszych zalet bycia człowiekiem jest umiejętność współpracy z innymi. Potencjał wiedzy rośnie wykładniczo, ponieważ każda strona potencjalnego rozwiązania przekazuje swoją wiedzę, aby stworzyć całość, która jest znacznie większa niż suma jej części. Pojedyncze rozwiązanie do uczenia maszynowego pozostaje pojedynczym rozwiązaniem do uczenia maszynowego, ponieważ nie może uogólniać wiedzy, a tym samym przyczyniać się do kompleksowego rozwiązania z wieloma współpracującymi stronami.


Deep Learning (I)



Przedstawiamy głębokie uczenie się

Prawdopodobnie wiele słyszałeś o głębokim uczeniu się. Termin pojawia się wszędzie i wydaje się mieć zastosowanie do wszystkiego. W rzeczywistości uczenie głębokie jest podzbiorem uczenia maszynowego, które z kolei jest podzbiorem sztucznej inteligencji (AI). Pierwszym celem jest pomoc w zrozumieniu, na czym naprawdę polega głębokie uczenie się i jak ma ono zastosowanie w dzisiejszym świecie. Możesz być zaskoczony, gdy dowiesz się, że głębokie uczenie się nie jest jedyną grą w mieście; istnieją inne metody analizy danych. W rzeczywistości głębokie uczenie się spełnia określony zestaw potrzeb, jeśli chodzi o analizę danych, więc możesz używać innych metod i nawet o tym nie wiedzieć. Uczenie głębokie to tylko podzbiór sztucznej inteligencji, ale jest to ważny podzbiór. Widzisz techniki głębokiego uczenia się używane do wielu zadań, ale niezbyt zadań. W rzeczywistości niektórzy ludzie kojarzą głębokie uczenie się z zadaniami, których nie są w stanie wykonać. Następnym krokiem w odkrywaniu uczenia głębokiego jest zrozumienie, co może, a czego nie może dla Ciebie zrobić. W ramach pracy z głębokim uczeniem napiszesz aplikacje, które wykorzystują głębokie uczenie do przetwarzania danych, a następnie generują pożądane wyniki. Oczywiście musisz trochę wiedzieć o środowisku programistycznym, zanim będziesz mógł wiele zrobić. Tak, uczenie głębokie może wykonywać niesamowite zadania, gdy jest odpowiednio używane, ale może również powodować poważne problemy w przypadku problemów, których nie obsługuje dobrze. Czasami trzeba spojrzeć na inne technologie, aby wykonać dane zadanie, lub dowiedzieć się, których technologii użyć z głębokim uczeniem, aby zapewnić bardziej wydajne i eleganckie rozwiązanie określonych problemów.

Zdefiniowanie, co oznacza głębokie uczenie się

Zrozumienie głębokiego uczenia się zaczyna się od precyzyjnej definicji terminów. W przeciwnym razie trudno będzie oddzielić szum medialny od realiów tego, co faktycznie może zapewnić głębokie uczenie się. Uczenie głębokie jest częścią zarówno sztucznej inteligencji, jak i uczenia maszynowego, jak pokazano na rysunku .



Aby zrozumieć głębokie uczenie się, musisz zacząć od zewnątrz - to znaczy zacząć od sztucznej inteligencji, a następnie przejść przez uczenie maszynowe, a na końcu zdefiniować głębokie uczenie się. Poniższe sekcje pomogą Ci przejść przez ten proces.

Począwszy od sztucznej inteligencji

Stwierdzenie, że sztuczna inteligencja jest sztuczną inteligencją, tak naprawdę nie mówi nic znaczącego, dlatego tak wiele dyskusji i nieporozumień pojawia się w związku z tym terminem. Tak, możesz argumentować, że to, co się dzieje, jest sztuczne i nie pochodzi z naturalnego źródła. Jednak część dotycząca inteligencji jest w najlepszym przypadku niejednoznaczna. Ludzie definiują inteligencję na wiele różnych sposobów. Możesz jednak powiedzieć, że inteligencja obejmuje pewne ćwiczenia umysłowe składające się z następujących czynności:

Uczenie się: posiadanie umiejętności pozyskiwania i przetwarzania nowych informacji.
Rozumowanie: umiejętność manipulowania informacjami na różne sposoby.
Zrozumienie: rozważenie wyniku manipulacji informacją.
Chwytanie prawd: ustalanie ważności zmanipulowanych informacji.
Dostrzeganie relacji: rozróżnianie interakcji zweryfikowanych danych z innymi danymi.
Rozważanie znaczeń: Stosowanie prawd do określonych sytuacji w sposób zgodny z ich relacją.
Oddzielenie faktów od przekonań: ustalenie, czy dane są odpowiednio poparte udowodnionymi źródłami, w przypadku których można wykazać, że są konsekwentnie prawidłowe.

Lista mogłaby być dość długa, ale nawet ta lista jest stosunkowo podatna na interpretację przez każdego, kto zaakceptuje ją jako wykonalną. Jak widać z listy, inteligencja często jednak podąża za procesem, który system komputerowy może naśladować w ramach symulacji:

1. Wyznacz cel w oparciu o potrzeby lub pragnienia.
2. Oceń wartość wszelkich obecnie znanych informacji wspierających cel.
3. Zbierz dodatkowe informacje, które mogą wesprzeć cel.
4. Manipuluj danymi tak, aby uzyskały formę zgodną z istniejącymi informacjami.
5. Zdefiniuj relacje i wartości prawdy między istniejącymi a nowymi Informacjami.
6. Określ, czy cel został osiągnięty.
7. Zmodyfikuj cel w świetle nowych danych i jego wpływu na prawdopodobieństwo sukcesu.
8. W razie potrzeby powtarzaj kroki od 2 do 7, aż cel zostanie osiągnięty (uznany za prawdziwy) lub wyczerpią się możliwości jego osiągnięcia (uznany za fałszywy).

Mimo że można tworzyć algorytmy i zapewniać dostęp do danych wspierających ten proces w komputerze, zdolność komputera do uzyskiwania inteligencji jest poważnie ograniczona. Na przykład komputer nie jest w stanie niczego zrozumieć, ponieważ opiera się na procesach maszynowych do manipulowania danymi przy użyciu czystej matematyki w sposób ściśle mechaniczny. Podobnie komputery nie mogą łatwo oddzielić prawdy od nieprawdy. W rzeczywistości żaden komputer nie jest w stanie w pełni zrealizować żadnej z czynności umysłowych opisanych na liście opisującej inteligencję. Myśląc o sztucznej inteligencji, musisz wziąć pod uwagę cele ludzi, którzy ją rozwijają. Celem jest naśladowanie ludzkiej inteligencji, a nie jej powielanie. Komputer tak naprawdę nie myśli, ale sprawia wrażenie, jakby myślał. Jednak komputer faktycznie zapewnia ten wygląd tylko w logicznej / matematycznej formie inteligencji. Komputer z umiarkowanym powodzeniem naśladuje wzrokowo-przestrzenną inteligencję i kinestetyczną inteligencję ciała. Komputer ma niską, zadowalającą zdolność inteligencji interpersonalnej i językowej. Jednak w przeciwieństwie do ludzi komputer nie ma możliwości naśladowania inteligencji intrapersonalnej lub twórczej.

Biorąc pod uwagę rolę AI

Jak opisano w poprzedniej sekcji, pierwszą koncepcją, którą należy zrozumieć, jest to, że sztuczna inteligencja nie ma nic wspólnego z ludzką inteligencją. Tak, część sztucznej inteligencji jest modelowana tak, aby symulować ludzką inteligencję, ale tym właśnie jest: symulacja. Myśląc o sztucznej inteligencji, zwróć uwagę, że istnieje zależność między poszukiwaniem celu, przetwarzaniem danych wykorzystywanym do osiągnięcia tego celu oraz pozyskiwaniem danych wykorzystywanym do lepszego zrozumienia celu. Sztuczna inteligencja polega na algorytmach, aby osiągnąć wynik, który może, ale nie musi mieć nic wspólnego z ludzkimi celami lub metodami ich osiągania. Mając to na uwadze, możesz sklasyfikować sztuczną inteligencję na cztery sposoby:

•  Ludzkie działanie: gdy komputer zachowuje się jak człowiek, najlepiej odzwierciedla to test Turinga, w którym komputer odnosi sukces, gdy nie jest możliwe rozróżnienie między komputerem a człowiekiem. Ta kategoria odzwierciedla również to, co media sugerują, że myślisz o sztucznej inteligencji. Widzisz, że jest stosowany w technologiach, takich jak przetwarzanie języka naturalnego, reprezentacja wiedzy, automatyczne rozumowanie i uczenie maszynowe (z których wszystkie cztery muszą być obecne, aby zdać test). Oryginalny test Turinga nie obejmował żadnego kontaktu fizycznego. Nowszy, Total Turing Test obejmuje kontakt fizyczny w postaci przesłuchania zdolności percepcyjnych, co oznacza, że komputer musi również wykorzystywać widzenie komputerowe i robotykę, aby odnieść sukces. Nowoczesne techniki obejmują ideę osiągnięcia celu, a nie całkowite naśladowanie ludzi. Na przykład braciom Wright nie udało się stworzyć samolotu poprzez dokładne odwzorowanie lotów ptaków; raczej ptaki dostarczyły pomysłów, które doprowadziły do aerodynamiki, która z kolei ostatecznie doprowadziła do walki ludzi. Celem jest latanie. Zarówno ptaki, jak i ludzie osiągają ten cel, ale stosują różne podejścia.
•  Myślenie po ludzku: Kiedy komputer myśli jak człowiek, wykonuje zadania, które wymagają od człowieka inteligencji (w przeciwieństwie do rutynowych procedur), aby odnieść sukces, na przykład prowadzenie samochodu. Aby określić, czy program myśli jak człowiek, musisz mieć jakąś metodę określania sposobu myślenia ludzi, którą definiuje podejście do modelowania poznawczego. Ten model opiera się na trzech technikach:

Introspekcja: wykrywanie i dokumentowanie technik używanych do osiągnięcia celów poprzez monitorowanie własnych procesów myślowych.
Testy psychologiczne: obserwowanie zachowania osoby i dodawanie go do bazy danych podobnych zachowań innych osób ze względu na podobny zestaw okoliczności, celów, zasobów i warunków środowiskowych (między innymi).
Obrazowanie mózgu: monitorowanie aktywności mózgu bezpośrednio za pomocą różnych środków mechanicznych, takich jak komputerowa tomografia osiowa (CAT), pozytonowa tomografia emisyjna (PET), obrazowanie metodą rezonansu magnetycznego (MRI) i magnetoencefalografia (MEG).

Po utworzeniu modelu możesz napisać program symulujący model. Biorąc pod uwagę różnorodność procesów myślowych ludzi i trudność w dokładnym przedstawieniu tych procesów myślowych jako części programu, wyniki są w najlepszym przypadku eksperymentalne. Ta kategoria ludzkiego myślenia jest często używana w psychologii i innych dziedzinach, w których niezbędne jest modelowanie procesu myślenia człowieka w celu stworzenia realistycznych symulacji.

•  Myślenie racjonalne: badanie sposobu myślenia ludzi przy użyciu pewnych standardów umożliwia stworzenie wytycznych opisujących typowe ludzkie zachowania. Osoba jest uważana za racjonalną, gdy postępuje zgodnie z tymi zachowaniami w ramach pewnych poziomów odchylenia. Komputer, który myśli racjonalnie, opiera się na zarejestrowanych zachowaniach, aby stworzyć przewodnik dotyczący interakcji ze środowiskiem w oparciu o dostępne dane. Celem tego podejścia jest logiczne rozwiązywanie problemów, gdy jest to możliwe. W wielu przypadkach takie podejście umożliwiłoby stworzenie podstawowej techniki rozwiązania problemu, która byłaby następnie modyfikowana w celu rzeczywistego rozwiązania problemu. Innymi słowy, rozwiązanie problemu w zasadzie często różni się od rozwiązania go w praktyce, ale nadal potrzebujesz punktu wyjścia.
•  Racjonalne działanie: badanie, jak ludzie zachowują się w określonych sytuacjach, przy określonych ograniczeniach, pozwala określić, które techniki są zarówno wydajne, jak i skuteczne. Komputer, który działa racjonalnie, polega na zarejestrowanych działaniach w celu interakcji ze środowiskiem w oparciu o warunki, czynniki środowiskowe i istniejące dane. Podobnie jak w przypadku racjonalnego myślenia, czyny racjonalne zależą od rozwiązania w zasadzie, które w praktyce może nie okazać się przydatne. Jednak racjonalne działania stanowią podstawę, na której komputer może rozpocząć negocjacje dotyczące pomyślnego zakończenia celu.

CZŁOWIEK A PROCES RACJONALNY

Procesy ludzkie różnią się wynikami od procesów racjonalnych. Proces jest racjonalny, jeśli zawsze działa właściwie na podstawie aktualnych informacji, mając idealną miarę wydajności. Krótko mówiąc, racjonalne procesy przebiegają według książki i zakładają, że "książka" jest rzeczywiście poprawna. Ludzkie procesy obejmują instynkt, intuicję i inne zmienne, które niekoniecznie odzwierciedlają książkę i mogą nawet nie uwzględniać istniejących danych. Na przykład racjonalnym sposobem prowadzenia samochodu jest zawsze przestrzeganie prawa. Jednak ruch nie jest racjonalny. Jeśli ściśle przestrzegasz przepisów, utkniesz gdzieś, ponieważ inni kierowcy nie przestrzegają ich dokładnie. Aby odnieść sukces, samochód jeżdżący samodzielnie musi więc działać bardziej po ludzku niż racjonalnie. Obecnie sztuczna inteligencja jest używana w wielu aplikacjach. Jedynym problemem jest to, że technologia działa tak dobrze, że nawet nie wiesz, że istnieje. W rzeczywistości możesz być zaskoczony, że wiele urządzeń w Twoim domu już korzysta z tej technologii. Zastosowania sztucznej inteligencji liczą się w milionach - wszystkie są bezpiecznie poza zasięgiem wzroku, nawet jeśli mają dość dramatyczny charakter. Oto tylko kilka sposobów, w jakie możesz zobaczyć użycie sztucznej inteligencji:

•  Wykrywanie oszustw: Otrzymujesz telefon od wystawcy karty kredytowej z pytaniem, czy dokonałeś konkretnego zakupu. Firma obsługująca karty kredytowe nie jest wścibska; po prostu ostrzega Cię o tym, że ktoś inny może dokonywać zakupu przy użyciu Twojej karty. Sztuczna inteligencja osadzona w kodzie wystawcy karty kredytowej wykryła nieznany wzorzec wydatków i zaalarmowała o tym kogoś.
•  Planowanie zasobów: wiele organizacji musi efektywnie planować wykorzystanie zasobów. Na przykład szpital może być zmuszony do określenia, gdzie umieścić pacjenta, na podstawie potrzeb pacjenta, dostępności wykwalifikowanych ekspertów oraz czasu, przez jaki lekarz spodziewa się, że pacjent będzie w szpitalu.
•  Złożona analiza: ludzie często potrzebują pomocy przy złożonej analizie, ponieważ istnieje dosłownie zbyt wiele czynników do rozważenia. Na przykład ten sam zestaw objawów może wskazywać na więcej niż jeden problem. Lekarz lub inny ekspert może potrzebować pomocy w szybkim postawieniu diagnozy, aby uratować życie pacjenta.
•  Automatyzacja: każda forma automatyzacji może skorzystać na dodaniu sztucznej inteligencji do obsługi nieoczekiwanych zmian lub zdarzeń. Problem z niektórymi typami automatyzacji polega obecnie na tym, że nieoczekiwane zdarzenie, takie jak obiekt w niewłaściwym miejscu, może w rzeczywistości spowodować zatrzymanie automatyzacji. Dodanie sztucznej inteligencji do automatyzacji może pozwolić automatyzacji na obsługę nieoczekiwanych zdarzeń i kontynuowanie, jakby nic się nie wydarzyło.
•  Obsługa klienta: linia obsługi klienta, do której dzwonisz dzisiaj, może nawet nie mieć za sobą człowieka. Automatyzacja jest wystarczająco dobra, aby śledzić skrypty i korzystać z różnych zasobów, aby odpowiedzieć na większość pytań. Przy dobrej infekcji głosowej (również zapewnianej przez sztuczną inteligencję) możesz nawet nie być w stanie stwierdzić, że rozmawiasz z komputerem.
•  Systemy bezpieczeństwa: Wiele systemów bezpieczeństwa występujących obecnie w różnego rodzaju maszynach opiera się na sztucznej inteligencji, która przejmuje kontrolę nad pojazdem w czasie kryzysu. Na przykład wiele automatycznych układów hamulcowych polega na sztucznej inteligencji, która zatrzymuje samochód na podstawie wszystkich sygnałów wejściowych, które może dostarczyć pojazd, takich jak kierunek poślizgu.
•  Wydajność maszyn: AI może pomóc w sterowaniu maszyną w taki sposób, aby uzyskać maksymalną wydajność. Sztuczna inteligencja kontroluje wykorzystanie zasobów, aby system nie przekraczał szybkości ani innych celów. Każda uncja energii jest wykorzystywana dokładnie tak, jak potrzeba, aby zapewnić pożądane usługi.

Koncentrując się na uczeniu maszynowym

Uczenie maszynowe to jeden z wielu podzbiorów sztucznej inteligencji i jedyny jaki omówimy. W uczeniu maszynowym celem jest stworzenie symulacji ludzkiego uczenia się, aby aplikacja mogła dostosować się do niepewnych lub nieoczekiwanych warunków. Aby wykonać to zadanie, uczenie maszynowe opiera się na algorytmach analizujących ogromne zbiory danych. Obecnie uczenie maszynowe nie zapewnia takiego rodzaju sztucznej inteligencji, jaki prezentują filmy (maszyna nie może się intuicyjnie uczyć, tak jak człowiek); może symulować tylko określone rodzaje uczenia się i to tylko w wąskim zakresie. Nawet najlepsze algorytmy nie potrafią myśleć, czuć, prezentować żadnej formy samoświadomości ani wykonywać wolnej woli. Cechy, które są podstawowe dla ludzi, są frustrująco trudne do uchwycenia przez maszyny z powodu tych ograniczeń percepcji. Maszyny nie są samoświadome. Uczenie maszynowe może wykonywać analizy predykcyjne znacznie szybciej niż jakikolwiek człowiek. W rezultacie uczenie maszynowe może pomóc ludziom pracować wydajniej. Obecny stan sztucznej inteligencji polega zatem na przeprowadzaniu analiz, ale ludzie nadal muszą brać pod uwagę konsekwencje tej analizy: podejmować wymagane decyzje moralne i etyczne. Istota sprawy polega na tym, że uczenie maszynowe zapewnia tylko uczącą się część sztucznej inteligencji, a ta część nie jest jeszcze w przybliżeniu gotowa do stworzenia sztucznej inteligencji, jaką można zobaczyć w filmach.
Głównym punktem pomyłki między uczeniem się a inteligencją jest to, że ludzie zakładają, że tylko dlatego, że maszyna staje się lepsza w swojej pracy (może się uczyć), jest również świadoma (ma inteligencję). Nic nie potwierdza tego poglądu na uczenie maszynowe. To samo zjawisko występuje, gdy ludzie zakładają, że komputer celowo powoduje u nich problemy. Komputer nie może przypisywać emocji i dlatego działa tylko na podstawie dostarczonych danych wejściowych i instrukcji zawartych w aplikacji, aby przetworzyć te dane. Prawdziwa sztuczna inteligencja w końcu pojawi się, gdy komputery będą mogły wreszcie naśladować sprytną kombinację używaną przez naturę:

•  Genetyka: powolna nauka z pokolenia na pokolenie
•  Nauczanie: Szybka nauka ze zorganizowanych źródeł
•  Eksploracja: spontaniczne uczenie się poprzez media i interakcje z innymi

Aby koncepcje uczenia maszynowego były zgodne z możliwościami maszyny, należy rozważyć konkretne zastosowania systemów uczących się. Warto przyjrzeć się zastosowaniom uczenia maszynowego poza normalną sferą tego, co wielu uważa za domenę sztucznej inteligencji. Oto kilka zastosowań uczenia maszynowego, których możesz nie kojarzyć z AI:

•  Kontrola dostępu: W wielu przypadkach kontrola dostępu jest propozycją tak lub nie. Karta inteligentna pracownika zapewnia dostęp do zasobu w taki sam sposób, jak ludzie używali kluczy od wieków. Niektóre blokady oferują możliwość ustawiania czasu i dat, w których dostęp jest dozwolony, ale taka zgrubna kontrola nie spełnia wszystkich potrzeb. Korzystając z uczenia maszynowego, możesz określić, czy pracownik powinien uzyskać dostęp do zasobu na podstawie roli i potrzeb. Na przykład pracownik może uzyskać dostęp do sali szkoleniowej, gdy szkolenie odzwierciedla rolę pracownika.
•  Ochrona zwierząt: ocean może wydawać się wystarczająco duży, aby umożliwić zwierzętom i statkom wspólne życie bez problemu. Niestety co roku wiele zwierząt zostaje potrąconych przez statki. Algorytm uczenia maszynowego mógłby pozwolić statkom na unikanie zwierząt dzięki poznaniu dźwięków i cech zarówno zwierzęcia, jak i statku. (Statek polegałby na podwodnym sprzęcie nasłuchowym, który śledziłby zwierzęta za pomocą ich dźwięków, które można usłyszeć z dużej odległości od statku).
•  Przewidywanie czasu oczekiwania: większość ludzi nie lubi czekać, gdy nie mają pojęcia, jak długo będzie czekać. Uczenie maszynowe umożliwia aplikacji określenie czasu oczekiwania na podstawie poziomów zatrudnienia, obciążenia personelu, złożoności problemów, które personel próbuje rozwiązać, dostępności zasobów i tak dalej.

Przejście od uczenia maszynowego do uczenia głębokiego

Jak wspomniano wcześniej, uczenie głębokie to podzbiór uczenia maszynowego. W obu przypadkach wydaje się, że algorytmy uczą się, analizując ogromne ilości danych (jednak w niektórych przypadkach uczenie się może nastąpić nawet przy niewielkich zbiorach danych). Jednak głębokie uczenie się różni się głębokością analizy i rodzajem automatyzacji, które zapewnia. Możesz podsumować różnice między nimi w następujący sposób:

•  Zupełnie inny paradygmat: uczenie maszynowe to zbiór wielu różnych technik, które umożliwiają komputerowi uczenie się na podstawie danych i wykorzystywanie tego, czego się uczy, do udzielania odpowiedzi, często w formie przewidywań. Uczenie maszynowe opiera się na różnych paradygmatach, takich jak analiza statystyczna, znajdowanie analogii w danych, używanie logiki i praca z symbolami. Porównaj niezliczone techniki stosowane w uczeniu maszynowym z jedną techniką stosowaną w uczeniu głębokim, która naśladuje funkcje ludzkiego mózgu. Przetwarza dane za pomocą jednostek obliczeniowych, zwanych neuronami, ułożonych w uporządkowane sekcje, zwane warstwami. Techniką leżącą u podstaw głębokiego uczenia się jest sieć neuronowa.
•  Elastyczne architektury: rozwiązania uczenia maszynowego oferują wiele gałek (korekty) zwane hiperparametrami, które dostosowujesz w celu optymalizacji uczenia algorytmu na podstawie danych. Rozwiązania do uczenia głębokiego również używają hiperparametrów, ale używają też wielu warstw konfigurowanych przez użytkownika (użytkownik określa liczbę i typ). W rzeczywistości, w zależności od powstałej sieci neuronowej, liczba warstw może być dość duża i tworzyć unikalne sieci neuronowe zdolne do wyspecjalizowanego uczenia się: niektóre mogą nauczyć się rozpoznawać obrazy, podczas gdy inne mogą wykrywać i analizować polecenia głosowe. Chodzi o to, że termin "głęboki" jest właściwy; odnosi się do dużej liczby warstw potencjalnie używanych do analizy. Architektura składa się z zespołu różnych neuronów i ich ułożenia w warstwach w rozwiązaniu do głębokiego uczenia się.
•  Definicja funkcji autonomicznych: rozwiązania uczenia maszynowego wymagają interwencji człowieka, aby odnieść sukces. Aby poprawnie przetwarzać dane, analitycy i naukowcy wykorzystują dużą część własnej wiedzy do opracowywania działających algorytmów. Na przykład w rozwiązaniu uczenia maszynowego, które określa wartość domu, opierając się na danych zawierających wymiary ścian różnych pomieszczeń, algorytm uczenia maszynowego nie będzie w stanie obliczyć powierzchni domu, chyba że analityk określi sposób obliczania to wcześniej. Tworzenie odpowiednich informacji dla algorytmu uczenia maszynowego nazywa się tworzeniem funkcji, co jest czynnością czasochłonną. Uczenie głębokie nie wymaga od ludzi wykonywania żadnych czynności związanych z tworzeniem funkcji, ponieważ dzięki wielu warstwom definiuje własne najlepsze funkcje. Dlatego też uczenie głębokie przewyższa uczenie maszynowe w bardzo trudnych zadaniach, takich jak rozpoznawanie głosu i obrazów, rozumienie tekstu lub pokonanie ludzkiego mistrza w grze Go (cyfrowa forma gry planszowej, w której zdobywasz terytorium przeciwnika).

Musisz zrozumieć wiele problemów związanych z rozwiązaniami uczenia głębokiego, z których najważniejszym jest to, że komputer nadal niczego nie rozumie i nie jest świadomy rozwiązania, które zapewnił. Po prostu zapewnia formę pętli sprzężenia zwrotnego i automatyzacji połączonych w celu wytworzenia pożądanych wyników w krótszym czasie, niż człowiek mógłby ręcznie uzyskać dokładnie ten sam wynik, manipulując rozwiązaniem uczącym się.
Druga kwestia polega na tym, że niektórzy ludzie w ciemności nalegali, aby warstwy głębokiego uczenia się były ukryte i niedostępne do analizy. Tak nie jest. Wszystko, co może zbudować komputer, jest ostatecznie śledzone przez człowieka. W rzeczywistości ogólne rozporządzenie o ochronie danych (RODO) wymaga, aby ludzie przeprowadzali taką analizę. Wymóg przeprowadzenia tej analizy jest kontrowersyjny, ale obowiązujące prawo mówi, że ktoś musi to zrobić. Trzecią kwestią jest to, że samoregulacja idzie tylko do tej pory. Uczenie głębokie nie zawsze zapewnia rzetelny lub poprawny wynik. W rzeczywistości rozwiązania do głębokiego uczenia mogą pójść strasznie źle. Nawet jeśli kod aplikacji nie idzie źle, urządzenia używane do obsługi głębokiego uczenia mogą. Mimo to, mając na uwadze te problemy, możesz zobaczyć głębokie uczenie używane w wielu niezwykle popularnych aplikacjach.

Korzystanie z Deep Learning w prawdziwym świecie

Nie popełnij błędu: ludzie używają uczenia głębokiego w prawdziwym świecie do wykonywania szerokiego zakresu zadań. Na przykład wiele samochodów używa obecnie interfejsu głosowego. Interfejs głosowy może wykonywać podstawowe zadania, nawet od samego początku. Jednak im więcej z nim rozmawiasz, tym lepiej działa interfejs głosowy. Interfejs uczy się, gdy z nim rozmawiasz - nie tylko sposobu, w jaki mówisz, ale także osobistych preferencji. Poniższe sekcje zawierają trochę informacji o tym, jak głębokie uczenie działa w prawdziwym świecie.

Zrozumienie pojęcia uczenia się

Kiedy ludzie się uczą, polegają na czymś więcej niż tylko danych. Ludzie mają intuicję oraz niesamowitą wiedzę o tym, co zadziała, a co nie. Częścią tej wrodzonej wiedzy jest instynkt, który jest przekazywany z pokolenia na pokolenie poprzez DNA. Sposób, w jaki ludzie wchodzą w interakcje z danymi wejściowymi, również różni się od tego, co robi komputer. W przypadku komputera uczenie się polega na zbudowaniu bazy danych składającej się z sieci neuronowej, która ma wbudowane wagi i odchylenia, aby zapewnić prawidłowe przetwarzanie danych. Sieć neuronowa przetwarza następnie dane, ale nie w sposób, który jest nawet zdalnie taki sam, jak będzie to robił człowiek.

Wykonywanie zadań uczenia głębokiego

Ludzie i komputery są najlepsi w różnych zadaniach. Ludzie są najlepsi w rozumowaniu, myśleniu o etycznych rozwiązaniach i emocjonalności. Komputer ma przetwarzać dane - dużo danych - naprawdę szybko. Często używasz uczenia głębokiego do rozwiązywania problemów, które wymagają wyszukiwania wzorców w ogromnych ilościach danych - problemów, których rozwiązanie jest nieintuicyjne i niezauważalne od razu. Niemal w każdym przypadku można podsumować problem i jego rozwiązanie jako szybkie przetwarzanie ogromnych ilości danych, szukanie wzorców, a następnie poleganie na tych wzorcach, aby odkryć coś nowego lub stworzyć konkretny rodzaj wyjścia.

Wykorzystanie uczenia głębokiego w aplikacjach

Uczenie głębokie może być samodzielnym rozwiązaniem, ale często jest używane jako część znacznie większego rozwiązania i jest mieszane z innymi technologiami. Na przykład łączenie uczenia głębokiego z systemami eksperckimi nie jest rzadkością, jednak rzeczywiste aplikacje to coś więcej niż tylko liczby generowane z jakiegoś mglistego źródła. Pracując w świecie rzeczywistym, należy również wziąć pod uwagę różne rodzaje źródeł danych i zrozumieć, jak one działają. Kamera może wymagać innego rodzaju rozwiązania do głębokiego uczenia, aby uzyskać z niej informacje, podczas gdy termometr lub detektor zbliżeniowy może generować proste liczby (lub dane analogowe, które wymagają pewnego rodzaju przetwarzania). Rzeczywiste rozwiązania są niechlujne, więc musisz być przygotowany na więcej niż jedno rozwiązanie problemów w swoim zestawie narzędzi.

Biorąc pod uwagę środowisko programowania Deep Learning

Możesz automatycznie założyć, że musisz przeskoczyć przez okropny zestaw kółek i nauczyć się ezoterycznych umiejętności programowania, aby zagłębić się w głębokie uczenie się. To prawda, że zyskujesz elastyczność, pisząc aplikacje przy użyciu jednego z języków programowania, które dobrze sprawdzają się w przypadku potrzeb uczenia głębokiego. Jednak Deep Learning Studio i inne podobne produkty umożliwiają ludziom tworzenie rozwiązań do głębokiego uczenia bez programowania. Zasadniczo, takie rozwiązania obejmują opisanie tego, co chcesz jako wynik, poprzez graficzne zdefiniowanie modelu. Tego rodzaju rozwiązania sprawdzają się dobrze w przypadku prostych problemów, które inni musieli już rozwiązać, ale brakuje im elastyczności, aby coś zrobić zupełnie inaczej - zadanie, które wymaga czegoś więcej niż zwykłej analizy. Rozwiązania do uczenia głębokiego w chmurze, takie jak te dostarczane przez Amazon Web Services (AWS), mogą zapewnić dodatkową elastyczność. Te środowiska również zwykle upraszczają środowisko programistyczne, zapewniając tyle lub mało wsparcia, ile chcesz. W rzeczywistości AWS zapewnia obsługę różnego rodzaju bezserwerowego computingu, w którym nie musisz martwić się o żadną infrastrukturę. Jednak te rozwiązania mogą stać się dość drogie. Mimo że zapewniają większą elastyczność niż korzystanie z gotowego rozwiązania, nadal nie są tak elastyczne, jak w przypadku rzeczywistego środowiska programistycznego.
Masz też do rozważenia inne rozwiązania nieprogramistyczne. Na przykład, jeśli potrzebujesz mocy i elastyczności, ale nie chcesz programować, aby to uzyskać, możesz polegać na produkcie takim jak MATLAB, który zapewnia zestaw narzędzi do głębokiego uczenia się. MATLAB i niektóre inne środowiska koncentrują się bardziej na algorytmach, których chcesz używać, ale aby uzyskać z nich pełną funkcjonalność, musisz pisać skrypty jako minimum, co oznacza, że zanurzasz się w programowaniu niektórych stopni. Problem z tymi środowiskami polega na tym, że może im brakować również w dziale zasilania, więc niektóre rozwiązania mogą zająć więcej czasu, niż się spodziewasz. W pewnym momencie, bez względu na to, ile innych rozwiązań spróbujesz, poważne problemy z głębokim uczeniem będą wymagały programowania. Przeglądając wybory online, często widzisz sztuczną inteligencję, uczenie maszynowe i uczenie głębokie, wszystkie razem. Jednak podobnie jak te trzy technologie działają na różnych poziomach, tak samo działają języki programowania , których potrzebujesz. Dobre rozwiązanie do głębokiego uczenia będzie wymagało zastosowania przetwarzania wieloprocesowego, najlepiej z wykorzystaniem jednostki przetwarzania grafiki (GPU) z wieloma rdzeniami. Twój wybrany język musi również obsługiwać GPU za pośrednictwem kompatybilnej biblioteki lub pakietu. Zatem sam wybór języka zwykle nie wystarczy; musisz dokładniej zbadać, czy język rzeczywiście spełnia Twoje potrzeby. Mając to na uwadze, oto najpopularniejsze języki (w kolejności popularności w chwili pisania tego tekstu) do zastosowania w uczeniu głębokim:

• Pyton
•  R
•  MATLAB (język skryptowy, a nie produkt)
• Oktave

Jedynym problemem z tą listą jest to, że inni programiści mają inne opinie. Python i R zwykle pojawiają się na górze wszystkich list, ale potem możesz znaleźć różnego rodzaju opinie. Wybierając język, zazwyczaj musisz wziąć pod uwagę następujące kwestie:

•  Krzywa uczenia się: Twoje doświadczenia mają wiele do powiedzenia na temat tego, czego możesz się najłatwiej nauczyć. Python jest prawdopodobnie najlepszym wyborem dla kogoś, kto programuje od wielu lat, ale R może być lepszym wyborem dla kogoś, kto ma już doświadczenie w programowaniu funkcjonalnym. MATLAB lub Octave mogą działać najlepiej dla matematyka.
•  Szybkość: każde rozwiązanie do głębokiego uczenia będzie wymagało dużej mocy obliczeniowej. Wiele osób twierdzi, że ponieważ R jest językiem statystycznym, oferuje więcej wsparcia statystycznego i zwykle zapewnia szybsze wyniki. W rzeczywistości obsługa Pythona dla doskonałego programowania równoległego prawdopodobnie niweluje tę przewagę, gdy masz wymagany sprzęt.
•  Wsparcie społeczności: istnieje wiele form wsparcia społeczności, ale dwa najważniejsze dla głębokiego uczenia się to pomoc w zdefiniowaniu rozwiązania i dostęp do wielu gotowych pomocy programowych. Po czwarte, Octave prawdopodobnie zapewnia najmniej wsparcia społeczności; Python zapewnia najwięcej.
•  Koszt: ile kosztuje język, zależy od wybranego rozwiązania i miejsca jego uruchomienia. Na przykład MATLAB to zastrzeżony produkt, który wymaga zakupu, więc masz coś zainwestowanego natychmiast, gdy używasz MATLAB. Jednak mimo że inne języki są na początku bezpłatne, możesz znaleźć ukryte koszty, takie jak uruchomienie kodu w chmurze, aby uzyskać dostęp do obsługi GPU. Obsługa struktur DNN: Framework może znacznie ułatwić pracę z Twoim językiem. Jednak musisz mieć framework która dobrze współgra ze wszystkimi innymi częściami rozwiązania. Dwie najpopularniejsze frameworki to TensorFlow i PyTorch. Co dziwne, Python jest jedynym językiem, który obsługuje oba, więc oferuje największą elastyczność. Używasz Case z MATLAB i TensorFlow z R.
• Gotowy do produkcji: język musi obsługiwać taki rodzaj wyjścia, jaki jest potrzebny w Twoim projekcie. Pod tym względem Python wyróżnia się, ponieważ jest językiem ogólnego przeznaczenia. Możesz z nim stworzyć dowolną aplikację. Jednak bardziej szczegółowe środowiska zapewniane przez inne języki mogą być niezwykle pomocne w przypadku niektórych projektów, dlatego należy wziąć pod uwagę wszystkie z nich.

Pokonywanie szumu związanego z głębokim uczeniem się

W poprzednich częściach omówiono niektóre kwestie związane z postrzeganiem uczenia głębokiego, takie jak przekonanie niektórych ludzi, że pojawia się ono wszędzie i robi wszystko. Problem z głębokim uczeniem się polega na tym, że padł on ofiarą własnej kampanii medialnej. Uczenie głębokie rozwiązuje specyficzne problemy. Poniższe sekcje pomogą Ci uniknąć szumu związanego z głębokim uczeniem się.

Odkrywanie ekosystemu start-upów

Korzystanie z rozwiązania do uczenia głębokiego znacznie różni się od tworzenia własnego rozwiązania do uczenia głębokiego. Samo spełnienie wymagań edukacyjnych może zająć trochę czasu. Jednak po samodzielnym przepracowaniu kilku projektów zaczynasz zdawać sobie sprawę, że szum wokół głębokiego uczenia się rozciąga się aż do początku konfiguracji. Głębokie uczenie nie jest dojrzałą technologią, więc próba jej wykorzystania przypomina budowanie wioski na Księżycu lub głębokie nurkowanie w Rowie Mariańskm. Napotkasz problemy, a technologia będzie się nieustannie zmieniać. Niektóre metody stosowane do tworzenia rozwiązań głębokiego uczenia również wymagają pracy. Koncepcja, że komputer faktycznie uczy się czegokolwiek, jest fałszywa, podobnie jak idea, że komputery mają w ogóle jakąkolwiek formę świadomości. Powodem, dla którego Microsoft, Amazon i inni dostawcy mają problemy z głębokim uczeniem się, jest to, że nawet ich inżynierowie mogą mieć nierealistyczne oczekiwania. Głębokie uczenie się sprowadza się do matematyki i dopasowywania wzorców - z pewnością naprawdę wymyślnej matematyki i dopasowywania wzorców, ale myśl, że to cokolwiek innego, jest po prostu błędna.

Wiedzieć, kiedy nie używać głębokiego uczenia

Głębokie uczenie to tylko jeden sposób przeprowadzania analizy i nie zawsze jest to najlepszy sposób. Na przykład, mimo że systemy eksperckiee są uważane za starą technologię, tak naprawdę nie można stworzyć autonomicznego samochodu bez niego . Rozwiązanie do głębokiego uczenia się okazuje się zbyt wolne dla tej konkretnej potrzeby. Twój samochód prawdopodobnie będzie zawierał ogólnie uczącą się sztuczną inteligencję, a uczenie głębokie w szczególności może trafić na nagłówki gazet, gdy technologia nie spełni oczekiwań. Błędem jest myślenie, że głębokie uczenie się może w jakiś sposób podejmować decyzje etyczne lub że wybierze właściwy sposób działania w oparciu o uczucia (których nie ma żadna maszyna). Antropomorfizacja korzystania z głębokiego uczenia się zawsze będzie błędem. Niektóre zadania wymagają po prostu człowieka. Szybkość i zdolność do myślenia jak człowiek to najważniejsze kwestie związane z głębokim uczeniem się, ale jest ich o wiele więcej. Na przykład nie możesz korzystać z uczenia głębokiego, jeśli nie masz wystarczających danych, aby go wytrenować.


Wesprzyj Szkołę, kliknij w Reklamę…Dziękujemy…