Sztuczna inteligencja

fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
4

Na wstępie chciałbym napisać, że do tematu chciałbym podejść poważnie i przynajmniej spróbować coś napisać co mnie usatysfakcjonuje. Żeby także nie było niedomówień. Bez problemu czytam dokumentacje po angielsku czy też napiszę aplikacje w c++, lecz moje umiejętności z cepa są słabe jeżeli porównuje do niektórych użytkowników forum.

sory za tasiemca :)

Chciałbym ogólnie napisać AI, ale nie żeby potrafił "jedno", najlepiej jakby potrafił wszystkie funkcje, które niżej wypiszę. Zdaje sobie sprawę że napisanie czegoś takiego (nawet jeden punkt) wymaga bardzo dużej wiedzy a co dopiero połączenie tego jakoś fajnie w całość, ale jestem dobrej nadziei.

  1. Bot uczy się rozmawiać.
    coś jak Snikers czy inne tego typu programy (http://cleverbot.com/) tylko coś lepszego niż własnie np ten cleverbot (bo czasami jest po prostu głupi :)). Dowiedziałem się, że najtężsi mózgowie ciągłe próbują nauczyć komputer myśleć, lecz póki co nieskutecznie. Jednak aż tak łatwo mnie się nie da zniechęcić i jednak chciałbym spróbować, dzięki czemu sądzę że wiele się nauczę. I właśnie pytanie brzmi. Od czego zacząć? Czego szukać? I nie chodzi tutaj o ogólne teksty typu "poszukaj coś na temat sztucznej inteligencji" tylko bardziej konkretne algorytmy, badania, czy ogólnie pod jakimi hasłami szukać informacji (oprócz typowej AI)

  2. Bot uczy się grać.
    Ogólnie najlepiej jakby uczył się każdej gry na którą napotka (jeżeli w nią już gra to wtedy jakąś już umiejętność ma). Przez co z czasem bot robi się coraz lepszy w różne gry. Także można mu pokazać pewne zachowania żeby się szybciej uczył czy też można ograniczyć jego umiejętności (żeby po prostu grał słabiej). Pytanie jest czy jest możliwe żeby jakoś pozwał zasady danej gry sam? (jest to bardzo powiązane z pierwszym punktem). Tutaj takie samo pytanie jak wyżej od czego zacząć? Nawet informacje po prostu o uczeniu się grać dla bota(w kółko i krzyżyk czy w warcaby) było by na prawdę fajne

  3. Bot potrafi sterować całym systemem operacyjnym
    Już dostałem wiadomość, że raczej albo własny język programowania bym musiał wymyślić, albo napisać powłokę.
    Ale w sumie fajnie by było nawet, jakbym mu napisał (jeżeli już by potrafił rozmawiać :)) "włącz mi moją ulubioną piosenkę" to on włączą odpowiednią aplikację z odpowiednią piosenką. Czy też fajnie by było jakbym napisał typu "zapisz mi plik w txt o treści "jutro napiszę o linijkę więcej kodu!" i wyświetl mi to przy następnym uruchomieniu"

  4. Także żeby reagował na głos (poprzez mikrofon)
    Sterowanie za pomocą głosu? OSOM

i jeszcze raz się powtórzę. Jak szukać? Gdzie czytać? Kogo pytać żeby się dowiedzieć jak najwięcej?

Też ciekawi mnie jak można napisać po prostu bota. Mniej więcej wiem na jakiej zasadzie działa ale jestem ciekaw jak on analizuję co zebrać co robić czego użyć gdzie pójść (mapy są generowane losowo)

Czy ogólnie do gier fpsowych żeby grał w miare naturalnie i miał różne taktyki (a własnie najlepiej jakby się uczył)

Sądzę że jakbym napisał cokolwiek co przypomina bota w ciągu pół roku byłbym na prawdę zadowolony z siebie. Czasu za bardzo nie mogę też poświecić żebym siedział codziennie po 10 godzin (a szkoda), ale na pewno łatwo z tego nie zrezygnuję jeżeli będę wiedział od czego zacząć.

Jeżeli dotrwaliście tak daleko to dzięki za przeczytanie :)

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
7
  1. Lekcja na dziś: przetwarzanie języka naturalnego. Możesz zapisac się na kursy stanforda / mit z tego zakresu (z zakresu AI i uczenia maszynowego też)
  2. To się nazywa uczeniem maszynowym, patrz wyżej.
  3. Znów przetwarzanie języka naturalnego, patrz wyżej
  4. Biblioteki do rozpoznawania mowy są dostępne, ale żeby zinterpretować polecenia znów przetwarzanie języka naturalnego.

http://see.stanford.edu/see/courseinfo.aspx?coll=63480b48-8819-4efd-8412-263f1a472f5a
http://see.stanford.edu/see/courseinfo.aspx?coll=348ca38a-3a6d-4052-937d-cb017338d7b1
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-034-artificial-intelligence-fall-2010/
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-034-artificial-intelligence-spring-2005/
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-863j-natural-language-and-the-computer-representation-of-knowledge-spring-2003/
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-864-advanced-natural-language-processing-fall-2005/
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-867-machine-learning-fall-2006/

Co do samego pisania botów to zainteresuj się Google AI Challenge. To taki konkurs gdzie pisze się właśnie bota do jakiejś gry:
http://aichallenge.org/
http://planetwars.aichallenge.org/


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
msm
Administrator
  • Rejestracja:prawie 16 lat
  • Ostatnio:4 miesiące
4

Jako że wcześniej pisałeś na PW, czuję się upoważniony do wklejenia tam udzielonej odpowiedzi tutaj.
Pytanie było trochę inaczej sformułowane, stąd nieścisłości.


Hah, ambitny temat sobie wybrałeś :>

No więc, przede wszystkim, temat jak najbardziej nadaje się na forum. Mieści się to w Nietuzinkowe tematy, przy czym biorąc pod uwagę poziom skomplikowania zadania odpowiedzi mogą być niezbyt konstruktywne (czyt. ironiczne).

Ale zaczynając od Twoich pytań:

  • Czy c++ + asm wystarczy żeby to napisać w jakimś realnym czasie? (asma będę dopiero się uczył od podstaw, w sumie c++ ciągle się uczę)

Do napisania czegoś takiego wystarczy dowolny język kompletny w sensie maszyny Turinga, czyli C, C++, Asm (chociaż tutaj byłoby ciężko...), C#, Java, Brainfuck (chociaż tutaj byłoby ciężko...), Haskell, Erlang, Scala, Javascript, Prolog, etc, etc. Czyli odpowiedź brzmi - tak. Pozostaje pytanie w czym byłoby najprościej, pisanie sztucznej inteligencji w asemblerze będzie baardzo męczące.

  • Jakie IDE i kompilator do (tak sądzę) dużego projektu? Czy C::B z minGW wystarczy?

Jasne, w przypadku C++ ważne tylko żeby to nie był Dev :>. Zresztą ja zazwyczaj kompiluję z konsoli za pomocą ręcznego wywołania gcc albo makefile - też się da, zależy co kto lubi.

  • Od czego ogólnie zacząć? (najlepiej od początku, ale gdzie jest początek :)?)

Od porządnej nauki języka programowania i angielskiego :]. Później studiować sztuczną inteligencję - http://en.wikipedia.org/wiki/Artificial_intelligence.

I teraz przeskakując wcześniej:

  1. Bot uczy się rozmawiać. Nie wiem czy kojarzysz Snikersa czy inne tego typu programy (http://cleverbot.com/) tylko coś lepszego niż własnie np ten cleverbot (bo czasami jest po prostu głupi :))

Cleverbot nie jest głupi ani mądry, on nie myśli w żadnym sensie - nie chodzi mi to o jakieś filozoficzne rozważania typu czy komputer ma duszę i co to znaczy że człowiek myśli, o bardziej prozaiczną kwestię - cleverbot nie analizuje semantycznie tego co do niego piszesz - odpowiada na podstawie setek tysięcy wymienionych wcześniej zdań.

Popatrz na tą rozmową którą dla Ciebie przeprowadziłem :>

<msm>Hi.
<bot>How are you?
<msm>Nice, thank you.
<bot>Welcome.
<msm>Nice to meet you.
<bot>You as well.

Powiedzmy końcówka - kiedyś bot do kogoś zagadał nice to meet you i otrzymał odpowiedź you as well. Teraz ja zagadałem że miło go spotkać, a on przypomniał sobie że zna odpowiedź na takie przywitanie. I tak to działa - dzięki olbrzymiej ilości zebranych danych potrafi udawać rozmowę.

Ach, tak, do pytania - no więc ty prawdopodobnie chcesz zrobić coś innego - nauczyć komputer myśleć. Szczerze mówiąc, nikomu, mimo dziesiątek lat badań najlepszych specjalistów od AI, się to jeszcze nie udało. Być może będziesz pierwszy... Chociaż bardziej prawdopodobne że się zniechęcisz.

  1. Bot uczy się grać. W niektóre gry wolałbym grać z kimś kto ma podobny poziom jak ja lub je przewyższa

Cóż, możesz postąpić podobnie jak twórcy cleverbota - podać mu na tacy tysiące rozegranych partii, powiedzmy, szachów i nauczyć go naśladowania (w podobnej sytuacji XXX zrobił YYY).
A, i nie nauczysz go grania w każdą grę - to po prostu niemożliwe. Dla każdych zasad gry musiałbyś go uczyć od zera, oraz musiałbyś go przystosowywać do każdego programu (sztuczna inteligencja nie ma pojęcia o czymś takim jak powiedzmy 'przycisk' albo 'pionek', jedynie manipuluje stanami)

  1. Bot zarządza całym komputerem. Jeżeli bym chciał żeby coś zrobił to po prostu to zrobi (nie chciałbym go ograniczać tylko do włączenia danej aplikacji tylko np żeby też coś z nią zrobił.

Zbyt ogólne, musiałbyś znaleźć sposób na przekazywanie mu rozkazów. W jakiej formie byś tego nie robił, skończysz albo z nową powłoką systemową, albo z nowym językiem programowania, nigdy botem.

  1. Także żeby reagował na głos (poprzez mikrofon)

Jeśli wykonasz którykolwiek z poprzednich punktów to ta część będzie dla Ciebie śmiesznie łatwa ;]

  • skąd czerpać wiedzę lub jak zadawać odpowiednie pytania w google?

Lata praktyki - a poważnie to kiedy zaczniesz czytać np o sztucznej inteligencji od najprostszych tematów będziesz trafiał na referencje do coraz bardziej złożonych tematów - wtedy szukasz czegoś na ich temat w google i volia, gotowe.

  • jak sprawić żeby grał? O ile jakoś mogę sobie wyobrazić żeby się uczył jak nie popełniać błędów w grze (np kółko krzyżyk) o tyle napisanie takiego bota jest dla mnie jest to trochę czarną magią

Uwierz, taki bot w porównaniu do tego co planujesz zrobić jest zabawnie łatwy. Składa się z mniej więcej trzech części
[CZYTANIE_STANU_DIABLO] => [ANALIZOWANIE_STANU, WYKONANIE_JAKIEJŚ_AKCJI] => [KOPIOWANIE_STANU_DO_DIABLO]
Przy czym najtrudniejsze są pierwsza i trzecia część.

  • Czy da radę napisać w ciągu 5 lat wszystkie punkty jeden człowiek który będzie to pisał w wolnym czasie? (sądzę że w tyg znajdę min 10 godzin na to)

No więc tak - ja jestem realistą (chociaż złośliwi twierdzą że pesymistą). Gdybyś wiedział dokładnie co pisać i jaki algorytm stworzyć, być może byś zdążył. Tylko że samo napisanie to najłatwiejsza część, znalezienie sposobu/algorytmu na nauczenie komputera myślenia to jest problem.
No więc - moim zdaniem - nie.

edytowany 4x, ostatnio: msm
RE
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:11 miesięcy
11

Napiszę krótko i pozwolę sobie zweryfikować jedną rzecz: nie istnieje (jeszcze) coś takiego jak sztuczna inteligencja w sensie, w którym myślisz, że istnieje. Bot to najzwyczajniejszy zestaw skryptów, według których program reaguje na określone sytuacje oraz odpowiednio skonstruowana, duża baza danych. Bot nie zrobi nic ponad to, czego nie zaprogramował jego autor. Koniec, kropka. Będzie to na tyle "naturalne", na ile go zaprogramujesz. Na pewno bot cię niczym nie zaskoczy, np. nie nauczy się rozpoznawać nowych poleceń. Co najwyżej możesz umożliwić dodawanie nowych poleceń podczas działania bota. Ale tak czy siak, musisz to zaprogramować.

Bot z Diablo, o którym piszesz to najprawdopodobniej fejk.

edytowany 1x, ostatnio: Rev
Zobacz pozostały 1 komentarz
msm
O, dokładnie to samo się starałem napisać tylko że zajęło mi to więcej i gorzej wyszło :] +1
02
Wszystko zależy co rozumiesz pod pojęciem inteligencja
somekind
Ja bym powiedział, że inteligencja, to zestaw uniwersalnych zdolności pozwalających na adaptowanie się do dowolnej sytuacji oraz ciągły rozwój tych zdolności.
T9
Już ktoś napisał programy któe same uczą się grać w proste gry bez w kodowania fizyki gry, jedyne z hardcodowane informacje to czy punkty w dół w górę i wygrana przegrana i czym się rusza(nie jak). Ale to trzeba też ludziom tłumaczyć :P Linka nie dam bo nie znalazłem tego co chciałem ale w google coś w temacie bez problemu znajdziesz:)
JU
Były kiedyś próby stworzenia sieci neuronowej, która sama się buduje. To się chyba nazywa "samoorganizująca się sieć neuronowa". Coś takiego może chyba zaskoczyć w pewnych przypadkach?
1

Podbijam temat jako że już roczek jestem z Wami

tu jest all-in-one : harvard, mit, stanford - http://www.class-central.com/
a co do SI to przerobilem pol klasy Thruna i Norviga i powiem że zajebiście uczą i szybko ogarniesz - https://www.ai-class.com/

no i wiadomka że robią Ci panowie dla google po tym jak się stało bardziej wypłacalne od NASA :P

a co do tego czy inteligencja ma cos do SI to tak jak psychologia innych gatunków H20 do psychologii człowieka
( ile o nim tak naprawde wiemy ), nie ma co się pocić nad problemem którym się zajmują kognitywiści
jak tu chodzi o czyste algorytmy,
a jak bardzo chcesz dowiedzieć się czegoś
jak uczy się człowiek i jak uczyć komputer to
ogarnij sobie "Psychologia umysłu" Zbigniewa Piskorza,
a co do polaków w czołówce AI to profesor Duch z Torunia( www.is.umk.pl/~duch/indexpl.html )
na pewno ma jakieś publikacje publicznie udostępnione
a jak nie, to napisz do niego że chcesz mu pomóc stworzyć myślący komputer to może zaprosi Ciebie na wykłady ;)


peace
ChS

robcio
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 10 lat
  • Lokalizacja:Opole
  • Postów:533
3

Na początku proponuje abyś zaimplementował sobie algorytm minimaks w jakiejś grze logicznej np warcaby(sztuczna inteligencja) później gdy trochę bardziej obeznasz się z tematem możesz podjąć się tego co chcesz zrobić. Jeśli będziesz chciał od razu wskoczyć na głęboką wodę to się utopisz(projekt się nie powiedzie).


Nie odpowiadam na PW z prośbą o pomoc programistyczną.
CI
Chyba, że będzie miał dużą motywację. Ale i tak może mu to zająć dłużej, niż robienie tego "step by step", od prostych zagadnień do złożonych.
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:mniej niż minuta
1

Ja mam w odległych planach nauczenie się Lojbana. To chyba jedyny darmowy i kompletny język (tak twierdzi Wiki) który daje się jednoznacznie sparsować. A skoro daje się jednoznacznie sparsować to już jeden problem z głowy przy tworzeniu sztucznej inteligencji.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit
Zobacz pozostałe 3 komentarze
msm
Parsowanie by to bardzo uprościło, ale tak czy inaczej zostaje problem rozumienia wyrażenia ('czy zosia była dzisiaj w szkole, ile kosztuje minuta rozmowy przez telefon`) i odpowiedniej reakcji.
Wibowit
jest jeszcze automatyczne tłumaczenie, do którego w zasadzie nie trzeba jakoś mocno rozumieć tłumaczonego tekstu; tłumaczenie z lojbana na dowolny inny język używając właśnie poprawnej analizy składniowej powinno przynieść dużo lepsze efekty niż coś czym posługuje się np google translate
02
"zamiast robić sieci neuronowe można by zrobić analizę składniową" he? O jakich sieciach neuronowych gaworzysz? Do czego niby te sieci neuronowe są używane, że można je zastąpić parsowaniem lojbana?
Wibowit
hmm, no być może np tłumacz google korzysta z jakichś. z czegokolwiek by nie korzystał, wyniki są dość kiepskie. normalnych języków mówionych nie sparsujesz jednoznacznie, więc jak tu to dokładnie tłumaczyć?
02
Do poprawy tłumaczeń służą modele językowe i skoro Lojban ma jednoznaczną gramatykę to faktycznie mogło by to poprawić jakość np. rozpoznawania głosu.
fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

Dziękuję wszystkim za odpowiedź.
Ogólnie jestem na rozdrożu (nie wiem do końca w co iść, bo tyle rzeczy jest ciekawych...), ale to nie jest o tym temat.

Najważniejsze jak dla mnie, że dzięki tym postom. Ja czy inny "ciekawski" na temat AI będzie wiedział od czego zacząć tak żeby długo nie błądzić, a właśnie taki cel miał ten topic ;) (przynajmniej w moim odczuciu).

a troszkę offtopując. To trochę jednak strach przed tworzeniem czegoś takiego. Później ludzie by palili mój wizerunek i by opłakiwali ten dzień w którym powstała w pełni AI :D (tiaaa... za dużo chyba terminatora)

Jeszcze raz dziękuję. Przede mną dużo lektury i jeszcze więcej praktyki także mam co robić na pewno do końca 2012r (lub do słynnego dnia w grudniu ;p)

codex
Przed JAKĄKOLWIEK lekturą na ten temat (TO TYLKO MOJE ZDANIE I NIE MAM DOWODÓW, ZE MAM RACJĘ) warto usiąść samemu nad tym problemem i spróbować zrobić co się tylko da po to żeby nieświadomie nie powtarzać utartych schematów. Dopiero gdy zarysujesz, naszkicujesz własne koncepcje - lektura tego co zdziałali inni (ja jeszcze do tego etapu nie doszedłem i myślę, że jeszcze długo nie będzie na to czasu). Pozdrawiam
0

Ja jestem osobiscie zainteresowanym twoimi punktami 1, 3 oraz 4 poniewaz sam zaczalem nad tym pracowac i chcialbym napisac/stowrzyc taki program/bota/S.I dla moich potrzeb. Pozdrawiam mam nadzieje ze Ci sie udalo.

PR
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 8 lat
  • Postów:39
0

Sam interesuję się tym tematem.. Problemem jest 'uzbrojenie' takiego Boota w narzędzia..bo co najlepiej dać mu myszkę i klawiaturę.. Wtedy może sobie klikać ile wlezie,lecz będzie ślepy :) Trzeba dać mu wzrok. Wzrok to widok obrazu/Pulpitu sytemu oraz wszystkich wyskakujących okien. Jak to zrobić? Może analiza screenów? Dalej będzie problem z analizą przycisków. Boot nie wie gdzie dokładnie zaczyna się i kończy dany button.. Można ręcznie wklepać każde położenie danego okna,przycisku do obsługi programu.. tylko to nie ma sensu.. Boot ma sam się tego nauczyć przy zastosowaniu odpowiednich algorytmów. Mi udało się tylko stworzyć sieć dla robocika 2d który uczy się iść daną ścieżką. Myślę ,że podobnie można zrobić dla boota uczącego się danego systemu operacyjnego. Nauka trwa wtedy do momentu gdy np. boot nie sformatuje dysku C :D

T9
@fasadin @Progdeex napisałem program który ma wzrok :D, do ostrej pracy realtime się nie nada, ale działa w mgnieniu oka i do napisanie bota który rusza myszką i wygrywa z kolegą w grę się nada :D Żółte kółka to wykrytych elementów. http://pokazywarka.pl/tvzfmz/
PR
Jeśli możesz to napisz parę szczegółów więcej o tym programie :)
T9
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 6 lat
  • Postów:329
0

Co do drugiego to "ostatnio" jakiej firmie się udało coś takiego zrobić i z marszu zostali kupienie za kwote z 7 zerami na końcu.
Nie mogę znaleźć linku ale tu google chwali się osiągnięciami.
http://www.komputerswiat.pl/nowosci/wydarzenia/2015/09/sztuczna-inteligencja-uczy-sie-grac-w-gry-z-lat-80-tych.aspx

edytowany 5x, ostatnio: topik92
T9
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 6 lat
  • Postów:329
2

Zauważyłem że wiele osób było za interesowane tematem, bo jest obiektywnie fajny :p,pisałem program który który zawraca współrzędne występowania określonej grafiki na monitorze. Może żadne sci-fi, ale wystarczająco szybkie by napisać program, który kierując ruchem myszki znajdzie wyjście z labiryntu, rozwiąże sapera, lub oszuka kupla w jakieś grze :P. Programy które wykorzystują najzajebistrzy algorytm świata na krzaczastym interfejsie nie robią na nikim wrażenia(no chyba że grafika 3d w konsoli ale to działa tylko na programistów), ale jak coś rusza myszką, to wtedy jest potęga :D, każdemu się to podoba :D. No i dlatego wydaje mi się że fajnie było by się tym podzielić, zwłaszcza że trochę się namęczyłem by to napisać :P .
Uzycie PrintScreen klik -> wybranie myszka grafiki -> załaduj wzór klik -> znajdz klik; Żółte kółka to rogi. wyczyść usuwa kółka.

Sam algorytm to żadne rocket-sciense, liczy sumy kontrolne dla obrazka wzorcowego, sumy kolorów w pikselach, + proste funkcje, ma to swoje wady ale dziwo działa dość dobrze, i poza lustrzanymi odbiciami i oczywistymi przypadkami, stosunkowo rzadko się myli:P, i chodzi szybko. Jak ktoś potrzebuje i lub chce ma cierpliwość to stosunkowo prosto przyśpieszyć ten kod, kilka- kilkanaście razy(a przynajmniej mi się tak wydaje.).
Pierwszy raz pisałem coś takiego i chciałem to dociągnąć do końca dla tego kod miejscami są jest ciekawie.
saper.jpg

edytowany 3x, ostatnio: topik92
PR
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 8 lat
  • Postów:39
0

To ciekawe :) Czyli program robi najpierw screena a potem analizuje poszczególne grafiki? Z jakiej biblioteki korzystasz?

T9
Tak robi screena i analizuje grafikę. Tylko standardowe biblioteki do aplikacji okienkowych, z biblioteki do przetwarzania obrazu nie korzystałem i za radą kogoś z wątku pisałem wszystko ręcznie, metodą objawienia. Ale jak tak teraz patrze to nie wyszło aż tak źle. Pesymistycznie złożoność jest n^2, ale w takim "średnim" przypadku jest n+A gdzie n to liczba pikseli a, A powierzchnia znalezionych wzorów w pikselach. Splot jest lepszy i prosty w implementacji ale ma złożoność n*coś. wiec mogę mieć satysfakcje ze czasami działa lepiej :P.
forsberg
  • Rejestracja:prawie 18 lat
  • Ostatnio:około rok
  • Lokalizacja:Trójmiasto
0

Temat stary, ale się wypowiem. Przede wszystkim, jestem na 100% pewny, że autor sobie nie poradził z zadaniem, a nawet bardzo pewne, że projekt porzucił. A teraz odpowiadam: najkrócej, sztandarową "kogniwistyką" itp. nie załatwi się sprawy.

fasadin napisał(a):
  1. Bot uczy się rozmawiać.
    (...)

  2. Bot uczy się grać.
    (...)

  3. Bot potrafi sterować całym systemem operacyjnym
    (...)

  4. Także żeby reagował na głos (poprzez mikrofon)
    (...)

Ostatni punkt sugeruje, że nie masz zbyt dużego pojęcia o tym, co chcesz osiągnąć, bo "reagowanie" na głos (w szczególności zamiana dźwięku na tekst), a "rozumienie" (na ile możemy mówić o rozumieniu czegokolwiek przez kod) co mówi ten głos, to dwie zupełnie różne sprawy.

Natomiast odnosząc się do trzech pozostałych punktów, nie ma prostego rozwiązania. To o czym piszesz sugeruje, że powinien istnieć jakiś meta-system koncepcji (lub meta-meta-system, lub meta-meta-meta... itd. w zależności od Twoich ambicji), który operuje pewnymi abstrakcyjnymi pojęciami, a następnie je przekłada na konkretne obiekty czy też elementy.

"Bot uczy się rozmawiać" to temat wałkowany od dekad, i na pewno możesz znaleźć jakieś rozwiązania, niekoniecznie satysfakcjonujące, ale 'jakoś' działające. Uczenie się grania lub dowolnego systemu operacyjnego to osobna sprawa, i wymaga poświęcenia potężnych studiów pod kątem koncepcyjnym (nie - programowania), by w ogóle dobrze zabrać się za ten temat.

0

@up ale on to pisał 5 lat temu, twierdzenie że obecnie nie ma o tym pojęcia jest takie trochu nie na miejscu.

0

Witajcie, czy to już jest ten moment, gdzie AI zaczyna wychodzić ze sfery fiction i staje się science:

Naukowcy z Kalifornijskiego Instytutu Technologii i Uniwersytetu w Salerno opracowali system sztucznej inteligencji, który poprzez analizę skanu mózgu danej osoby jest w stanie przewidzieć jej inteligencję. System dokonuje tego na podstawie obrazowania funkcjonalnego rezonansu magnetycznego (fMRI) aktywności mózgu w stanie spoczynku danej osoby.

http://human2.com.pl/sztuczna-inteligencja-na-podstawie-skanu-mozgu-odgadla-iq-i-nie-tylko/

System sztucznej inteligencji (AI) zdobył 2:0 w zawodach diagnozowania nowotworów mózgu i przewidywaniu rozwoju krwiaka mózgu przeciwko doświadczonym lekarzom w Pekinie.

System BioMind AI, opracowany przez Centrum Badań nad Sztuczną Inteligencją dla Chorób Neurologicznych w Pekinskim szpitalu Tiantan, dokonał prawidłowej diagnozy w 87 procentach 225 przypadków w czasie około 15 minut, podczas gdy zespół 15 starszych lekarzy osiągnął jedynie 66-procentową skuteczność.

http://human2.com.pl/sztuczna-inteligencja-na-podstawie-skanu-mozgu-odgadla-iq-i-nie-tylko/

hurgadion
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 6 lat
  • Lokalizacja:www
  • Postów:259
1

Hej,
posurfuj po tej stronie: http://www.is.umk.pl/~duch/indexpl.html Sporo zagadnień z AI, i zagadnień pokrewnych... :)

KU
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:369
0
Nieposkromiony Samiec napisał(a):

czy to już jest ten moment, gdzie AI zaczyna wychodzić ze sfery fiction i staje się science:

Nie.

edytowany 1x, ostatnio: kulson
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)