Gå til innhold

Googles kunstige intelligens klarte å «finne opp» kryptering uten menneskehjelp


Anbefalte innlegg

Videoannonse
Annonse

Det kunne ha vært interessant å se hvilken krypteringsalgoritme systemet fant opp, bare for å se hvor "dumt" dette systemet er...

 

I og med at de ikke skriver noe om dette, så antar jeg at den er triviell, og ikke spesielt smart i menneskelig målestokk.

 

Det kunne likevel være interessant å se den, synes jeg... for å kunne danne seg en slags formening om hvor langt denne teknogien til Google er fra å kunne gjøre noe virkelig intelligent, også i menneskelig målestokk.

  • Liker 2
Lenke til kommentar
Gjest Slettet+5132

Det kunne likevel være interessant å se den, synes jeg... for å kunne danne seg en slags formening om hvor langt denne teknogien til Google er fra å kunne gjøre noe virkelig intelligent, også i menneskelig målestokk.

 

Krypteringen var veldig simpel sammenlignet med hva vi har laget .

Har ikke lest gjennom hele forskningsartikkelen, men er du interessert finner du hele her:

https://arxiv.org/pdf/1610.06918v1.pdf

Lenke til kommentar

dummeste jeg har hørt på lenge...

Jeg ser ikke noe snakk om verken resistans eller ledninger(de kaller det nervebaner)

Hvor sender de strøm in, og hvor kommer den ut...?

 

Det kan ikke være så vanskelig å forklare.

 

Dette er såkalte "neural networks", eller veldig enkelt forklart "noder" som kommuniserer med andre "noder" på et vis som emulerer måten hjernecellene (neurons) dine kommuniserer med hverandre.

 

Hjerneceller er nerveceller som består av cellekroppen (soma), grener som tar i mot signaler (dendrite) og en lang tynn del av cellen som leder signaler vekk fra cellen, som kalles et aksom.

 

 

AAEAAQAAAAAAAANHAAAAJGY0M2ZmOWVhLTgzNDct

 

Man har normalt rundt 130 milliarder hjerneceller, og hver enkelt av disse hjernecellene er koblet til opp mot 10 000 andre hjerneceller, som igjen utgjør et nevralt nettverk.

 

Signaler kommer inn gjennom "grenene", og behandles i cellen, og så er det aksiomet som sender signaler til andre celler i nettverket. og signaler sendes på kryss og tvers mellom cellene.

 

Det er dette som gjør hjernen enestående til å løse problemer, og som gjør oss i stand til å tenke.

 

For å gjenta litt, så er altså et nevralt nettverk i datasammenheng, en rekke "noder", hvor nodene danner nettverk og kommuniserer med hverandre.

 

Dette gjør at hver enkelt node utfører svært lite arbeid, men sammen kan de utføre enorme mengder arbeid, og i prinsippet kan nodene selv lære å gjøre enhver oppgave nettverket er kapabelt til å utføre, i teorien, slik også menneskehjernen lærer.

 

Disse "nodene" det snakkes om, er i denne sammenhengen små dataprogrammer, som kommuniserer med andre dataprogrammer, slik at det hele er i utgangspunktet software-basert.

 

Det er altså ikke et datanettverk slik man tradisjonelt tenker på, med mange datamaskiner som er koblet sammen med kabel, men små programmer som kjører i sine egne tråder og som kommuniserer med hverandre på en spesiell måte som emulerer et nevralt nettverk.

 

Så kan det selvfølgelig være snakk om mange datamaskiner som er koblet sammen, for å kunne kjøre flere tråder og flere prosesser osv. for å øke antallet "noder" i nettverket, men selve koblingen mellom nodene er fremdeles kun kode, og "nodene" som emulerer celler er programmer skrevet i kode, og emuleringen av aksiomet som muliggjør koblingen mellom nodene, er skrevet i kode, og signalene både inn og ut representeres normalt i bits, ikke volt. Med andre ord, det er et nettverk av programmer, i.e. software, ikke hardware.

 

Tittelen på artikkelen er dog grovt misvisende, det er på ingen måte snakk om kunstig intelligens, kun nettverk av programmer som er strukturert på en viss måte, som har evnen til å lære oppgaver fra repetisjon.

 

Det er så langt unna å bestå en Turing-test at det er nærmest flaut å kalle det "kunstig intelligens", selv om dette per i dag er det mest lovende vi har for å en gang oppnå virkelig "kunstig intelligens".

Endret av adeneo
  • Liker 1
Lenke til kommentar

 

dummeste jeg har hørt på lenge...

Jeg ser ikke noe snakk om verken resistans eller ledninger(de kaller det nervebaner)

Hvor sender de strøm in, og hvor kommer den ut...?

 

Det kan ikke være så vanskelig å forklare.

 

Dette er såkalte "neural networks", eller veldig enkelt forklart "noder" som kommuniserer med andre "noder" på et vis som emulerer måten hjernecellene (neurons) dine ........... dette per i dag er det mest lovende vi har for å en gang oppnå virkelig "kunstig intelligens".

Så du mener å påstå at denne maskinen ikke bruker strøm...?

 

og hvorfor i all verden blander du inn biologi...?

 

Det har ingenting å si hvor mange transistorer den bruker...

De må forklare hvor strømmen går inni kretsen sin før de kan påstå at de har funnet opp en maskin som kan finne opp nye ting.

 

De som ikke klarer å finne opp noe som helst...

Lenke til kommentar

Så du mener å påstå at denne maskinen ikke bruker strøm...?

 

og hvorfor i all verden blander du inn biologi...?

 

Det har ingenting å si hvor mange transistorer den bruker...

De må forklare hvor strømmen går inni kretsen sin før de kan påstå at de har funnet opp en maskin som kan finne opp nye ting.

 

Jeg gjør et siste forsøk med noen ytterligere linjer,  på å emulere en "teskje", med en forklaring som ligger noe nærmere din tankegang, forhåpentligvis.

 

Maskinen bruker selvfølgelig strøm, som alle andre datamaskiner, og har en prosessor, som de fleste andre datamaskiner.

 

I dette tilfellet er det flere datamaskiner som er koblet sammen med et fibernettverk, hvor det kjøres programmer på disse maskinene som forsøker å emulere samme type sammenkoblinger på tvers av prosesser, som hjerneceller oppretter, derav navnet "nevralt nettverk". Det imiterer nettverket naturen har skapt mellom hjerneceller, og er å anse som forholdsvis optimalt for maskinell læring, så langt.

 

Det er ikke datamaskinene som er nyvinningen, dette er helt vanlige datamaskiner koblet til et helt vanlig FC nettverk, det er måten de kommuniserer med hverandre på som er interessant.

 

For ordens skyld, så kan altså et program kjøre i en tråd, og de fleste prosessorer har flere tråder, slik at man kan kjøre flere instanser av det samme programmet parallelt på en datamaskin, som igjen kommuniserer med hverandre.

Det er altså teorietisk mulig å sette opp et nevralt nettverk på en enkelt datamaskin, uten tradisjonelt kablet nettverk i det store hele, selv om et slikt system ville ha svært begrenset kapasitet.

 

Poenget er altså at det ikke er fibernettverket, antall datamaskiner, typen datamaskiner, hvor mye strøm de bruker, hvilket språk dette er skrevet i osv, som er interessant, det er måten programmene kommuniserer på, som er interessant.

 

Dette er heller ikke en krets, ei heller har det noe med strøm å gjøre, og transistorer ble ble vel sist benyttet i datamaskiner på sekstitallet. Det er arkitekturen av nettverket, som ikke nødvendigvis betyr "nettverk" med en kabel mellom flere maskiner, men et "nettverk" av programmer som sammen utfører en oppgave.

 

Nettverket av "programmer" kommuniserer med andre ord med hverandre på en spesiell måte, en måte som emulerer måten hjerneceller kommuniserer med hverandre, for å oppnå såkalt "maskinell læring".

 

For å bli litt mer teknisk, men samtidig forsøke å forenkle det en hel del, så mottar et av "programmene" en verdi, la oss si i dette tilfellet tekst, for eksempel teksten "kjell", en såkalt "streng", å forsøker å kryptere den teksten ved å lære seg hvordan slikt gjøres på egen hånd.

 

Strengen sendes til de andre "programmene" og gjøres om på veien.

Dette er hele poenget, programmene har selv forstått at de kan konvertere tekst til annen tekst ved å utføre visse operasjoner, og de har lært seg XOR(forklares senere), og nodene jobber sammen om å konvertere teksten, og den sendes derfor til de andre nodene i det nevrale nettverket, som forsøker å finne ut hva de skal gjøre for å kryptere teksten.

 

I dette tilfellet så jobber "programmene" sammen om en tuple som inneholder flytende punkt, ettersom menneskelig tekst og tall ikke er noe en datamaskin forstår, og "kjell" består av bytes, som igjen er bits.

 

For ordens skyld, en tuple er enkelt forklart en "liste", og bør være kjent for de fleste som har vært borti programmering, og flytende punkt gidder jeg ikke forklare mer enn at jeg henviser til David Goldbergs kanoniske "What Every Computer Scientist Should Know" fra 1991, og antar at alle som driver med datamaskiner har lest den, og forstått den.

 

I sin enkleste form kan man se resultatet av at datamaskiner ikke forstår tekst og tall ved å knotte inn 0.1 + 0.2 i konsollen (F12) på nettleseren sin, og få tilbake noe slikt som 0.30...4 i stedet for 0.3, og det er selvfølgelig derfor det benyttes flytende punkt.

 

Så vidt jeg forstår gjøres det deretter en bitwise XOR, altså a ^ b, for å "snu" bitsene i et forsøk på å kryptere.

Det returneres altså samme antall bytes og bits som ble puttet inn, men i en annen rekkefølge, og det er dette det nevrale nettverket har funnet ut hvordan det kan gjøre på egenhånd, i det minste innenfor visse gitte parametere.

 

Litt enklere, dersom du gir programmene strengen "kjell", eller i bits

01101011
01101010
01100101
01101100
01101100

kan du for eksempel få tilbake "arvid" etter at bitsene er snudd, i bits

01100001
01110010
01110110
01101001
01100100

Alt ettersom hvordan bitsene snus, og hvor mange iterasjoner som gjøres osv.

 

Det virker kanskje helt tåpelig at dette alt man har oppnådd, men det er som tidligere nevnt langt igjen til "kunstig intelligens", og noe som er kapabelt til å føre en samtale med et menneske.

Endret av adeneo
Lenke til kommentar

 

Det kunne likevel være interessant å se den, synes jeg... for å kunne danne seg en slags formening om hvor langt denne teknogien til Google er fra å kunne gjøre noe virkelig intelligent, også i menneskelig målestokk.

 

Krypteringen var veldig simpel sammenlignet med hva vi har laget .

Har ikke lest gjennom hele forskningsartikkelen, men er du interessert finner du hele her:

https://arxiv.org/pdf/1610.06918v1.pdf

Takk, jeg har lastet den ned i alle fall, så får jeg se nærmere på den litt senere, dersom jeg får "ånden" over meg... :) Jeg har ikke tid akkurat i kveld.

Lenke til kommentar

Jeg gjør et siste forsøk med noen ytterligere linjer,  på å emulere en "teskje", med en ...........

Det virker kanskje helt tåpelig at dette alt man har oppnådd, men det er som tidligere nevnt langt igjen til "kunstig intelligens", og noe som er kapabelt til å føre en samtale med et menneske.

 

nerver bruker strøm til å kommunisere.. og er en form for selvbyggende og selvreparerende ledning.

 

poenget her er at det ikke går an å lage kunstig intelligens med det utstyret vi har i dag.

dessuten er det ingen som vet hva intelligens er for noe.

 

dere har glemt sansene.

 

De fleste psykologer er enig at intelligens er en sammensetning av dyrets sanser..

https://en.wikipedia.org/wiki/Sense

 

så kan du lese på denne siden også her står det under definisjon seksjonen:

"The definition of intelligence is controversial.[6] Some groups of psychologists have suggested the following definitions"

https://en.wikipedia.org/wiki/Intelligence

 

Så hvis de har fastslått hva intelligens er for noe å hadde nok flere personer visst om det.

du må Ikke tro på at kaniner plutselig starter å eksistere bare fordi du så noen som dro en ut av flosshatten sin.

Lenke til kommentar

Litt enklere, dersom du gir programmene strengen "kjell", eller i bits

01101011
01101010
01100101
01101100
01101100
kan du for eksempel få tilbake "arvid" etter at bitsene er snudd, i bits
01100001
01110010
01110110
01101001
01100100
Alt ettersom hvordan bitsene snus, og hvor mange iterasjoner som gjøres osv.

 

Det virker kanskje helt tåpelig at dette alt man har oppnådd, men det er som tidligere nevnt langt igjen til "kunstig intelligens", og noe som er kapabelt til å føre en samtale med et menneske.

Men da kan man jo spørre oss hvorfor den valgte 8bit system istedenfor 9bit system..?

og hvorfor den bare valgte 5 individuelle verdier?

 

Og hvorfor er det ikke en person som valgte ut dette?

hvis det var en person som valgte ut dette, hvorfor var det ikke en person som fant opp noe automatisk ved hjelp av flaks..?

Lenke til kommentar

Det kunne ha vært interessant å se hvilken krypteringsalgoritme systemet fant opp, bare for å se hvor "dumt" dette systemet er...

 

I og med at de ikke skriver noe om dette, så antar jeg at den er triviell, og ikke spesielt smart i menneskelig målestokk.

 

Det kunne likevel være interessant å se den, synes jeg... for å kunne danne seg en slags formening om hvor langt denne teknogien til Google er fra å kunne gjøre noe virkelig intelligent, også i menneskelig målestokk.

 

Det var veldig lett å finne forskningsrapporten som ligger til grunn for denne artikkelen:

https://arxiv.org/pdf/1610.06918v1.pdf

 

Som du ser så brukes et nevralt nett til å lage en "krypteringsalgoritme" i betydning et trent nevralt nett.

 

"Algoritmen" er uhyre enkel, og fullstendig ubrukelig i praktisk bruk.

 

Nevrale nett er gode til enkelte bruksområder. Og det er morsomt å eksperimentere med nye mulige bruksområder. Men å bruke et nevralt nett på denne måten er foreløpig en svært umoden ide, og langt unna en praktisk anvendelse. På svært mange områder hvor man prøver å bruke nevrale nett er det bedre å bruke metoder som er sunnere, som er deterministiske, og som man kan kontrollere på en bedre måte.

Lenke til kommentar

dummeste jeg har hørt på lenge...

Jeg ser ikke noe snakk om verken resistans eller ledninger(de kaller det nervebaner)

Hvor sender de strøm in, og hvor kommer den ut...?

 

Det kan ikke være så vanskelig å forklare.

 

Det er ikke så vanskelig å forklare, her er mitt forsøk. Det er litt "fordummet" og antagelig en del tekniske feil, men jeg håper det er bittelitt forståelig.

 

 

De sender strøm inn i en datamaskin, restene kommer ut i form av varme. Det er jo ganske enkelt å forstå.

 

Nervebanene er ledninger mellom datamaskinene. Som skrevet over så er det i hjernen massevis av koblinger som kommuniserer med hverandre og de kommuniserer på kryss og tvers uten å måtte gå gjennom hverandre. De kan alle kommunisere direkte med hverandre.

 

Det man kaller et nevralt nettverk i datamaskinsammenheng er akkurat som dette bare i mye mindre skala.

 

At vi kaller det kunstig intelligens er egentlig tilfeldig'ish, men det har nok blitt valgt fordi man trenger en lengre forklaring for å forstå hvordan det funker og intelligens er koblet til hjernen som er det maskinene prøver å etterlikne. I fremtiden når dette har kommet lengre og vi er i stand til å bruke maskiner/ lage et nettverk som er på hjernens skala så vil ordet bli mer riktig i denne sammenhengen.

 

Du kan komme med de argumentene du gjør, de er helt riktige, men hvis du tenker etter så kan man bruke slike argumenter om mye rart her i verden som har fått navn "because reasons".

 

Vi er ikke i nærheten av å klare å lage noe som kan sammenliknes med menneskelig intelligens enda. Vi har dog teknologi til å lage sanser etc. i form av sensorer, kroppen har sine egne fancy biologiske sensorer som gjør samme oppgave. Hvis vi slår sammen alt vi har så er vi nærmere intelligens i forhold til at en maskin lærer ting basert på observasjoner, forsøk og sanser, men å få en maskin selvbevisst er verre.

 

 

Lenke til kommentar

Men da kan man jo spørre oss hvorfor den valgte 8bit system istedenfor 9bit system..?

og hvorfor den bare valgte 5 individuelle verdier?

Hvis du teller på fingrene dine, ville du valgt et 11-tallsystem? De fleste prosessorer i dag har minste addresserbare enhet som 8-bit, eller i det minste noe som er delelig på 8. Historisk har det vært andre byte-størrelser enn det, men i dag er det nok bare FPGA-konfigurasjoner som opererer med noe annet.

 

Det at det er 5 verider er vilkårlig. Innholdet i meldingene er ikke viktig i denne sammenhengen.

 

Og hvorfor er det ikke en person som valgte ut dette?

hvis det var en person som valgte ut dette, hvorfor var det ikke en person som fant opp noe automatisk ved hjelp av flaks..?

Skjønner ikke helt hva du mener her... Hensikten her er å vise at nevrale nettverk klarer å løse forholdsvis kompliserte oppgaver uten at løsningen allerede er gitt, og det uten å bruke en genetisk algoritme. Altså løsningen her er lurere enn ren prøving og feiling (som genetiske algoritmer driver med).

Lenke til kommentar

Men da kan man jo spørre oss hvorfor den valgte 8bit system istedenfor 9bit system..?

og hvorfor den bare valgte 5 individuelle verdier?

 

Og hvorfor er det ikke en person som valgte ut dette?

hvis det var en person som valgte ut dette, hvorfor var det ikke en person som fant opp noe automatisk ved hjelp av flaks..?

For å begynne med det siste først, så er det vel sannsynligvis en person som gir nettverket en streng, og velger hva som skal krypteres. Denne personene forventer altså å få tilbake en kryptert versjon av det som sendes inn.

 

Nettverket har kun funnet ut hvordan det skal kryptere strengen det mottar.

 

Igjen, så er altså poenget at man har satt opp et nevralt nettverk som selv klarer å finne ut hvordan en streng kan gjøres om til en annen streng som ikke er den første strengen, altså at den er kryptert.

 

Selve krypteringen er enkel, på mange måter til og med enklere enn et cæsarsiffer, i og med at den bare snur bitsene med XOR, og resultatet er derfor enkelt å forutse, og enda enklere å reversere, men det er igjen ikke poenget her.

Det interessante er ikke at det er trivielt for mennesker å gjøre dette, men at et nevralt nettverk gjorde dette på egen hånd.

 

Så til det første. Antall bits per byte er selvfølgelig direkte overførbart til antall mulige bytes.

 

De første datamaskinene hadde faktisk bytes som besto av 5 bits, men dette gjorde at man bare hadde 32 mulige bytes tilgjengelig, som igjen gjorde at de første datamaskinene kun hadde store bokstaver og 8 ytterligere tegn.

 

Noen forsøk ble gjort med både 6 og 7 bits systemer, men man endte på 8 bits, som den gangen ble ansett som mer enn tilstrekkelig med sine 256 muligheter, noe som ga både små og store bokstaver, samt tall og andre symboler.

 

Etterhvert har maskinene kommet med muligheter for flere bits, 16 bit var lenge vanlig, og de fleste eldre versjoner av Windows støtter 16 bit, og det er verdt å nevne at 8088 prosessoren også støttet 16 bit, selv om bussen bare var 8 bit.

Med 16 bits per byte, har man 65 536 muligheter.

 

Dagens teknologi har både software og hardware som ofte støtter 64 bits, og med 64 bits har man i overkant av 4.29 milliarder mulige tegn, som burde være rikelig for de fleste.

 

For den observante, er altså tilgjengelige tegn = 2^n-bits.

 

Så er det slik at desto flere bits ALU'en i prossesoren kan håndtere på en gang, uten å måtte splitte opp bitsene, desto raskere går prosesseringen, slik at det har også betydning for andre ting enn antallet bokstaver og tall som er tilgjengelig.

 

På et 8 bits system så vil det høyeste tallet (unsigned integer) prosessoren kan håndtere være 255, mens på et 64 bits system vil det høyeste tallet prosessoren kan håndtere være 18446744073709551615.

 

Så til svaret på spørsmålet ditt, det var meg som valgte 8 bits for å vise hvordan det å snu bits kan gi en helt annen rekke bytes, og 8 er i dag det minste vanlige antallet bits for å representere bytes, og derfor enklest for meg å skrive og konvertere.

 

Google valgte noe annet for sine tester, for å sitere 

 

As a proof-of-concept, we implemented ... networks that take N-bit random plaintext and key values, and produce N-entry floating-point ciphertexts, for N = 16, 32, and 64.

 

Both plaintext and key values are uniformly distributed.

Keys are not deliberately reused, but may reoccur because of random selection. (

 

We implemented our experiments in TensorFlow.

We ran them on a workstation with one GPU; the specific computation platform does not affect the outcome of the experiments.

 

We plan to release the source code for the experiments

 

 

Endret av adeneo
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...