// Neural Networks

Plusy i Minusy Architektury Sieci Neuronowych

W ostatnich latach sieci neuronowe stały się czymś w rodzaju nowej elektryczności - rewolucyjnej technologii, która przeniknęła do wszystkich sfer ludzkiej działalności. I nie jest to zaskakujące, ponieważ rozwiązania technologiczne oparte...

Spis treści

#1. Czym są sieci neuronowe
#2. Jak działa sieć neuronowa
#3. Główne typy sieci neuronowych
#4. Korzyści z sieci neuronowych
#5. Wady sieci neuronowych
#6. Krótki wniosek

W ostatnich latach sieci neuronowe stały się czymś w rodzaju nowej elektryczności - rewolucyjnej technologii, która przeniknęła do wszystkich sfer ludzkiej działalności. I nie jest to zaskakujące, ponieważ rozwiązania technologiczne oparte na sieciach neuronowych mogą wykonywać niezwykle szerokie spektrum zadań – od leczenia najbardziej skomplikowanych schorzeń po polecanie serialu na wieczór. Jednak ta technologia nie jest idealna, ma swoje plusy i minusy, o których musisz wiedzieć i rozważyć, jeśli zdecydujesz się stworzyć swój produkt w oparciu o sieci neuronowe.

Czym są sieci neuronowe

Sieci neuronowe (NN) lub sztuczne sieci neuronowe (SSN) to uogólniona nazwa modeli matematycznych i programów zbudowanych na zasadzie organizacji i funkcjonowania biologicznych sieci neuronowych - sieci neuronów w ludzkim mózgu. Główną cechą sztucznych sieci neuronowych, dzięki której stały się one tak popularne, jest zdolność uczenia się i działania w oparciu o przeszłe doświadczenia, a nie tylko według wcześniej napisanych algorytmów.

Sieci neuronowe są często postrzegane jako coś nowego i rewolucyjnego. Jednak rozwój w tej dziedzinie rozpoczął się w pierwszej połowie ubiegłego wieku, po tym, jak Warren McCulloch i Walter Pitts w 1943 roku zdołali stworzyć pierwszy matematyczny model zasad działania neuronu. W swojej pracy „Reprezentacja zdarzeń w sieciach nerwowych i automatach skończonych” naukowcy opisali w postaci funkcji prosty model matematyczny, który działa jak neuron biologiczny: pobiera dane wejściowe, przetwarza je i zwraca wynik.

McCulloch-Pitts neuron model

McCulloch - Model neuronu Pittsa. Źródło

W 1957 roku Frank Rosenblatt, korzystając z prac Warrena McCullocha i Waltera Pittsa, a także Donalda Hebba (zaproponował pierwszy algorytm uczenia), wynalazł perceptron, automat postrzegający i rozpoznający. I chociaż ten automat został pomyślany jako maszyna, a nie program, uważa się, że to on jest pierwszą sztuczną siecią neuronową. Jednocześnie sam termin „perceptron” zaczął być później używany jako synonim najprostszej sztucznej sieci neuronowej.

Kolejny znaczący przełom w dziedzinie ANN nastąpił dopiero 60 lat później: w 2006 r. Geoffrey Hinton opisał algorytmy głębokiego uczenia dla wielowarstwowych ANN opartych na ograniczonej maszynie Boltzmanna lub RBM (restricted Boltzmann machine). Jednocześnie Hinton sformułował również podstawową koncepcję uczenia algorytmów sieci neuronowych: aby uzyskać gotowe, szybko działające rozwiązanie do rozwiązania konkretnego problemu, NN musi zostać przeszkolony na wielu rzeczywistych przykładach (np. zdjęciach). różnych kotów w różnych pozach i na różnym tle).

Czy potrzebujesz opracować udany projekt?

Uzyskaj szybką konsultację.

Poproś o wycenę

Neural network architecture (left) and deep learning neural network (right). The circles represent artificial neurons, the lines represent the network of connections between them.

Architektura sieci neuronowej (po lewej) i sieci neuronowej głębokiego uczenia (po prawej). Kółka reprezentują sztuczne neurony, linie reprezentują sieć połączeń między nimi. Źródło

Dzięki głębokiemu uczeniu (i big data) sieci SSN stały się naprawdę łatwe do przeszkolenia. Tak więc już w 2012 roku sieć neuronowa była w stanie prześcignąć człowieka w rozpoznawaniu obrazu w konkursie ImageNet. A w 2015 roku AlphaGo jako pierwszy na świecie program pokonał profesjonalnego szachistę bez handicapu (bezwarunkowo).

Jak działa sieć neuronowa

Architektura sztucznej sieci neuronowej składa się z trzech lub więcej warstw: wejściowej, wyjściowej i jednego lub więcej ukrytych węzłów. Obecnie głębokie uczenie jest domyślnie używane do tworzenia sieci NN , więc zwykle jest kilka ukrytych węzłów. Każda warstwa NN składa się z jednostek obliczeniowych („neuronów”), które odbierają dane z poprzedniej warstwy, przetwarzają je wykonując na niej proste obliczenia i przekazują te dane do następnej warstwy.

Warstwa wejściowa przyjmuje dane wejściowe w kilku różnych formatach, takich jak jasność, kontrast, kolor, linie lub inne cechy obrazu, jeśli jest to fotografia. Warstwa ukryta odpowiada za wyszukiwanie ukrytych wzorów i cech za pomocą prostych obliczeń. Warstwa wyjściowa niejako podsumowuje wszystkie obliczenia i wydaje odpowiedź w postaci wniosku, działania i/lub prognozy. Jeśli odpowiedź jest prawidłowa lub po prostu przekracza pewien próg „poprawności”, to sieć neuronowa niejako „wzmacnia” te obliczenia („neurony”), które ją dały. I wzajemnie.

Działa w następujący sposób. Załóżmy, że potrzebujesz programu, który rozpozna, czy zdjęcie zawiera psa czy wilka. Wtedy twoja sieć neuronowa: przetworzy obraz na różne szczegóły za pomocą warstwy wejściowej, poszuka śladów psów i kotów wśród tych szczegółów za pomocą ukrytych warstw i zsumuje (na zdjęciu jest kot lub wilk) za pomocą warstwy wyjściowej.

A simplified model of artificial neural network operation

Uproszczony model działania sztucznej sieci neuronowej. Źródło

Oczywiście, aby wytrenować naszą sieć neuronową do wyszukiwania psów lub wilków na zdjęciach, będziemy potrzebować ogromnej liczby zdjęć z psami i wilkami i bez – im więcej ich, tym skuteczniejsze będzie szkolenie NN.

Główne typy sieci neuronowych

W zależności od architektury sztuczne sieci neuronowe dzielą się na kilka typów, które służą do różnych celów. Poniżej przedstawiamy najczęstsze typy sieci neuronowych, z którymi najprawdopodobniej spotkasz się, jeśli chcesz opracować swoje rozwiązanie oparte na sieciach NN.

Perceptron . Najstarsza sieć neuronowa stworzona przez Franka Rosenblatta w 1957 roku. Składa się tylko z jednego neuronu i jest najprostszą formą sztucznej sieci neuronowej.

Frank Rosenblatt's Perceptron.

Perceptron autorstwa Franka Rosenblatta. Źródło

Sieci neuronowe typu feedforward . Takie sieci składają się z warstwy wejściowej, warstwy wyjściowej i co najmniej jednej warstwy ukrytej. I pomimo tego, że nazywa się je również perceptronami wielowarstwowymi (MLP), należy zauważyć, że składają się z neuronów esicy, a nie perceptronów (te pierwsze lepiej radzą sobie z problemami nieliniowymi). Sieci neuronowe ze sprzężeniem do przodu są wykorzystywane do wizji komputerowej, przetwarzania języka naturalnego i innych podobnych zadań.

Neural network architecture with direct connection

Architektura sieci neuronowej ze sprzężeniem do przodu. Źródło

Rekurencyjne sieci neuronowe (RNN). Są identyfikowane przez pętle sprzężenia zwrotnego. Tego rodzaju sieci neuronowe są wykorzystywane do zadań porządkowych lub czasowych, na przykład do przewidywania przyszłych wyników: prognoz giełdowych lub prognoz sprzedaży sieci sklepów. Poza tym dobrze radzą sobie również z tłumaczeniem języka, przetwarzaniem języka naturalnego (NLP) lub rozpoznawaniem mowy, dlatego są zawarte w Siri i Tłumaczu Google.

The architecture of recurrent neural networks.

Architektura rekurencyjnych sieci neuronowych. Źródło

sieci neuronowe (ConvNets lub CNN). Składa się z warstwy splotowej, warstwy scalonej i warstwy w pełni połączonej (FC). Te sieci neuronowe wykorzystują zasady algebry liniowej (takie jak mnożenie macierzy), aby znaleźć ukryte wzorce w obrazie, wideo lub audio. Co więcej, CNN pracują z takimi danymi z niesamowitą szybkością, dlatego są często wykorzystywane do zadań, w których musisz rozpoznawać obrazy i obrazy w czasie rzeczywistym.

Korzyści z sieci neuronowych

Samouczenie się . Jest to główna cecha i zaleta sztucznych sieci neuronowych, które są tak popularne wśród programistów i biznesmenów na całym świecie. Po prostu tworzysz podstawowy algorytm, następnie podajesz mu przykłady do trenowania (na przykład zdjęcia ludzi, jeśli chcesz, aby twoja sieć neuronowa szukała osób na zdjęciu) i patrzysz na wyniki. Jednocześnie sam algorytm decyduje o tym, jak osiągnąć zamierzony cel, często znajdując rozwiązania nieoczywiste (dla ludzi).

Co więcej, sieć neuronowa to nie tylko samouczenie się, ma ona na celu ciągłe samouczenie się i poprawianie swoich wyników. Po przeszkoleniu systemu program lub aplikacja staje się bardziej przyjazna dla użytkownika w miarę użytkowania. Dlatego system rekomendacji Tłumacza Google, Netflix czy TikTok z roku na rok jest coraz lepszy.

Wydajne filtrowanie szumu w danych . Wyobraź sobie każde dość hałaśliwe miejsce, takie jak rynek lub stadion. Ludzie rozmawiają, głośno gra muzyka, gdzieś przejeżdżają samochody i krzyczą ptaki - wszędzie jest hałas, ale mimo to można spokojnie porozumieć się z ludźmi w pobliżu. Twoje uszy odbierają tony niepotrzebnych dźwięków, ale twój mózg filtruje je i odbiera tylko to, co mówi twój rozmówca. Ta właściwość występuje również w sztucznych sieciach neuronowych. Po przeszkoleniu są w stanie wyodrębnić tylko te informacje, których potrzebują, z ogromnego ciągłego strumienia danych, ignorując wszelkie zewnętrzne szumy.

Jest to bardzo przydatna funkcja, jeśli chcesz szukać wzorców w ogromnych ilościach heterogenicznych danych, takich jak niekliniczne badania medyczne, prognozy pogody, analiza rynku ekonomicznego lub tłumaczenie tekstu.

Adaptacja do zmian . Kolejną zaletą sztucznych sieci neuronowych jest możliwość adaptacji do zmian danych wejściowych. Jako analogię możemy podać przykład z aktualizacją aplikacji. Załóżmy, że przez długi czas byłeś offline i w tym czasie Instagram i TikTok zostały zaktualizowane o kilka nowych funkcji. Po poświęceniu kilku minut na przeczytanie instrukcji zapoznasz się ze wszystkimi nowymi funkcjami i będziesz nadal korzystać z Instagrama i TikTok. To samo stanie się z sieciami neuronowymi. Po krótkim okresie adaptacji do zmian będzie nadal pracował z taką samą wydajnością.

Tolerancja błędów . Rozwiązania oparte na sieciach neuronowych działają nawet po awarii części neuronów. Tak, może to wpłynąć na dokładność i/lub szybkość algorytmu, ale jej odpowiedzi nadal będą logiczne, racjonalne i poprawne. Jest to bardzo przydatna właściwość, jeśli urządzenie z siecią neuronową na pokładzie musi pracować w agresywnym środowisku (strefy radioaktywne, podczas wojny, w zniszczonych budynkach lub przestrzeni).

Wielkie możliwości . Kolejną kluczową zaletą SSN jest ich szeroki zakres zastosowań. Sieci neuronowe działają jak ludzki mózg, co oznacza, że po przeszkoleniu mogą wykonywać różnorodne zadania w różnych obszarach, od zwiększania konwersji w sklepie internetowym po znajdowanie w kosmosie planet podobnych do Ziemi. Najważniejsze jest to, że istnieje wystarczająca liczba zestawów danych rzeczywistych lub syntetycznych do treningu.

Szybkość pracy . Kolejną ważną zaletą sieci neuronowych jest ich ogromna prędkość, zarówno w porównaniu z konwencjonalnymi algorytmami komputerowymi, jak iw porównaniu z ludzkim mózgiem. Sztuczne sieci neuronowe nie męczą się i nie mają przerw na lunch. O szybkości ich pracy decyduje jedynie dostępna im moc obliczeniowa (karta graficzna, serwer w chmurze czy centrum danych). Zwykle oznacza to, że prawie natychmiast wydają rozwiązanie.

Wady sieci neuronowych

Problem czarnej skrzynki . Być może najbardziej znaną wadą wszystkich NN jest ich „czarna skrzynka”. Mówiąc najprościej, nie wiesz, jak i dlaczego twoja sieć neuronowa osiąga określony wynik. Na przykład, kiedy wstawiasz zdjęcie kota do sieci neuronowej i mówi ci, że to samolot, bardzo trudno jest zrozumieć, co doprowadziło do takiego wniosku. Po prostu nie wiesz, co dzieje się w „mózgu” sieci neuronowej.

Neither the creators of neural networks nor other experts can say how they come to one conclusion or another, so we can say there is a magic going on

Ani twórcy sieci neuronowych, ani inni specjaliści nie potrafią powiedzieć, jak dochodzą do takiego czy innego wniosku, więc możemy powiedzieć, że dzieje się tam „magia”. Źródło

Jest to ogromny problem w nauce działania sieci neuronowej. A także dużym wyzwaniem jest zintegrowanie tej technologii z niektórymi obszarami biznesowymi. Na przykład z tego powodu wiele banków nie używa NN do przewidywania zdolności kredytowej - muszą wyjaśniać klientom, dlaczego nie otrzymali pożyczki, w przeciwnym razie dana osoba może czuć się niesprawiedliwie urażona, a nawet dyskryminowana ze względu na rasę, płeć i / lub narodowości (takie przypadki z AI już się zdarzały i więcej niż raz).

To samo dotyczy serwisów takich jak YouTube, Facebook, TikTok czy Quora. Jeśli algorytm uczenia maszynowego usunie konto użytkownika, platforma będzie musiała wyjaśnić, dlaczego. Jest mało prawdopodobne, że będzie zadowolony z wyrażenia: „Komputer nam tak powiedział”. To jest pełne procesów sądowych.

Probabilistyczny charakter odpowiedzi . Ale to nie wszystko. Jeśli wprowadzisz obraz do sieci neuronowej, a następnie zapytasz go: „Czy to jest kot, pies, czy coś innego?”, prawdopodobnie chcesz, aby odpowiedź brzmiała: czy to kot, czy pies, czy coś innego . Ale w rzeczywistości nawet bardzo dobrze wytrenowana sieć neuronowa nie przyniesie tak czystych wyników. Najprawdopodobniej będzie to coś takiego: kot - 0,97, pies - 0,01, coś innego - 0,02. Wyniki te można interpretować jako prawdopodobieństwa. W naszym przypadku oznacza to, że prawdopodobieństwo, że zdjęcie przedstawia kota wynosi 97%, dla psa to prawdopodobieństwo 1%, dla czegoś innego - 2%.

An example of a black response of an artificial neural network.

Przykład odpowiedzi „czarnej skrzynki” sztucznej sieci neuronowej. Źródło

Kiedy masz funkcje zinterpretowane przez człowieka, znacznie łatwiej jest zrozumieć przyczynę błędu. Dla porównania algorytmy, takie jak drzewa decyzyjne, są łatwe do interpretacji. Jest to ważne, ponieważ w wielu obszarach interpretacja ma kluczowe znaczenie. Można sobie wyobrazić prezesa dużej firmy, podejmującego miliony dolarów decyzji, który musi podjąć ważną decyzję, ale nie może, bo AI nie dała ostatecznej odpowiedzi na pozornie proste pytanie. Albo możesz sobie wyobrazić generała, który musi zdecydować się na atak rakietowy, ale nie może, ponieważ zdjęcie z prawdopodobieństwem 1% lub 10% może nie być terrorystami, ale małymi dziećmi.

Czas trwania rozwoju . Chociaż istnieje wiele bibliotek, takich jak NeuroLab, ffnet, SciPy, TensorFlow, Scikit-Neural Network, Lasagne, pyrenn, NumPy, Spark MLlib, Scikit-Learn, Theano, PyTorch, Keras, które pomagają zaoszczędzić czas i wysiłek przy tworzeniu sztucznych sieci neuronowych, nie zawsze mają zastosowanie. Na przykład, jeśli potrzebujesz stworzyć nowe lub raczej złożone rozwiązanie, które wymaga większej kontroli nad szczegółami algorytmu.

An algorithm for developing artificial neural networks.

Algorytm rozwoju sztucznych sieci neuronowych. Źródło

Co więcej, im bardziej unikalne i złożone jest Twoje zadanie, tym więcej czasu i zasobów będziesz musiał poświęcić. I nie chodzi tylko o napisanie kodu algorytmu sieci neuronowej, ale także o zbieranie danych do jego uczenia. Często dane te są bardzo trudne do zebrania, na przykład, jeśli są to informacje o wypadkach samochodowych lub o pracy reaktora jądrowego w warunkach krytycznych. W niektórych przypadkach proces rozwoju można przyspieszyć i taniej za pomocą danych syntetycznych, ale nie zawsze mają one zastosowanie, a takie dane zawsze będą bardzo warunkowe - tylko w przybliżeniu odpowiadające rzeczywistości.

Ilość danych . Kolejną wadą sieci neuronowych jest to, że ich uczenie zwykle wymaga znacznie większej ilości danych niż tradycyjne algorytmy uczenia maszynowego. A jak powiedzieliśmy wcześniej, jeśli są to unikalne dane lub trudne do zebrania, może to być poważnym wyzwaniem dla programistów. A często znacznie więcej niż pisanie kodu sztucznej sieci neuronowej.

Dlatego obecnie nowe sztuczne sieci neuronowe (rozwiązania AI) rozwijają głównie duże firmy (Google, Microsoft, IBM), które mają nie tylko duże pieniądze i dostęp do wysokiej klasy programistów, ale także do big data. Mały i średni biznes nie jest tu ich konkurentem.

Kosztowne obliczeniowo . Nowoczesne algorytmy głębokiego uczenia oparte na sztucznych sieciach neuronowych wymagają kilku tygodni, a czasem lat, aby uczyć się od zera. Podczas gdy większość tradycyjnych algorytmów uczenia maszynowego wymaga znacznie mniej czasu na trenowanie: od kilku minut do kilku godzin. Na przykład sieć neuronowa z 50 warstwami będzie znacznie wolniejsza niż algorytm losowego lasu (metoda zespołowego uczenia się do klasyfikacji, regresji i innych problemów) z zaledwie 10 drzewami.

To znowu komplikuje rozwój rozwiązań opartych na sieciach neuronowych i komplikuje ich integrację z biznesem, a tym bardziej z sektorem non-profit.

Krótki wniosek

Sztuczne sieci neuronowe świetnie nadają się do niektórych zadań, a nie do innych. Jednak niewiele osób rozumie, kiedy faktycznie mogą one wnieść realną wartość do Twojej firmy, a kiedy lepiej skorzystać z innych opcji wdrażania sztucznej inteligencji. Merehead to taka firma. Doskonale znamy się na tworzeniu rozwiązań opartych na sztucznej inteligencji, uczeniu maszynowym i sieciach neuronowych, dlatego jeśli planujesz uruchomić podobny projekt, skontaktuj się z nami, chętnie Ci pomożemy.

Informacje zwrotne od naszych klientów

Opracowanie złożonego ekosystemu opartego na technologii blockchain

Masz pytanie?

Twoje imię *
Twój email *
Twój numer telefonu
Wiadomość
 

Czy masz pytania? Możesz do nas napisać.

Telegram

Od 2015 roku pomagamy wprowadzić Twój pomysł w produkt wysokiej jakości.

Subskrybuj do nas