Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

Uczenie maszynowe w Pythonie

Marek Kobosko, Michał Ryba

Czym jest uczenie maszynowe?

Wstęp do uczenia maszynowego

  • jedna z dziedzin zajmujących się problemem sztucznej inteligencji
  • nauka wykorzystująca głównie dwie dziedziny: informatykę oraz statystykę
  • jego celem jest stworzenie systemu doskonalącego się i zdobywającego wiedzę poprzez zgromadzone doświadczenie (przeanalizowane dane)
  • algorytm uczenia maszynowego buduje matematyczny model na podstawie "danych treningowych"
  • system wykorzystujący uczenie maszynowe przewiduje lub podejmuje decyzje nie będąc do tego zaprogramowanym "wprost"

Typy uczenia maszynowego

  • uczenie nadzorowane
  • uczenie nienadzorowane
  • uczenie częściowo nadzorowane
  • uczenie wzmocnione
  • rozpoznawanie mowy, tekstu, obrazu
  • klasyfikacja stron internetowych
  • przewidywanie trendów na rynkach finansowych
  • wykrywanie anomalii
  • gaming
  • nawigacja
  • kierowanie pojazdem
  • automatyzacja systemów produkcji

i wydobycia

  • rozpoznawanie chorób na podstawie symptomów
  • analiza koszyka zakupowego

Przykładowe zastosowania

Czym jest deep learning?

Deep learning

  • podkategoria uczenia maszynowego
  • opiera się sztucznych sieciach neuronowych
  • może wykorzystywać uczenie nadzorowane, częściowo nadzorowane jak również nienadzorowane
  • znajduje zastosowanie m. in. w: rozpoznawaniu obrazu, dźwięku, analizie treści na portalach społecznościowych, tłumaczeniu maszynowym czy tworzeniu leków

Opis aplikacji

  • napisany program rozpoznaje cyfry pisane ręcznie wykorzytując do tego celu uczenie maszynowe
  • jako danych użyto bazy MNIST

  • aplikacja na podstawie nasilenia pikseli obrazka dokonuje klasyfikacji
  • użytkownik może wczytać swój obrazek z jedną lub wieloma cyframi

Czym jest sztuczna sieć neuronowa?

  • składa się z pojedynczych neuronów połączonych ze sobą
  • każdy neuron na podstawie danych wejściowych zwraca konkretną wartość
  • wartość ta zależna jest nie tylko od danych wejściowych, ale również od parametrów neuronu
  • celem deep learningu jest nauczenie sieci neuronowej (odpowiednie ustawienie parametrów neuronów) tak, aby zwracała ona pożądany rezultat

Jak działa sieć neuronowa?

1. Perceptron:

  • może przyjmować kilka wartości binarnych (z różnymi wagami), zwraca jedną wartość binarną
  • badany w latach 50. i 60. XX w.
  • obecnie nieużywany w sieciach neuronowych

Typy sztucznych neuronów

2. Neuron sigmoidalny

  • podobny to perceptronu
  • wartości przyjmowane oraz zwracane mogą mieć dowolną rzeczywistą wartość pomiędzy 0 a 1

Wynik zwracany przez perceptron

Wynik zwracany przez sigmoid

Warstwy sieci neuronowej

Rozróżnia się dwie architektury sieci neuronowych:

  • sieci jednokierunkowe

Architektura sieci neuronowych

  • sieci rekurencyjne

Sieć neuronowa w aplikacji

Algorytmy uczenia maszynowego wykorzystane w aplikacji

Algorytmy

Kwadratowa funkcja kosztu

Określa jaka jest różnica między pożądanym rezultatem a danymi wyjściowymi sieci neuronowej. Modyfikując wagi oraz progi w sieci staramy się znaleźć minimum funkcji kosztu.

Funkcja kosztu

Stochastyczny spadek wzdłuż gradientu (ang. Stochastic Gradient Descent)

  • jeden z najpopularniejszych algorytmów wykorzystywanych w celu optymalizacji sztucznych sieci neuronowych
  • proces iteracyjny, którego celem jest znalezienie minimum funkcji kosztu

Stochastyczny spadek wzdłuż gradientu

Wyobraźmy sobie, że chcemy znaleźć minimum funkcji wielu zmiennych.

Możemy zastosować podejście analityczne, policzyć pochodne cząstkowe, znaleźć ekstrema globalne, a następnie policzyć minimum.

Niestety, podejście to nie zadziała jeśli mamy do czynienia z tysiącami (a nawet milionami) zmiennych.

Algorytm jest stochastyczny, ponieważ wybieramy po kolei małe, losowe zestawy danych, aby przybliżyć gradient funkcji. Pozwala to na znaczne przyspieszenie procesu uczenia się sieci.

Wyobraźmy sobie, że chcemy znaleźć minimum funkcji wielu zmiennych.

Możemy zastosować podejście analityczne, wyznaczyć pochodne cząstkowe, znaleźć ekstrema lokalne, a następnie obliczyć minimum globalne.

Niestety, podejście to nie zadziała jeśli mamy do czynienia z tysiącami (a nawet milionami) zmiennych.

Tylko nie

znowu wzory...

Algorytm wstecznej propagacji błędów (ang. backpropagation)

  • pozwala na szybkie obliczanie gradientu funkcji kosztu
  • umożliwia znalezienie błędu popełnianego przez neurony z warstw ukrytych

Algorytm wstecznej propagacji błędów

Dziękujemy za uwagę!

Learn more about creating dynamic, engaging presentations with Prezi