Strojno učenje

Algoritem je določeno zaporedje navodil za izvedbo naloge. Nalogo razdeli na preproste, lahko razumljive korake, kot dobro napisan recept. Programski jeziki so jeziki, ki jim računalnik lahko sledi in jih izvaja. Delujejo kot most med tem, kar razumemo, in tem, kar lahko razume stroj. Algoritem, zapisan v programskem jeziku, postane program. Aplikacije so programi, napisani za končnega uporabnika.

Tradicionalni programi sprejemajo podatke in sledijo navodilom, da dobijo rezultat. Številni zgodnji programi UI so bili v tem pogledu tradicionalni. Ker se navodila ne morejo prilagajati podatkom, ti programi niso bili prav uspešni pri nalogah, kot je na primer napovedovanje na podlagi nepopolnih informacij in naravna obdelava jezika (ang. natural language processing – NLP).

Spletne iskalnike poganjajo tradicionalni algoritmi in algoritmi strojnega učenja (ang. machine learning algorithms). Za razliko od prvih slednji analizirajo podatke za prepoznavanje vzorcev, ki jih nato uporabijo za sprejemanje odločitev ali generiranje napovedi. Lahko bi rekli, da na podlagi podatkov (dobrih in slabih primerov) ustvarijo svoj lasten »recept« za delovanje.

Takšni algoritmi so primerni za zelo kompleksne situacije z veliko manjkajočimi podatki. Sposobni so sami spremljajati izvajanje zadanih nalog in povratne informacije uporabiti za izboljšanje svojega delovanja.

V tem so pravzaprav podobni ljudem, zlasti dojenčkom, ki se veščin učijo izven izobraževalnega sistema. Dojenčki opazujejo, ponavljajo (posnemajo), se učijo, preizkušajo naučeno in se izboljšujejo. Če je treba, tudi improvizirajo. Vendar je podobnost med stroji in ljudmi precej površinska. Učenje ljudi je drugačno, veliko bolj diferencirano, podrobno in zapleteno kot učenje strojev.