Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sztuczna inteligencja i php, jeśli się da to jak.
Forum PHP.pl > Forum > PHP
tabassccoo
Mam pewien projekt do zrobienia ze sztucznej inteligencji. Technologia nie ma znaczenia, ale najpewniej się czuję w językach webowych. Stąd moje pytanie czy się da. Program ma "rozmawiać" z potencjalnym klientem w celu ustalenia pewnego ostatecznego faktu. Nie będę wnikał w szczegóły. Nie jestem aż tak zaawansowany w php, żeby znać wszystkie jego możliwości. Dlatego się zastanawiam czy da się za pomocą php właśnie zrealizować tego typu aplikację internetową. Jeśli tak to o czym powinienem poczytać, jakimi bibliotekami się zainteresować, jakie rozwiązania mogą być pomocne.

Nie chcę nikomu zlecać tego projektu, bo mam zamiar zrobić go sam - stąd też ten temat.

Z góry dzięki za wszelkie informacje.
blooregard
Coś w ten deseń?

http://artykuly.zyxist.com/czytaj.php/piszemy_chatbota

tabassccoo
Chatbot może być. A żeby bardziej nakreślić problem opisze troszkę jednak działanie aplikacji. Program po rozmowie z klientem - serii kluczowym pytań, ma określić najbardziej prawdopodobną usterkę załóżmy telefonu komórkowego. Literatury już się naczytałem. O Teście Turinga też coś wchłonąłem, o systemach ekspertowych, sieciach neuronowych etc. Ale większość rozwiązań jest w innych językach z naciskiem na C/C++. Artykuł który mi podałeś jest oparty na kodzie języka D, o którym wiem tylko tyle że jest wstydnis.gif . Artykuł oczywiście dokładnie przeczytam i dzięki Ci za niego, a jakieś inne propozycje?

I kolejne pytanie czy da się w php zaimplementować takie struktury danych jak listy? A co z drzewami decyzyjnymi - bo te akurat mogą mi się przydać.
Uriziel01
A może zrób jakiś prosty algorytm A* z podążaniem za 'graczem', wyglądało by to jak gdyby 'komputer' zawsze chciał dotrzec na Twoja aktualna pozycję. jest to 100x prostsze, tylko nie jestem pewny czy jest to dostatecznie blisko pojęcia AI smile.gif

EDIT:
Po przemysleniu, no to niestety to jest chyba zbyt czysto algorytmicznie rozwiązanie.
blooregard
Implementacja rozwiązania nie zależy od konkretnego języka wink.gif

Cytat
I kolejne pytanie czy da się w php zaimplementować takie struktury danych jak listy? A co z drzewami decyzyjnymi - bo te akurat mogą mi się przydać.


Oczywiście:

http://pl2.php.net/spl
http://pl2.php.net/manual/pl/class.spldoublylinkedlist.php

Cytat
Program po rozmowie z klientem - serii kluczowym pytań, ma określić najbardziej prawdopodobną usterkę załóżmy telefonu komórkowego.

Czyli chodzi o system ekspercki (ekspertowy).

To może zacznij od tego, to da Ci podstawy do reszty materiałów do poszukania w necie:

http://pl.wikipedia.org/wiki/System_ekspertowy


skowron-line
Ja pisałem prace inż ze sztucznej inteligencji
http://www.skowronline.pl/ai/

Generalnie możesz użyć każdej technologi bo chodzi tam o rozwiązywanie działań matematycznych.

Edit. Przypomniało mi się
tytuł to "Problem klasyfikacji na przykładzie kwiatu irysa"
erix
Do systemów ekspertowych jest dostępny gotowy lib na phpclasses.org. [;
tabassccoo
Dzięki wielkie za wszelkie linki i podpowiedzi. Jeśli ktoś ma coś jeszcze śmiało podrzucać. I tak zapoznanie się z powyższymi trochę czasu mi zajmie. Po przejrzeniu materiałów i pierwszych próbach na pewno pojawią się bardziej sprecyzowane pytanie z mojej strony. Póki zabieram się za wchłanianie nowej wiedzy.

Skowron - Twój link nie działa.
erix
Implementacja systemów ekspertowych nie będzie problemem, bo to tego są odpowiednie biblioteki; oczywiście kolosy w stylu Matlaba coś takiego posiadają.

U siebie - trochę się naczytasz, bo kluczowe nie są działające systemy, tylko przygotowanie danych uczących.

Wniosek: nie ominie Cię najpierw analiza problemu i próba przyporządkowania aksjomatów, z których będziesz korzystać w celu skonstruowania reguł wag dla sieci. Więc nie zabieraj się od d...olnej strony, tylko najpierw siadaj z kartką i rozpatruj przypadki, zbieraj dane, które przydadzą się do rozmów, wyłapuj słowa-klucze.

Potem wpuszczasz to do sieci neuronowej, uczysz np. metodą LVQ (http://wekaclassalgos.sourceforge.net/) i dostajesz sieć neuronową z ustalonymi wagami.

Zajmij się analizą, implementacja, to już szczegół.
thek
Klasyfikacja? Zastanawiałbym się więc w tym przypadku także nad systemami rozmyto-neuronowymi, ponieważ wtedy problem wag "rozwiązuje się sam" poprzez fakt nauki takiej sieci. Ty dostarczasz jej dane wejściowe i wyjściowe, a on na tej podstawie sam modyfikuje wagi węzłów, a co ciekawe, potrafi "wnioskować" już przy niepełnej ilości (uszkodzonych, brakujących) danych wejściowych, co akurat nie każdy system potrafi. A takimi danymi przecież będziesz dysponował smile.gif Na wejściu zestaw odpowiedzi, a na wyjściu konkretny numer rozwiązania (lub zestaw rozwiązań z różnym prawdopodobieństwem). Wrzucasz w system, ustawiasz ileś iteracji lub poziom błędu i system się uczy. Potem już tylko podstawiasz dla testów jakies z kosmosu zestawy odpowiedzi i patrzysz co wypluje system na wyjściu i jak ma się to do prawidłowego rozwiązania.A sam wspomniałeś, że teorię z neuronów już zacząłeś zgłębiać. Od razu zaznaczam, że logika rozmyta jest nieco zakręcona. Jest uogólnieniem logiki Boola dla zbiorów. Tu już nie masz bowiem stanów 0 i 1 ale cały zakres od 0 do 1 włącznie, czyli choćby 0.9 jako odpowiednik "wysoce prawdopodobny" lub 0.01 dla "niezwykle mało prawdopodobny". Własnie dlatego tystemy te służą do klasyfikacji, gdyż na wyjściu masz wyniki w stylu "0.9 prawdopodobieństwa dla rozwiązania A, 0.25 dla B i 0.01 dla C", a nie jak zazwyczaj, że coś "jest rozwiązaniem A", ale nie wiemy dokładnie jak bardzo ta informacja jest pewna.

EDIT: Jeśli chcesz wiedzieć na ten temat wiele rzeczy w stylu "kompendium", to polecam zajrzeć tu oraz przyjrzeć pozycjom 4 i 6 (zwłaszcza ta druga), bo tam masz właśnie ów problem klasyfikacji ładnie opisany (w 6 na podstawie wspomnianego przez skowrona irysa). Co do ludzi to osoby w stylu Rutkowski, Cpałka czy Nowicki lub Starczewski czyli osoby związane z "polską sceną AI" to byli moi wykładowcy/ćwiczeniowcy, co do których wiem, że są w tym co robią dobrzy i potrafią rozwalić temat. A poza tym spoko kolesie.
erix
~thek, a o czym ja napisałem? tongue.gif
thek
Systemy ekspertowe czy sieci neuronowe to nie do końca to samo co rozmyto-neuronowe. Uwierz osobie która specjalizację ze sztucznej inteligencji na studiach robiła. To ciutkę inna matematyka, ponieważ tam zachodzi oprócz uczenia jeszcze kilka innych dodatkowych rzeczy w oparciu o zbiory rozmyte, które służą między innymi do zgrupowania i klasyfikacji danych. Jest to oparte o sieci neuronowe, owszem, ale implementacja jest nieco bardziej rozszerzona, lecz w wyniku otrzymuje się lepsze wyniki niż z wykorzystaniem samych sieci. A co ciekawsze, zazwyczaj przy mniejszej ich wielkości.
ZenekN
Witam dzięki za rozjaśnienie tematu AI, zastanawiam się z jakiej bazy danych korzystać do wykorzystania tej technologii i jak może wyglądać struktura takiej bazy
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.