Internet rządzi się swoimi prawami. Szczególnie, od kiedy na dobre zadomowiło się Web 2.0, czyli takie strony internetowe gdzie to użytkownicy tworzą prawie całą treść. Do klasycznych kreacji ludzkości takich jak np. muzyka, tekst i obrazy dołączyły memy. Czym są memy? W najprostszej interpretacji są to śmieszne obrazki z prostym przekazem, odnoszące się często do pop kultury. Są formą ekspresji, w której autor przekazuje swoją reakcję, komentarz, obserwację albo pomysł tak, żeby dało się jednym rzutem okaz zrozumieć przekaz. Memy stały się już stałą częścią internetu i osiągnęły taką skalę, że ludzie zaczęli już nawet przekazywać nie tylko śmieszne i bezsensowne informacje, ale przemycają tam czasem coś użytecznego. Mamy więc w miarę przystępną kombinację grafika + troszkę tekstu, pozytywny ładunek emocjonalny (humor) i formę, która jest w stanie zmieścić się w naszej już dość mocno wymęczonej uwadze. Czy można więc może użyć memów do nauczenia się czegoś sensownego w związku z data science? Sprawdźmy!
Mem czy dotrę kiedyś do globalnego minimum?
W uczeniu maszynowym, a w szczególności w głębokich sieciach neuronowych, staramy się znaleźć ekstrema pewnych funkcji. Najczęściej jest to znalezienie minimum globalnego funkcji kosztu. Problem jest jednak taki, że najpopularniejszy algorytm rozwiązujący to zadanie (gradient descent) nie znajdzie nigdy tego minimum. Został on stworzony z myślą o efektywnym znajdowaniu minimów lokalnych. Czyli dołków na tyle głębokich, że nie ma sensu szukać innych. Powyższy mem przedstawia sytuację, w której nasz trenowany model czasem jest blisko globalnego minimum, a czasem daleko. I nigdy nie trafi dokładnie tam. Źródło: FB Data Science Memes.
Mem GPU dla ubogich
Ten mem powinien wylądować w zasadzie w poprzednim artykule (Colab – Czyli jak za darmo uzyskać dostęp do GPU), ale wtedy akurat na to nie wpadłem. Jaki z niego płynie wniosek? Ano taki, że dość łatwo i za darmo możemy uzyskać dostęp do obliczeń na GPU poprzez Google Colab. Źródło: FB Data Science Memes.
Zwiększmy sobie zbiór danych!
Czasem mamy dość mało danych, które możemy użyć w projekcie. Cóż, życie to nie bajka i tak czasem jest. Kontynuujemy więc nasz projekt i próbujemy zastosować w nim dobrze nam znane narzędzia. Jednym z takich narzędzi jest Z-test. Jakiekolwiek by to nie było narzędzie, możemy użyć funkcji bootstrap (więcej o bootstrap tutaj) do zwiększenia sobie liczebności zbioru. No i faktycznie możemy uzyskać dzięki temu dowolnie duży zbiór danych (wypakowane ręce), ale tak naprawdę, żadna nowa informacja się tam nie pojawiła, więc sytuacja wciąż jest lipna (mały SpongeBob). Nie ma więc co się czarować, że znacząco poprawiliśmy sytuację. Źródło: FB Data Science Memes.
Czy na pewno wyłączyłem żelazko?
Miałeś to uczucie, że nie pamiętasz, czy zrobiłeś tą jedną kluczową rzecz, którą miałeś zrobić po skończeniu czegoś? Wyłączyć żelazko albo gaz. Zamknąć drzwi po wyjściu z domu. Kliknąć kluczykami, żeby samochód się zamknął. Przy pracy z komputerem na ogół nie musimy się martwić o takie rzeczy. Do momentu aż postanowimy sobie „wynająć” dodatkowe zasoby w chmurze. Jedną z najpopularniejszych metod jest powołanie tymczasowo jakiejś ilości instancji w chmurze Amazon Web Services. Takie maszyny są dość tanie (od kilku centów do kilkunastu dolarów za godzinę), więc jeśli mamy już wszystko w miarę przemyślane i chcemy sobie coś wytrenować na wielkim zbiorze danych, to może mieć to sens. I jeśli zapomnimy o tym treningu, to te maszyny wciąż będą przydzielone dla nas, a nie będą nic robić. A z każdą sekundą będzie też zwiększał się nasz rachunek. Jeśli więc wynajmiemy takie maszyny i zapomnimy je „odstawić”, to może być to kosztowna pomyłka. Dlatego więc warto przed snem sprawdzić, czy na Amazonie nie mamy włączonych niepotrzebnych maszyn. Źródło: FB Data Science Memes.
Transfer learning – święty Graal uczenia maszynowego?
Każdy projekt uczenia maszynowego jest dedykowany rozwiązywaniu jednego problemu. Optymalizujemy nasz kod, żeby jak najlepiej rozwiązywał jedno zadanie. W życiu jest nieco inaczej. Praktycznie cały czas wykorzystujemy nabyte umiejętności w innym kontekście niż pierwotnie. Możemy więc np. rysować ołówkiem i przyozdabiać torty, kierować samochodem osobowym i wózkiem widłowym. Śpiewać i odgrywać różne role. Na ogół mamy jakiś pomysł jak coś zacząć, bazując na innych doświadczeniach. Oczywiście nie będzie to super efektywne, ale na ogół lepsze niż start od zera. No i właśnie o to chodzi w koncepcji transfer learning. Chcielibyśmy, żeby nasz pieczołowicie wytrenowany model był w stanie zadziałać w innym problemie. Mamy być może wytrenowany model, który rozróżnia gatunki bocianów. Możemy próbować go użyć do rozpoznawania gatunków łabędzi. Albo ciężarówek. Wspomniany święty Graal to uniwersalny model, który wszędzie będzie w stanie coś ugrać. W powyższym memie mamy modele dokonujące predykcji zainteresowania reklamami i zdolności kredytowej. Dokonano tutaj transferu do oceny swój/wróg. Źródło: FB Data Science Memes.
Ujemne prawdopodobieństwo?
Każdy, kto przeszedł przez liceum, ma gdzieś w głowie informację, że prawdopodobieństwo nie może być ujemne. Dlatego, jeśli robimy coś związanego z wyliczaniem prawdopodobieństwa i uzyskujemy wartości ujemne, to jest to wyraźny sygnał, że robimy coś źle. Co ciekawe, koncepcja taka istnieje i jest używana np. w mechanice kwantowej. Ale to już zupełnie inna działka nauki i jeśli nie działamy z kwantami energii, to raczej przypadkiem tam nie dotrzemy. A więc, jeśli P wyjdzie nam mniejsze niż 0, to spokojnie możemy dokonać egzorcyzmów nad naszym projektem. Źródło: FB Data Science Memes.
Jak to z tymi joinami było?
Kluczową operacją dokonywaną w ramach baz danych to łączenie tabel. Osoba początkująca może się czuć nieco zagubiona w typach tych połączeń. Dlatego powyższy mem z anonimowym mężczyzną i jego owłosieniem może być całkiem przydatną ściągą. Źródło: FB Data Science Memes.
Uwaga, tidyverse jest jak narkotyk!
Niezbywalnym elementem projektów data science jest przygotowywanie, czyszczenie i transformacja danych. Zawsze możemy robić to wszystko ręcznie za pomocą funkcji oferowanych przez wybrany język programowania. Natomiast wiele osób już przez to przeszło i stwierdziło – nigdy więcej. Aby nie musieć wracać do ręcznego dłubania stworzyli oni bibliotekę R zwaną tidyverse. tidyverse składa się z wielu bibliotek, z czego trzy wspomniane w memie są chyba najpopularniejsze i najużyteczniejsze. Gdy raz ich spróbujesz, nie będziesz już chciał wracać do gołego R. Źródło: FB R Memes For Statistical Fiends Group.
Kto z kim przestaje, takim się staje
Wprowadziliśmy się właśnie do nowego domu na przedmieściach. Jak daleko powinniśmy się zapuścić w dzielnicę, żeby poznać sąsiadów? Od kogo będziemy pożyczać wiertarkę i cukier, a tym samym synchronizować opinię? Ciężka sprawa nie? Podobnie jak wyznaczanie liczby K w algorytmie K najbliższych sąsiadów. Źródło: FB Data Science Memes.
Ale ten terminal jest dziwny!
Gdy przesiadamy się z interfejsów graficznych do interfejsu linii komend w terminalu np. w Linuksie, to możemy całkiem boleśnie się przekonać, że na ogół w takich terminalach skrót Ctrl+C nie kopiuje tekstu. Wysyła natomiast komunikat SIGINT, który mówi mniej więcej, cokolwiek nie dzieje się w tym terminalu, ma być przerwane. Papa trenowany przez 40 godzin modelu. Źródło: FB Data Science Memes.
Kowalski! Analiza głównych składowych!
Mem nieco przewrotny, bo nie prowadzimy tutaj analizy. Cały proces PCA, czyli analiza głównych składowych, to w praktyce funkcja, która ma za zadanie dowolnie zmniejszyć naszą ramkę danych z zachowaniem jak największej możliwej ilości informacji. Ale fakt, jeśli mamy tych danych za dużo, to zawsze warto zlecić Kowalskiemu analizę głównych składowych. Źródło: FB Data Science Memes.
Przeprowadziłem ankietę w zerówce mojej córki …
Wybrałem się do zerówki mojej córki i popytałem dzieciaki czy wiedzą co to sampling bias. Nikt nie wiedział, co za leszcze ;-). A tak na serio to właśnie ankietowanie grup, w których nie występują osoby, które reprezentują efekty związane na naszym problemem to tworzenie sampling bias. Miejcie zawsze na uwadze czy aby nie działacie w „zerówce” w waszej dziedzinie. Źródło: FB Nerdy FunPun.
Co z tego, że nie rozumiemy, jest lepiej!
Nieoczywistą pułapką występującą w problemach biznesowych jest porzucanie interpretowalności na rzecz lepszej wartości metryki. Nie będę się tutaj rozpisywał, gdyż o interpretowalności i nieinterpretowalności pisałem już w m.in. w artykułach ELI5 i białe pudełka i ELI5 i czarne pudełka. W każdym razie, jeśli będziemy za bardzo się spinać nad metrykami, to może się to dla nas źle skończyć, gdy szef zapyta się nas: „ale wytłumacz mi, co się dzieje w naszym modelu”. Unikajcie tej drogi, chyba że liczy się tylko metryka ;-). Źródło: FB Data Science Memes.
Ups, to tutaj listy zaczynają się od 0?
Największą chyba wpadką, na jaką możemy sobie pozwolić przy szybkiej przesiadce z R do Pythona to zapomnienie o liczniku indeksów. Otóż R (związany mocno ze środowiskiem matematycznym) indeksuje elementy od 1. A Python (związany bardziej ze środowiskiem programistycznym) indeksuje od 0. Jeśli więc np. przepiszemy kod R do Pythona, to może się zdarzyć, że przez to niedopatrzenie wszystko działa nie tak, jak powinno. Ale co najgorsze, pewnie będzie działać. Jeśli ktoś już zaliczył jakiś srogą awarię z tego powodu, to już pewnie ma silną opinię na temat tego, które numerowanie jest lepsze. Źródło: FB Data Science Memes.
Zamawiam książki, wziąć Ci jakąś?
Tutaj raczej niczego mocno powiązanego z tematem data science się nie nauczymy. Jest to jednak wiedza z kategorii „dla wtajemniczonych”, o której nikt nie będzie nagrywał filmików i pisał książek, mimo iż wszyscy to robią. No bo kto przyzna się, że 80% czasu kodowania spędza na serwisach StackExchange albo że czasem po prostu zmieniamy to, co nie ma opcji, żeby było popsute i wszystko magicznie zaczyna działać. Albo, że z projektu odeszła osoba, która sama utrzymywała spory kawałek kodu i teraz nijak nie wiadomo, o co chodzi, a z wiadomości commitów też nic nie wynika. Także, jeśli masz wrażenie, że sytuacja jest beznadziejna, to pewnie masz rację. Nie martw się jednak, wszyscy inni też tak mają i wciąż walczą ;-). Źródło: FB R Memes For Statistical Fiends Group.
Podsumowanie
Jeśli coś wydaje się głupie, ale działa, to nie jest głupie. Taka maksyma podróżuje po świecie od jakiegoś czasu. Podpisuję się pod nią obiema rękami. No bo jeśli chcemy się czegoś nauczyć albo komuś coś wytłumaczyć, to musimy użyć odpowiedniego języka. A nawet jeśli jesteśmy poważanymi profesorami, to czasem musimy sięgnąć po współczesne medium przekazu, nawet jeśli go do końca nie rozumiemy. Memy są takim medium i mimo krytyki i rzekomej infantylności nie chcą umrzeć. A nawet jeśli się do tego nie przyznajemy, to na pewno widzieliśmy już gdzieś jakieś memy (nawet poza tym artykułem) i może nawet się zaśmialiśmy. Kluczowe tutaj jest jednak odsiewanie ziarna od plew tak, aby nie zaśmiecać sobie głowy memami, które nic ze sobą nie niosą.
Jeśli interesuje Cię jakiś temat – nie musi być związany z tym artykułem – to zostaw mi sygnał tutaj. Dzięki!