To delo je na voljo pod pogoji slovenske licence Creative Commons 2.5:
priznanje avtorstva - nekomercialno - deljenje pod enakimi pogoji.
Celotna licenca je na voljo na spletu na naslovu http://creativecommons.org/licenses/by-nc-sa/2.5/si/. V skladu s to licenco je dovoljeno vsakemu uporabniku delo razmnoževati, distribuirati, javno priobčevati, dajati v najem in tudi predelovati, vendar samo v nekomercialne namene in ob pogoju, da navede avtorja oziroma avtorje in izdajatelja tega dela. Če uporabnik delo predela, kar pomeni, da ga spremeni, preoblikuje, prevede ali uporabi to delo v svojem delu, lahko predelavo dela ponudi na voljo le pod pogoji, ki so enaki pogojem iz te licence oziroma pod enako licenco.
V računalništvu je umetna inteligenca (ang. Artificial Intelligence – AI), ki jo včasih imenujemo strojna inteligenca (ang. Machine Intelligence), inteligenca, ki jo izkazujejo stroji, v nasprotju z naravno inteligenco, ki jo kažejo ljudje in druge živali.
Računalniška znanost opredeljuje raziskovanje umetne inteligence kot študijo »inteligentnih agentov« (ang. Intelligent Agents). Inteligenti agent je vsaka naprava, ki zaznava svoje okolje in sprejema ukrepe, ki povečujejo možnost za uspešno doseganje svojih ciljev.
Strojno učenje (ang. Machine Learning – ML) je področje algoritmov in statističnih modelov, ki jih računalniški sistemi uporabljajo za postopno izboljšanje svoje učinkovitosti pri določeni nalogi. Algoritmi strojnega učenja gradijo matematični model iz vzorčnih podatkov, imenovanih »učni podatki« (ang. training data). To jim kasneje omogoča napovedovanje ali sprejemanje odločitev, ne da bi bili izrecno programirani za opravljanje določene naloge.
Algoritme strojnega učenja uporabljamo za filtriranje elektronske pošte, odkrivanje vsiljivcev v omrežju in na področju računalniškega vida, kjer ni mogoče razviti točno določenega algoritma za izvajanje naloge. Strojno učenje je tesno povezano z računalniško statistiko, ki se osredotoča na napovedovanje z uporabo računalnikov.
Nadzorovano učenje (ang. Supervised learning) je podpodročje strojnega učenja. Algoritem nadzorovanega učenja analizira označene testne podatke v obliki vhodno-izhodnih parov in izdela preslikovalno funkcijo. Pri tem želene izhodne vrednosti določa človek – učitelj oziroma nadzornik. Algoritem lahko nato s pomočjo preslikovalne funkcije v optimalnem primeru pravilno določi, označi, razvrsti in kategorizira nove podatke, ki jih še ni »videl« oziroma jim ni bil izpostavljen.
Vzporedna naloga v človeški in živalski psihologiji se pogosto imenuje konceptualno učenje.
Nenadzorovano učenje (ang. Unsupervised learning) je podpodročje strojnega učenja, ki se uči iz vhodnih podatkov. Vhodni podatki niso nikakor označeni, razvrščeni ali kategorizirani. Algoritem razdeli vhodne podatke, po svojih kriterijih, v več kategorij, ki imajo svoje značilnosti. Ta postopek se imenuje rojenje (ang. clustering). Število kategorij in njihove značilnosti izlušči algoritem iz vhodnih podatkov, brez zunanjega nadzora.
Spodbujevano učenje (ang. Reinforcement learning – RL) je, po analogiji iz behaviorizma, podpodročje strojnega učenja, katerega cilj je priučitev vedenja oziroma optimizacija vedenja na podlagi povratne informacije preko nagrajevanja ali kaznovanja. Problem v računalniških sistemih omogoča optimizacijo enostavnih vzorcev vedenja in postopno priučitev kompleksnejših potekov obnašanja.
Od nadzorovanega učenja se razlikuje po tem, da ni potrebno predstaviti pravilnih vhodno-izhodnih parov in da ni treba izrecno popravljati ne-optimalnih primerov. Namesto tega je poudarek na učinkovitosti, pri kateri se mora agent odločati na podlagi interakcije z okoljem (problemskim prostorom). To vključuje iskanje ravnotežja med raziskovanjem (neznanega prostora) in izkoriščanjem (obstoječega znanja).
Obdelava naravnega jezika (ang. Natural Language Processing – NLP) je področje računalništva, informacijskega inženirstva in umetne inteligence, ki se ukvarja z interakcijami med računalniki in človeškimi (naravnimi) jeziki, predvsem s tem, kako programirati računalnike za obdelavo in analizo velikih količin podatkov naravnega jezika.
Izzivi pri obdelavi naravnega jezika pogosto vključujejo prepoznavanje govora in razumevanje naravnega jezika, ustvarjanje naravnega jezika ter strojno prevajanje.
Ustvarjanje naravnega jezika (ang. Natural-language generation – NLG) je eno izmed podpordročij obdelave naravnega jezika, ki se osredotoča na ustvarjanje naravnega jezika iz strukturiranih podatkov. Uporablja se lahko za izdelavo dolgih dokumentov, ki opisujejo računalniške baze podatkov, nadalje za izdelavo poročil z novicami (avtomatizirano novinarstvo), za povzemanje zdravstvenih zapisov, za ustvarjanje tehničnih priročnikov itd.
Ustvarjanje naravnega jezika se lahko uporablja tudi za ustvarjanje kratkih nepovezanih besedil v interaktivnih pogovorih (pogovori uporabnikov z robotom – ang. chatbotom), ki jih lahko robot celo glasno prebere s pomočjo sistema za sintezo oziroma ustvarjanje govora.
Razumevanje naravnega jezika (ang. Natural-language understanding – NLU) ali interpretacija naravnega jezika (ang. Natural-language interpretation – NLI) je podpodročje obdelave naravnega jezika, ki se ukvarja s strojnim bralnim razumevanjem. Razumevanje naravnega jezika velja za težek problem UI.
Krovni izraz »razumevanje naravnega jezika« lahko uporabljamo za različne računalniške aplikacije, ki segajo od majhnih, sorazmerno preprostih nalog, kot so na primer kratki ukazi robotom, do zelo zapletenih, kot je na primer popolno razumevanje časopisnih člankov ali odlomkov pesmi. Veliko aplikacij v resničnem svetu spada med ti dve skrajnosti. Na primer klasifikacija besedila za avtomatsko analizo e-poštnih sporočil in njihovo usmerjanje v ustrezen oddelek podjetja ne zahteva poglobljenega razumevanja besedila, temveč se mora ukvarjati z veliko večjim besediščem in bolj raznoliko sintakso kot upravljanje preprostih poizvedb iz podatkovne baze.
Strojno prevajanje (ang. Machine translation – MT) je podpodročje obdelave naravnega jezika oziroma računalniškega jezikoslovja, ki raziskuje uporabo programske opreme za prevajanje besedila ali govora iz enega jezika v drugega.
Na osnovni ravni strojno prevajanje izvaja preprosto zamenjavo besed uz enega jezika z besedami iz drugega jezika. Toda te zamenjave same po sebi ne morejo ustvariti dobrega prevoda besedila, ker je pri prevajanju potrebno poznavanje celotnih stavkov in stavčnih struktur v ciljnem jeziku. Reševanje tega problema s korpusnimi statističnimi in nevronskimi tehnikami je hitro rastoče področje, ki vodi do boljših prevodov, obravnavanja razlik v jezikovni tipologiji, prevajanju idiomov in izničevanju anomalij.
Obdelava govora (ang. Speech processing) je proučevanje govornih signalov in metod obdelave teh signalov. Signale običajno obdelujemo v digitalni predstavitvi, zato lahko obdelavo govora obravnavamo kot poseben primer obdelave digitalnih signalov, ki jo uporabljamo za govorne signale.
Vidiki obdelave govora vključujejo pridobivanje, spreminjanje, shranjevanje, prenos in ustvarjanje govornih signalov. Vhodni signal, ki ga uporabljamo pri obdelavi govora, običajno imenujemo prepoznavanje govora. Izhodni signal obdelave običajno imenujemo sinteza oziroma ustvarjanje govora.
Prepoznavanje govora (ang. Speech recognition) je interdisciplinarno podpodročje računalniškega jezikoslovja, ki razvija metode in tehnologije, ki s pomočjo računalnikov omogočajo prepoznavanje in prevajanje govorjenega jezika v besedilo. Vključuje znanje in raziskave na področju jezikoslovja, računalništva in elektrotehnike.
Nekateri sistemi za prepoznavanje govora zahtevajo »usposabljanje« (imenovano tudi »vpis«), kjer posamezni govornik v sistem bere besedilo ali izoliran besednjak. Sistem nato analizira specifični glas osebe in to analizo uporablja za natančno prilagajanje prepoznavanja govora te osebe, kar povzroči večjo natančnost. Sistemi, ki ne uporabljajo usposabljanja, se imenujejo »od govorca neodvisni« sistemi. Sistemi, ki uporabljajo usposabljanje, pa se imenujejo »od govorca odvisni« sistemi.
Sinteza govora (ang. Speech synthesis) je umetno ustvarjanje človeškega govora. Računalniški sistem, ki ga uporabljamo v ta namen, imenujemo sintetizator govora. Kakovost sintetizatorja govora ocenjujemo glede na njegovo podobnost s človeškim glasom in po tem, kako razumljiv govor je sintetizator zmožen ustvariti. Kvaliteten sintetizator govora lahko pomaga ljudem z motnjami vida ali z bralnimi težavami, da lahko poslušajo besedilo na domačem računalniku. Mnogi operacijski sistemi vsebujejo sintetizatorje govora že od začetka devetdesetih let prejšnjega stoletja.
Ekspertni sistemi (ang. Expert systems – ES) so zasnovani za reševanje kompleksnih problemov s sklepanjem iz velike količine znanja, ki je predstavljeno z velikim številom pravil »če-potem«. Prvi ekspertni sistemi so nastali v sedemdesetih letih prejšnjega stoletja, nato pa se je njihova uporaba razširila v osemdesetih letih prejšnjega stoletja.
Ekspertni sistemi predstavljajo prve resnično uspešne oblike programske opreme za umetno inteligenco. Vendar pa nekateri strokovnjaki poudarjajo, da ekspertni sistemi niso del »prave« umetne inteligence, saj nimajo sposobnosti samostojnega učenja iz zunanjih podatkov.
Ekspertni sistem je običajno sestavljen iz treh delov: baze znanja (ang. knowledge base), mehanizma sklepanja (ang. inference engine) in uporabniškega vmesnika (ang. user interface – UI). Baza znanja predstavlja dejstva in pravila. Mehanizem sklepanja uporabi pravila na obstoječih dejstvih in tako sklepa o novih dejstvih. Mehanizem sklepanja lahko vključuje tudi razlago in odpravljanje napak.
Robotika (ang. Robotics) se ukvarja z načrtovanjem, gradnjo, delovanjem in uporabo robotov ter računalniškimi sistemi za njihov nadzor in obdelavo senzoričnih povratnih informacij. Tehnologije iz področja robotike uporabljamo za razvoj strojev, ki lahko nadomestijo človeka in posnemajo človeška dejanja.
Robote uporabljamo v številnih situacijah in za številne namene. Pogosto jih uporabljamo v nevarnih okoljih (na primer odkrivanje in deaktiviranje bomb), pri proizvodnih procesih ali v okoljih, v katerih ljudje ne morejo preživeti (na primer v vesolju).
Roboti so lahko različnih oblik, nekateri pa so na videz podobni ljudem. To naj bi pomagalo, da bi ljudje lažje sprejeli robote, ki se pri svojem delovanju obnašajo tako, kot se običajno obnašajo ljudje. Takšni roboti poskušajo posnemati hojo, dviganje bremen, govor, zaznavanje in v bistvu večino stvari, ki jih lahko stori človek. Dandanes narava in bitja iz narave pogosto služijo kot navdih za izdelavo mnogih robotov, to področje pa se imenuje bio-robotika.
Samodejno načrtovanje in razporejanje (ang. Automated planning and scheduling) je področje umetne inteligence, ki se ukvarja s strategijami in zaporedji dejanj, ki jih običajno izvajajo inteligentni agenti, avtonomni roboti in samovozeča vozila. Za razliko od klasičnih problemov nadzorovanja in razvrščanja so rešitve kompleksne in jih je treba odkriti in optimizirati v večdimenzionalnem prostoru. Načrtovanje je povezano tudi s teorijo odločanja.
Računalniški vid (ang. Computer vision) je področje umetne inteligence, ki se ukvarja z metodami za pridobivanje, obdelavo, analiziranje in razumevanje digitalnih slik ter s pridobivanjem podatkov iz resničnega sveta, iz katerih lahko nato ustvari numerične ali simbolne informacije.
Razumevanje v tem kontekstu pomeni preoblikovanje vizualnih podob v opise sveta, ki se lahko navezujejo na druge miselne procese in izzovejo ustrezna dejanja. To razumevanje podob je mogoče razumeti kot ločevanje simbolnih informacij od slikovnih podatkov z uporabo modelov, ki jih predhodno ustvarimo s pomočjo geometrije, fizike, statistike in teorije učenja.
Klasičen problem računalniškega vida, obdelave slik in strojnega vida je določitev, ali slikovni podatki vsebujejo določen predmet, funkcijo ali dejavnost. Poznamo različne probleme prepoznavanja slik:
Strojni vid (ang. Machine vision) se primarno uporablja za avtomatski nadzor in usmerjanje robotov v industriji, se pa aplikacije s strojnim vidom uporabljajo še za kontrolo izdelkov, sortiranje izdelkov, ravnanje z materialom, optično merjenje ipd. Dodatne aplikacije se lahko uporabljajo tudi v prometu – od enostavnih merilnikov hitrosti in prepoznavanja vozil do prepoznavanja nevarnih situacij v samih vozilih.
Le sorazmerno majhen del sedanjih projektov se ukvarja z dejanskim razumevanjem slik ali njihove vsebine. Običajno gre le za odkrivanje predmetov na sliki, njihovo opisovanje in meritve, na podlagi česar se sprejemajo odločitve o nadaljnjem procesu. Ker gre pri razumevanju slike navadno za uporabo računalniških metod, lahko govorimo tudi o umetni inteligenci.
V bolj zapletenih nalogah prepoznavanja objektov se običajno uporabljajo modeli. Ti vsebujejo znanja, ki se lahko uporabijo za identifikacijo predmeta. Primer takšnega modela je prepoznavanje obraza, model ima sprogramirano, da se nos vedno nahaja med očmi in usti. Tako iskalni algoritem vedno ve, kje iskati usta, kadar najde oči in nos. V industrijskem okolju se tehnike razumevanja slik in prepoznavanja objektov uspešno uporabljajo. Programer v veliki meri določa okoljske razmere, ki so pomembne za brezhibno delovanje njegovih algoritmov (položaj kamere, osvetlitev, hitrost traku, položaj objektov itd.).
V naravnih okoljih je zadeva malo bolj zapletena, saj programer na okolje nima takšnega vpliva. Primer v naravnem okolju je prepoznavanje vozil. Črn avtomobil na belem ozadju ni težko prepoznati, saj je kontrastno razmerje veliko, medtem ko zelen avtomobil na zelenici že predstavlja težavo.
Odkrivanje znanja iz podatkov (ang. Knowledge Discovery from Data – KDD) je proces odkrivanja doslej neznanega in potencialno uporabnega znanja iz podatkov. Del tega procesa je tako imenovano podatkovno rudarjenje (ang. Data Mining – DM), ko dejansko pride do odkrivanja znanja.
Faze odkrivanja znanja iz podatkov so:
Podatke za podatkovno rudarjenje največkrat zajemamo iz podatkovnih baz (ang. Database – DB) ali iz podatkovnih skladišč (ang. Data warehouse). Podatkovna skladišča tvorita programska in strojna oprema, ki shranjuje časovne serije transakcijskih podatkovnih baz (gospodarskih podjetij, zdravstvenih ustanov ...) za nadaljnje analize in arhiviranje.
Za odkrivanje znanja iz podatkov uporabljamo raznovrstne metode umetne inteligence: simbolično induktivno učenje odločitvenih dreves ali odločitvenih pravil, genetske algoritme, nevronske mreže itd., pa tudi različne statistične metode. Katero metodo reševanja problemov izberemo, je odvisno od vrste problema in oblike, v kateri želimo predstavljeno rešitev. Pomembna je tudi točnost, s katero tako zgrajen model rešuje probleme. Točnost izboljšujemo s ponovnim pregledom in pripravo podatkov ali/in z izbiro druge metode podatkovnega rudarjenja.
Odkrivanje znanja v podatkih uporabljamo na najrazličnejših področjih: pri trženju in odnosih z javnostjo, pri analizi poslovnih partnerjev in strank, pri analizi poslovanja in proizvodnje, pri odkrivanju in predvidevanju zlorab, pri znanstvenih raziskavah na različnih področjih, pri obdelavi anket in javnomnenjskih raziskav, ...
V 70-ih letih 20. stoletja so prišli snovalci UI do spoznanja, da človeku pri reševanju splošnih problemov bolj kot uporaba algoritmov, služi velika količina splošnega in specialističnega znanja. Na osnovi tega so nastali ekspertni sistemi (ang. Expert Systems – ES). To so sistemi, ki temeljijo na ozko specializiranem znanju. Namenjeni so reševanju specifičnih problemov iz realnega sveta. Kot pomoč človeku pa so postali tudi ekonomsko zanimivi.
Ekspertni sistemi znajo pojasniti razloge oziroma način sklepanja za določen zaključek (rezultat oziroma odločitev) korak za korakom. Tak način komuniciranja omogoča uporabniku, da uvidi napačen korak v računalnikovem sklepanju ali pa uvidi lastno napako.
Razvili so tudi programske jezike, namenjene pisanju sistemov umetne inteligence. Primer sta programska jezika LISP in prolog.
Nabor področij UI se je širil. Razumevanje napisanega besedila so raziskovali kot razumevanja naravnega jezika, podpodročje tega pa je prepoznavanje in sinteza govora (na primer sistem eBralec). Podobno se računalniški vid ukvarja s prepoznavanjem in ustvarjanjem slik. Robotika se je razvila iz prizadevanj zgraditi stroj, ki bi se gibal podobno kot človek. Do razvoja strojnega učenja je prišlo zaradi prizadevanj, da bi se baze znanja avtomatsko dopolnjevale in tako prilagajale okolju. Velike količine shranjenih podatkov so pospešile razvoj tehnik iskanja znanja v podatkih.
Veliko število podpodročij UI je naravni odgovor na kompleksnost in obseg naloge ustvariti umetno inteligenco. Med njimi so močne povezave in medsebojni vplivi, nova podpodročja pa še nastajajo.
Danes s pridom uporabljamo marsikatera odkritja na področju umetne inteligence v praksi. Področja, s katerimi se danes ukvarja UI, so predvsem: