Neural Networks: Czym są i jak działają sieci neuronowe?Neural Networks: Czym są i jak działają sieci neuronowe?Neural Networks: Czym są i jak działają sieci neuronowe?Neural Networks: Czym są i jak działają sieci neuronowe?
  • Usługi
  • Klienci
  • Blog
  • Praca
  • O firmie
  • Kontakt
polski
  • angielski
✕

Neural Networks: Czym są i jak działają sieci neuronowe?

21 listopada 2018
blank

Sieci neuronowe (ANN) są używane niemal wszędzie, gdzie istnieje potrzeba heurystyki, aby rozwiązać problem.

Historia sieci neuronowych

Wszystko zaczęło się, gdy Warren McCulloch i Walter Pitts stworzyli pierwszy model NN w 1943 roku. Ich model był oparty wyłącznie na matematyce i algorytmach i nie można go było przetestować z powodu braku zasobów obliczeniowych. Później, w 1958 r., Frank Rosenblatt stworzył pierwszy w historii model, który mógłby rozpoznać wzorce. Rzeczywistego modelu nadal nie można przetestować.

Pierwsze sieci neuronowe, które można przetestować i miały wiele warstw, opublikował Alexey Ivakhnenko i Lapa w 1965 roku. Następnie badania nad NN uległy stagnacji ze względu na wysoką wykonalność modeli uczenia maszynowego. Dokonali tego Marvin Minsky i Seymour Papert w 1969 roku. Ta stagnacja była jednak stosunkowo krótka, ponieważ 6 lat później w 1975 Paul Werbos wymyślił propagację wsteczną, która rozwiązała problem XOR i ogólnie uczyniła nauczanie sieci neuronowych bardziej wydajnym. W 1992 roku została wprowadzona nowa metoda. Max-pooling, który pomógł w rozpoznawaniu obiektów 3D, ponieważ pomógł przy najmniejszej zmianie niezmienności i tolerancji na odkształcenia. W latach 2009-2012 powtarzające się projekty sieci neuronowych stworzone przez grupę badawczą Jürgena Schmidhubera zdobyły 8 międzynarodowych nagród w konkursach w zakresie rozpoznawania wzorców i uczenia maszynowego. W 2011 r. rozpoczęto wprowadzać głębokie sieci neuronowe a wraz z tym warstwy splotowe z warstwami maksymalnego łączenia, których wynik był następnie przekazywany do kilku całkowicie połączonych warstw, po których następowała warstwa wyjściowa. Są one nazywane Konwolucyjnymi Sieciami Neuronowymi.

Czym jest sieć neuronowa?

Jest to technika budowania programu komputerowego, który uczy się z danych. Opiera się bardzo luźno na tym, jak myślimy, jak działa ludzki mózg. Po pierwsze, zbiór neuronów oprogramowania jest tworzony i łączony razem, umożliwiając wysyłanie wiadomości do siebie nawzajem. Następnie sieć jest proszona o rozwiązanie problemu, który próbuje robić w kółko, za każdym razem wzmacniając połączenia, które prowadzą do sukcesu i zmniejszając te, które prowadzą do niepowodzenia.

Sieć neuronowa jest połączeniem systemów obliczeniowych. Systemy obliczeniowe są proceduralne;, a program rozpoczyna się od pierwszego wiersza kodu, wykonuje go i przechodzi do następnego, postępując według instrukcji w sposób liniowy. Prawdziwa sieć neuronowa nie podąża liniową ścieżką. Raczej informacje są przetwarzane zbiorowo, równolegle w całej sieci węzłów

Istnieją parę części, które składają się na architekturę podstawowej sieci neuronowej:

  • Jednostki / neurony – Będąc najmniej ważną z trzech części architektury sieci neuronowych. Są to funkcje, które zawierają w sobie wagi i błędy i czekają na dane, które nadejdą. Po otrzymaniu danych wykonują pewne obliczenia, a następnie wykorzystują funkcję aktywacji do ograniczenia danych do zakresu.
  • Wagi / parametry / połączenia – Będąc najważniejszą częścią sieci, są numerami, których NN musi się uczyć, aby uogólnić problem.
  • Powiązania – Liczby te reprezentują to, co NN „uważa”, że powinno dodać po pomnożeniu wag przez dane. Oczywiście zawsze są one błędne, ale NN również uczy się optymalnych błędów.
  • Hyper-parametry – Są to wartości, które musisz ustawić ręcznie
  • Funkcje aktywacyjne – Są one również znane jako funkcje odwzorowania. Wprowadzają pewne dane wejściowe na osi X i wysyłają wartość w ograniczonym zakresie. Są używane do konwersji dużych wyników z jednostek na mniejszą wartość – większość razy – i promowania nieliniowości w NN. Wybór funkcji aktywacji może drastycznie poprawić lub utrudnić działanie NN.
  • Warstwy – Pomagają one sieciom uzyskać złożoność w każdym problemie. Zwiększanie warstw (z jednostkami) może zwiększyć nieliniowość wyjścia sieci neuronowych.

Wszystkie powyższe elementy są potrzebne do zbudowania architektury szkieletowej sieci neuronowej.

Co się dzieje, gdy sieć neuronowa uczy się?

Najczęstszym sposobem nauczenia sieci neuronowych i  generalizowania problemu jest użycie metody gradientu prostego. W połączeniu z tą metodą innym powszechnym sposobem nauczania sieci neuronowych jest użycie propagacji wstecznej. Używając tej metody, błąd w warstwie wyjściowej sieci neuronowej jest propagowany do tyłu przy użyciu reguły łańcuchowej z rachunku różniczkowego. W treningu sieci jest wiele różnych zastrzeżeń.

Czym różnią się sieci neuronowe od konwencjonalnych obliczeń?

Aby lepiej zrozumieć sztuczne obliczenia neuronowe, ważne jest, aby najpierw dowiedzieć się, w jaki sposób konwencjonalny komputer i jego informacje o procesie programowym. Komputer szeregowy ma centralny procesor, który może adresować tablicę lokalizacji pamięci, w której przechowywane są dane i instrukcje. Obliczenia są wykonywane przez procesor odczytujący instrukcję, jak również wszelkie dane wymagane przez instrukcję z adresów pamięci, instrukcja jest następnie wykonywana, a wyniki są zapisywane w określonej lokalizacji pamięci, zgodnie z wymaganiami. W systemie szeregowym, kroki obliczeniowe są deterministyczne, sekwencyjne i logiczne, a stan danej zmiennej można śledzić z jednej operacji na drugą.

Dla porównania, sieci neuronowe nie są sekwencyjne ani koniecznie deterministyczne. Nie ma złożonych procesorów centralnych, a jest ich wiele prostych, które zazwyczaj nie robią nic więcej, niż ważoną sumę swoich danych wejściowych od innych procesorów. Nie wykonują zaprogramowanych instrukcji; reagują równolegle na schemat danych wejściowych przedstawionych mu. Nie ma również oddzielnych adresów pamięci do przechowywania danych. Zamiast tego informacje są zawarte w ogólnym „stanie” aktywacji sieci. „Wiedza” jest więc reprezentowana przez samą sieć, która jest dosłownie czymś więcej niż sumą poszczególnych składników.

Jakie aplikacje powinny być wykorzystywane w sieciach neuronowych?

Sieci neuronowe są uniwersalnymi przybliżeniami i działają najlepiej, jeśli system, którego używasz do modelowania, ma wysoką tolerancję na błędy. Dlatego nie zaleca się korzystania z sieci neuronowej w celu zrównoważenia swojej książeczki czekowej! Jednak działają one bardzo dobrze dla:

  • przechwytywanie skojarzeń lub odkrywanie prawidłowości w ramach zestawu wzorców;
  • gdzie objętość, liczba zmiennych lub różnorodność danych jest bardzo duża;
  • związki między zmiennymi są niejasno zrozumiane;
  • relacje są trudne do opisania w sposób adekwatny do konwencjonalnych podejść.

Jakie są ich ograniczenia?

Istnieje wiele zalet i ograniczeń związanych z analizą sieci neuronowych i aby właściwie omówić ten temat, musielibyśmy przyjrzeć się poszczególnym rodzajom sieci, co nie jest konieczne do tej ogólnej dyskusji. Jednak w odniesieniu do sieci wstecznego propagowania istnieją pewne konkretne problemy, które potencjalni użytkownicy powinni mieć świadomość.

  • Retropropagacyjne sieci neuronowe (i wiele innych rodzajów sieci) są w pewnym sensie ostatecznymi „czarnymi skrzynkami”. Oprócz zdefiniowania ogólnej architektury sieci i być może początkowego założenia jej za pomocą liczb losowych, użytkownik nie ma innej roli niż dostarczenie jej do wejścia i obserwowanie, jak trenuje i czeka na wyjście. Niektóre oprogramowanie dostępne bezpłatnie pakiety oprogramowania pozwalają użytkownikowi próbować postępów sieci w regularnych odstępach czasu, ale sam proces uczenia się postępuje. Ostatecznym produktem tej działalności jest wyszkolona sieć, która nie dostarcza żadnych równań ani współczynników definiujących związek poza własną wewnętrzną matematyką.
  • Sieci wstecznej propagacji są również wolniejsze w trenowaniu niż inne rodzaje sieci, a czasami wymagają tysięcy epok. Jeśli działa na prawdziwie równoległym systemie komputerowym, problem ten nie stanowi problemu, ale jeśli są symulowane na standardowej maszynie szeregowej, szkolenie może zająć trochę czasu. Dzieje się tak dlatego, że procesor komputera musi oddzielnie obliczyć funkcję każdego węzła i połączenia, co może być problematyczne w bardzo dużych sieciach z dużą ilością danych. Jednak prędkość większości obecnych maszyn jest taka, że ​​zazwyczaj nie stanowi to większego problemu.

Jakie są ich zalety w porównaniu z konwencjonalnymi technikami?

W zależności od charakteru aplikacji i siły wewnętrznych wzorców danych, można ogólnie oczekiwać, że sieć dobrze trenuje. Dotyczy to problemów, w których relacje mogą być dość dynamiczne lub nieliniowe. Sieci neuronowe stanowią analityczną alternatywę dla konwencjonalnych technik, które często są ograniczone przez surowe założenia normalności, liniowości, zmiennej niezależności itp. Ponieważ sieci neuronowe, może wychwycić wiele rodzajów relacji, pozwala to użytkownikowi szybko i względnie łatwo modelować zjawiska, które w przeciwnym razie mogły być bardzo trudne lub niemożliwe do wyjaśnienia inaczej.

Mówi się, że dziś sieci neuronowe przeżywają swój renesans, głównie ze względu na ich zastosowanie przy analizie coraz większych zbiorów danych i ciągłym napływie nowych zmiennych, z którymi zwykle programy sobie nie radzą. Sieci neuronowe znalazły także zastosowanie w wielu dziedzinach życia, w których człowiek zostałby przytłoczony zbyt dużą liczbą danych, głównie w procesach decyzyjnych. Kto wie – może już niedługo będziemy zatrudniać jako doradców, analityków czy wróżki sztuczną inteligencją opartą na sieciach neuronowych.

Udostępnij
1
Piotr Chmiel
Piotr Chmiel
W branży IT od kilku lat, głównie zajmuję się SEO. Z dnia na dzień pogłębiam swoją wiedzę z obszaru IT tj. : Tworzenie stron, Wordpress, Machine Learning, SEO, Big Data itp. itd. Prywatnie amator koszykarz, basista, szachista i kucharz.

Podobne publikacje

blank
26 maja 2023

Etyka sztucznej inteligencji. Wyzwania i perspektywy dla społeczeństwa i biznesu


Dowiedz się więcej
blank
5 maja 2023

Sztuczna inteligencja w e-commerce. Personalizacja doświadczenia zakupowego


Dowiedz się więcej
blank
28 kwietnia 2023

UI Design. Tworzenie intuicyjnych interfejsów użytkownika


Dowiedz się więcej

Szukaj na blogu

✕

Kategorie

  • Ecommerce
  • SEO
  • Software development
blank
Personalization, Recommendations, Messaging & User Testing in a Single Platform with a Single Tag implementation
Greenlogic Logo

Greenlogic - PolandPOLSKA
ul. Krupnicza 13
50-075 Wrocław
+48 505 020 036
[email protected]

Greenlogic - AustraliaAUSTRALIA
10a Mitford Street
3182 St. Kilda Melbourne
+61 490 235 843
[email protected]

Software House

  • Tworzenie oprogramowania
    • Aplikacje dedykowane Java
    • Machine learning
    • Big data dla ecommerce
    • Tworzenie stron internetowych WordPress
    • Sklepy internetowe WordPress + Woocommerce
    • Front end development
  • Projektowanie
    • Projektowanie usług
    • Projektowanie serwisów internetowych
    • Projektowanie aplikacji mobilnych (PWA)
    • Projektowanie i optymalizacja UX

Agencja Ecommerce

  • Badania i analiza danych
    • Doradztwo transakcyjne eCommerce
    • Analityka internetowa
    • Analiza on-page / off-page SEO
    • Badania UI / UX
  • Zwiększanie sprzedaży
    • Optymalizacja konwersji (CRO)
    • White Hat SEO
    • Content marketing
    • Online marketing

Greenlogic

  • O firmie
  • Blog
  • Polityka prywatności
  • Praca
  • Kontakt
© 2009- Greenlogic - Software House & Agencja Ecommerce

Sąd Rejonowy dla Wrocławia-Fabrycznej VI Wydział Gospodarczy KRS nr 0000602965. Kapitał zakładowy 50.000 zł opłacony w całości.

polski
  • polski
  • angielski