Danes obstajajo različne oblike umetne inteligence (AI). Težko vprašanje je, kako sploh poimenovati umetno inteligenco in kaj preprosto imenovati programski program. V programski opremi obstaja težnja, ko nekaj, kar se je nekoč imenovalo “AI”, dozori in se integrira v tehnološko ozadje, se ne imenuje več AI. Programerji iz petdesetih let prejšnjega stoletja bi lahko številno vgrajeno programsko opremo v našem svetu poimenovali “umetna inteligenca” – na primer mikročip v vašem avtomobilu, ki uravnava vbrizgavanje goriva, ali baza podatkov v supermarketu, v kateri so shranjeni zapisi o vseh prodajah, ali iskalnik Google.
Toda področje, ki se imenuje “umetna inteligenca”, je ponavadi nekoliko drugačno od veliko večje skupine “razvijalcev programske opreme na splošno”. Raziskovalci AI ponavadi iščejo bolj zapletene, prilagodljive, zmogljive ali celo nejasno človeške oblike programske opreme. Delavci v AI so ponavadi tudi interdisciplinarni in dobro seznanjeni s področji znanosti in matematike, ki so tuja tipičnemu programerju, vključno z, vendar ne omejeno na: formalno statistiko, nevroznanostjo, evolucijsko psihologijo, strojnim učenjem in teorijo odločanja.
Na področju umetne inteligence obstajata dva glavna tabora: Neats in Scruffies. Oddelek obstaja tako rekoč, odkar je bila umetna inteligenca ustanovljena kot področje leta 1956. Neats so zagovorniki formalnih metod, kot je uporabna statistika. Všeč jim je, da so njihovi programi dobro organizirani, dokazljivo dobri, delujejo na podlagi konkretnih teorij in jih je mogoče prosto urejati. Skrbi imajo radi neurejene pristope, kot so prilagodljive nevronske mreže, in se imajo za hekerje, ki združujejo karkoli, dokler se zdi, da deluje. Oba pristopa sta imela v preteklosti impresivne uspehe, obstajajo pa tudi hibridi obeh tem.
Vsi načrti umetne inteligence so vsaj površno navdihnjeni s človeškimi možgani, saj je po definiciji umetna inteligenca posnemanje nekega vidika inteligence. AI morajo zgraditi koncepte stvari, s katerimi manipulirajo ali delajo, in te koncepte shraniti kot koščke podatkov. Včasih so ti kosi dinamični in se pogosto posodabljajo, včasih statični. Na splošno se umetna inteligenca ukvarja z izkoriščanjem odnosov med podatki za dosego nekega cilja.
Cilji se pogosto dodeljujejo na podlagi uporabnosti. Ko je predstavljen cilj, lahko sistem umetne inteligence ustvari podcilje in tem podciljem dodeli uporabne vrednosti na podlagi njihovega predvidenega prispevka k primarnemu cilju. AI nadaljuje z zasledovanjem podciljev, dokler ni dosežen primarni cilj. Nato se lahko premaknete na nov (vendar pogosto podoben) primarni cilj. Kar se med AI močno razlikuje, je, kako se izvaja vsa ta dinamika.