Czy sieć neuronowa może wypracować pojęcie odległości?

10

Wyobraź sobie grę, w której jest to czarny ekran oprócz czerwonego piksela i niebieskiego piksela. Biorąc pod uwagę tę grę dla człowieka, najpierw zobaczą, że naciśnięcie klawiszy strzałek spowoduje przesunięcie czerwonego piksela. Następną rzeczą, jakiej spróbują, jest przesunięcie czerwonego piksela na niebieski.

Daj tę grę sztucznej inteligencji, losowo przesunie czerwony piksel, aż milion spróbuje później przypadkowo przejdzie na niebieski piksel, aby zdobyć nagrodę. Jeśli AI ma jakąś koncepcję odległości między czerwonym i niebieskim pikselem, może spróbować zminimalizować tę odległość.

Bez programowania w koncepcji odległości, jeśli weźmiemy piksele w grze, czy możemy obliczyć liczbę (liczby), taką jak „entropia”, która byłaby niższa, gdy piksele są daleko od siebie, niż gdy są blisko siebie? Powinien współpracować z innymi konfiguracjami pikseli. Na przykład gra z trzema pikselami, w której jeden jest dobry, a drugi zły. Żeby dać sieci neuronowej większy obraz tego, jak wygląda ekran? Następnie daj NN cel, na przykład „spróbuj zminimalizować entropię planszy, a także spróbuj zdobyć nagrody”.

Czy jest coś podobnego w obecnych badaniach?

zooby
źródło
Nie sądzę, żebyś bezpośrednio nakarmił go obrazem i
sprawił,
@ Pheo tak, ale musisz podać różne wartości dla każdego rodzaju „gry”. Podczas gdy mówię, czy możemy mieć jakiś globalny typ wartości, która jest wysoka, gdy piksele są zgrupowane razem, a niska, gdy piksele są rozstawione?
zooby
„Następną rzeczą, którą spróbują, jest przesunięcie czerwonego piksela na niebieski”. być może nie zrobi się „czerwony” i „niebieski” w większości przypadków są wrogami, więc zaczniesz zwiększać odległość, zanim zauważysz niebieski piksel.
Lee,

Odpowiedzi:

1

Odpowiedź

Przyjmuję twoje pytanie na pierwszy rzut oka i wnikam głęboko w ten temat.

Tak, moga. Może typowy ludzki umysł. Ale rozważ ludzki umysł. Miliony, jeśli nie miliardy neuronów. W rzeczywistości odległość można uznać za ludzką koncepcję, po prostu teorię rozwiniętą na podstawie interakcji ze światem.

Dlatego, biorąc pod uwagę rok lub dwa, z mnóstwem neuronów na twojej ręce, możesz powtórzyć ten scenariusz. To znaczy, jeśli twój komputer jest równoległy jak ludzki umysł. Krótkie wyjaśnienie jest takie, że ludzki umysł jest bardzo równoległy.

Łatwiej byłoby jednak obliczyć odległość za pomocą programu, a nie sztucznej inteligencji, i po prostu podać wynik AI, która podejmowałaby decyzje.

Zastanów się, ile czasu spędziłeś na oglądaniu ekranu. Jeśli potrafisz określić (przybliżoną) odległość między dwoma pikselami, to też sieć neuronowa, tak jak ty. Dodaj jednak do tego równania ilość czasu, który spędziłeś żywy i ucząc się, a to stanie się katastrofą.

Dalsza lektura

Ludzki mózg jest równoległy

Wynika to z faktu, że wszystkie neurony w ludzkim mózgu są od siebie niezależne. Mogą wykonywać prawdziwe jednoczesne działania, dzięki czemu działanie interpretacji obrazów jest znacznie łatwiejsze, ponieważ bloki neuronów mogą „myśleć” niezależnie od operacji innych, ograniczając to, co byłoby „opóźnieniem” do niewielkiej ilości.

FreezePhoenix
źródło
1

Możesz stworzyć sztuczną inteligencję, aby „widzieć” człowieka. Jak powiedziałeś, dając człowiekowi klucze, kliknie losowo. Musi tylko wiedzieć, które klawisze naciska, co przybliża go do innych obiektów na ekranie. Myślę, że podstawą sztucznej inteligencji jest rozpoznawanie obiektów. Spróbowałbym stworzyć skrypt do mapowania obiektów ekranowych gry. Istnieją prawne przykłady w Pythonie.

Próbowałbym podążać taką ścieżką:

  • Spraw, aby AI zrozumiał, że klikając strzałki lub WASD i to w kontekście GRY obiekt, który porusza piksele zgodnie z kierunkiem, reprezentuje głównego autora (gracza).

  • Równolegle: odwzoruj wszystkie granice regionu i zindeksuj różne obiekty w tym regionie, aby automatycznie uzyskać domenę współrzędnych i odległość od obiektu. Sztuczna inteligencja musi ZOBACZ (przesyłać strumieniowo) grę i przeglądać obrazy, aby kategoryzować obiekty. Rozumiesz co mam na myśli?

  • Równolegle: sztuczna inteligencja musi być świadoma wszystkich tekstów i informacji wyświetlanych na ekranie (wszystkie zmapowane, pamiętasz?). Musisz zrozumieć, kiedy zmienia się tekst lub dzieje się coś innego. Na przykład: ilekroć wraca do początkowej pozycji każdej fazy, ilekroć ma zliczanie, co dzieje się, gdy cout osiągnie zero lub wspólną liczbę, która generuje inny rodzaj zmiany.

  • Musi zrozumieć, co się powtarza przy każdym „odrodzeniu”. Musisz także zrozumieć, co to jest „odrodzenie”. Może określona pozycja mapy na każdej mapie, którą zwraca, po zakończeniu zliczania na ekranie. Lub gdy pojawia się na określonym typie obiektu (obiekt odwzorowany)

Szczerze mówiąc, jeśli chcesz stworzyć super inteligentnego robota, możesz wykonać wszystkie kroki, które przechodzą przez głowy różnych ludzi lub najlepszych ludzi, lub zasady każdej gry. Ale czasami łatwiej jest budować określone boty do wykonywania określonych zadań. To zależy od tego, co chcesz zrobić

Guilherme IA
źródło
Nie pytał, jak to zrobisz, ale czy możesz to zrobić.
FreezePhoenix
Można to zrobić na kilka sposobów. Przeszedłem sposób, w jaki chciałbym stworzyć szablon. To nie jest teoria, to proces, który może obejmować inne procesy zgodnie z ewolucją AI.
Guilherme IA,
1

Co można wymienić nie jest przykładem idealny dla torze planowania , która jest intensywnie badanym w AI.

Poszukaj algorytmu A-star i jak go ulepszyć za pomocą sieci neuronowych :)

pcko1
źródło
1

Możemy rozwiązać problem w następujący sposób:

<x0,y0,x1,y1>(x0-y0)2)+(x1-y1)2)

<x0,y0,x1,y1>

Oczywiście nie ma powodu, aby robić to w dwóch oddzielnych sieciach neuronowych, więc możemy po prostu połączyć dwa kompleksowe modele, które przyjmują obraz jako dane wejściowe, a odległość jako dane wyjściowe.

Model ten musiałby jednak zostać przeszkolony w zakresie danych z etykietami, więc musisz albo wygenerować dane samodzielnie, albo etykietować obrazy.

Ale jeśli chcesz, aby nauczył się pojęcia zamykania dystansu w mniej nadzorowany sposób, musisz użyć uczenia wzmacniającego. W takim przypadku należy skonfigurować środowisko, które zachęca agenta do zmniejszenia odległości. Może to być tak proste, jak zdobycie nagrody, jeśli akcja zmniejszy odległość.

Innym podejściem byłoby zachęcenie agenta do skorzystania z przyszłej nagrody. Oznacza to, że jego nagroda nie pochodzi tylko z wyników następnego stanu natychmiastowego, ale są też wkłady z następnego możliwego stanu, następnego i tak dalej. To jest idea Deep Q-Learning, a ja wdrażam prosty przykład (bardzo podobny do tego, co opisujesz) w tym zeszycie .

Tak więc teraz pytanie brzmi: czy ta implementacja zrobiła coś innego niż losowe przemieszczanie się, dopóki nie podąży drogą do sukcesu?

W twoim przykładzie mówisz o nagradzaniu agenta, który wyląduje na bramce. Ale zgodnie z tym, co opisałem, zyskało nagrodę, zbliżając się do celu (poprzez funkcję Q lub bezpośrednio ze środowiska). Jest w stanie to zrobić, ucząc się abstrakcyjnego pojęcia odległości (które można zilustrować w nadzorowanej wersji).

Kiedy człowiek się tego uczy, dzieje się tak z tego samego powodu: człowiek otrzymuje nagrodę za poruszanie się w tym kierunku dzięki poczuciu przyszłych nagród.

Powiedziałbym, że przy wystarczającym szkoleniu i danych uczenie się przez wzmocnienie może z łatwością nauczyć się tej koncepcji. O ile inne nagrody są obecne na planszy (np. „Zminimalizuj entropię tablicy, a także spróbuj zdobyć nagrody”), musisz pomyśleć o tym, o co pytasz. Czy wolisz, aby agent zminimalizował dystans lub zmaksymalizował nagrodę? Ponieważ, ogólnie rzecz biorąc, nie można zrobić obu. Jeśli szukasz równowagi między nimi, to tak naprawdę po prostu redefiniujesz nagrodę, aby uwzględnić odległość.

Nathan Margaglio
źródło