Top 1 gier zawierających machine learning i czapki dla kota

Milena Michalska
rakieciara blog by Milena Michalska
3 min readJan 21, 2019

Machine learning jest trudny. Czasem czynnikiem spowalniającym lub zniechęcającym do jego nauki jest to, że nie wiadomo w zasadzie jak go zastosować. Weekendowy kurs dla początkujących na którym kiedyś byłam pokazywał wykorzystanie drzew decyzyjnych czy lasów losowych do sprawdzenia na podstawie imienia, czy osoba jest kobietą czy mężczyzną. Słabo, ale może prowadzący nie miał pomysłu jaką klasyfikację dałby radę wykonać ktoś, kto nie miał z tym wcześniej za wiele do czynienia.

A gdyby tak wypróbować algorytmy ML na prostych, fabularnych zadaniach, od tych prostych z informatycznej starożytności, coraz głębiej wchodząc w świat sztucznej inteligencji? Przyda się to nam, żeby zrozumieć, co nasz futrzasty komputerowy towarzysz chce do nas powiedzieć!

Na grę while True: learn() trafiłam przypadkiem, przeglądając sklep Humble Bundle. Pierwsze co przykuło moją uwagę, to kolorowa grafika w stylu, który uwielbiam i programistyczny temat. Po doczytaniu, że w trakcie gry można nauczyć się od podstaw sztucznej inteligencji, krzyknęłam — Shut up and take my money! Gra kosztuje około 10 euro. Cena porównywalna z videokursem na Udemy, a oprócz olbrzymiej dawki bardzo przystępnej wiedzy, gra oferuje też, że za monety zebrane podczas zadań można kupować czapki dla swojego kociego towarzysza.

Żeby zacząć nie jest potrzebna znajomość żadnego języka programowania. Algorytmy układamy łącząc bloczki z dostępnej palety. Na pierwszy rzut oka może to się zdawać zbyt uproszczonym podejściem — jak mam nauczyć się o machine learningu, kiedy tylko przesuwam gotowe klocki?

Moim zdaniem — tak to właśnie działa w większości bibliotek! Przyjrzyjmy się implementacji lasu losowego według dokumentacji sci-kit learn:

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=1000, n_features=4, n_informative=2, n_redundant=0, random_state=0, shuffle=False)clf = RandomForestClassifier(n_estimators=100, max_depth=2, random_state=0)clf.fit(X, y)

Po imporcie z biblioteki zamiast wybrać z palety animowany bloczek, wywołujemy gotową funkcje z odpowiednimi parametrami.

Oceniana na jeden z trzech medali jest dokładność algorytmu i czas wykonania. Każda sekunda działania serwera, tak jak w prawdziwym życiu, kosztuje nas odpowiednią ilość monet w zależności od tego ilu rdzeni używamy do zrównoleglonych obliczeń. Uzyskanie optimum tych parametrów może być wyzwaniem nawet dla bardziej doświadczonych programistów!

Drzewko, będące linią czasu rozwoju algorytmów ML. Oprócz głównych zadań mamy jeszcze wiele pobocznych, pozwalających poćwiczyć poznaną koncepcję.

Każde z zadań jest fabularyzowane. Tworzymy więc autonomiczny samochód dla tajnego stowarzyszenia kotów, które chcą pozbyć się ludzi albo mechanizmy fałszowania wyborów dla zbrodniczego reżimu. Nie mogę doczekać się, co stanie przede mną na następnych etapach.
Oprócz pojedynczych zadań możemy również dołączać do startupów i skalować nasze rozwiązania w miarę przypływu użytkowników, kiedy nasza aplikacja jest na topie.

Podczas 6h, które już mam nabite w tej grze bawiłam się tak dobrze, że chciałam napisać chociażby taki krótki, polecający tekst. Świetny sposób nauki, kiedy nie przemawiają do was gadające głowy na kurach, albo nie wiecie dokładnie do czego chcecie MLa użyć i potrzebujecie prostych zadań z nagrodą (nowe czapki dla kota!). Albo jak chcecie pograć w coś fajnego, co rozrusza wasze komórki mózgowe!

--

--