“If (there) was one thing all people took for granted, (it) was conviction that if you feed honest figures into a computer, honest figures (will) come out. Never doubted it myself till I met a computer with a sense of humor.”
― Robert A. Heinlein, The Moon is a Harsh Mistress
Dzisiejszy wpis jest pierwszym z serii artykułów, w których będziemy Wam wyjaśniać, na czym polega uczenie maszynowe (ang. Machine Learning). Nie musisz mieć formalnego wykształcenia ani doświadczenia analitycznego. Będziemy pisać prostym językiem, bez zbędnego żargonu technicznego. Dzięki naszym artykułom zdobędziesz podstawową wiedzę na temat uczenia maszynowego.
A zaczynamy oczywiście…od definicji. Będziemy zrzucać z balkonu kartki papieru, ciężkie kręgle i piłki golfowe. Wykorzystamy tą analogię, żeby Ci pokazać jak uczą się maszyny.
Istnieje niejedna formalna definicja tej gałęzi nauki, można by chociażby za Wikipedią stwierdzić że uczenie maszynowe jest to:
„„nauka interdyscyplinarna ze szczególnym uwzględnieniem takich dziedzin jak informatyka, robotyka i statystyka. Głównym celem jest praktyczne zastosowanie dokonań w dziedzinie sztucznej inteligencji do stworzenia automatycznego systemu potrafiącego doskonalić się przy pomocy zgromadzonego doświadczenia (czyli danych) i nabywania na tej podstawie nowej wiedzy”
Niestety, tego typu określenia nie przybliżają nas do zrozumienia czym jest uczenie maszynowe z punktu widzenia codziennego funkcjonowania instytucji, tak prywatnych jak i publicznych.
Uczenie maszynowe jest zbiorem narzędzi którym przyświeca filozofia znajdowania schematów, bez oczekiwania odnalezienia w nich znaczenia. Znaczenie to oczywiście istnieje, ale jest ono poza zakresem analitycznym maszyny. Można dokonać łatwe porównywanie.
Oczywiście to bardzo uproszczony przykład i zazwyczaj schematy klasyfikujące bazują na znacznie bardziej skomplikowanych schematach z wykorzystaniem setek zmiennych, co niestety nie jest możliwe do zobrazowania za pomocą statycznej grafiki.
Wyobraźmy sobie, że stojąc na balkonie wysokiego budynku mamy kilka zbiorów przedmiotów. Na początek wyjmujemy dwa bardzo różne przedmioty – białą kartkę papieru i czarną kulę do kręgli. Upuszczamy je naraz i obserwujemy ich upadek. Kula uderzyła o ziemię znacznie wcześniej. Człowiek łatwo wytłumaczy to zjawisko: kartka papieru poddaje się znacznie większym oporom powietrza, które ją spowalniają.
Ale komputer tego nie wie!
Komputer zaobserwował całe zdarzenie. Wie, który obiekt spadł szybko, a który wolno. Zna właściwości obiektów czarna, ciężka kula do kręgli i biała lekka kartka. Ale nie wie jak ta informacja przekłada się na efekt.
Jeszcze, nie wie.
Zaczynamy ponownie zrzucać czarne, ciężkie kule do kręgli i białe lekkie kartki. Komputer uczy się schematu, że przedmioty o tych właściwościach będą spadać odpowiednio szybko i wolno. Ale komputer nie wie, która z tych właściwości ma znaczenie.
Zaczynamy zrzucać jeszcze dwa rodzaje przedmiotów. Czarne i lekkie kawałki kartonu oraz białe i ciężkie piłeczki do golfa. Piłki wciąż spadają szybko, podczas gdy karton i papier wolno. Komputer obserwując to, dochodzi do wniosku, że istotnym elementem jest ciężar obiektu, a nie jego kolor i wykorzystuje te informacje by przewidzieć, jak będą zachowywać się kolejne obiekty.
Wciąż nie rozumie, że tak naprawdę znaczenie ma stosunek ciężaru i powierzchni, ale nie potrzebuje tej informacji, do czasu aż pojawią się obiekty małe i ciężkie, które będą wolno spadały… ale nawet wtedy nie będzie rozumiał prawa powszechnego ciążenia, tarcia, gęstości powietrza i wszystkich innych czynników, które nawet uczeń liceum bez problemu rozumie.
Jego zadaniem nie jest zatem zrozumieć sens rzeczywistości, ale odnaleźć często sprawdzające się schematy, którym człowiek może nadać sens i wykorzystać w swoim życiu do predykcji nieznanego.
W kolejnej części odpowiemy na pytanie czy uczenie maszynowe jest nam w ogóle potrzebne?