AI engineer, ML engineer kilka pytań na start

0

Czy są tu jacyś ludzie, którzy pracują w takich zawodach jak inżynier sztucznej inteligencji, uczenia maszynowego itd.?
Chciałbym się co nieco dowiedzieć nt. specyfiki zawodu oraz tego czy wcześniej używaliście takich narzędzi jak JMP czy od razu implementowaliście i testowaliście to w np. Pythonie.

2

Ja się re-kwalifikowałem z Java Developera i piszę obecnie w pythonie. Jest dość wygodny choć hobbistycznie mam w planach popisać trochę sieci w Javie / C++. JMP Pro nie używałem nigdy.

Specyfika zawodu - masz problem, zastanawiasz się nad faktorami na które zwrócić uwagę (jak jesteś statystyką to sobie patrzysz i wybierasz co liczysz, jak jesteś siecią neuronową to w zależności od metody). Dzielisz set na 3 części (np 62) i sprwadzasz czy to co przewidziałeś na podstawie danych z zestawu dużego, sprawdza się w przypadku dwóch mniejszych.

Voila. To od strony technicznej. Od strony bardziej "is it fun"? Jeśli liczysz na tworzenie AI do robotów, to najwięcej co możesz otrzymać obecnie na rynku to NLP do np RUMBY, żeby dobrze odkurzała, tak mi się wydaje.

0
Grzegorz Wojciech Miącz napisał(a):

Ja się re-kwalifikowałem z Java Developera i piszę obecnie w pythonie. Jest dość wygodny choć hobbistycznie mam w planach popisać trochę sieci w Javie / C++. JMP Pro nie używałem nigdy.

Specyfika zawodu - masz problem, zastanawiasz się nad faktorami na które zwrócić uwagę (jak jesteś statystyką to sobie patrzysz i wybierasz co liczysz, jak jesteś siecią neuronową to w zależności od metody). Dzielisz set na 3 części (np 62) i sprwadzasz czy to co przewidziałeś na podstawie danych z zestawu dużego, sprawdza się w przypadku dwóch mniejszych.

Voila. To od strony technicznej. Od strony bardziej "is it fun"? Jeśli liczysz na tworzenie AI do robotów, to najwięcej co możesz otrzymać obecnie na rynku to NLP do np RUMBY, żeby dobrze odkurzała, tak mi się wydaje.

Fajnie, że wreszcie ktoś odpisał. Może trochę zabrzmi to jak durne marzenie, ale marzy mi się zrobienie swego rodzaju bota, komunikatora takiego jak Siri czy Aleksa, ale niezależnego od platformy, który byłby w stanie pozytywnie przejść test Touringa.
Dlaczego dzielisz dane na trzy części a nie na dwie? Bo z tego co teraz się uczę to dane dzieli się na dwie części np. 60:40% tzw. na dane do wytrenowania i na dane testowe. Chyba, że coś jest jeszcze przede mną.

Co do drugiej części to nie rozumiem skrótu NPL do np. RUMBY. To są jakieś frameworki do Pythona pokroju Tensorflow czi Pandas?
Chcę ogólnie zrobić taką wlasną appkę, żeby móc uprzyjemnić różne nudne rzeczy np. możliwość dyktowania SMS'ów czy tłumaczenia w czasie rzeczywistym skanu dokumentu w obcym języku.

Wybacz, za śmiałość jeśli to zbyt osobiste pytanie, ale dlaczego zdecydowałeś się przekwalifikować z Javy? Ogólnie wszędzie jest polecana jako dość rozwojowy język, dużo jest ofert pracy no i przedział wynagrodzenia również dość duży (od 3-4 do nawet ponad 20 tys. złotych). Za granicą pewnie to większe kwoty nawet.

2

Poczytaj o RASA framework. Naprawdę fajny framework (do chatbotowania) i ma też voice recognition z tego co pamiętam.

Zbiór na 3 części bo mam treningowy, testowy i weryfikacyjny. To w przypadku sieci neuronowych kiedy sprawdzasz metryki podczas uczenia (co którąś tam epokę). Wtedy na treningowym się uczy, na testowym sprawdza podczas uczenia a weryfikacyjny to ten już ostateczny, który daje Ci najwięcej informacji o szeroko pojętej skuteczności modelu.

NLP - Natural Language Processing. Żeby program "rozumiał" co do niego mówisz. Do realizacji NLP służy wiele narzędzi. Tu przydatne są szczególnie Rekurencyjne Sieci Neuronowe, głównie ze względu na to, że pamiętają "context". Algorytmy to na przykład LSTM, GRU, czy bardziej wyrafinowane - BERT, ELMO, RoBERTa itp. Ich implementacje są dostępne np. w Kerasie, ale też w dedykowanym frameworku do NLP - FLAIR.

Do dyktowania SMS-ów wystarczy Ci API google. Do tłumaczenia w czasie rzeczywistym cóż... Pewnie trzeba by jakiegoś prostego OCR-a napisać (ogarnij przykład zbioru MNIST, tam są cyfry 0-9 kategoryzowane - skanowane).

Jeśli chodzi o podjęcie decyzji, chodziło o przeniesienie się z działu wdrożeń do działu Core. Po 6 latach w jednym miejscu człowiek czasem ma ochotę na zmianę. No i chciałem nauczyć się czegoś o AI/ML, a że pojawiła się taka możliwość (ja coś dam wiedzy na pewne tematy od siebie, oni mi dadzą możliwość nauczenia się). To skorzystałem.

Generalnie nie licz na ogromny odzew - mało jest specjalistów od ML w Polsce. Ja sam siedzę w tym od września zeszłego roku dopiero, ale odnalazłem się ideolo.

Z moich propozycji co mógłbyś zrobić żeby ogarnąć temat to:

  1. Napisz prostą sieć od podstaw (bez żadnego frameworka typu tensorflow/keras). Naprawdę dużo łatwiej Ci będzie.
  2. Napisz rozpoznawanie obrazków (zbiór danych MNIST w kerasie). Tu też jest do tego tutorial
  3. Następnie możesz poczytać (jeśli jeszcze nie ogarniesz do końca) co to jest funkcja aktywacji, optimizer. To tak w kontekście Sieci neuronowych
  4. No a dalej to już możesz iść albo w sieci CNN (to głównie do rozpoznawania obrazu albo np spektrum dźwięku - np do rozpoznawania mowy) albo RNN (tu wspomniane wcześniej rozpoznawanie tekstu i kontekstu).

No i generalnie bierz się i rób. Wymyśl sobie projekt i konsekwentnie realizuj :)

1

Tak jak napisałem wyżej.
Ten gość ma całkiem fajne tutoriale: https://victorzhou.com/blog/intro-to-neural-networks/

0
Grzegorz Wojciech Miącz napisał(a):

Tak jak napisałem wyżej.
Ten gość ma całkiem fajne tutoriale: https://victorzhou.com/blog/intro-to-neural-networks/

Dzięki. Mam ogólnie jeden przedmiot związany z uczeniem maszynowym, tylko jest on prowadzony, mówiąc delikatnie, w specyficzny sposób. Nie umniejszając roli wykładowców, po prosku jest położony największy nacisk na podstawy teoretyczne, natomiast implementacja wg zasady ,,znasz teorię to implemementuj".
Korzystam obecnie również z jednego z kursów na udemy bodajże się nazywa Machine Learning from A to Z czy jakoś tak. Dosyć dobrze do mnie trafia, no i lubię jak ktoś używa pewnego słownictwa w oryginale, a nie na siłę próbuje niektóre skróty i zwroty tłumaczyć na polski.

Ogólnie to dotychczas moim głównym obiektem nauki była Java. Teraz trochę spodobało mi się grzebanie w web-devie. Ale to uczenie maszynowe jest fajne, bo jak sam stwierdziłeś mało jest osób u nas które się tym zajmują. A jeśli chodzi o javę to niezły poziom trzeba reprezentować, żeby się wybić zwłaszcza wśród zalewie projektów typu ,,lista do zrobienia", ,,kalkulator". Albo jakiś kopiuj-wklej z bootcampów

1

ku potomności, ogólny przegląd różnego typu sieci bez wchodzenia w szczegóły przy wykorzystaniu keras
https://helion.pl/ksiazki/deep-learning-praca-z-jezykiem-python-i-biblioteka-keras-francois-chollet,delepy.htm#format/d
Książka na początek w porządku.
z kolei w tej są nie tylko NN ale i starsze metody oparte o SVM itp. Tylko tu trochetrudniej bo to w tensorflow.
https://helion.pl/ksiazki/uczenie-maszynowe-z-uzyciem-scikit-learn-i-tensorflow-aur-lien-g-ron,uczema.htm#format/e

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