Uczenie maszynowe - od czego zacząć

0

Cześć,

Chciałbym zacząć bawić się w tematy uczenia maszynowego. I mam pytania:

  • od czego zacząć?
  • w jakie technologie pójść?
  • jaki jest must have dla juniora w tym temacie?
0

od czego zacząć?

Od teorii. Niestety. Na początek warto pochylić się nad tematami związanymi z uczeniem maszynowym: systemy uczące, klastry, algorytmy, sieci neuronowe, logika rozmyta, szeroko pojęte "data mining". Bez tego zabawa w kodowanie czegokolwiek będzie tylko strzelaniem w ciemno.

w jakie technologie pójść?

Tu zależy od Ciebie, ale polecam celować w coś dobrego do kodowania logiki, bez wdawania się w szczegóły. Czyli coś, co pozwoli Ci skupić się na samym uczeniu maszynowym i implementowaniu Twoich pomysłów. Dobry jest tutaj Python, niektórzy wykorzystują Javę.

jaki jest must have dla juniora w tym temacie?

To zależy od firmy, bo uczenie maszynowe (zwłaszcza komercyjnie) jest tematem mega szerokim. Więc jedno ogłoszenie może być zupełnie inne niż pozostałe. Myślę, że właśnie na ogłoszeniach powinieneś opierać swoje "must have"

1

Polecam na początek ten kurs https://www.coursera.org/learn/machine-learning .Masz tutaj wprowadzenie do algebry i podstawowe informacje. Po zrobieniu kursu myślę że będziesz wiedział gdzie iść dalej ;)

0

jakieś książki wprowadzające w temat możesz polecić?

Szczerze mówiąc w trakcie swoich studiów (edit: studiów z tej konkretnej dziedziny! W innych dziedzinach książki często okazywały się niezbędne) nie korzystałem z książek prawie w ogóle. Tematy, o których tu mówimy są często albo zbyt świeże albo wręcz nieaktualne. Jeśli rzeczywiście chcesz opierać się na literaturze to polecam artykuły lub cudze prace (na przykład doktorskie). Warto trochę poszukać i skorzystać z tego, co oferują na swoich stronach pracownicy naukowi niektórych uczelni - można tam często znaleźć polecane przez nich pozycje.
Ja osobiście najczęściej opierałem się na zasobach internetu (szeroko rozumianych) i właśnie na artykułach, o których wspominałem.

edit2: Mówiłem, że książki są nieaktualne lub ich po prostu brakuje, ale to było jakiś czas temu i jeśli ktoś natrafił jednak na jakąś nową pozycję wartą uwagi, to proponuję ją wrzucić w komentarz

0

Ważnym wyborem jest zdecydowanie, którą z 2 opcji wybierasz:

  • nisko poziomowe - uczysz się algorytmiki i teorii z nią związanej
  • wysoko poziomowe - dostępnych narzędzi i architektury rozwiązań wykorzystujących ML, w jakich przypadkach korzystać z jakiego rodzaju sieci

Ja na początek polecił bym googlowski crash course: https://developers.google.com/machine-learning/crash-course/

0

Nie robcie tych kursow dla hindusow z coursery, udemy czy jakichs google crash cursow. Cs229 i cała reszta ze stanfordu. Ten post powyżej o czytaniu artykułów naukowych to chyba jakiś żart. To porada dobra dla kogoś z magisterka z matematyki, albo kogoś kto ma już solidny background (np.cs229)

1

Ja mam obecnie książkę Cichosza pt. "Systemy uczące się". Jestem z niej bardzo zadowolony, według mnie idealne wyważenie między teorią (matmą) a praktyka, jest tam bardzo dużo POZA sieciami neuronowymi. Jednakże trzeba mieć jakąś wiedzę teoretyczną by z niej skorzystać.

0

Cs229 i cała reszta ze stanfordu

to można przerabiać samemu czy trzeba w zorganizowanych grupach w określonym czasie na przestrzeni całego semestru? ile to kosztuje?

2

Do machine learning to musisz umiec:

*linear algebra (vector spaces, orthogonality, projections, eigenvectors, tensors), ktora jest niezbedna do zrozumienia regresji, PCA, clustering, trees , ANOVA, etc

*calculus (np. do back-propagation)

*optimisation (simplex, quadratic optimisation, how to optimise non convex function, gradient descent)

*prawdopodobienstwo i statystyka(estimators, general linear models, likelihoods, inferences)

Jak w statystyce robisz to R, jak bardziej w modeling to Python. Do DeepLearning mozesz uzywac dwoch, ale musisz zrozumiec np. TensorFlow or PyTorch tak czy owak.
Fajna wydaje sie Julia. Do tej pory przepisywalam simulations from Matlab ale zaczne robic to w Julia.
Jak ktos chce to podrzuce linka do fajnych ksiazek na temat

Tak czy owak bez solidnej powtorki z matmy sie nie obejdzie.

0

Polecam Pana Andrew Ng z tej stronki https://www.coursera.org/
warto zacząć od tego kursu https://www.coursera.org/learn/machine-learning
Gościu jest wykładowcą na Stanfordzie i świetnie wprowadza w temat od samych podstaw. Kurs działa jak właściwie kurs na uczelni, ale jest płatny tylko jeśli chcesz dostać certyfikat że go ukończyłeś, jeśli chcesz tylko wiedzę to za darmochę

0

Możesz kupić zawsze dostęp o safari books. Są tam dostępne książki czy wykłady video. Jakiś 1k na rok.

0

No jak ktos mowi po studiach, ze algebra nie jest potrzebna do regresji albo PCA to nie jest za dobrze z tymi studiami, inaczej ujmujac czas oraz pieniadze studenta oraz podatnika wyrzucone w bloto. Aby nadrobic ogolny poglad polecam "Pro Deep Learning with TensorFlow" by Santanu Pattanayak. Fajny introductory kurs koncentrujacy sie na sieciach, ale tez cos tam o klasycznym machine learning jest.

1
Lucy Nowacki napisał(a):

No jak ktos mowi po studiach, ze algebra nie jest potrzebna do regresji albo PCA to nie jest za dobrze z tymi studiami, inaczej ujmujac czas oraz pieniadze studenta oraz podatnika wyrzucone w bloto.

o czym Ty się do mnie mądrzysz? Na PCA i regresjach to ja przez 6 lat trzepałem kasiorę i powiadam Ci, że w ogóle algebra liniowa nie jest do tego potrzebna.
Nawet jakbyś liczyła to długopisem na kartce.

0
Julian_ napisał(a):
Lucy Nowacki napisał(a):

No jak ktos mowi po studiach, ze algebra nie jest potrzebna do regresji albo PCA to nie jest za dobrze z tymi studiami, inaczej ujmujac czas oraz pieniadze studenta oraz podatnika wyrzucone w bloto.

o czym Ty się do mnie mądrzysz? Na PCA i regresjach to ja przez 6 lat trzepałem kasiorę i powiadam Ci, że w ogóle algebra liniowa nie jest do tego potrzebna.
Nawet jakbyś liczyła to długopisem na kartce.

Nie masz racji. Nawet i malpa klepiac w koncu cos wyklepie wg ciebie ale tak jak ona tak i ty nie wiecie co robicie. Nie da sie napisac prostej funkcji do regresji od podstaw bez znajomosci algebry. Oczywiscie mozna korzystac z package'ow i toolbox'ow przygotowanych przez kogos ale w data science music tworzyc wlasne od podstaw. Poza tym na iterview dostaniesz pytanie np. co to jest invariant property i daj przyklad oraz napisz np. k-means w dowolnym jezyku. Mozesz tez dostac pytanie co to jest regression i odpowiedziec ze algebra tu nie potrzebna. Dostaniesz wtedy tzw. wilczy bilet i bedziesz szukal pracy i/lub robil networking na innej planecie. Mowiac o regresji musisz odwolac sie przynajmniej do vector spaces, subspaces, orthogonality, projections. W PCA kluczowe sa eigenvectors. Wymienione sa basic liniowej algebry tak jak litery sa w alfabecie.

1
Lucy Nowacki napisał(a):
Julian_ napisał(a):
Lucy Nowacki napisał(a):

No jak ktos mowi po studiach, ze algebra nie jest potrzebna do regresji albo PCA to nie jest za dobrze z tymi studiami, inaczej ujmujac czas oraz pieniadze studenta oraz podatnika wyrzucone w bloto.

o czym Ty się do mnie mądrzysz? Na PCA i regresjach to ja przez 6 lat trzepałem kasiorę i powiadam Ci, że w ogóle algebra liniowa nie jest do tego potrzebna.
Nawet jakbyś liczyła to długopisem na kartce.

Nie masz racji. Nawet i malpa klepiac w koncu cos wyklepie wg ciebie ale tak jak ona tak i ty nie wiecie co robicie.

Wszystko wiem co robię, mogę ci nawet rozrysować. Rozumiem, że za każdym razem, gdy chcesz użyć k-means to piszesz swoją własną implementację k-means, tak? A jak piszesz dokumentację to najpierw implementujesz sobie swój własny edytor tekstu? W ogóle to w którym miejscu jest ci potrzebna algebra do napisania k-means? Każdy programista Ci to napisze, nawet po bootcampie.

Nie da sie napisac prostej funkcji do regresji od podstaw bez znajomosci algebry.

a to co to jest:
title
algebra?

Poza tym na iterview (...) Mozesz tez dostac pytanie co to jest regression i odpowiedziec ze algebra tu nie potrzebna. **Dostaniesz wtedy tzw. wilczy bilet i bedziesz szukal pracy i/lub robil networking na innej planecie. **

co?

w data science music tworzyc wlasne od podstaw.

Po co wymyślać na nowo koło po raz setny?
Uczenie maszynowe to nie jest matematyka teoretyczna tylko używanie dokonań matematyki teoretycznej do rozwiązywanie rzeczywistych problemów byznesowych.

0

Powodzenia wiec.

0

jeszcze zadam Ci jedno pytanie, które zadał nam kiedyś profesor na 3 roku i oświecił mnie:
Co jest najważniejsze w modelach?
a) low bias
b) low variance
c) simplicity

0
Julian_ napisał(a):

jeszcze zadam Ci jedno pytanie, które zadał nam kiedyś profesor na 3 roku i oświecił mnie:
Co jest najważniejsze w modelach?
a) low bias
b) low variance
c) simplicity

The more unbiased the more true estimator (expected value of the estimator should be very close to the true val of param), the more efficient the lower variance. Wg mnie najgorszy case to jak estimator jest severely biased ale bardzo efficient. w tym wypadku jak wyuczysz model to bedzie to robust dla roznych samples ale ty sie nie polapiesz. Oczywiscie w classical machine learning powinienes polegac na mozliwie parsimonious modelu (uzywasz likelihood ratio test albo prosciej dla OLS partial F-test, ktory jest equivalent of likelihood ratio test in this case; proof by linear algebra). Co do simplicity, to jak poslugujesz sie DeepLearning to to czesto dziala przyzwoicie zwlaszcza na nieliniowych modelach, ale co jest w srodku i dlaczego (dla skomplikowanych modeli) to nikt nie wie - terra incognita.

0

to która odpowiedź, bo to pytanie zamknięte ;p

ps.
mieszkasz w l'Ameryce?

0
Julian_ napisał(a):

Nie da sie napisac prostej funkcji do regresji od podstaw bez znajomosci algebry.

a to co to jest:
title
algebra?

@Lucy Nowacki Ci dobrze pisze Ktoś kto zna algebrę, wrzuci wszystkie dane do macierzy, odejmie średni wektor, wymnoży ją przez jej transpozycje, znormalizuje, i już ma macierz kowariancji. Ktoś bez znajomości algebry zrobi to 50 razy mniej wydajnie bo będzie sobie iterował w głupich pętelkach, bo tak ma we wzorze. W związku z tym nie wykorzysta zoptymalizowanych algorytmów do mnożenia macierzy, np. z wykorzystaniem GPU.

Dodatkowo jak znasz algebrę liniową i wiesz np. co to jest rząd macierzy, możesz zastosować różne sztuczki. Np. robiąc PCA, gdy masz dużo większą przestrzeń danych niż liczbę obserwacji, możesz zredukować rozmiar macierzy kowariancji, bo będziesz wiedział, że nie dostaniesz więcej niezerowych wartości własnych niż jest danych wejściowych.

0

weź nie słuchaj tych teoretyków co wiedzę o uczeniu maszynowym biorą z internetu. W realnym przemyśle np. w wizji komputerowej albo nlp albo sektorze finansowym, bardzo istotne są umiejętności programistyczne, bo często sama część modelowa nie jest jakimś problemem. Bierzesz po prostu najlepszy dostępny obecnie model do rozwiązania danego problemu. Oczywiście matematyka jest istotna, ale informatyka też. W codziennej pracy typu uczenie maszynowe, 99% czasu będziesz robił rzeczy informatyczne, a nie statystyczne/AI.

Co nie zmienia faktu, że te statystyczne/AI też trzeba ogarniać. No i dlatego to taki ciężki kawałek chleba. Bo trzeba ogarniać na sensownymi poziomie dwie duże dziedziny wiedzy.

0
Julian_ napisał(a):

to która odpowiedź, bo to pytanie zamknięte ;p

ps.
mieszkasz w l'Ameryce?

Jak multiple test to trzy odpowiedzi sa sa poprawne. Te trzy cechy sa pozadane dla fitted model. Co do petli to mozna sobie petlowac w C, Julia (szybkosc zalezy od techniki), ale w R, python i matlab powinno sie vectorizowac gdzie sie da.
Co do fintech dla quant to bez przerobienia Stochastic Calc od np. Shreve (min level) to chyba to sie nie da.

0

W PL 90% Twojej pracy będzie w excelu

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