1 INTELIGENCIJA I UMJETNA INTELIGENCIJA 4
1.1 Što je biološka inteligencija? 5
1.2 Što je nebiološka inteligencija? 9
1.3 Formalne definicije umjetne inteligencije 16
1.4 Područja istraživanja umjetne inteligencije 20
1.5 Kratka povijest umjetne inteligencije 22
1.6 Rješavanje zadataka postupcima umjetne inteligencije 27
1.7 Kriteriji uspjeha 29
1.8 Cilj umjetne inteligencije (umjesto zaključka) 33
2 KOMPLEKSNI ZADACI I NJIHOVO RJEŠAVANJE 38
2.1 Postavljanje zadataka 38
2.2 Osnovne značajke zadataka 47
2.2.1 Dekompozicija 47
2.2.2 Zanemarivanje 47
2.2.3 Predvidljivost 48
2.2.4 Očitost rješenja 48
2.2.5 Dosljednost znanja 48
2.2.6 Uloga znanja 49
2.2.7 Interaktivnost – uloga čovjeka 49
2.3 Rješavanje zadatka metodama umjetne inteligencije 50
3 RJEŠAVANJE ZADATAKA METODAMA PRETRAŽIVANJA 51
3.1 Predstavljanje prostora problema (prostora pretraživanja) 57
3.2 Izbor prikladnog pravila 61
3.3 Unaprijedno i povratno pretraživanje 62
3.4 Neinformirano i informirano pretraživanje 63
3.5 Neinformirano ili slijepo pretraživanje 64
3.5.1 Pretraživanje u širinu 65
3.5.2 Pretraživanje u dubinu 67
3.5.3 Nedeterminističko slijepo pretraživanje 68
3.5.4 Pretraživanje ograničeno po dubini 69
3.5.5 Iterativno pretraživanje u dubinu 70
3.5.6 Rješavanje problema labirinta slijepim pretraživanjem 71
3.6 Informirano ili usmjereno pretraživanje 73
3.6.1 Optimalno pretraživanje 73
Dijkstra algoritam 74
Pretraživanje jednolikim troškom 75
Pretraživanje optimalnim jednolikim troškom 77
3.6.2 Heurističko pretraživanje 78
Metoda uspona na brdo 80
Ograničeno širinsko pretraživanje 82
Najbolje prvo pretraživanje 83
Heurističko pretraživanje kod problema dva agenta 83
MinMax pretraživanje stabla 84
Monte Carlo pretraživanje stabla 86
3.6.3 Kombinacija optimalnog i heurističkog pretraživanje 88
Pretraživanje optimalnim jednolikim troškom proširenim estimacijom 88
A* pretraživanje 89
Varijacije A* pretraživanja 90
Inkrementalni algoritmi pretraživanja 91
Algoritmi koji vode brigu o memoriji 92
Paralelni algoritmi 93
Algoritmi bilo kojeg vremena 93
Algoritmi realnog vremena 93
4 PRIKAZIVANJE I POHRANA ZNANJA 94
4.1 Što je znanje? 94
4.2 Prikupljanje, prikazivanje i pohrana znanja 97
4.3 Prikazivanje (kodiranje) znanja matematičkom logikom 99
4.3.1 Propozicijska logika 101
4.3.2 Predikatna logika 105
Prikazivanje jednostavnih činjenica (tvrdnji) 108
Prikazivanje uzročno – posljedičnih veza 109
4.3.3 Nestandardne logike 110
Modalna logika 110
Temporalna logika 111
Viševaljane logike 112
Neizrazita (fuzzy) logika 114
Vjerojatnosne logike 120
Nemonotone logike 122
4.4 Strukturna pohrana znanja 124
4.4.1 Produkcijski sustavi 125
4.4.2 Semantičke mreže 128
4.4.3 Scenarij 133
4.4.4 Okviri 136
4.4.5 Opisne logike 142
4.4.6 Ontologije 146
5 ZAKLJUČIVANJE I RASUĐIVANJE 154
5.1 Logičko zaključivanje i rasuđivanje 157
5.1.1 Zaključivanje i rasuđivanje u propozicijskoj logici 159
Zaključivanje tablicom istine 160
Pravila zaključivanja (izvođenja) 162
Rezolucijsko pravilo 166
Rezolucija svođenjem na konjunktivnu normalnu formu (CNF) 167
5.1.2 Zaključivanje i rasuđivanje u predikatnoj logici 168
Zaključivanje u predikatnoj logici prvog reda 169
Pravilo univerzalne specijalizacije 169
Skolemizacija 169
Zaključivanje unaprijed i unatrag 170
5.1.3 Rasuđivanje zdravim razumom 171
5.2 Vjerojatnosno zaključivanje i rasuđivanje 172
5.2.1 A priori vjerojatnosti 172
5.2.2 Združena vjerojatnost 173
5.2.3 Uvjetna vjerojatnost 174
5.2.4 Nezavisnost 174
5.2.5 Vjerojatnosno zaključivanje 175
5.2.6 Bayesove mreže 178
D-separacija 178
Konvergirajuća veza 178
Divergirajuća veza 179
Serijska veza 179
Primjer Bayesove mreže za profiliranje kriminalaca 179
Zaključivanje u Bayesovim mrežama 180
Zaključivanje enumeracijom (nabrajanjem) 181
Zaključivanje eliminacijom varijabli 182
Zaključivanje uzorkovanjem 182
Naivni Bayesov klasifikator 184
Skriveni Markovljevi modeli 186
5.2.7 Klasifikator neosporne konfabulacije 189
Primjer pogrešnog zaključivanja Bayesovim teoremom 190
5.3 Neizrazito zaključivanje i rasuđivanje 191
5.3.1 Lingvistička aproksimacija – neizraziti skupovi 192
5.3.2 Lingvistička aproksimacija – neizrazite relacije 196
5.3.3 Neizrazito zaključivanje 198
6 UČENJE I STROJNO UČENJE 203
6.1 Edukativna psihologija 204
6.1.1 Biheviorizam 204
6.1.2 Kognitivizam 204
6.1.3 Konstruktivizam 204
6.1.4 Konektivizam 204
6.1.5 Računalna teorija učenja 205
6.2 Strojno učenje 205
6.3 Nadzirano učenje 207
6.3.1 Linearna regresija s jednom varijablom 208
6.3.2 Spust gradijenta 212
6.3.3 Linearna regresija s više varijabli 216
6.3.4 Polinomalna regresija 218
6.3.5 Pretreniranje i regularizacija 219
6.3.6 Klasifikacija logističkom regresijom 220
Granica odluke 222
Funkcija cijene 222
Spust gradijenta za logističku regresiju 223
Logistička regresija u više klasa 223
6.3.7 Stroj s potpornim vektorima 225
6.3.8 Umjetne neuronske mreže i duboko učenje 226
Umjetni neuron (perceptron) 226
Umjetna neuronska mreža 229
Duboke neuronske mreže i duboko učenje 230
6.4 Nenadzirano učenje 232
6.4.1 Klasteriranje 232
Algoritam k-sredina 233
Nedostaci algoritma k-sredina 234
6.4.2 Smanjenje dimenzionalnosti 236
Analiza glavnih komponenti (PCA) 237
Detekcija anomalija 244
6.5 Polunadzirano učenje 247
6.5.1 Pojačano učenje 247
Q-učenje 248
Pojačano slučajno traženje 251
6.5.2 Davanje preporuka 253
VJEŽBA 1 - UVOD U PROGRAMIRANJE U LISP-U 261
V1.1 Struktura Lispa 261
V1.2 Programiranje u Lispu 262
V1.2.1 Setq 263
V1.2.2 Cons 264
V1.2.3 Liste 264
V1.3 Zadaci 265
VJEŽBA 2 - NAPREDNO PROGRAMIRANJE U LISPU 266
V2.1 Napredan rad s listama 266
V2.2 Booleovi izrazi 268
V2.3 Uvjetni izrazi 269
V2.4 Funkcije 272
V2.5 Lokalne i globalne varijable 274
V2.6 Naredbe ponavljanja (iteracije) 274
V2.7 Rekurzivna funkcija 275
V2.8 Ispis 276
V2.9 Zadaci 276
VJEŽBA 3 - PROLOG 277
V3.1 Predikati 278
V3.2 Rad sa Prologom 280
V3.2.1 Upiti 280
V3.2.2 Pravila – relacije između predikata 281
V3.3 Logičke operacije u Prologu 282
V3.4 Trace mehanizam 284
V3.5 Primjer složenijeg zaključivanja u Prologu 284
V3.6 Zadaci 286
VJEŽBA 4 - UVOD U PYTHON 288
V4.1 Uvjetni izrazi 290
V4.2 Naredbe ponavljanja 290
V4.3 Funkcije 291
V4.4 Nizovi i matrice 291
V4.5 Zadaci 291
VJEŽBA 5 - STROJNO UČENJE U PYTHONU 292
V5.1 Nadzirano učenje 292
V5.2 Nenadzirano učenje 298
V5.3 Pojačano učenje kao primjer polunadziranog učenja 299
V5.4 Zadaci 299
VJEŽBA 6 - LINEARNA REGRESIJA 300
V6.1 Zadaci 300
VJEŽBA 7 – NAIVNI BAYESOV KLASIFIKATOR 303
V7.1 Zadaci 305
VJEŽBA 8 – UMJETNE NEURONSKE MREŽE U PYTHONU 305
V8.1 Perceptron 305
V8.2 Sigmoidni umjetni neuron 306
V8.2.1 Aktivacijska funkcija 307
V8.3 Duboko učenje 308
V8.4 Implementacije neuronskih mreža 308
V8.5 Odabir ulaznih podataka 308
V8.6 Zadaci 309
VJEŽBA 9 - UMJETNA INTELIGENCIJA U RAČUNALNIM IGRAMA 309
V9.1 Deterministički postupci umjetne inteligencije 309
V9.2 Nedeterministički postupci umjetne inteligencije 310
V9.3 Tehnike umjetne inteligencije u računalnim igrama 310
V9.3.1 Pronalazak optimalnog puta 310
V9.3.2 Konačni automati 312
V9.3.3 Stabla ponašanja 312
V9.3.4 Logički automati koji se oslanjaju na neizrazitu logiku 312
V9.3.5 Varanje 313
V9.4 PYGAME BIBLIOTEKA 313
V9.5 Zadaci 313
VJEŽBA 10 - OBRADA PRIRODNOG JEZIKA 315
10.1 Zadaci 315