Uczenie głębokie jest podzbiorem uczenia maszynowego (ML), w którym sztuczne sieci neuronowe – algorytmy zaprojektowane do działania przypominającego ludzki mózg – uczą się z dużych ilości danych.
Uczenie głębokie bazuje na warstwach sieci neuronowych, które są algorytmami modelowanymi w przybliżeniu do sposobu działania ludzkich mózgów. Trening z dużą ilością danych konfiguruje neurony w sieci neuronowej. Wynikiem takiego treningu jest model uczenia głębokiego, który po przeszkoleniu przetwarza nowe dane. Modele uczenia głębokiego pobierają informacje z wielu źródeł danych i analizują te dane w czasie rzeczywistym, bez konieczności interwencji ze strony człowieka. W procesie uczenia głębokiego procesory graficzne (GPU) są zoptymalizowane pod kątem modeli szkoleń, ponieważ mogą przetwarzać wiele obliczeń jednocześnie.
Uczenie głębokie napędza wiele technologii sztucznej inteligencji (SI), które mogą usprawnić automatyzację i zadania analityczne. Większość ludzi codziennie spotyka się zuczeniem głębokim podczas przeglądania Internetu lub korzystania z telefonów komórkowych. Między wieloma niezliczonymi zastosowaniami, głębokie uczenie jest używane do generowania napisów dla filmów w YouTube, rozpoznawania mowy w telefonach i inteligentnych głośnikach, rozpoznawania twarzy z fotografii oraz do tworzenia samodzielnie jeżdżących samochodów. A ponieważ analitycy i badacze danych realizują coraz bardziej złożone projekty głębokiego uczenia, wykorzystujące struktury głębokiego uczenia, ten typ sztucznej inteligencji będzie coraz powszechniejszym elementem naszego codziennego życia.
Najprościej mówiąc, głębokie uczenie to nazwa sieci neuronowych z wieloma warstwami.
Aby przeanalizować dane obserwacyjne, takie jak zdjęcia lub dźwięki, sieci neuronowe przekazują dane poprzez połączone warstwy węzłów. Kiedy informacje są przekazywane przez warstwę, każdy węzeł tej warstwy wykonuje proste operacje na danych i selektywnie przekazuje wyniki do innych węzłów. Każda kolejna warstwa koncentruje się na funkcji wyższego poziomu niż ostatnia, dopóki sieć nie utworzy danych wyjściowych.
Między warstwą wejściową a warstwą wyjściową znajdują się warstwy ukryte. W tym miejscu pojawia się rozróżnienie między sieciami neuronowymi a głębokim uczeniem się: podstawowa sieć neuronowa może mieć jedną lub dwie ukryte warstwy, podczas gdy sieć uczenia głębokiego może mieć dziesiątki, a nawet setki warstw. Zwiększenie liczby różnych warstw i węzłów może zwiększyć dokładność sieci. Jednak więcej warstw może również oznaczać, że model będzie wymagał więcej parametrów i zasobów obliczeniowych.
Głębokie uczenie klasyfikuje informacje poprzez warstwy sieci neuronowych, zawierających zbiór kanałów wejściowych, które otrzymują surowe dane. Przykładowo, jeśli sieć neuronowa jest szkolona z obrazami ptaków, może być używana do rozpoznawania obrazów ptaków. Więcej warstw umożliwia bardziej precyzyjne wyniki, takie jak odróżnienie wrony od kruka, zamiast odróżnienia wrony od kurczaka. Głębokie sieci neuronowe, które odpowiadają za algorytmy uczenia głębokiego, mają kilka ukrytych warstw między węzłami wejściowymi i wyjściowymi – co oznacza, że są w stanie przeprowadzić bardziej złożone klasyfikacje danych. Algorytm uczenia głębokiego musi być przeszkolony przy użyciu dużych zestawów danych. Im więcej otrzyma danych, tym będzie dokładniejszy. Konieczne będzie przedstawienie mu tysięcy zdjęć ptaków, zanim będzie w stanie dokładnie zaklasyfikować nowe zdjęcia ptaków.
Szkolenie modelu uczenia głębokiego w sieciach neuronowych wymaga bardzo wielu zasobów. Gdy sieć neuronowa przyjmuje dane wejściowe, które są przetwarzane w warstwach ukrytych przy użyciu wag (parametrów reprezentujących siłę połączenia między danymi wejściowymi) dostosowywanych podczas treningu. Następnie model przedstawia predykcję. Wagi są dostosowywane na podstawie szkoleniowych danych wejściowych w celu podawania lepszych predykcji. Modele uczenia głębokiego poświęcają dużo czasu na szkolenie przy użyciu dużych ilości danych – dlatego tak ważna jest wysoka wydajność przetwarzania.
Procesory graficzne (GPU) są zoptymalizowane pod kątem obliczeń danych i zostały zaprojektowane z myślą o szybkim wykonywaniu obliczeń macierzy na dużą skalę. GPU doskonalenadają się do równoległych procesów uczenia maszynowego na wielką skalę (ML) i problemów uczenia głębokiego. Z tego powodu aplikacje ML, które wykonują dużą liczbę obliczeń na dużych ilościach ustrukturyzowanych lub nieustrukturyzowanych danych (takich jak obrazy, teksty i filmy), mają dobrą wydajność.
Jedną z głównych korzyści płynących z uczenia głębokiego jest to, że sieci neuronowe są wykorzystywane do ujawniania ukrytych spostrzeżeń i powiązań z danych, które wcześniej nie były widoczne. Korzystając z bardziej zaawansowanych modeli uczenia maszynowego, umożliwiających analizowanie dużych, złożonych zestawów danych, firmy mogą usprawniać wykrywanie oszustw, zarządzanie łańcuchem dostaw i cyberbezpieczeństwo, wykorzystując następujące możliwości:
Algorytmy głębokiego uczenia mogą być szkolone do sprawdzania danych tekstowych, poprzez analizę wpisów w mediach społecznościowych, wiadomości ankiet, oferując cenne przydatne informacje dotyczące klientów i biznesu.
Uczenie głębokie wymaga oznaczonych danych do szkolenia. Po przeszkoleniu system może samodzielnie oznaczać nowe dane i identyfikować różne typy danych.
Algorytmuczenia głębokiego może zaoszczędzić czas, ponieważ nie wymaga od ludzi manualnego wyodrębniania informacji z nieprzetworzonych danych.
Gdy algorytm uczenia głębokiego zostanie odpowiednio przeszkolony, może wykonywać i powtarzać tysiące zadań, szybciej niż ludzie.
Sieci neuronowe wykorzystywane do uczenia głębokiego mają możliwość zastosowania do wielu różnych typów danych i aplikacji. Model uczenia głębokiego może się ponadto dostosować po wytrenowaniu za pomocą nowych danych.
SI, uczenie maszynowe i uczenie głębokie są ze sobą powiązane, lecz mają różne funkcje:
Sztuczna inteligencja pozwala komputerom, maszynom lub robotom naśladować możliwości człowieka, takie jak podejmowanie decyzji, rozpoznawanie obiektów, rozwiązywanie problemów i rozumienie języka.
Uczenie maszynowe to podzbiór SI ukierunkowany na tworzenie aplikacji, które mogą się uczyć z danych w celu zwiększenia dokładności wraz z upływem czasu, bez ludzkiej interwencji. Algorytmy uczenia maszynowego można przeszkolić, aby znajdowały wzorce pozwalające podejmować lepsze decyzje i lepiej prognozować, ale zazwyczaj wymaga to interwencji człowieka.
Uczenie głębokie to podzbiór uczenia maszynowego umożliwiający komputerom rozwiązywanie bardziej złożonych problemów. Modele uczenia głębokiego są także w stanie samodzielnie tworzyć nowe funkcje.
Uczenie głębokie można wykorzystać do analizy dużej liczby obrazów, co może pomóc sieciom społecznościowym dowiedzieć się więcej o ich użytkownikach. Poprawia to ukierunkowane reklamy i sugestie osób do obserwowania.
Sieci neuronowe w uczeniu głębokim mogą być używane do przewidywania wartości akcji i tworzenia strategii giełdowych, a także do wykrywania zagrożeń bezpieczeństwa i ochrony przed oszustwami.
Uczenie głębokie może odegrać kluczową rolę w dziedzinie opieki zdrowotnej poprzez analizę trendów i zachowań w celu przewidywania chorób u pacjentów. Pracownicy opeiki zdrowotnej mogą również stosować algorytmy uczenia głębokiego w celu określenia optymalnych testów i zabiegów dla swoich pacjentów.
Uczenie głębokie może wykrywać zaawansowane zagrożenia lepiej niż tradycyjne rozwiązania do zwalczania złośliwego oprogramowania, rozpoznając nowe, podejrzane działania, zamiast reagowania opartego o bazę danych znanych zagrożeń.
Asystenci cyfrowi reprezentują niektóre z najczęściej spotykanych przykładów uczenia głębokiego. Korzystając z przetwarzania języka naturalnego (NLP), Siri, Cortana, Google i Alexa mogą odpowiadać na pytania i dostosować się do nawyków użytkowników.
Pomimo odkrywania nowych zastosowań dla uczenia głębokiego, to wciąż zmieniająca się dziedzina z pewnymi ograniczeniami:
Aby uzyskać bardziej wnikliwe i abstrakcyjne odpowiedzi, uczenie głębokie wymaga dużej ilości danych do przeszkolenia. Podobnie jak w przypadku ludzkiego mózgu, algorytm uczenia głębokiego wymaga przykładów, aby uczyć się na błędach i poprawić swoje wyniki.
Maszyny wciąż uczą się w bardzo ograniczony sposób, co może prowadzić do błędów. Sieci głębokiego uczenia wymagają danych, aby rozwiązać określony problem. Jeśli zostaną poproszone o wykonanie zadania poza tym zakresem, dojdzie najprawdopodobniej do porażki.
Ponieważ sieć neuronowa przetrwarza miliony danych w celu znalezienia wzorców, zrozumienie sposobu osiągnięcia przez nią danego rezultatu może być trudne. Ten brak przejrzystości w sposobie przetwarzania danych utrudnia wyjaśnienie przewidywań i identyfikację niepożądanych tendencji.
Despite these hurdles, data scientists are getting closer and closer to building highly accurate deep learning models that can learn without supervision—which will make deep learning faster and less labor intensive.
Wraz z eksplozją ilości danych biznesowych badacze danych muszą być w stanie badać i tworzyć modele uczenia głębokiego szybciej i z większą elastycznością, niż może to zapewnić tradycyjny sprzęt IT dostępny lokalnie.
Oracle Cloud Infrastructure (OCI) oferuje najbardziej opłacalną moc obliczeniową dla zadań przetwarzania o dużej ilości danych, szybkie składowanie w chmurze oraz wysokowydajne połączenia sieciowe, zapewniające przepustowość 100 Gb/s RDMA. OCI udostępnia także instancje obliczeniowe GPU do uczenia głębokiego, łatwe do wdrożenia obrazy oraz elastyczność w uruchamianiu stacji roboczej z jednym GPU lub klastra wariantów z wieloma GPU.
Do tworzenia, szkolenia i wdrażania modeli uczenia maszynowego w wysokowydajnej infrastrukturze chmurowej można wypróbować Oracle Cloud Infrastructure Data Science. Badacze danych mogą w znacznie krótszym czasie tworzyć i szkolić modele uczenia głębokiego, używając procesorów graficznych NVIDIA w sesjach Notebooka. Mogą także określić ilość zasobów obliczeniowych i przechowywania, potrzebnych do realizacji projektów o dowolnej wielkości, bez konieczności zajmowania się udostępnianiem lub utrzymaniem infrastruktury. Ponadto OCI Data Science przyspiesza tworzenie modelu, usprawniając zadania badania danych, takie jak dostęp do danych, wybór algorytmów oraz objaśnienie modeli.