Sztuczne sieci neuronowe
Czym są i dlaczego są takie ważne
Sieci neuronowe to systemy obliczeniowe z połączonymi węzłami, które działają podobnie do neuronów w ludzkim mózgu. Wykorzystanie algorytmów pozwala im rozpoznawać ukryte prawidłowości i korelacje w nieprzetworzonych danych, grupować je i klasyfikować, a także – z biegiem czasu – nieustannie się uczyć i doskonalić.
Historia sieci neuronowych
Pierwsza sieć neuronowa została opracowana przez Warrena McCullocha i Waltera Pittsa w 1943 roku. Napisali oni przełomowy artykuł na temat tego, jak mogą działać neurony, i zademonstrowali swoje pomysły, tworząc prostą sieć neuronową za pomocą obwodów elektrycznych. Ten przełomowy model utorował drogę badaniom nad sieciami neuronowymi w dwóch obszarach:
Procesy biologiczne w mózgu.
Zastosowanie sieci neuronowych powiązane ze sztuczną inteligencją (AI).
Badania nad sztuczną inteligencją coraz bardziej przyspieszają. Kunihiko Fukushima opracował pierwszą prawdziwą, wielowarstwową sieć neuronową w 1975 roku.
Na początku twórcom sieci neuronowych przyświecał cel stworzenia systemu obliczeniowego, który mógłby rozwiązywać problemy w taki sam sposób, jak ludzki mózg. Jednak z biegiem czasu naukowcy skupili się na wykorzystywaniu sieci neuronowych do wykonywania określonych zadań, co doprowadziło do odejścia od ściśle biologicznego podejścia. Od tego czasu sieci neuronowe wykonują różne zadania, w tym związane z rozpoznawaniem obrazu i mowy, tłumaczeniem maszynowym, analizą sieci społecznościowych, grą w gry planszowe i wideo oraz diagnostyką medyczną.
W związku ze wzrostem ustrukturyzowanych i nieustrukturyzowanych zbiorów danych do poziomu big data ludzie opracowali systemy głębokiego uczenia, które są zasadniczo sieciami neuronowymi z wieloma warstwami. Głębokie uczenie umożliwia przechwytywanie i eksplorację coraz większej ilości danych, w tym danych nieustrukturyzowanych.
Dlaczego sieci neuronowe są tak ważne?
Sieci neuronowe nadają się również do wspierania ludzi w rozwiązywaniu złożonych problemów życia codziennego. Mogą one uczyć się i modelować nieliniowe i złożone powiązania między danymi wejściowymi a wyjściowymi; dokonywać uogólnień i wnioskować; ujawniać ukryte powiązania, prawidłowości i prognozy; oraz modelować wysoce zmienne dane (takie jak finansowe dane szeregu czasowego) i wariancje potrzebne do przewidywania rzadkich zdarzeń (np. w celu wykrywania oszustw). Dzięki temu sieci neuronowe mogą usprawnić procesy podejmowania decyzji w następujących obszarach:
- Wykrywanie oszustw związanych z kartami kredytowymi i programem ubezpieczeń zdrowotnych w USA (Medicare).
- Optymalizacja logistyki na potrzeby sieci transportowych.
- Rozpoznawanie mowy, znane również jako przetwarzanie języka naturalnego.
- Diagnostyka medyczna.
- Marketing.
- Finansowe prognozy kursów akcji, walut, opcji, kontraktów terminowych, bankructw i ratingów obligacji.
- Automatyczne systemy sterowania.
- Prognozowanie obciążenia elektrycznego i zapotrzebowania na energię.
- Kontrola procesów i jakości.
- Rozpoznawanie związków chemicznych.
- Ocena ekosystemu.
- Rozpoznawanie obrazu do interpretacji nieprzetworzonych zdjęć i filmów (na przykład w dziedzinie obrazowania medycznego, robotyki i rozpoznawania twarzy).
Naszym głównym celem w kontekście sieci neuronowych, czyli modeli, jest osiągnięcie dokładności na poziomie ludzkiego umysłu. Dopóki nie osiągniemy tego poziomu, zawsze będziemy świadomi, że jest jeszcze coś, co można zrobić lepiej. Ivan Gomez Data Scientist and Consultant Zencos
Rodzaje sieci neuronowych
Istnieją różne rodzaje głębokich sieci neuronowych – a każda z nich ma zalety i wady, w zależności od zastosowania. Oto ich przykłady:
- Konwolucyjne sieci neuronowe (CNN) zawierają pięć typów warstw: wejściową, splotową, łączącą, w pełni połączoną i wyjściową. Każda warstwa ma określony cel, taki jak sumowanie, łączenie lub aktywowanie. Splotowe sieci neuronowe spopularyzowały klasyfikację obrazów i wykrywanie obiektów. Jednak sieci CNN zostały zastosowane również w innych obszarach, takich jak przetwarzanie języka naturalnego i prognozowanie.
- Rekurencyjne sieci neuronowe (RNN) wykorzystują informacje sekwencyjne, takie jak dane ze znacznikami czasu z urządzenia czujnikowego lub z wypowiedzianego zdania składającego się z sekwencji terminów. W przeciwieństwie do tradycyjnych sieci neuronowych, wszystkie wejścia rekurencyjnej sieci neuronowej nie są od siebie niezależne, a dane wyjściowe dla każdego elementu zależą od obliczeń poprzedzających go elementów. Sieci RNN są stosowane do zastosowań związanych z prognozowaniem, szeregami czasowymi i analizą sentymentu oraz do innych zastosowań tekstowych.
- Sieci neuronowe typu feedforward, w których każdy perceptron w danej warstwie jest połączony z każdym perceptronem z kolejnej warstwy. Informacje są przekazywane z jednej warstwy do następnej tylko do przodu. Nie występują pętle sprzężenia zwrotnego.
- Sieci neuronowe typu autokoder służą do tworzenia abstrakcji zwanych koderami na podstawie danego zestawu wejść. Chociaż przypominają bardziej tradycyjne sieci neuronowe, autokodery same modelują dane wejściowe i dlatego metoda ta jest uznawana za nienadzorowaną. Autokodery działają na zasadzie desensytyzacji nieistotnych i sensytyzacji istotnych informacji. W miarę dodawania warstw, formułowane są dalsze abstrakcje w wyższych warstwach (warstwy najbliższe punktu, w którym wprowadzona jest warstwa dekodera). Abstrakcje te mogą zostać następnie wykorzystane przez klasyfikatory liniowe lub nieliniowe.
Sieci neuronowe w dzisiejszym świecie
Sieci neuronowe zmieniają sposób, w jaki ludzie i organizacje prowadzą interakcje z systemami, rozwiązują problemy, podejmują lepsze decyzje i opracowują lepsze prognozy. Dowiedz się więcej o oddziaływaniu sieci neuronowych.
Sieci neuronowe wspierają budowanie odporności stadnej
Specjalistka data science wykorzystuje sieci neuronowe do wykrywania gruźlicy u słoni. Dowiedz się, jak jej badania mogą pomóc w powstrzymaniu rozwoju gruźlicy.
Dowiedz się więcej o sieciach neuronowych
Dowiedz się, jak dobrać odpowiednią architekturę sieci neuronowej, jak określić odpowiednią metodę uczenia, jak zaimplementować modele sieci neuronowych w rozproszonym środowisku obliczeniowym oraz jak konstruować niestandardowe sieci neuronowe przy użyciu procedury NEURAL.
Jak stosować uczenie głębokie z SAS®
Potrzebujesz bardziej specjalistycznych informacji na temat technik i zastosowań uczenia głębokiego? Zapraszamy do lektury artykułu, z którego dowiesz się, jak SAS pomaga w tworzeniu modeli głębokich sieci neuronowych.
Kto korzysta z sieci neuronowych?
Systemy głębokiego uczenia – a tym samym sieci neuronowe stanowiące ich podstawę – są wykorzystywane w wielu branżach i obszarach biznesowych w ramach przemyślanej strategii.
Nauki przyrodnicze
Organizacje z sektora zdrowotnego i nauk przyrodniczych wykorzystują sieci neuronowe do diagnostyki predykcyjnej, obrazowania biomedycznego i monitorowania stanu zdrowia.
Przemysł
Firmy z branży energetycznej i przemysłowej wykorzystują sieci neuronowe do optymalizacji łańcuchów dostaw, automatyzacji wykrywania defektów i prognozowania zapotrzebowania na energię.
Bankowość
Banki wykorzystują sieci neuronowe do wykrywania oszustw, prowadzenia analiz kredytowych i automatyzacji usług doradców finansowych.
SEKTOR PUBLICZNY
Organizacje z sektora publicznego wykorzystują sieci neuronowe w rozwoju inteligentnych miast, wywiadu i rozpoznawania twarzy.
Handel detaliczny
Branża sprzedaży detalicznej wykorzystuje sieci neuronowe do obsługi czatbotów, usprawniania i poszerzania procesu gromadzenia danych o klientach (customer intelligence) oraz do prowadzenia analiz sieciowych.
Dowiedz się więcej o branżach wykorzystujących tę technologię
Sieci neuronowe potrafią identyfikować anomalie. W przyszłości możemy je wykorzystać, aby oferować lekarzom diagnozę do weryfikacji – np. w celu stwierdzenia, czy dana zmiana ma charakter nowotworowy, lub na czym polega bliżej niezidentyfikowany problem. Będziemy w stanie zapewnić te diagnozy szybciej i z większą dokładnością. Leigh Ann Herhold Data Scientist and Consultant Zencos
Budowanie modelu sieci neuronowej
Dowiedz się, jak korzystać z SAS® Visual Data Mining and Machine Learning w kontekście sieci neuronowych. W tym filmie przyjrzymy się czynnikom zwiększającym liczbę odwiedzin na stronie internetowej oraz temu, co skłania odwiedzających do pobrania artykułu ze strony firmy informatycznej.
Jak działają sieci neuronowe
Prosta sieć neuronowa składa się z warstwy wejściowej, warstwy wyjściowej (lub docelowej) oraz znajdującej się pomiędzy nimi warstwy ukrytej. Warstwy te są połączone za pomocą węzłów, a połączenia te tworzą „sieć” – sieć neuronową – połączonych ze sobą węzłów.
Węzły (ang. node) zostały opracowane na podobieństwo neuronów w ludzkim mózgu. Węzły, przypominające zachowaniem neurony, są aktywowane, gdy pojawia się wystarczająca ilość bodźców lub danych wejściowych. Taka aktywacja rozprzestrzenia się w całej sieci, tworząc odpowiedź na bodźce (dane wyjściowe). Połączenia między tymi sztucznymi neuronami działają jak uproszczone synapsy, umożliwiając przekazywanie sygnałów z jednego węzła do drugiego. Sygnały przechodzą przez warstwy podczas przesyłania – od pierwszej warstwy wejściowej do ostatniej warstwy wyjściowej – i są „po drodze” przetwarzane.
Po wysłaniu prośby lub problemu do rozwiązania, neurony wykonują obliczenia matematyczne, aby ustalić, czy mają wystarczająco dużo informacji, aby przekazać je następnemu neuronowi. Mówiąc prościej, wczytują wszystkie dane i ustalają, gdzie istnieją najsilniejsze powiązania. W najprostszym rodzaju sieci, otrzymane dane wejściowe są sumowane, a jeśli suma jest większa niż określona wartość progowa, neuron „generuje impuls” i aktywuje podłączone do niego neurony.
Wzrost liczby warstw ukrytych sieci neuronowej prowadzi do powstania głębokich sieci neuronowych. Dzięki architekturze głębokiego uczenia sieci neuronowe wznoszą się na nowe wyżyny. Korzystając z tych warstw, badacze danych mogą budować własne sieci głębokiego uczenia, które umożliwiają uczenie maszynowe, dzięki czemu komputer może znakomicie emulować zadania wykonywane przez ludzi, takie jak rozpoznawanie mowy i obrazów oraz prognozowanie. Co równie ważne, komputer może uczyć się samodzielnie, rozpoznając prawidłowości w wielu warstwach przetwarzania.
Przyjrzyjmy się temu, jak ta definicja sprawdza się w praktyce. Dane są wprowadzane do sieci neuronowej poprzez warstwę wejściową, która komunikuje się z warstwami ukrytymi. Przetwarzanie odbywa się w warstwach ukrytych poprzez system połączeń ważonych. Węzły w warstwie ukrytej łączą dane z warstwy wejściowej z zestawem współczynników, przypisując danym wejściowym odpowiednie wagi. Następnie te produkty w postaci ważonych danych wejściowych są sumowane. Suma jest przekazywana przez funkcję aktywacji węzła, która określa zakres, w jakim sygnał musi podążać w sieci, aby wpłynąć na wynik końcowy. Na koniec warstwy ukryte łączą się z warstwą wyjściową – w której uzyskiwane są dane wyjściowe.
Kolejne kroki
Zobacz, jaką rolę sieci neuronowe odgrywają w sztucznej inteligencji.
Polecany produkt wykorzystujący sieci neuronowe
SAS® Visual Data Mining and Machine Learning
Wspieraj kompleksowy proces eksploracji danych i uczenia maszynowego za pomocą kompleksowego, wizualnego (i programistycznego) interfejsu, który obsługuje wszystkie zadania w analitycznym cyklu życia.
Zalecane lektury
- Artykuł Shut the front door on insurance application fraud!Fraudsters love the ease of plying their trade over digital channels. Smart insurance companies are using data from those channels (device fingerprint, IP address, geolocation, etc.) coupled with analytics and machine learning to detect insurance application fraud perpetrated by agents, customers and fraud rings.
- Artykuł AI in manufacturing: New opportunities for IT and operationsAn AI survey reveals that leaders and early adopters in AI are making important advances and are identifying and expanding on what works as they use AI in more ways and more parts of their organizations.
- Artykuł A guide to machine learning algorithms and their applicationsDo you know the difference between supervised and unsupervised learning? How about the difference between decision trees and forests? Or when to use a support vector algorithm? Get all the answers here.