W dwóch moich poprzednich postach („to” i „to”) próbowałem przeprowadzić analizę nastrojów na zbiorze danych linii lotniczych na Twitterze za pomocą jednej z klasycznych technik uczenia maszynowego: klasyfikatorów naiwno-bayesowskich. Na potrzeby tego postu stworzyłem jeden klasyfikator z podejściem głębokiego uczenia się. Ta praca nie będzie przełomowa, to tylko celowa zabawa, trochę, z sieciami neuronowymi.

Do tej pracy użyłem Tensorflow i Keras do zdefiniowania sieci neuronowej oraz nowego Jupyter Lab do napisania kodu (myślę, że jest naprawdę fajny!). Jeśli chcesz, możesz znaleźć moje środowisko do nauki danych, w którym wszystkie te elementy są zadokowane, pod tym „linkiem”.

Ok, teraz porozmawiajmy o sieci neuronowej użytej w tym poście, najciekawszą warstwą jest warstwa LSTM. Jeśli chcesz dowiedzieć się więcej o LSTM, sugeruję przeczytanie „tego wpisu” na blogu Christophera Olaha. Warstwy LSTM są szeroko stosowane do przetwarzania języka, dlatego też użyłem tego rodzaju warstwy do mojej analizy. Schemat bardzo prostej sieci neuronowej dla tego przykładu, jeśli:

Cały notatnik użyty do tej analizy znajduje się tutaj, a na moim profilu na Githubie można go znaleźć „tutaj”. Każdy blok kodu jest komentowany, więc nie chcę Cię denerwować dużą ilością słów, porozmawiajmy o kodzie…

Wniosek

Aby wyszkolić tę sieć, w ciągu kilku minut wykorzystałem dokowane środowisko analizy danych na moim laptopie bez żadnego procesora graficznego.

Jak widać z wykresów: „Utrata uczenia i walidacji” oraz „Dokładność uczenia i walidacji”, 3. epoka jest najlepsza, zanim sieć zacznie nadmiernie dopasowywać dane.

Dokładność przewidywania w przypadku tej sieci wzrosła z 86% do 94% w porównaniu z poprzednimi klasyfikatorami naiwno-bayesowskimi, z bardzo prostą siecią i kilkoma epokami. Zwiększona jest także dokładność pozytywnych tweetów. Pomimo wzrostu dokładności w przypadku tego rodzaju sieci, myślę, że dokładność można poprawić i to jest cel moich kolejnych testów.

Zapraszam do komentowania i kontaktu ze mną w celu omówienia tego wpisu! 🙂

Oryginalnie opublikowano na devklaus.wordpress.com 11 marca 2018 r.