Intelligentics
Sistem Inteligent Evolutiv
"Intelegand TRECUTUL, si monitorizand PREZENTUL, putem privi in VIITOR"
In acest articol descriem felul in care ar trebui construit si sa functioneze un Sistem Inteligent Evolutiv pentru orice problema care implica: analiza, invatare, monitorizare si executare. Spre deosebire de Sistemele Expert care sunt facute pentru anumite probleme specifice, Sistemul Inteligent Evolutiv ar trebui sa fie peste Sistemul Expert deoarece poate "intelege" aproape orice problema.
Oricare ar fi problema, mediul, sau sistemul care urmeaza sa fie analizat, acesta implica patru intrebari simple:
"Cand?", "Ce?", "De ce?", si "Cum?"
In prima parte o sa incercam sa explicam sau sa definim aceste intrebari care se pun asupra unui sistem sau mediu ce urmeaza sa fie analizat.
In partea a doua o sa facem o descriere asupra unui cadru in care acest Sistem Inteligent Evolutiv ar trebui sa "gandeasca" si sa functioneze ghidat de intrebarile enuntate mai sus.
Prima mare problema este aceea ca Sistemul Inteligent Evolutiv la inceput nu stie nimic despre mediul respectiv. Deci primul lucru ar fi sa inceapa sa se uite in TRECUT. TRECUTUL este inregistrat intr-o baza de date sau depozit de date. Ce au in comun orice depozit de date sau baza de date? Inregistrarea TIMPULUI. Deci orice secventa sau model sau orice ar inregistra depozitul de date sau baza de date, este(sau ar trebui) introdus intro ordine cronologica iar daca nu, in orice TRECUT dimensiunea TIMP este implicata ceea ce inseamna ca daca Sistemul Inteligent Evolutiv nu stie nimic despre ce este vorba in acel mediu, sigur stie ca acolo exista timpul indexat. Deci acum putem spune ca avem o regula simpla si anume: TIMPUL
Orice s-a intamplat in TRECUT este legat de TIMP ceea ce inseamna ca prima intrebare este rezolvata.(Cand?)
Pornind de la o zicala "ce urca, si coboara", putem merge mai departe si declara ca: "ce merge in sus, merge si in jos, lateral sau sta pe loc" iar asta ar trebui sa ne duca in DB si sa gasim in functie de TIMP, "Ce(?)" s-a miscat. Aceasta ar trebui sa rezolve intrebarea "Ce?"
"De ce?" este o intrebare dificila. Uitandun-ne la oameni, deobicei fiecare dintre noi are parerea lui personala cand este intrebat despre ceva "Ce…..? si asta pentru ca fiecare in parte are perceptia lui asupra acelui subiect privind "ce" iar aceasta perceptie depinde de motivatie, experienta, viziune si educatia fiecaruia in parte. Cand aceste motive care influenteaza perceptia despre "Ce…? sunt apropiate, atunci si perceptia ar trebui sa fie asemanatoare sau foarte apropiata una de cealalta. Acest lucru ne face sa declaram ca deobicei cand experienta, educatia, viziunea si motivatia sunt asamanatoare cu a altora perceptia oamenilor este asemanatoare despre "Ce…?"
Avand o buna intelegere asupra intrebarilor("cand?", "ce?", "de ce?"), ar fi mult mai usor sa intelegem "Cum functioneaza ACEASTA?"(oricare ar fi ACEASTA) pentru a putea sa "…si monitorizand PREZENTUL...", putem privi in VIITOR"
Daca intelegem "cand" s-a intamplat, "ce" s-a intamplat si "de ce" s-a intamplat, atunci putem defini "cum" sa monitorizam PREZENTUL pentru a putea privi in viitor.
Bineinteles ca toate aceste intrebari pot si ar trebui puse in orice directie si pe orice nivel al aplicatiei.
Configurarea modulelor:
Ca sa obtinem aceste intrebari, trebuie sa punem pe "cineva" care sa caute. Acest "cineva" ar trebui sa fie reprezentat de o armata de agenti inteligenti fiecare cu arhitectura specifica pentru functia care trebuie s ao indeplineasca. Pe internet, inclusiv in proiecte open source, exista aplicatii puternice cu ajutorul carora se poate construi aceasta armata de agenti inteligenti. Asta se poate descrie ca si angajatii perfecti(lucreaza 24/7, nu priemsc salarii, nu au vacante etc), fara numar care sa indeplineasca sarcinile respective.
Ce ar trebui sa avem in vedere cand am "angaja" un agent intelligent este robustetea si viteza cu care indeplineste sarcina.
In lumea agentilor inteligenti, putem gasi aproape orice functie, de care un anagajator ar avea nevoie inclusive agenti de cumparare, monitorizare supraveghere etc.
Dupa ce am decis ce fel de agenti inteligenti avem nevoie si pentru ce sarcini/functii, ar trebui sa setam modulul de Data Mining. Acest modul ar trebui sa ne ajute sa intelegem TRECUTUL ceea ce inseamna o alta piatra de hotar in proiectul nostrum. Felul in care alegem inputurile, felul in care le extragem este foarte important. Este important pentru ca asta face parte din educatia viitoare(va aduceti aminte de factorii care influenteaza perceptia noastra asupa unui subiect cand suntem intrebati "ce….?" ) a modulului de inteligenta artificiala. O "educatie" solida si o "experienta" indelungata defineste un "expert". Data Mining ar trebui singura, (sau cu o interventie minima) sa descopere reguli asociative, sa construiasca arbori decizionali sau orice alta tehnica foloseste. Si tot singura ar trebui sa isi verifice veridicitatea declaratiilor(reguli extrase sa "vada" daca au mai aparut si in alta stare a mediului respective-alta stare decat cea pentru care au fost extrase). Si aici internetul este plin de aplicatii de data mining open source. Ar trebui sa alegem acele aplicatii care sunt populare si recunoscute ca incredere si folosesc diferite tehnici de data mining.
Acest modul este cel care ar trebui sa aiba grija de ultima parte si anume "… putem privi in VIITOR". Contine retele neuronale artificiale si tot ce este elgat de retele neuronale artificiale. Se stie ca retelele neuronale artificiale sunt foarte bune in forecast, recunostere de modele serii temporare si ca au abilitatea de a invata si a memora.
Modulul contine:
Generator automat de retele neuronale
Modul de antrenare si validare unde prin diferite tehnici (invatare supervizata sau reinforcement learning) retelele sunt antrenate si validate.
Deasemene pe internet exista aplicatii open source care construiesc antreneaza si verifica retele neuronale artificiale si sunt recunoscute pentru siguranta/stabilitatea lor.
In felul acesta putem construi un Sistem Inteligent Evolutiv. Bineinteles acesta este o schita care are detaliile ei. Desigur sunt lucruri despre care nu am vorbit (felul in care ar trebui antrenate retelele neuronale artificiale, sau folosind algoritmi genetici sau programe genetice sa optimizam parametri precum inputurile sau configuratia reteleleor neuronale artificiale, dar acestea sunt detalii si fiecare "professor"(pentru data mining) sau bun "antrenor"(pentru ANN) ar trebui sa aiba foarte bine definite ce sa astepte de la asemenea sisteme