Uczenie maszynowe w praktyce

0

Jaka jest różnica między klasycznym programowaniem instrukcja po instrukcji, a uczeniem maszynowym (sieci neuronowe, indukcja drzew decyzyjnych, klasyfikator bayesowski). Powiedzmy w takich językach jak Python, R czy Java. Zorientowałem się już, że są gotowe biblioteki (albo usługi w chmurze), które realizują gotowe sieci neuronowe czy inne algorytmy, i tylko parametryzuje się (na chybił-trafił czy jak?), potem podaje dane wejściowe (treningowe - uczenie), a potem już dostarcza dane "produkcyjne". Czy tak to działa? Jak potem jest zapisywany stan takiego systemu nauczonego przykładami (powiedzmy sieci neuronowej)? Czy tylko w RAM i wszystko znika jak serwer padnie, czy zapisuje się stan sieci neuronowej w bazie danych czy pliku? Na czym polega uczenie maszynowe w praktyce, czyli w jakiejś firmie, a nie przykłady szkoleniowe?

1

Jaka jest różnica między klasycznym programowaniem instrukcja po instrukcji, a uczeniem maszynowym

W zasadzie nie ma żadnego związku między tymi pojęciami.

(na chybił-trafił

xD

Jak potem jest zapisywany stan takiego systemu nauczonego przykładami (powiedzmy sieci neuronowej)?

Jest serializowany do jakiegoś modelu - jakiego to zależy od technologii

Na czym polega uczenie maszynowe w praktyce, czyli w jakiejś firmie, a nie przykłady szkoleniowe?

https://www.eso.org/~nsedagha/universe/

1

Jak potem jest zapisywany stan takiego systemu nauczonego przykładami (powiedzmy sieci neuronowej)? Czy tylko w RAM i wszystko znika jak serwer padnie, czy zapisuje się stan sieci neuronowej w bazie danych czy pliku?

Jak to wszystko znika? xD Zapisuje się modele. Są różne sposoby zapisu takich danych zależne od używanych rozwiązań. Osobiście spotkałem się np. z PMML, ale nie jest to jedyne rozwiązanie.

Na czym polega uczenie maszynowe w praktyce, czyli w jakiejś firmie, a nie przykłady szkoleniowe?

Zbyt ogólne pytanie. W praktyce Data Scientiści analizują jakieś dane (w zależności od problemu), kombinują co mogą z nich wyciągnąć (feature engineering), a potem testują jakie algorytmy lub kombinacje algorytmów mogą zaaplikować do tych danych. Potem robią testy i sprawdzają, co działa. Jest pewna baza wyjściowa tych algorytmów znana w świecie machine learning. Następnie otrzymany wynik się produkcjonalizuje. Generalnie, takie projekty wymagają bardzo dużej i wszechstronnej wiedzy. Nie wiem, czy poza jakimiś książkowymi przykładami, jedna osoba byłaby w stanie od początku do końca stworzyć system machine learningowy z prawdziwego zdarzenia.

są gotowe biblioteki (albo usługi w chmurze)

Są, ale trzeba ich odpowiednio użyć. Natomiast te chmurowe rozwiązania są IMO zbyt uproszczone i okrojone, żeby dało się je dopasować do jakichś bardzo konkretnych wymagań. Można tam co najwyżej odpalać jakieś podręcznikowe przykłady. Np. Amazon SageMaker jest dość okrojony pod względem bibliotek MLowych w Pythonie, a Data Scientiści potrzebują często bardzo wielu bibliotek do prototypowania swoich rozwiązań.

0

A wez sobie regresje zrob i masz uczenie maszynowe. Jak zastosujesz na wychodzie nieliowa fukcje (jak sigmoid) i ulozysz w wiecej niz dwie warstwy to masz glebokie uczenie. Wytrenowany model jest zapisany w wagach (parmetrach) modelu. Ucznenie polega ze pomiedzy wchodem a wychodem masz map (funkcjanal) do funkcji kosztowej (np. kwadrat z roznicy pomiedzy tym co siec wypluje a etykietami do treningu (targets)), ktora to ma byc zminimalizowana. Jednak nie masz na to analitycznego rozwiazania i stosujesz gradient descent. I tak sie bujasz w te i we wte az koszt jest akceptowalnie maly. Nadmienie, ze dla kwadratowej fukcji kosztu najlepszym predyktorem dla targetu Z, zakladajac ze mamy informacje sigma, jest orthogonalan projekcja tegoz targetu Z na przestrzen sigma-mierzalnych funkcji. Poucz sie funcjonalnej analizy i teorii miary tj Banach, Lebesque i spolka jak chcesz zrozumiec teorie. Aczkolwiek jak nie robisz w research a nasuwasz anal to ci teoria nie potrzebna.
Do machine learning w Python uzywasz np. SciKitLearn a do glebokiego gardla jedziesz na PyTorch albo TensorFlow. Ja wole pierwszy ale jak kto woli. W sumie te dwie biblioteki to obliczanie pochodnych na tensorach za pomoca grafow, cyli tzw. automatyczne rozniczkowanie.

0
randomowy napisał(a):

Czy tylko w RAM i wszystko znika jak serwer padnie, czy zapisuje się stan sieci neuronowej w bazie danych czy pliku?

Możesz sobie zapisać wytrenowany model i go wykorzystywać w kółko nie tracą czasu na jego ponowne trenowanie, nawet pomiędzy technologiami / frameworkami / językami. Jest też pełno narzędzi do optymalizacji wybranych narzędzi, dla wyboru parametrów.

W podstawach ML i NN można się dowiedzieć, że:

  1. ML/NN nie są jakąś magiczną kulą która umie zajrzeć w przyszłość i przewidzieć co czym jest i będzie.
  2. Zabierając się za ML/NN trzeba wiedzieć dokładnie jaki problem chcesz rozwiązać, dzięki temu bazując na doświadczeniu będziesz wiedział jakich narzędzi użyć, mając na uwadze ich niedoskonałości.
  3. Trzeci punkt napisałem tylko po to żeby dwóm pozostałym nie było "łyso" ;p

1 użytkowników online, w tym zalogowanych: 0, gości: 1