Własne metody nauczania maszynowego

0

Właśnie sobie przerabiam podręcznik o frameworku nauczania maszynowego. ML wydaje się mieć ogromny potencjał w analizie danych, ciekaw jestem jak to wyjdzie w praktyce. Nie powiem, czym głębiej w las, tym więcej pytań się pojawia. Ale nurtuje mnie jedno:

Czy w swojej praktyce zawodowej, albo po godzinach, zdarza Wam się tworzyć własne modele / metody nauczania maszynowego? Czy te najpopularniejsze dostarczane już z frameworkami i pakietami są w zupełności wystarczające i pokrywają wszelkie sytuacje? A może czasami jesteście zmuszeni modyfikować dostępne metody? Albo tworzycie swoje od podstaw bazując na jakiejś literaturze o ML?

1

Własne metody czy własne implementacje czy własny pipeline złożony z gotowych bibliotek/ narzędzi?
Ja do swojej magisterki robiłem własny pipeline złożony z pewnych dostępnych rozwiazań + własnych implementacji, bo nie było wtedy żadnego "gotowca" który pozwalałby na topic modeling na danych w języku polskim.

0
Shalom napisał(a):

Własne metody czy własne implementacje czy własny pipeline złożony z gotowych bibliotek/ narzędzi?

Chodzi mi o pisanie własnych metod. Czy zdarzają się sytuacje gdzie popularne gotowce nie są wystarczające? Układanie własnych pipeline wydaje się by naturalnym zjawiskiem.

Do końca nie rozumiem czym jest implementacja w ML. Nie będzie to pipeline?

0

Czy zdarzają się sytuacje gdzie popularne gotowce nie są wystarczające?

To poszukaj gotowca do analizy tekstu (np. analiza sentymentu, wyciąganie tematyki) w języku polskim ;)

0

@Shalom: Ok, przykład legitny :)

3

Czy analiza sentymentu nie oprze się tylko o jakieś oszacowanie/rangowanie słów. Np.
Płacz - bardzo smutny. Obojętność - średnio smutny?
To chyba nie jest pisanie własnych metod.
@bakunet co rozumiesz, przez własne metody? Jakieś dodatkowe analizy matematyczne?
Ja też dopiero liznąłem ML więc obserwuję wątek i może się czegoś nauczę.

0

@jurek1980: Tutaj jest lista kilku najpopularniejszych metod. W podręczniku który przerabiam nie wyjaśnia się dokładnie co się dzieje pod ich maską (do doczytania później) i nie jestem pewien czy nie trzeba czasami po prostu ich modyfikować dla swoich potrzeb lub pisać nowych od podstaw.

0

@jurek1980:

tylko o jakieś oszacowanie/rangowanie słów.

Trochę tak, ale nie do końca. Weź pod uwagę że język polski to np. smutny, smutna, smutne, posmutniał, posmutniawszy... więc trzeba najpierw zrobić stemming/lematyzacje, dodatkowo masz też całe wyrażenia bo niezbyt zadowolny to nie to samo co zadowolony a wcale sie nie gniewam to nie to samo co gniewam się. Więc nawet taki, wydawać by się mogło, prosty przykład nie jest taki znowu trywialny.

2

No właśnie to są dla mnie metody ( z listy od @bakunet). To jest oparte na podstawie matematyki, statystyki. Pewnie są ludzie którzy są w stanie napisać taką nową metodę, ale wydaje się to mega problematyczne i wymaga dowodu matematycznego lub bardzo głębokiej wiedzy z zakresu statystyki. Orangowanie słów wykorzystywanych przez metodę to bardziej moim zdaniem dostarczenie metodzie parametrów.
Temat ledwo liząłem więc mogę pisać totalne bzdury :)

0

Trochę niejasne to pytanie. Typowe rozwiązanie ML to z grubsza jakaś tam pajplajna do danych, gdzie zbiera się, replikuje i dostosowuje (np. przeskalowuje rozmiary obrazków) dane, dzieli training set, test set, validation set i jakaś maszynka statystyczna, która tych danych się nauczy i później będzie wykonywać jakąś tam klasyfikację, czy przewidywanie. Praktycznie zawsze trzeba zaimplementować część dostarczającą dane, zdefiniować jak te dane mają wyglądać na wejściu do ML. Później musisz wybrać algorytm wg. którego działa ML i jest tego od groma - regresje, sieci neuronowe, maszyny wektorowe, drzewa decyzyjne itd. Jak wybierzesz już algorytm którego chcesz używać, to musisz też zdefiniować jego parametry, np. topologię sieci neuronowej. Musisz też dobrać sposób jej uczenia - liczba powtórzeń, wielkość pojedynczej próbki itd.
Mniej-więcej tyle trzeba zrobić podczas implementacji jakiegoś rozwiązania ML. Resztę są w stanie ogarnąć narzędzia z frameworku. Zaletą najpowszechniejszego aktualnie DNN jest uniwersalność - czyli niezależnie od tego czy robisz rozpoznawanie obrazu, głosu, AI do gry w kółko i krzyżyk, czy przetwarzanie języka naturalnego, jesteś w stanie użyć tego samego zestawu narzędzi, zmieniając jedynie "obudowę" DNN i dostosowując jej topologię do zadania.
Czy w "normalnej pracy" robi się coś więcej? Raczej nie Jeżeli masz taki Tensor Flow, w którym definiujesz liczbę i typy warstw, ładujesz dane i działa, to po co masz marnować czas na implementację tego ręcznie.
W celach edukacyjnych / rozrywkowych zaimplementowałem podstawowy zestaw algorytmów ML schodząc do macierzy, pochodnych i MatLaba. Generalnie bardzo pouczająca zabawa, dająca dużo zrozumienia jak to działa.

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