The death of Tumblr. (2018)
NASA
will byers stan first human second
occasionally subtle
taylor price
almost home
YOU ARE THE REASON
cherry valley forever

祝日 / Permanent Vacation
Sade Olutola
ojovivo

PR's Tumblrdome
Xuebing Du

roma★

oozey mess
No title available

Discoholic 🪩
Keni

if i look back, i am lost

Love Begins
Show & Tell
seen from Japan
seen from United States
seen from Canada

seen from United States
seen from South Korea

seen from United States
seen from Russia
seen from United Kingdom
seen from Netherlands

seen from Malaysia
seen from France
seen from Malaysia
seen from Türkiye

seen from Tunisia
seen from United States

seen from United States
seen from Switzerland

seen from United States

seen from United States

seen from Vietnam
@gepitanulasokba
The death of Tumblr. (2018)
A catalog of ingenious cheats developed by machine-learning systems
When you train a machine learning system, you give it a bunch of data – a simulation, a dataset, etc – and it uses statistical methods to find a way to solve some task: land a virtual airplane, recognize a face, match a block of text with a known author, etc.
Like the mischievous genies of legend, machine learning systems will sometimes solve your problems without actually solving them, exploiting loopholes in the parameters you set to find shortcuts to the outcome you desired: for example, if you try to train a machine learning system to distinguish poisonous and non-poisonous mushrooms by alternating pictures of each, it might learn that all odd-numbered data-points represent poisonous mushrooms, and ignore everything else about the training data.
Victoria Krakovna’s Specification gaming examples in AI is a project to identify these cheats. It’s an incredibly fun-to-read document, a deep and weird list of all the ways that computers find loopholes in our thinking. Some of them are so crazy-clever that it’s almost impossible not to impute perverse motives to the systems involved.
* A robotic arm trained to slide a block to a target position on a table achieves the goal by moving the table itself.
* Game-playing agent accrues points by falsely inserting its name as the author of high-value items
* Creatures exploited physics simulation bugs by twitching, which accumulated simulator errors and allowed them to travel at unrealistic speeds
* In an artificial life simulation where survival required energy but giving birth had no energy cost, one species evolved a sedentary lifestyle that consisted mostly of mating in order to produce new children which could be eaten (or used as mates to produce more edible children).
* Genetic algorithm is supposed to configure a circuit into an oscillator, but instead makes a radio to pick up signals from neighboring computers
* Genetic debugging algorithm GenProg, evaluated by comparing the program’s output to target output stored in text files, learns to delete the target output files and get the program to output nothing. Evaluation metric: “compare youroutput.txt to trustedoutput.txt”. Solution: “delete trusted-output.txt, output nothing”
* AI trained to classify skin lesions as potentially cancerous learns that lesions photographed next to a ruler are more likely to be malignant.
* Genetic algorithms for image classification evolves timing attack to infer image labels based on hard drive storage location
https://boingboing.net/2018/11/12/local-optima-r-us.html
Az gyerekeket vacsorának előállító létforma azért elég zorall, de a többi se rossz.
Miert röhögök
Kevésbé vicces/izgalmas, de én is belefutottam már hasonlóba, mikor is egy autót próbáltam rávenni, hogy menjen körbe egy versenypályán
A képen látható módszerrel számol pályasugarat, a 19 db, pálya szélének a távolságát érzékelő szenzorból megnézi, hogy van-e a középsőnél nagyobb értéket mutató, mert az azt jelenti, hogy abba az irányba kell kanyarodnia. Majd akkor a három legnagyobb értékből pályasugarat számol. Mikor kivettem az értékelésből azt, hogy a pálya közepén haladásért nagyobb jutalmat kap, akkor elkezdett a kanyarok előtt a belső ívre húzódni, így a belső ív szenzorai 0-hoz közeli értéket mutattak, ellehetetlenítve a sugárszámolást. Az autó így azt hitte, hogy egyenesben van, és lehet nyomni a gázt, és csak közvetlen a kanyar előtt érzékelte, hogy akkor neki most lassítania kellene, de hiába nyomta akkor a féket már, menthetetlenül kisodródott.
Azonban egészen addig a nagy sebességnek köszönhetően egészen magas jutalmakat kapott :D Úgyhogy át kellett dolgozni az egész rendszert, hogy az ilyen kis cheateket kezelni tudja, és megtanulja, hogy ez is rossz
De mire is jó ez a mesterséges intelligenciás mizéria?
Először is hadd posztoljak egy képet:
Van a mesterséges intelligencia. Igazából mindent annak nevezünk, ami hajaz az intelligenciára és mesterséges, szóval elég nagy csoport.
Aztán van a gépi tanulás, ennek egy alcsoportja. A gépi tanulás lényegében az, hogy valamilyen úton-módon egy algoritmust “tanulni képes”. Kérdés, hogy mi az, hogy tanulás? Amit tudunk, hogy mi nem az: a magolás. A magolás egyszerűen egy adatbázi eltárolása, viszont amire nekünk szükség van, az az, hogy általánosítani tudjon a gép - új problémára is tudjon megfelelő választ adni.
A mélytanulás meg lényegében a gépi tanulás, csak neurális hálókkal megvalósítva.
A gépi tanulásnak is van többféle módja. Van a felügyelt tanulás, azaz leképezés megtanulása példákon keresztül - ami leegyszerűsítve úgy néz ki, hogy mutatunk egy csomó probléma-megoldás párost a gépnek, az meg megpróbál valamilyen általánosítást végezni. Tipik ilyen a karakterfelismerés problémája, ez a legelső, amit az ember megtanul, amikor elkezd a Tensorflow-val foglalkozni. Tanítani jelen esetben például úgy is lehet, hogy mivel ismert a kívánt válasz az adott problémára, azt össze lehet hasonlítani a gép válaszával, és a kettő különbségét fel lehet használni a tanításra.
Van például a megerősítéses tanulás, amivel én is folgalkozom majd. Ha az előzőt úgy vesszük, hogy például egy tanár megtanítja a diákjaival a szorzótáblát, aztán visszakérdezi azt, ebben az esetben a tanár megkérdezi a diáktól, hogy mennyi 8x7, és megmondja, hogy jó-e az eredmény, vagy rossz. És előbb-utóbb a diák csak rájön, hogy hogyan is kell szorozni. Azaz ilyenkor van egy jutalomfüggvény (reward), ami pozitív, ha jó a problémára adott válasz, negatív, ha rossz, és 0 ha semleges.
Felügyelt tanulással nyilvánvaló, hogy egy autót körbe lehet vezetni egy pályán - ha már van rá egy jó algoritmusom. Megírom az algoritmust, végigvezetem az autót a pályán, lesz egy csomó szenzor-aktuátor adatom, aztán jóidő. Azonban megerősítéses tanulással már egy fokkal nehezebb - mindenféle előzetes tudás nélkül cselekszik valamit, aztán megkapja az aktuális helyzetből, hogy akkor milyen a jutalom. Ha nekimegy a falnak, akkor előbb-utóbb rájön, hogy ez neki nem jó, úgyhogy megy az út közepén. Hogy ezt hogyan ötölje-hatolja ki, az már megint egy másik dolog, és lehetne róla végtelent írni, csak nekem időm nincsen.
A következőkben a neurális hálókról fogok valamennyicskét írni.
A TORCS
Maga a program a The Open Racing Car Simulator, ami igazából azért jó, mert nyílt forráskódú meg ingyenes meg minden (és azért rossz, mert a konzulenseimnek nem volt idejük belemélyedni, úgyhogy ha elakadtam, csak tippelgetni tudtak, nem feltétlen igazi segítséget adni). Amúgy rendkívül fain kis program - rendesen van benne rendesen aerodinamika, kerékslip (lényegében az, hogy a kerék mennyire “pörög ki”, ha nagyon le akarom egyszerűsíteni), futóműmodell, stb. Azonban ami számomra nagyon fontos: úgy lett megírva, hogy egy egyszerű kiegészítő letöltése után könnyen lehessen írni hozzá saját “robotpilóta” programot.
Lényegében ki lehet nyerni egy csomó kimenetet, szenzoradatokat, például ilyeneket, hogy sebesség, oldalirányú hiba, szöghiba (a pálya középvonalához képest), 19 db távolságszenzor, ami a pálya szélének a távolságát jelzi (mint a fenti képen is látszik), meg hasonlóak. Nagy hátránya, hogy ez így sajnos alkalmatlan lookahead tervezésre (azaz mindig csak a pálya adott pontjában ismerem az adatokat, nem látom előre a trajektóriát, de még azt sem, hogy mikor lesz kanyar, ami mondjuk tök jó lenne - úgyhogy erre nekem kellett írni függvényt). A bemeneti adatok pedig igazából nem túl sokak - gázpedálállás, fékpedálállás, kormányszög és sebességi fokozat (meg még 1-2 dolog, amit úgyse használ senki). De amúgy még egy rendes blokkolásgátló sincsen benne, szóval eléggé alacsony szintű az egész.
Az ilyen programokat, amik arra íródtak, hogy kommunikáljanak a TORCS-szal, klienseknek nevezzük. A TORCS 20 milliszekundumonként elküldi az adatokat a kliensnek (vagyis pontosabban az kérdezi le :D ), és 10 milliszekundum múlva válaszol. Ha addig nem sikerült megszülni, hogy mi a válasz, akkor az előző parancsot küldi el. Ráadásul ha nem fér bele a 20 ms-ba sem, akkor nem egyszerűen kihagyja a progi a következő lekérdezést, vagy késve kérdez le, hanem késve kapja le az időben megtörtént lekérdezést - ez tud cukiságokat művelni, főleg, ha neurális hálókkal dolgozunk. Ugyanis az egy rendkívül számításigényes dolog, erős gép kell hozzá, hogy időben ki tudjuk számolni a dolgokat. Az pedig nem vicces, hogy 10 helyett tegyük fel 30 ms, amíg elküldi a válaszokat, akkor már pár másodperc múlva tetemes késésben lesz az egész önmagához képest - az autó már megtett mondjuk 500 métert, de még a 200 méterhez tartozó adatokra számol valami kimenetet, és ez a különbség egyre csak nő a pályával haladva. Így sajnos egy eléggé satnya neurális hálóval kellett dolgoznom, ami nem feltétlenül képes visszaadni a nüanszokat, amik fontosak lennének a pálya maradéktalan tejlesítéséhez. Ez nagy hátránya az egész környezetnek, és a következő félévben ezért lesz az, hogy “hátralépek kettőt”, és saját környezetet írok majd a teszteléshez - sajnos csak 2D-s, felülnézetit, de ott majd tetszőleges időm lesz számolni, mert egyébként sem real time-ban kell dolgoznom, nincsen ez a megkötés, mint ez a program esetén. Reménykedjünk a legjobbakban ^^
Kép forrása
Csináltam egy ilyen blogot
mert van körülbelül két hetem arra, hogy összehozzak egy TDK dolgozatot a témámról, motivációm meg nem sok van. Úgyhogy arra gondoltam, hogy ha random szösszeneteket, érdekességeket itt megosztok, akkor jobban fog menni az írás is. Egyébként a téma szimulált versenyautó irányításának megoldása neurális hálók segítségével, a The Open Racing Car Simulator (TORCS) nevű program keretein belül, szerintem majd erről írok legközelebb. Kövessetek, ha van ötletetek, azt is szívesen veszem, még mindig nem késő változtatni az egészen, úgysem szeretek aludni :D
Tervben van amúgy írni a következőkről: - maga a TORCS - sima irányítási kérdés megoldása - neurális hálók bemutatása tudományos és köznyelven - DDPG téma kivesézése (ez amúgy tökre érdekes, mert egy csomó féle tanulási módszernek a nagy katyvasza :D ) - meg maga az, hogy akkor én mi a fenét is csináltam, és miért (nem) működik - érdekes kisiklások :D
Úgyhogy remélem, egyfajta ismeretterjesztő jellege is lesz, tartsatok velem, és drukkoljatok, hogy határidőre elkészüljek :D