Jaką książkę po polsku do nauki uczenia maszynowego w pythonie wybrać?

0

Kupiłem tą: https://helion.pl/ksiazki/python-uczenie-maszynowe-w-przykladach-tensorflow-2-pytorch-i-scikit-learn-wydanie-iii-yuxi-hayden-liu,pytuc3.htm#format/d ale mam wrażenie, że wyliczenia mają błędy, różne wyniki dla tych samych przykładów są podawane w działaniach, a inne w kodzie.
Chyba, się z niej nie nauczę, znacie coś dobrego?

1

Na co ci książki, googluj wszystko, dobre materiały są na mastery deep learning, zwykle google tam prowadzi, stackoverflow czytaj problemy innych, dyskusje na forum pytorch.

Implementuj wszystko i każdą dziurę w niewiedzy łataj przeszukując internet.

Powinieneś też już czytać papiery naukowe https://arxiv.org/ i się z nich uczyć np. dobry papier jest o sposobach polepszania wyników uczenia algorytmów i porównanie różnych technik jak augmentacja, jej typy itp.

Powinieneś oswajać się z różnymi terminologiami,
arc consistency, monte carlo search tree, markov decision process, random forest, gaussian process, hopfield network, hounsfield units, sampling with repetition, KL-divergence
information gain, shannon entropy, cummulative density function, pdf, factor graph, residual block, attenion, beam search, bellman equation, policy gradient, value fuction, expectation, importance sampling, stochastic gradient descent, hessian, jacobian i tak potem porozumiewasz się w slangu samymi terminologiami.

Mimo, że się nauczysz to musisz to jeszcze zaimplementować bo się okazuje że bardzo dużo szczegółów jest niewyjaśnionych i dopiero w praniu wychodzi.

Matematyma jest tak skonstruowana, że wszystko jest tak abstrakcyjne, że podczas implementowania musisz wiele rzeczy zrobić po swojemu.
Np. masz opisany że masz znaleźć sąsiada i teraz się zastanawiasz co to sąsiad :P
I tego sąsiada możesz znaleźć na wiele różnych sposobów i nikt nie mówi jaki sposób wykorzystać do tego.
Najczęściej testuje się różne sposoby jakie się wymyśli znajdzie, np. Manhattan distance.

Najczęściej patrzysz na taki algorytm i potem niedowierzasz, że to działa dobrze też umieć to sobie wyobrazić czemu to działa, particle swarm optimization to mój ulubiony algorytm optymalizacyjny, który nie wymaga obliczania gradientu, beż jacobiana się obejdzie, dobrze też można implementować Coordinate descent.

Ważne są grafy, wszystko jest grafem w matematyce to taka uniwersalna struktura opisująca wszechświat np. wypisanie permutacji wszystkich kombinacji od 1-9 liczb z 3 poziomami to tak jakbyś miał drzewo grafu, które potem każda gałąź prowadzi do kolejnych i tak 3 poziomy i potem algorytmami czy to reinforcement learning agentami przechodzisz taki graf jakby był labiryntem, grą w szachy, saperem, faktor graph to jest to constraint optimization problem, w którym zapisujemy w formie grafu problem i znajdujemy rozwiązanie tak samo jak SAT solvery robią, oczywiście łatwiej użyć jakiegoś SMT solvera niż ręcznie robić, te narzędzie jest potężniejsze dużo matematyków nad nim pracowało i łamie wszystkie logiczne problemy SAT i NP-Complete.

Dodatkowo prawdopodobieństwo, statystyka jest jednym z najważniejszych elementów deep learningu, czyli musisz ogarnąć joint, conditional i marginal probability, umieć rozwiązywać problemy wnioskować statystycznie, maksymalizować expectation.

Matematyka powoduje bardzo duży zastrzyk dopaminy i serotoniny w mózgu podczas nauczenia się czegoś nowego ciekawego, mega dużo pomysłów potem wpada do głowy na możliwości wykorzystania tego.

Automatyka też jest ciekawa, bo masz kalman filter, który pomaga na podstawie równań i sensorów przewidywać rzeczywistą wartość, np. masz równanie opisujące ruch obiektu np. samolotu + masz pomiary z jakichś czujników jak radar, kamera itp. ale czasem tracisz widoczność obiektu, to dalej możesz wnioskować jego rzeczywiste położenie.
Dobrze można tak badać np. temperaturę wewnątrz jakiegoś systemu gdzie nie można bezpośrednio czujników podłączyć bo jest zbyt wysoka temperatura, ale można aproxymować ją od zewnątrz.

Dodatkowo sieci neuronowe dość kiepskie są w problemach z controlą jakiegoś prostego systemu, mega prościej i szybciej jest po prostu błąd pomnożyć razy P, sumę błędów razy I, i szybkość zmiany błędów czyli pochodną jako D, i mamy PID controller, który manualnie lub automatycznie dość szybko da się do problemu dostosować.

Życia nie starczy, a jest jeszcze dużo do nauczenia, od matematyki można dostać takiego orgazmu przyjemności, jest to lepsze niż seks.

0

Na to mi książka, że chcę się uczyć z książki, temat, wątku to nie jest, "Czy uczyć się z książek, czy z neta", "tylko jaką książkę polecacie po polsku".
Naucz się czytać ze zrozumieniem @TheWypierdzisty.

0

Pierwsze co musisz zrobić to wyprowadzić równanie na prostą sieć neuronową, najpierw samą liniową, a potem nieliniową.

Wyprowadzasz wzór y=ax+b, teraz błąd obliczasz np. suma kwadratów (Y-y)^2, duże Y to wartość jaką ma przewidzieć sieć, a mały y to twoja funkcja liniowa.
L = (Y - (a*x+b))^2

Teraz liczysz pochodną po x i po b,
Dostajesz dwa równania jest to jacobian w innej formie.

dL/da = 2*(Y-y) * -x
dL/db = 2*(Y-y) * -1

To jest najważniejszy algorytm, potem tylko dodajesz sigmoid funkcję i masz wyprowadzony wzór na najbardziej podstawowy element sieci neuronowej czyli neuron.

0

@TheWypierdzisty mam gdzieś Twoje tłumaczenia, nie będę bazował swojej nauka ml, na postach jakiegoś typka z forum, co innego jakbym chciał wyjaśnić jakieś konkretne zagadnienie, a co innego jak pytam o sensowną książkę.
Jak nie znasz takowej, to nie pisz, bo Twoja wizja nauki mnie nie interesuje.

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