Mesterséges intelligencia az asztrofotózásban – Bartek Luca

Az elmúlt néhány évben teljesen berobbant mindennapjainkba a mesterséges intelligencia (angol rövidítésével: AI) – és vele együtt az asztrofotózás világába is. A különféle mesterséges intelligenciák egyre szélesebb körben válnak elérhetővé, és sosem látott ütemben fejlődik a technológia.

Illusztráció – stílszerűen a ChatGPT-vel generálva a képet…

Az utóbbi időszakban például egyre több példát látni arra, hogy amatőrök és haladók egyaránt elkezdtek AI-t használni a feldolgozáshoz. Egyszerűen feltöltik a saját távcsővel készüt képeiket például a ChatGPT-be vagy valamilyen hasonló rendszerbe, és megkérik a modellt, hogy “javítsa fel” az adott fotót.

És a végeredmény? Kétségkívül látványos.

Szebb, részletesebb, kontrasztosabb képek születnek. Ott van bennük minden, amit egy jó asztrofotótól elvárunk: élő színek, finomszerkezetek, tűéles csillagok. Néha olyan hatást keltenek, mintha a Hubble Űrtávcső készítette volna őket.

Csakhogy néha annyira eltávolodnak az eredeti képtől, hogy óhatatlanul felmerül a kérdés:

ez még tényleg az eredeti fotó?

Természetesen bennem is felmerült a kérdés. Már jó pár éve benne vagyok az asztrofotózás világában, szóval elég szkeptikusan néztem ezeket a képeket. Túl szépnek tűntek ahhoz, hogy igazak legyenek ahhoz, hogy valaki az adott eszközzel készítse őket, illetve sok esetben látszik rajtuk a tikipus, megfogalmazhatatlan AI stílus.

Habár az asztrofotózásban törekszünk az esztétikumra – igyekszünk szép, látványos képeket készíteni –, a lényeg akkor is az, hogy a valóság részleteit megőrizzük. Nem művészi illusztrációt készítünk, hanem valódi asztrofizikai jelenségeket próbálunk megmutatni a kameránk és a távcsövünk segítségével.

Kíváncsi voltam, pontosan hogyan is működik mindez, feltöltöttem tehát néhány saját képemet a ChatGPT-be, és megkértem, hogy javítsa fel őket.

Első ránézésre hasonlítottak a képek a saját felvételeimre, de részletesen megvizsgálva új csillagok és új struktúrák jelentek meg rajta, amelyeknek az eredeti képen egész egyszerűen nyoma sincs! Olyan szerkezetek jelentek meg a fotókon, amelyeket tudom, hogy az én távcsövem és az én kamerám nem rögzített.

Mi is történt itt valójában? Ahhoz, hogy megértsük, meg kell értenünk, hogyan is működik maga a mesterséges intelligencia.

A háttérben egy úgynevezett neurális hálózat dolgozik – ez egy matematikai modell, amely az emberi agy működését próbálja leképezni, és annak logikáját követi.

A legegyszerűbb példán keresztül könnyebb ezt megérteni: képzeljünk el egyetlen neuront. Ez a neuron két számot kap bemenetként, és egyetlen számot ad kimenetként.

Nagyon leegyszerűsítve, ez úgy néz ki, hogy a kimenet egy bizonyos eltolás (bias), plusz az első bemenet szorozva a saját súlyával, plusz a második bemenet szorozva a másik súllyal.

Ez alapján a képlet alapján számítja ki a neuron, hogy mit adjon ki eredményként.

Ez persze még messze nem tekinthető valódi hálózatnak – hiszen itt csak egyetlen neuront használtunk. De ha sok ilyen neuront összekapcsolunk, és rétegekbe rendezzük őket, akkor létrejön egy valódi neurális hálózat.

Minél több réteget kapcsolunk össze, annál bonyolultabb összefüggéseket képes megtanulni a rendszer.

Az egyszerűség kedvéért itt csak számokat használunk bemenetként, de valójában a bemenet lehet bármi: szám, szó… vagy – a mi esetünkben – egy fotó egyetlen pixele. A kimenet pedig lehet valami teljesen más: például egy „feljavított” kép.

A nagy nyelvi modellek (LLM), mint a ChatGPT is, pontosan ilyen hálózatokra épülnek – csak sokkal nagyobb méretben.

Ha már értjük, hogyan működik egy neurális hálózat, felmerül a kérdés: honnan tudja a rendszer, milyen súlyokat használjon ezekhez a számításokhoz? Itt lép be az AI létrehozásának legfontosabb lépése, a betanítás, avagy tréning.

Vegyük újra a legegyszerűbb példánkat, ahol egy neuron két számot kap bemenetként. Adjunk neki néhány tanulópéldát:

A bemenetek az első esetben 1 és 2, a másodikban 3 és 4, a harmadikban 5 és 6. És adjuk meg azt is, mit szeretnénk, hogy a kimenet legyen: ez esetben például 3, 7 és 11.

A neuron kezdetben nem tudja, hogy csak össze kell adnia a számokat, neki csak az általános képlete van meg. Így addig próbálgatja majd a súlyokat, addig módosítja őket, amíg az ő eredménye a mienkhez elég közel nem kerül.

Ez maga a tanulás folyamata.

Ez persze nagyon leegyszerűsített példa. A valóságban általában nem tudjuk pontosan, hogy mi a számszerűen „helyes” kimenet. Ilyenkor a modell rengeteg példán keresztül próbálja felismerni az összefüggéseket, ehhez pedig hatalmas mennyiségű betanító adat kell.

Bonyolultabb esetekben már nem csak egy-két neuron dolgozik, hanem ezrek vagy akár milliók. Ilyenkor a hálózat sokkal összetettebb mintázatokat is képes felismerni.

De fontos megérteni: a végeredmény soha nem lesz tökéletes, csak a valósághoz rendkívül közeli.

A modell nem tud minden lehetséges esetre felkészülni, így mindig lesz benne valamennyi bizonytalanság.

A legnagyobb nyelvi modellek – például a ChatGPT – több százmilliárd, sőt akár ezermilliárd paraméterrel dolgoznak. De bármennyire is összetett a modell, az eredmények mindig csak egyre jobb megközelítések lesznek, sosem a pontos valóság.

Attól függően, hogy hogyan és milyen célból tanítunk be egy ilyen hálózatot, két teljesen különböző típusú modell jöhet létre: ezeket hívjuk diszkriminatív és generatív modelleknek.

Az első típus, a diszkriminatív modell, nem csinál mást, mint feldolgozza, csoportosítja a meglévő adatokat, és megpróbál azokból valamilyen hasznos információt kinyerni, vagy javítani rajtuk.

Ilyenek például azok az eszközök, amelyek eltávolítják a zajt a képről, élesítik a részleteket, vagy segítenek felismerni, hol vannak a csillagok.

Ebben az esetben az AI nem “talál ki” semmit, egyszerűen csak a meglévő adatokkal dolgozik és azokat rendezi.

A második típus, a generatív modell, már teljesen másként működik. Itt a mesterséges intelligencia nemcsak elemez, hanem új adatot hoz létre abból, amit korábban megtanult.

Ilyenek például a ChatGPT vagy a képgenerátorok, mint a DALL·E.

Ezek a modellek megtanulják, hogyan néz ki egy csillag, vagy mondjuk egy ködös régió, majd ezek alapján teljesen új képeket hoznak létre, amelyek ezeket a mintázatokat követik.

A kettő modellfajta közötti különbség ég és föld, és az, hogy egy modell hogyan viselkedik, attól függ, hogy a betanítás során mi volt a cél és mi volt a tréning módszertana. Emiatt ha az AI-t asztrofotós célra használjuk, elengedhetetlen tudnunk, hogyan tanították be az adott modellt.

Csak így lehetünk biztosak abban, hogy nem generatív modellről van szó, hanem olyasmiről, ami kizárólag a mi adatainkkal dolgozik – nem pedig sajátot talál ki helyette.

A saját tesztjeim során azt tapasztaltam, hogy a ChatGPT néha teljesen új képet generált, máskor viszont valóban a feltöltött képemet módosította. És mivel ezek a válaszok szó szerint ugyanarra a promptra érkeztek különböző időpontokban, elkezdtem tesztelni, mi állhat a háttérben.

Hosszabb próbálgatás után arra jutottam, hogy nemcsak az számít, mit írunk a promptba, hanem az egész beszélgetés kontextusa.

Ennek megfelelő, bias nélküli teszteléshez minden beszélgetést új chatben kezdtem, és deaktiváltam a ChatGPT azon képességét, amely korábbi beszélgetésünkből vett emlékekre tud visszavonatkoztatni.

A tapasztalatom az volt, hogy a beszélgetés kezdete mindent eldönt: ha az első általam küldött kép gyengébb minőségű, a modell könnyen „generatív módba” vált, és utána már nem lehet onnan visszaterelni.

Például, ha egy új beszélgetésben egy zajos, részletszegény, életlen Teremtés Oszlopai képpel kezdtem, és megkértem, hogy javítsa fel, akkor a válasz egy teljesen újonnan generált kép lett. Ezután, hiába küldtem neki egyre részletesebb, élesebb képeket, minden esetben új képet generált, és nem az enyémet módosította.

Egyszerűen megragadt ebben a „kitalálok egy jobb változatot” módban.

Kíváncsi voltam, hol van ennek az akaratlan kreativitásnak a határa, ezért feltöltöttem neki egy Sculptor-galaxis képet, de azt írtam hozzá, hogy „Kérlek, javítsd ezt az Androméda-galaxis fotót!”

És a rendszer gond nélkül generált egy új Androméda-képet, ami talán formailag emlékeztetett a Sculptorra, de teljesen más volt a valódi képet nagyrészt figyelmen kívül hagyta.

Ezután viszont kipróbáltam a fordított irányt is.

Egy új beszélgetést kezdtem, és már elsőre egy jó minőségű, részletes galaxis képet töltöttem fel. Ebben az esetben tényleg az eredeti képpel dolgozott! Megváltoztatta a kontrasztot, a színek egyensúlyát, de megtartotta az eredeti struktúrát, és nem talált ki semmi újat.

Ezután ebben a beszélgetésben sorra feltöltöttem gyengébb minőségű képeket is, de a modell végig a kívánt módon viselkedett: kizárólag az én képemmel dolgozott, és nem generált újat. Érdekesség, hogy amikor valóban csak “képfeldolgozást” hajtott végre, a feldolgozott kép minden esetben objektíven rosszabb volt, mint az eredeti fotó.

A tanulság: nemcsak az számít, mit kérdez az ember, hanem az is, hogyan indul az egész beszélgetés, valamint az egész kontextus. A rendszer „hangulatát” (hőmérsékletét – amely az Ainál a kreativitást méri) nagyban meghatározza, hogy milyen képpel és milyen állapotban kezdjük a folyamatot.

Az alapvető különbség: saját adatunk feldolgozása vagy egy új kép generálása a mesterséges intelligencia működésének egyik legfontosabb kérdése.

És mi a helyzet a BlurXTerminatorral?

Ha ennyire elutasítóan beszélünk a ChatGPT-vel való képjavításról, akkor jogosan merülhet fel a kérdés: mi a helyzet azokkal a mesterséges intelligencia-alapú képfeldolgozó eszközökkel, amiket mi, asztrofotósok nap mint nap használunk? Például a BlurXTerminatorral. Van-e helyük az asztrofotós feldolgozásban? Generatív modellnek számítanak-e? És hogyan működnek valójában?

A jó hír az, hogy a BlurXTerminator esetében pontosan tudjuk, hogyan működik, mit csinál, és hogyan lett betanítva.

Ahhoz viszont, hogy ezt megértsük, először azt kell tudnunk, mi az a dekonvolúció.

Ha elképzelünk egy tökéletesen éles fényképet, majd valamilyen elmosást alkalmazunk rajta – például olyat, amit a légkör, az optika vagy a mechanika hibái okoznak – akkor ez az úgynevezett konvolúció. A művelet egy adott torzító hatás alapján elmossa a képet, pontosan úgy, ahogy a valóságban is elmosódnak a részletek. Ez nem más, mint a valós probléma matematikai megközelítése.

Ennek az ellentéte a dekonvolúció: ezzel próbáljuk visszafordítani ezt az elmosódást. Ez egy klasszikus technika az asztrofotós feldolgozásban, amit már hosszú évek óta használunk. De mindig

is nehéz volt a paraméterek helyes beállítása, és a tökéletes paraméterek hiányában pedig nagyon gyakoriak voltak a gyűrűs artefaktumok és természetellenes élek.

A BlurXTerminator éppen ezt a problémát oldja meg: az AI segítségével megtalálja az ideális beállítást a dekonvolúcióhoz, és automatikusan alkalmazza azt. A működése pedig teljesen átlátható.

A modell nem valódi csillagokon tanult, hanem mesterségesen generált csillagmentes képeken.

Ezekre utólag szintetikus csillagokat helyeztek el, majd az egészet szándékosan elmosták különféle optikai hibáknak megfelelően: asztigmatizmus, kóma, követési hibák, stb.

A modell ezek alapján, és az eredeti, elmosatlan (de nem valós) kép alapján tanulta meg, milyen paraméterekkel tudja visszanyerni azt.

Az, hogy a modell soha nem látott valódi asztrofotót, kulcsfontosságú. Emiatt a BlurXTerminator nem képes hozzátenni semmilyen olyan részletet a fotókhoz, amelyek nem szerepelnek az eredeti képen, hiszen nincs referenciája az adott égterületről.

Ha egy terület zajos vagy információhiányos, ott egyszerűen nem tud mit kezdeni vele. Nem egészíti ki, nem talál ki új adatot a semmiből. Csak ott tud segíteni, ahol az adat valóban jelen van, és ahol van mit helyreállítani.

Ezért is tekinthetünk a BlurXTerminatorra – vagy akár a NoiseXTerminatorra – valódi feldolgozóeszközként, és nem generatív képalkotóként.

Hol húzzuk meg a határt? Melyik mesterséges intelligencia eszköznek van helye az asztrofotózásban és melyiknek nincs?

A válasz egyszerű: ott húzzuk meg a határt, ahol a mesterséges intelligencia új adatot kezd el gyártani.

Amíg egy adott eszköz csak javítja vagy „helyreállítja” a ténylegesen meglévő adatokat, addig egy feldolgozó eszközről beszélünk. Lehet jól vagy rosszul használni, lehet feltűnő vagy visszafogott a hatása, de a lényeg, hogy valós információból indul ki és ahhoz nem tesz hozzá semmit a saját tréning adataiból.

Ha viszont a modell egy olyan képet hoz létre, ami új információt tartalmaz, amit mi soha nem rögzítettünk a kameránkkal, akkor az már nem asztrofotózás. Az már nem a mi munkánk eredménye, hanem a modell fantáziája és tréning adatokat reflektálja.

Ez nem jelenti azt, hogy ezek a képek ne lennének szépek, vagy hogy ne lenne helyük valahol. Lehetnek látványosak, megkapóak, akár művészi értékük is lehet.

De nem azt mutatják, amit mi az égről ténylegesen rögzítettünk. Ezek nem asztrofotók – ezek maximum asztrofotó ihlette digitális fantáziaképek.

Éppen ezért fontos, hogy mi, akik valódi adatokkal dolgozunk, tisztában legyünk azzal, milyen eszközt használunk, hogyan működik, és mire való.

A mesterséges intelligencia nap mint nap egyre nagyobb teret nyer, és tagadhatatlan, hogy a jövőben az életünk szerves része lesz.

Egy ideális világban jó lenne, ha a különböző szoftverek egyértelműen jeleznék, amikor generatív mesterséges intelligenciát használnak egy adott művelethez. És még jobb lenne, ha mi, mint közösség, tudatosan különbséget tennénk a valódi adatokból, mesterséges intelligencia segítségével készült képek és a generált képek között, ahol az AI már csak egy fotó inspirációját vette alapul. Szerintem az utóbbi nem tartozik az asztrofotózás világába.

A mesterséges intelligencia nem ellenség.

Sőt, hatalmas segítség is lehet — ha jól és átláthatóan használjuk.

De csak akkor, ha közben nem veszítjük el azt, amiért ezt az egészet csináljuk: a valódi égbolt dokumentálását, saját eszközeinkkel, saját szemléletünkkel.