Sieci neuronowe w języku R

  • Wymagania. Dobra znajomość R.
  • Czas. Spotkania indywidualne: 10-20 tygodni. Szkolenia dla grup: 3-5 dni po 6 godzin.
  • Koszt. Spotkania indywidualne: 20 x 240 zł. Szkolenia: do ustalenia.
deep learning szkolenie

Sztuczna inteligencja i deep learning to popularne tematy, która kojarzą się z magicznymi zaklęciami. To dobrze: dzięki temu łatwiej zebrać fundusze na rozwój tych dziedzin albo budowę narzędzi wykorzystujących AI. Ale patrząc technicznie, deep learning to sieci neuronowe (tyle że „deep”, czyli mające wiele warstw), a sieci neuronowe to jeden z algorytmów uczenia maszynowego. Co więcej, najprostsza sieć neuronowa to regresja liniowa. To brutalnie odczarowuje cały temat, ale jeśli chcemy się tego nauczyć, tak właśnie musimy zrobić. Niech sobie inni myślą, że zajmujemy się kosmosem.

Są różne podejścia do nauki sieci. W pierwszym, nazwijmy je „praktycznym”, na sieć patrzymy jak na funkcję z wielką liczbą parametrów, które tak ustawiamy, żeby „było dobrze”, tzn. aby wyniki były bliskie rzeczywistym. Niespecjalnie rozumiemy, co się dzieje, ale mamy tak dużo doświadczenia w konstruowaniu sieci, że efekty są zadowalające.

Drugie podejście, „statystyczne”, wychodzi z faktu, że najprostsza sieć neuronowa to regresja liniowa (lub logistyczna). A skoro tak, najpierw nauczmy się dobrze regresji. Jest to mniej efektowne, natomiast skutkuje lepszym zrozumieniem, z czym mamy do czynienia. I większości aspektów sieci neuronowych w ogóle nie trzeba tłumaczyć.

Czego się nauczysz?

Sieci neuronowe będziemy budować przy pomocy pakietu keras, który jest jednym z najpopularniejszych interfejsów do TensorFlow. Jego zaletą jest prostota obsługi, a z drugiej strony ogromne możliwości.

Zaczniemy od tego, czym w ogóle jest modelowanie. Następnie wytłumaczymy, na czym polega regresja liniowa i logistyczna, patrząc na te algorytmy jak na najprostsze sieci neuronowe (perceptrony). Zapoznamy się z metodami ewaluacji dla problemów regresyjnych i klasyfikacji.

Następnie pokażę, że rzeczywiście najprostsza sieć neuronowa to regresja, a te bardziej złożone działają mniej więcej tak, jakby do regresji dorzucić nowe zmienne („feature engineering”). Zastosujemy sieci w konkretnych problemach.

W końcu przejdziemy do zagadnienia, w którym proste sieci neuronowe są niewystarczające — do rozpoznawania obrazów. Będziemy pracować na prawdziwych zdjęciach, a nie na przygotowanych wcześniej danych, żeby jak najbliżej odwzorować rzeczywisty problem, w którym moglibyśmy użyć sieci.

Program

1. Na czym polega modelowanie?

- Podsumowanie relacji
- Prognozowanie
- Wyjaśnianie
- Przyczynowość
- Błędy redukowalne i nieredukowalne

2. Regresja liniowa

- Jak znaleźć parametry modelu regresji?
- Interpretacja (wersja uproszczona i precyzyjna)
- Jak podsumować model?
- Prognoza, przedział ufności
- Reszty -- jak można je wykorzystać?
- Kryteria wyboru modelu
- Skąd nazwa “regresja”?

3. Zależności nieliniowe

- Transformacje: logarytm, wielomian, pierwiastek
- Czym są interakcje i dlaczego są takie ważne?
- Przykład biznesowy (problem optymalizacyjny)
- Współliniowość

4. Regresja logistyczna

- Związek między regresją logistyczną i liniową
- Interpretacja
- Jak podsumować model?
- Macierz błędów

5. Problemy klasyfikacyjne

- Wynik fałszywie dodatni i fałszywie ujemny
- Czułość, swoistość, precyzja i recall
- Pole pod krzywą ROC (AUC)
- Przy jakim prawdopodobieństwie spłaty udzielać kredytów?

- Klasyfikacja niebinarna

6. Sieć neuronowa jako uogólnienie regresji

- Czym różni się sieć od regresji?
- Algorytm gradient descent
- Batch, epoka
- TensorFlow, pakiet keras

7. Warstwy

- Warstwa ukryta i neurony
- Funkcja aktywacji
- Z ilu warstw i neuronów ma się składać moja sieć?

- Sieć a mózg

8. Sieć neuronowa w akcji

- Przewidywanie cen mieszkań
- Klasyfikacja tekstu
- Tuning hiperparametrów
- Kroswalidacja w sieciach

9. Rozpoznawanie obrazów

- Konwolucja i pooling
- Augmentacja
- Modele wstępnie trenowane, ekstrakcja cech, fine-tuning
- Analiza błędów

Co dalej?

Aby móc wykorzystywać sieci w prawdziwych problemach, potrzeba bardzo dużo doświadczenia. Najlepsza rada, żeby je zdobyć: wejdź na kaggle.com, poszukaj ciekawych danych (jest ich mnóstwo z dziedziny rozpoznawania obrazów, dźwięku itd.) i spróbuj zbudować model. Znajdziesz tam również rozwiązania innych osób, dla porównania i inspiracji.