Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors...

46
fgds Xavier Vives Sánchez Física, Informàtica i Matemàtiques Rosa Barbero 2017-18 Escola Gravi 2n batx B

Transcript of Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors...

Page 1: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

fgds

Xavier Vives Sánchez Física, Informàtica i Matemàtiques Rosa Barbero 2017-18 Escola Gravi 2n batx B

Page 2: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

1

“We've begun, at last, to wonder about our origins.

Star stuff, contemplating the stars.”

Carl Sagan

Page 3: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

2

Índex 1. Introducció ................................................................................................................. 4

2. Intel·ligència artificial ................................................................................................. 6

2.1. Què és una IA? .................................................................................................. 6

2.2. Com funciona una IA? ....................................................................................... 7

1. Quines són les parts d’una neurona? ................................................................ 7

2. Com funciona una neurona d’una xarxa neuronal? .......................................... 8

3. Quines són les parts d’una xarxa neuronal? ................................................... 10

4. Com funciona una xarxa neuronal? ................................................................ 11

2.3. Programari ....................................................................................................... 12

1. Python .............................................................................................................. 12

2. TensorFlow ...................................................................................................... 13

3. Jupyter.............................................................................................................. 14

3. Exoplanetes ............................................................................................................. 15

3.1. Què són els exoplanetes? ............................................................................... 15

3.2. Com trobar-los? ............................................................................................... 16

1. Velocitats radials .............................................................................................. 16

2. Astrometria ....................................................................................................... 17

3. Trànsits ............................................................................................................ 17

4. Microlents gravitatòries .................................................................................... 18

5. Pertorbacions en discs circumestelars ............................................................ 19

6. Observació directa ........................................................................................... 19

4. Pràctica .................................................................................................................... 20

4.1. Instal·lació del software ................................................................................... 20

4.2. Aprendre a fer servir TensorFlow .................................................................... 22

4.3. Creació dels fitxers d’entrenament de la IA .................................................... 27

4.4. Creació de la IA ............................................................................................... 32

1. Programa 1: ..................................................................................................... 33

2. Programa 2: ..................................................................................................... 33

3. Programa 3: ..................................................................................................... 34

4. Programa 4: ..................................................................................................... 36

5. Programa 5: ..................................................................................................... 37

6. Programa 6: ..................................................................................................... 38

4.5. Resultats .......................................................................................................... 38

Page 4: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

3

5. Conclusions i agraïments ........................................................................................ 42

6. Web grafia ............................................................................................................... 43

7. Annexos ................................................................................................................... 46

7.1. Glossari ............................................................................................................ 46

7.2. Deducció de formules ...................................................................................... 48

7.3. Parametrització d’una variable d’entrenament. ............................................... 59

7.4. Llistat de programes ........................................................................................ 60

7.5. Resultats de la IA ........................................................................................... 150

Page 5: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

4

1. Introducció El meu treball consisteix en aprendre com funciona la intel·ligència artificial, més coneguda com IA.

Empreses com Microsoft, Google, Amazon i Facebook estan invertint milions de dòlars en intel·ligència artificial i sovint apareixen notícies de nous avenços en aquest àmbit. Veient l’interès que hi ha actualment en aquest tema he tingut

curiositat per aprendre què és i com funciona una IA.

La intel·ligència artificial és programa a l’ordinador amb xarxes neuronals. Per

poder aplicar-les necessito aprendre certs processos matemàtics i programació, dos àmbits que sempre m’han interessat.

Des de petit m’han agradat molt la matemàtica i la física i sobretot l’estudi de

l’espai. Per això, una de les meves opcions després del batxillerat, és estudiar

la doble titulació de física i matemàtiques. Crec que el tema del treball em pot ajudar a aprendre més sobre aquest àmbit i a decidir el meu futur.

La informàtica també m’interessa però em costa trobar un objectiu per aprendre

més i crec que aquest treball és un al·licient per adquirir coneixements i destreses informàtiques, que també necessitaré en els meus estudis propers.

En la recerca d’informació pel treball he trobat molts articles que fan servir la IA

pel reconeixement d’imatges, fotos, lletra escrita a mà, etc... i tot basat en la identificació de patrons.

A la xarxa he trobat les dades de 1600 estels disponibles per trobar exoplanetes. Aquestes indiquen les velocitats dels estels deguts a l’òrbita dels

planetes al seu voltant. El moviment orbital ha de generar un patró, i tenint en compte que la intel·ligència artificial es fa servir per reconèixer patrons, m’he

preguntat si podria fer servir una IA per trobar exoplanetes. notícia1

Per estudiar aquest tema m’he plantejat les següents preguntes:

Què és una IA? Com es programa una IA? Com es troben els exoplanetes? Com aplicar una IA per trobar-los?

La resposta a aquestes preguntes verificarà o desmentirà la hipòtesis següent:

Una IA pot determinar si una estrella té exoplanetes.

I els meus objectius són:

Aprendre què és una IA, com funciona i les seves aplicacions.

1 Web grafia [1]

Page 6: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

5

Ser capaç de programar una IA. Estudiar els exoplanetes, les seves característiques i com es troben. Dissenyar una IA per trobar exoplanetes.

La metodologia de treball ha consistit en desenvolupar una IA de reconeixement de patrons o caràcters per identificar els patrons de moviment de les estrelles i calcular si té o no exoplanetes.

Per fer-ho he utilitzat TensorFlow que és una llibreria oberta de Google dissenyada per fer-la servir amb el llenguatge de programació Python, seguint el següent procediment:

Primer, per aprendre a fer servir TensorFlow, he reproduït uns programes d’exemple (amb la proposta de fer un programa que entengui números escrits a mà).

Un cop ja he assolit uns coneixements suficient per poder utilitzar amb facilitat TensorFlow, he creat la IA que pugui determinar si una estrella té o no exoplanetes a partir dels resultats del processament de les dades presentades abans.

Després amb la IA he entrenat amb uns conjunts de dades per reproduir les òrbites dels plantes, simulacions amb diferent grau de complexitat.

I un cop la IA ha estat entrenada, s’han processat les dades experimentals proporcionades per l’observatori.

Page 7: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

6

2. Intel·ligència artificial

2.1. Què és una IA?

En la dècada dels 50 es va crear una nova disciplina de la informàtica que tractava sobre les intel·ligències artificials. Aquesta disciplina va sorgir en el moment en què Turing2 va formular la pregunta de “Pot pensar una màquina?”. Per respondre aquesta pregunta va crear el test de Turing3, que consisteix en què una persona, l'avaluadora, fa preguntes a dos subjectes: una computadora dissenyada per generar respostes anàlogues a les dels humans i una persona. L'avaluadora no pot accedir directament als subjectes, sinó a través d'una interfície intermèdia. Si després d'analitzar la conversa, l'avaluadora no pot distingir la persona de la màquina o considera que la màquina és una persona, la màquina superaria el test de Turing i es consideraria intel·ligent.

El test de Turing no s’ha aconseguit superar fins fa poc. En el 2014, es va

aconseguir fer passar per un nen de 13 anys. La idea de fer una màquina intel·ligent va fer que els científics s’interessessin en el tema.

L’objectiu de les intel·ligències artificials sempre ha estat aconseguir fer un

software4 informàtic amb intel·ligència, creant un programa capaç d’imitar el

funcionament del cervell humà utilitzant les anomenades xarxes neuronals. Teòricament podríem fer una IA capaç de pensar com un cervell humà tot i que, a la pràctica, no existeix cap computadora capaç de suportar aquest programa.

Com que no podem fer una IA que funcioni al mateix nivell que el cervell, el que fem actualment és crear-ne una centrada en resoldre un problema concret i que per obtenir la solució cal aplicar una estratègia per arribar al resultat.

Al funcionar amb xarxes neuronals, el software adquireix algunes propietats com la capacitat d’aprenentatge o unes capacitats de reconèixer patrons, imatges, textos, seqüències temporals...

Les fites més importants aconseguides fins ara serien:

En el 2013 el MIT5 va presentar una IA a les proves de coeficient intel·lectual que se li fan a un nen de 4 anys i va obtenir una puntuació superior a la mitja.6

2 Alan Mathison Turing (Paddington, Londres, Anglaterra, 23 de juny de 1912 - Wilmslow, Cheshire, Anglaterra 7 de juny de 1954) fou un científic, matemàtic, lògic, criptoanalista, biomatemàtic i maratonià britànic. Va treballar en camps com la informàtica teòrica, la criptoanàlisi o la intel·ligència artificial. Se'l considera el pare de la informàtica moderna. 3 Web grafia [19] 4 Glossari 5 El Massachusetts Institute of Technology (MIT) és una institució i universitat estatunidenca dedicada a la recerca i la investigació, situada a la ciutat de Cambridge, Massachusetts. Es dedica sobretot a la tecnologia, ciència i enginyeria, però també a altres temes. La feina del MIT s'ha premiat amb força premis Nobel i és considerada una de les millors del món.

Page 8: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

7

DeepMind, la IA de Google, en 2015, va jugar als jocs de Atari 2600 obtenint en la majoria de jocs una puntuació superior a la humana.7

AlphaGo, IA de Google, actualment està considerat el millor jugador de Go després de guanyar, en el 2016, a Lee Se-dol, el considerat millor jugador fins aquell moment.8

En el 2016, una IA creada per la universitat de Cincinnati va guanyar a experts del combat aeri en un simulador.9

Libratus, IA creada en la universitat Carnegie Mellon, en el 2017, va guanyar un torneig de poker contra els millors jugadors del món.10

2.2. Com funciona una IA?

Com he comentat al punt anterior les intel·ligències artificials funcionen principalment amb xarxes neuronals11. En la part pràctica desenvoluparé el mètode de les xarxes neuronals. Per entendre’l cal respondre les següents

qüestions:

1. Quines són les parts d’una neurona? 2. Com funciona una xarxa neuronal? 3. Quines són les parts d’una xarxa neuronal? 4. Com funciona una neurona d’una xarxa neuronal?

1. Quines són les parts d’una neurona?

Les neurones artificials estan pensades per imitar el funcionament d’una

neurona real12.

6 Web grafia [20] 7 Web grafia [21] 8 Web grafia [22] 9 Web grafia [23] 10 Web grafia [24] 11 Web grafia [7] 12 Glossari

Comparació d’una neurona real amb el esquema d’una artificial.

Page 9: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

8

De la mateixa forma que una neurona real rep diversos estímuls a través de les dendrites13, la neurona artificial imita aquest funcionament amb un conjunt de valors que es denomina x. Una neurona real es pot activar o no en funció d’aquests estímuls, la neurona artificial ho copia utilitzant una funció d’activació.

La sortida del senyal, que emet la neurona per l’axó14, es simula amb un valor de sortida que es denomina y.

Una neurona artificial té les següents parts:

x: Valor d’entrada, és la dada

inicial o el valor de la neurona anterior.

W: Pes sinàptic, és un valor que determina la importància d’aquella dada.

B: Biaix, valor propi de la neurona que determina un llindar d’activació.

y: Valor de sortida que passa a la següent neurona o si és la última capa, la solució.

2. Com funciona una neurona d’una xarxa neuronal?

Una neurona artificial funciona de la següent manera:

Per exposar el funcionament d'una neurona ens basarem en una estructura simple de triple entrada com les mostrades en les il·lustracions de l'apartat anterior.

1. Primer tenim els 3 valors d’entrada x1, x2 i x3. Cada un d’aquest valors es

multiplica pel seu pes sinàptic W1, W2 i W3. El resultat determina la importància que té cada valor d’entrada per a la neurona. Amb això tindríem 3 valors d’activació:

2. S’uneixen tots aquests valors, W·x, en un valor, gin. Hi ha moltes formes de fer-ho multiplicar, sumar, seleccionar el major... La més utilitzada per ser la més simple és sumar i és la que faré servir. L’expressió del valor seria:

13 Glossari: v. neurona 14 Glossari: v. neurona

{W 1⋅x1 , W 2⋅x2 , W 3⋅x3}

gin = W 1⋅x1 + W 2⋅x2 + W 3⋅x3 + B

Page 10: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

9

3. En aplicar la funció d’activació, per comoditat les funcions d’activació es

defineixen amb un llindar d’activació al 0, una neurona concreta pot tenir un

altre llindar i per això a gin se li ha suma el biaix, B. Les neurones tenen dos estats activat i desactivat. Per conveni l’estat activat

se li dóna el valor d’1 i al desactivat, els valors 0 o -1. Hi ha moltes funcions que es poden fer servir per determinar l’estat, les funcions més comunes són

aquestes:

Expressió analítica Rang de

les ordenades

Representació gràfica

Funció lineal

(-1,1)

Funció sigmoide

(0,1)

Funció tangent hiperbòlica

(-1,1)

El resultat de la funció és el valor de sortida, y. Si s’expressa de manera

matemàtica quedaria de la següent manera:

Per simplificar es pot expressar gin com un sumatori de W·x, quedant de la següent manera:

Si es substitueix gin a la fórmula:

Si es generalitza la fórmula, s’ha de tenir en compte que no tenim 3 valors sinó

n valors, per tant hem de variar el 3 de la fórmula, que esta d’alt del sumatori

per n.

f (x ) = {−1 x≤−1x −1<x<11 x≥1 }

f (x ) =1

1 + e−x

f (x ) =ex− e−x

ex+ e−x

y = f (gin)

gin = ∑i=1

3

W i⋅xi + B

y = f (∑i=1

3

W i⋅xi + B)

y = f (∑i=1

n

W i⋅xi + B)

Page 11: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

10

3. Quines són les parts d’una xarxa neuronal?

Una xarxa neuronal és un conjunt de neurones que interactuen entre elles i treballen conjuntament per realitzar una tasca. Per simplificar el funcionament i evitar bucles les xarxes s’estructuren en capes, això vol dir que les neurones

d’una capa només interactuen amb la capa següent.

Les xarxes neuronals, formades per neurones artificials, tenen les mateixes variables, que s'anomenen de manera sistemàtica per poder diferenciar-les.

Les neurones d’una mateixa columna es denominen capa. Les capes es

diferencien en tres grups:

Capa d’entrada: És la primera columna i és la capa que rep les dades inicials. Capa oculta: Són les capes intermèdies. Capa de sortida: És la capa final on la pròpia sortida és la resposta.

Per comoditat també s’anomenen les capes per nombre, anant del 0 que

sempre és la capa d’entrada fins N que és la capa de sortida.

Per diferenciar els biaixos o els pesos sinàptics s’enumeren de la següent

manera:

Page 12: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

11

4. Com funciona una xarxa neuronal?

En una xarxa neuronal, cada neurona aplica la funció per trobar el seu valor de sortida i els valors de sortida d’una capa són els valors d’entrada de les

neurones de la capa següent. Si generalitzem la fórmula:

k número de capa.

m número de neurona d’una capa.

n número de neurona de la capa anterior respecte m.

num(k) número de neurones de la capa k.

En crear una xarxa neuronal no es pot establir els valors W i B. L'entrenament és el procediment que s'utilitza per trobar-los.

Per poder entrenar una IA es necessiten uns fitxers d’entrenament, que són

una sèrie de fitxers que contenen les dades inicials que s’introdueixen a la IA i

uns altres amb fitxers que tenen la resposta que hauria de donar la IA.

El primer pas és assignar uns valors aleatoris a B i W. Un cop ja tenim aquests valors introduïm a la IA els fitxers d’entrenament amb les dades inicials i s’obté

unes respostes.

El segon pas, quan ja s’ha obtingut les respostes , y1, y2, ..., yn, i les respostes ideals, y’1, y’2, ..., y’n, consisteix a definir una funció d’error, que avalua la desviació de la resposta obtinguda de la resposta ideal. La funció d’error més utilitzada es la següent:

ym(k )

= f ( ∑n=1

num(k−1)

W nm(k)⋅xn

(k−1)+ Bm

(k )

) → m∈{1, … , num(k )} ; k∈{1, … , N }

error = ( y1−y'1)2+( y2−y '2)

2+…+ ( yn−y 'n)

2

Page 13: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

12

La nostra intenció és aconseguir el mínim valor d’error possible. Per a qualsevol funció d’una variable, els mínims es troben igualant la derivada de la

funció a 0. En aquest cas tenim una funció de moltes variables que són les B i W, el que s’ha de fer matemàticament és igualar a 0 les derivades parcials de

cada una de les B i W, utilitzant la funció d’error i les equacions de les neurones.

Fer el càlcul de les derivades no implica dificultat però sí igualar a 0 i aïllar B i W. L'ús de la llibreria TensorFlow facilitarà la tasca mitjançant el càlcul de derivades i aproximacions successives per trobar el mínim automàticament.

Aquesta gràfica representa una funció d’error respecte dos B i/o W. Un problema molt típic és que hi hagin diversos mínims i que acabi trobant un mínim i no el mínim absolut. Per evitar aquesta situació, la llibreria de TensorFlow fa servir diferents estratègies com començar des de diferents punts o afegir la variació d’un valor

amb una certa probabilitat.

2.3. Programari

TensorFlow15 és la llibreria desenvolupada per Google per entrenar la seva IA. Python16 és el llenguatge de programació en què esta escrita aquesta llibreria. Jupyter17 és la interface que faré servir per escriure i executar el programa.

1. Python

Python és un llenguatge de programació creat pel holandès Guido van Rossum en el 1991 en el CWI. Va ser creat per substituir el llenguatge de programació ABC. Actualment Python és el llenguatge de programació més

15 Web grafia [10] 16 Web grafia [9] 17 Web grafia [11]

Logotip de Python

Page 14: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

13

demandat per les empreses de programació segons la revista Forbes18.

Python és un llenguatge de codi obert multiparadigmàtic19. Això significa que més que forçar els programadors a adoptar un estil particular de programació, permet diferents estils: programació orientada a objectes, programació imperativa i programació funcional. La filosofia de Python és que el llenguatge sigui el màxim llegible possible. Un altre avantatge és que Python té un mode interactiu que consisteix en introduir els comandaments un a un i executar-los per veure si el codi està correctament escrit.

2. TensorFlow

TensorFlow és una llibreria creada per Google Brain, el 9 de novembre del 2015, per satisfer les seves necessitats de sistemes capaços de construir i entrenar xarxes neuronals. TensorFlow a diferència de la seva antecessora DistBelief és de codi obert.

TensorFlow va ser creada perquè Google volia millorar DistBelief fent-la més robusta i ràpida. DeepMind és la IA més famosa de Google actualment funciona amb TensorFlow que en ser de codi obert permet a qualsevol programador tant fer servir DeepMind com crear noves IAs.

TensorFlow és una llibreria de codi obert, programada en Python i C++, perquè aprengui automàticament mitjançant un rang de feines. Un avantatge destacable és la possibilitat de funcionar tant amb la CPU20 de l’ordinador com amb la GPU21 de la targeta gràfica permetent-li tenir més potencia i, per tant, un funcionament més ràpid.

18 Web grafia [8] 19 Web grafia [25] 20 Glossari 21 Glossari

Logotip de TensorFlow

Page 15: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

14

3. Jupyter

Jupyter és un Shell desenvolupat per Scipy i anunciat en 2014 per Fernando Pérez. Jupyter Notebook és una aplicació web de codi obert que permet crear i compartir documents que contenen codi en viu, equacions, visualitzacions i text explicatiu. Els usos inclouen: neteja i transformació de dades, simulació numèrica, modelització estadística, aprenentatge automàtic i molt més. Jupyter té suport per a més de 40 llenguatges de programació, com ara Python, R, Julia i Scala.

Logotip de Jupyter

Page 16: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

15

3. Exoplanetes

3.1. Què són els exoplanetes?22

A l’univers existeixen , conjunt de planes que orbiten al voltant d’una estrella

diferent del Sol, aquests planetes s’anomenen planetes extrasolars o exoplanetes. Es van començar a descobrir a la dècada de 1990, des de feia temps se’n sospitava de la seva existència però gràcies a la millora en les tècniques de detecció en van poder trobar.

El primer planeta extrasolar descobert orbitant una estrella va ser 51 Pegasi b, al 1995 per Michel Mayor i Didier Queloz de l'Observatori de Ginebra. Aquest planeta té una massa comparable a la de Júpiter. Des de llavors més d'un centenar de planetes han estat descoberts per diferents grups d’investigació

astrofísica internacionals.

Al 2013 un estudi dirigit per François Fressin del Centre d'Astrofísica de la Universitat Harvard23, conclou que com a mínim, hi ha un planeta per cada estrella. La nostra galàxia conté al voltant de 100.000 milions d’estrelles, així segons aquest estudi, la Via Làctia24 contindria un mínim de 17.000 milions d’exoplanetes amb una mida similar o propera a la de la Terra, però no es pot determinar quins d’ells seran habitables.

22 Web grafia [12] 23 La Universitat Harvard (en anglès: Harvard University) és una de les institucions educatives més prestigioses del món i la més antiga dels Estats Units d'Amèrica. Fundada el 8 de setembre de 1636 com a New College a Cambridge, va ser rebatejada el 13 de març de 1639 en honor de John Harvard, un dels seus principals mecenes. 24 La Via Làctia és una galàxia en forma d'espiral (més concretament d'espiral barrada), on es troba el sistema solar. Està formada per més de 200 mil milions d'estels (alguns estudis recents li atribueixen més de 400 mil milions d'estels) iguals o semblants al nostre Sol, i els seus planetes, juntament amb milers de nebuloses. Tot fa suposar que al centre de la Via Làctia hi ha un forat negre supermassiu.

Gràfica dels descobriments de exoplanetes. El blau són els descobriments fets amb velocitat radial, el verd amb transit, el groc amb astrometria, el vermell amb observació directe i el taronja amb microlents gravitatòries. Imatge estreta de Viquipèdia.

Page 17: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

16

Al desembre de 2011 la missió Kepler25 de la NASA va trobar els primers exoplanetes amb la mida de la Terra, es van anomenar Kepler-20e i Kepler-20f, i estan molt a prop de la seva estrella en una zona considerada no habitable, caldria trobar-los en un zona on l'aigua pogués estar en forma líquida, a la seva superfície. La importància d’aquesta descoberta és per que són els exoplanetes, confirmats, fins al moment, més petits que orbiten al voltant d'una estrella com el nostre Sol.

3.2. Com trobar-los?

Per trobar exoplanetes hi ha diversos mètodes, d'entre els que destaquem els següents:

1. Velocitats radials 2. Astrometria 3. Trànsits 4. Microlents gravitatòries 5. Pertorbacions en discs circumestelars 6. Observació directa

1. Velocitats radials

El mètode de detecció mitjançant velocitat radial consisteix en l’aplicació de

l’efecte Doppler26, que consisteix en la variació d’ona d’un objecte en moviment.

Això es produeix quan un planeta orbita entorn d’una estrella genera una força de atracció gravitatòria que produeix que aquesta orbiti entorn el centre de masses comú del sistema. Aquestes oscil·lacions es poden detectar amb lleus canvis en les línies espectrals, si s’apropa les línies són més blaves i si s’allunya són

més vermelles.

25 La Missió Kepler és un telescopi espacial de la NASA, la desena missió del programa Discovery. Està dissenyada específicament per estudiar una porció de la Via Làctia a les constel·lacions del Cigne i la Lira per descobrir exoplanetes de la grandària de la Terra i determinar en quin seria possible que s'hi pogués desenvolupar vida. La missió es diu així en honor a Johannes Kepler. El llançament va tenir lloc el dia 7 de març de 2009. 26 Web grafia [13]

Imatge estreta de Wikipedia. Es una expressió artística de Alfa Centauri B.

Page 18: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

17

Un dels planetes que s’ha trobat amb aquest mètode és Alfa Centauri Bb27. Alfa Centauris són les estrelles més properes al sistema solar, estan a 4,37 anys llum, i l’estrella Alfa Centauri B té un planeta orbitant d’aproximadament la

massa de la Terra però esta molt a prop de la estrella i no és habitable.

2. Astrometria

Ja que les estrelles orbiten entorn el centre de masses, l’astrometria consisteix

en mesurar el moviment de la estrella i per detectar la presència de planetes.

Només s’ha aconseguit trobar un planeta

és HD 176051 b que orbita al voltant de HD 176051.

3. Trànsits

El trànsit consisteix en observar la lluminositat d’una estrella i detectar la

variació lumínica al passar el planeta per davant. Aquest mètode junt amb la velocitat radial són més eficients amb planetes grans i propers a l’estrella que

amb planetes petits com la Terra.

En 2017, la NASA va publicar el descobriment de 7 exoplanetes que giren al voltant de l’estrella TRAPPIST-128. El mètode que es va fer servir per trobar-los va ser el trànsit.

27 Web grafia [15] 28 Web grafia [16]

Imatge estreta de Wikipedia. És el concepte de l’artista de la NASA-JPL/Caltech del que pot ser el sistema planetari TRAPPIST-1.

Imatge treta de la pagina Starlight Musings. És una imatge del firmament on marca a HD 17605. Està en la constel·lació de Lira a prop de ϒ Lira.

Page 19: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

18

4. Microlents gravitatòries

La microlent gravitatòria29 és un efecte astronòmic predit per la teoria general de la relativitat d’Einstein30. Segons Einstein31, quant la llum procedent d’una

estrella passa molt a prop d’una altra estrella en el seu camí cap a un

observador en la Terra, la gravetat de l’estrella intermèdia corba lleugerament els raigs de llum de l’estrella d’origen.

Les microlents gravitatòries funcionen, com es veu a la imatge, de la següent manera:

A l’observar un objecte llunyà amb massa, forat negre, estrella..., i un altre cos el creua per davant es genera una deformació. Si resulta que l’objecte

intermedi té algun altre objecte orbitant (en cas d’estrella el que orbita normalment és un planeta) la deformació generada es pot detectar en la imatge de l’objecte més llunyà.

El planeta més llunyà que s'ha trobat gràcies a microlents gravitatòries està situat en la galàxia de Andròmeda i s’anomena OGLE-2005-BLG-390Lb.

29 Web grafia [17] 30 Glossari 31 Albert Einstein (Ulm, Wurtemberg, 14 de març del 1879 - Princeton, Nova Jersey, 18 d'abril del 1955) va ser un físic d'origen alemany, nacionalitzat posteriorment suís i nord-americà. Va ser el científic més conegut i important del segle XX.

Imatge extreta de Ciencia Historai. Explicació gràfica del funcionament de microlents gravitatòries

Imatge extreta de Ciencia Historai. Visualització de la grafica del descobriment de planeta OGLE-2005-BLG-390Lb.

Page 20: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

19

5. Pertorbacions en discs circumestelars

En estrelles joves hi ha un disc circumestelar de pols. El mètode de pertorbacions en discs circumestelars consisteix en detectar irregularitats en el pols estel·lar produïdes per efecte de la gravetat produïda per planetes que orbiten entorn de l’estrella.

S’han trobat diversos planetes amb aquest mètode. I succeeix un cas similar en el disc de Saturn i els seus satèl·lits pastors que generen diferents línies en el disc.

6. Observació directa

En alguns casos es pot veure el planeta a simple vista, sempre que la llum de l'estrella no tapi el planeta.

Les condicions del planeta han de ser les següents:

El planeta ha de ser gran, de la mida de Júpiter o major.

Ha de ser un planeta càlid. Ha d’estar situat molt lluny de

l’estrella.

En 2005 l'equip del Spitzer Space Telescope va detectar directament la radiació infraroja emesa per dos planetes extrasolars ja coneguts: HD 209458 b i TrES-1. La temperatura dels dos planetes era de 787 ºC per a TrES-1 i de 857 ºC per a HD 209458 b.

Imatge estreta de Viquipèdia. Foto fet en el 2004 a Saturn.

Imatge del Telescopi Espacial Spitzer, estreta de Viquipèdia.

Page 21: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

20

4. Pràctica

4.1. Instal·lació del software

El procediment per instal·lar TensorFlow32 i fer servir com interfase de desenvolupament Jupyter, ha estat:

1. Abans d’instal·lar Python he instal·lat el paquet distribuïble de

Microsoft visual C++33.

2. Instal·lar Anaconda34 que és una distribució de Python. És de codi obert i té

moltes llibreries científiques i altres millores.

3. Obrir la consola de sistema.

4. Crear i activar un entorn de treball anomenat “tensorflow”.

5. Instal·lar TensorFlow.

6. Per últim, instal·lar nb_conda (un paquet de utilitats d’anaconda), matplotlib

(un paquet per fer gràfiques) i Jupyter (la interfase de desenvolupament).

7. Per obrir la interfase de desenvolupament, s’escriu:

Un cop escrit això en la consola s’obrirà una pestanya en internet.

32 Web grafia [2] i [6] 33 Web grafia [4] 34 Web grafia [3]

Anaconda3-4.3.1-Windows-x86_64.exe

C:\> conda create --name tensorflow python=3.5 C:\> activate tensorflow

vc_redist.x64.exe

(tensorflow) C:\> pip install --upgrade tensorflow

(tensorflow) C:\> conda install nb_conda (tensorflow) C:\> pip install matplotlib (tensorflow) C:\> conda install jupyter

C:\> activate tensorflow (tensorflow) C:\> jupyter notebook

Page 22: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

21

A l’entrar en aquesta llibreria, has de clicar el desplegable de “New”, en la línia que posa “Python [conda env:tensorflow]”. En polsar s’obrirà una nova

pestanya al cercador i aquí és on ja es pot programar.

Interface per programar en Python.

Page 23: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

22

4.2. Aprendre a fer servir TensorFlow

Per aprendre a fer servir TensorFlow vaig copiar un programa que consisteix en una IA que reconeix números escrits a mà. Aquest exemple el vaig treure d’un video35 d’unes xerrades, organitzades per la Universitat de Salamanca i el ACM

(Association for Computing Machinery) que tractaven l’ús del TensorFlow per a IAs.

La pràctica consta de dues parts. La primera és una intel·ligència sense neurones ocultes, és a dir només té entrada i sortida, i la segona, és una IA amb una capa oculta. Les dues són pràcticament iguals i només canvien algunes línies de codi.

IA sense neurones ocultes

Primera part: 1. Escriure aquestes línies de codi, per descarregar unes llibreries

d’entrenament per la IA.

35 Web grafia [5]

IA amb neurones ocultes

import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('MNIST_ data/', one_hot=True)

%matplotlib inline import matplotlib.pyplot as plt import numpy as np

Page 24: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

23

2. Per verificar si s’han carregat bé les imatges d’entrenament, en visualitzo una amb aquest codi.

3. La següent part és començar a fer la IA. Donem un valor x a cada

un dels píxels. Com la imatge és de 28x28 són 784 valors de entrada, i definim y_ com el número que és real. Aquests valors van del 0 al 9, per tant són 10 valors de sortida. Després es defineix W com els pesos sinàptics i B, com els biaixos. A continuació, s’escriu la funció

4. i una altre funció que faci que la y i y_ s’aproximin tant com es

pugui.

plt.imshow(mnist.train.images[190].reshape(28,28), cmap='gray')

Aquesta és la imatge 190 i en pots escollir qualsevol altra només variant el numero entre [ ].

x = tf.placeholder(tf.float32, [None, 784]) y_ = tf.placeholder(tf.float32, [None, 10]) W = tf.Variable(tf.zeros([784, 10])) B = tf.Variable(tf.zeros([10])) y = tf.nn.tanh( tf.matmul(x, W) + B ) mse = tf.reduce_mean( tf.square(y - y_)) train_step = tf.train.GradientDescentOptimizer(0.01).minimize(mse) init = tf.global_variables_initializer() sess = tf.Session() sess.run(init)

y = x × W + B

Page 25: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

24

5. Finalment s’inicia l’entrenament, que consisteix en escriure aquest

fragment de codi i deixar que s’entreni.

6. A partir d’aquests codis podem veure la corba d’entrenament, l’eix

de les y ens indica l’error i en l’eix x, les reiteracions.

7. Per saber l’efectivitat de la IA s’aplica un arxiu de prova per obtenir el percentatge d’error.

trainLoss = [] testLoss = [] for i in range(80): batchX, batchY = mnist.train.next_batch(500) sess.run(train_step, feed_dict={x:batchX, y_:batchY}) loss1 = sess.run(mse, feed_dict={x:batchX, y_:batchY}) loss2 = sess.run(mse, feed_dict={x:mnist.test.images, y_:mnist.test.labels}) trainLoss.append(loss1) testLoss.append(loss2) print("Training finished.")

plt.plot(trainLoss, 'r') plt.plot(testLoss, 'b')

S’observen dos corbes: la blava, la corba remitjada, i la vermella, la

corba exacta a partir de tots els punts.

pred = sess.run(y, feed_dict={x: mnist.test.images, y_: mnist.test.labels})

Page 26: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

25

Això ens dona que la IA té un error del 22.07%.

8. Per últim, és interessant analitzar com queden representats gràficament els pesos de les W. La gama de colors utilitzada és:

Blau per a valors negatius. Blanc per el 0. Vermell per a valors positius.

Imatges obtingudes de representar gràficament els pesos sinàptics.

errors = 0. for i in range(pred.shape[0]): if(np.argmax(pred[i]) != np.argmax(mnist.test.labels[i]) ): errors = errors + 1 print("test error: " +str( errors/pred.shape[0]))

myW = sess.run(W)

for i in range(10): plt.imshow(myW[:, i].reshape(28,28), cmap='bwr') plt.show()

Page 27: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

26

Segona part: Com ja he dit abans, en aquesta part canvien algunes parts del programa i només cal reescriure unes línies per introduir la capa oculta.

1. El primer canvi es produeix, com és de esperar, en la programació de la IA. La major diferència és que passa de tenir una funció a tenir-ne dues:

I l’altre canvi és que es defineix una nova variable n_hidden que iguala el nombre de neurones de la capa oculta.

2. El codi de l’entrenament i el codi per representar la gràfica no varien però el resultat de la gràfica és totalment diferent.

n_hidden = 250 x = tf.placeholder(tf.float32, [None, 784]) y_ = tf.placeholder(tf.float32, [None, 10]) W0 = tf.Variable(tf.random_normal([784, n_hidden], stddev=0.01)) B0 = tf.Variable(tf.random_normal([n_hidden], stddev=0.01)) W1 = tf.Variable(tf.random_normal([n_hidden, 10], stddev=0.01)) B1 = tf.Variable(tf.random_normal([10], stddev=0.01)) h = tf.nn.tanh( tf.matmul(x, W0) + B0 ) y = tf.nn.tanh( tf.matmul(h, W1) + B1 ) mse = tf.reduce_mean( tf.square(y - y_)) train_step = tf.train.AdamOptimizer(0.005).minimize(mse) init = tf.global_variables_initializer() sess = tf.Session() sess.run(init)

Es poden veure dos línies, la blava és la corba remitjada, i la vermella és la corba exacta pintant tots els punts, igual que la gràfica anterior.

h = x × W0 + B0y = h × W1 + B1

Page 28: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

27

3. El codi que ens indica l’error tampoc canvia però el resultat és molt més favorable. L’error d’aquesta IA és del 10,2%.

4. El codi que sí apareix modificat és el dels pesos associats a les W0.

4.3. Creació dels fitxers d’entrenament de la IA36

Per poder entrenar una IA, cal disposar d’uns paquets de dades inicials per activar les neurones d’entrada i la seves respostes per comparar els resultats.

Perquè la IA funcioni i doni bons resultats, cal tenir moltes dades inicials representatives del problema. En el cas d’una IA que detecti exoplanetes, són necessaris uns fitxers semblants als fitxers descarregats de la notícia, com aquests:

36 Annex 7.4

myW0 = sess.run(W0)

for i in range(10): plt.imshow(myW0[:, i].reshape(28,28), cmap='bwr') plt.show()

Aquesta gama de colors és igual a l’obtinguda en les representacions del

pesos de la primera part però la imatge no queda definida.

Page 29: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

28

Aquest fitxer conté 7 columnes de les quals només ens interessen les 3 primeres que són:

1. La data, en data Juliana37, en què es va fer la observació. 2. La velocitat, en m/s, calculada mitjançant l’efecte Doppler, de l’estrella. 3. L’error de la mesura anterior, en m/s.

Per poder tenir una col·lecció prou gran de fitxers amb les solucions s’haurà de

crear un programa que els generi i per simplificar la feina, els fitxers d’entrenament només tindran un planeta orbitant.

Inicialment, el programa necessita uns valors inicials per poder crear l’òrbita:

M Massa estrella, en masses solars. m Massa planeta, en masses de Júpiter. R_min Distància del Periastre, distància mínima a la que està el

planeta de l’estrella, en unitats astronòmiques38 [UA]. e Excentricitat, coeficient que determina quan d’ovalada és l’òrbita. th Angle que determina la inclinació respecte l'eix de coordenades, en

graus. t_peri Instant en què passa pel periastre, en data juliana.

Per determinar les sis dades inicials el programa les selecciona de manera aleatòria. Els intervals possibles són: per M, un valor entre 0,2 i 2,0 masses solars, per m, un valor entre 0,1 i 9000,0 masses de Júpiter (aquestes dues dades estan delimitades pels màxims i mínims trobats), R_min, pot tenir qualsevol valor, e entre 0 i 1 i th, entre 0º i 360º.

Per tal que el fitxer resultant tingui les suficients dades per la IA s’han de complir les següents condicions per generar l’òrbita:

El període de l’òrbita, temps que triga el planeta en donar una volta a la estrella, ha de ser més petit que el nostre temps de simulació, per tenir com a mínim una òrbita completa.

Com les observacions de les estrelles tenen un error entre 1 m/s i 3 m/s degut a l’activitat estel·lar, el planeta ha d’arribar a moure l’estrella més de 3 m/s perquè no es consideri un error de mesura.

37 Glossari 38 Glossari

Page 30: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

29

El segon pas, obtingut un conjunt de dades, el programa simularà l’òrbita:

1. Primer intent

Gràcies a una llibreria de Python que permet integrar equacions diferencials39, es simulen les òrbites a partir de les equacions del moviment.

Per descriure el moviment, s’utilitza l’equació de la gravitació de Newton40, les lleis de Newton i la conservació del moment.

Llei de la gravitació

Segona llei de Newton

Conservació del moment

Desenvolupant les fórmules per a aquest cas, s’obté41:

Es detecta, després d’una mesos d’entrenament, que el sistema no conserva l’energia, i que aparegui un error molt elevat en les òrbites dels planetes que fa que el planeta acabi escapant del sistema.

39 Annex 7.2 40 Sir Isaac Newton FRS (Woolsthorpe-by-Colsterworth, Lincolnshire, Anglaterra, 4 de gener de 1643 - Kensington, Middlesex, Regne d'Anglaterra, 31 de març de 1727) fou un físic, matemàtic i filòsof anglès. Newton és l'autor dels Philosophiae Naturalis Principia Mathematica (1687), en què descriu la llei de la gravitació universal i les tres lleis del moviment (lleis de la inèrcia), base de la mecànica clàssica. Newton fou el primer que demostrà que les lleis naturals governen els moviments de la Terra i dels objectes celestes. Newton també va crear un model matemàtic per a les lleis de Kepler del moviment dels planetes a partir de la llei de la gravitació universal. Així, va ampliar-les demostrant-ne que les òrbites (com les dels estels amb cua) no eren solament el·líptiques sinó que també podien ser hiperbòliques i parabòliques. 41 Annex 7.2

F=G M⋅m

r2

F⃗ = m⋅⃗a

m⋅v⃗ p + M⋅v⃗S = 0

d vx P

dt= −G

M

((x P−xS)2+( y P− yS)

2)

3/2⋅(x P− xS)d vyP

dt= −G

M

(( xP−x S)2+( yP− yS )

2)

3/2⋅( yP− yS )

d x P

dt= vx P

d y P

dt= vyP

d x S

dt= −

mM⋅vx P

d yS

dt= −

mM⋅vyP

Page 31: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

30

Dibuix de l’òrbita en un temps de 6000 dies

Representació de la posició respecte el temps

Vermell posició en x Blau posició en y

Valor teòric del perióde

3771,620 dies

2436,406 dies

Com es pot veure en el primer sistema, el període és d’uns 4000 dies i no arriba a tancar-se en 6000 dies, i en el segon sistema possiblement no arribarà a tancar-se mai.

2. Segon intent

En el segon intent, es parteix de les lleis de Kepler42 i l’equació d’una òrbita el·líptica.

Segona llei de Kepler

Tercera llei de Kepler

Orbita el·líptica

42 Johannes Kepler (Weil der Stadt, Sacre Imperi Romanogermànic, 27 de desembre de 1571 - Ratisbona, 15 de novembre de 1630), astrònom i matemàtic alemany i figura clau en la revolució científica. És conegut, fonamentalment, pel descobriment de les lleis sobre el moviment dels planetes que va plasmar en les seves obres Astronomia Nova i Harmonices Mundi. Va ser ajudant del també astrònom Tycho Brahe i matemàtic de la cort de l'emperador Rodolf II. També va proporcionar una de les bases per a la teoria de la gravitació universal elaborada per Isaac Newton.

L = μ r2θ̇

T = 2πa3 /2

√G(M +m)

r =a⋅(1−e2

)

1+e⋅cos(θ−θ0)

Page 32: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

31

A diferència del desenvolupament de l’apartat anterior, forma de l’òrbita està

fixada i només tenim una equació diferencial per l’angle. Si es desenvolupa, tot això l’equació diferencial a simular és la següent43:

En fer servir les lleis de Kepler, els resultats obtingut no presenta l’error de no conservació d’energia i les dades permeten representar la gràfica i els valors teòrics com en el cas anterior.

Dibuix de l’òrbita en un temps de 6000 dies

Representació de la posició respecte el temps

Vermell posició en x Blau posició en y

Valor teòric del període

3771,620 dies

2436,406 dies

Els valors d’inici de les gràfiques són els mateixos que els de les gràfiques del primer intent només que en el segon cas s’utilitzen les lleis de Kepler. Com es pot veure, els resultats són molt més coherents.

L’últim pas és que el programa ha de crear dos fitxers, un amb la resposta, que són les dades inicials M, m, R_min, e i th, i l’altre amb les dades

que se li introduiran a la IA. El fitxer resposta és senzill de crear, només s’ha

d’escriure les dades inicials. El segon fitxer és més complex.

43 Annex 7.2

θ̇ = 2π(1+e⋅cos(θ−θ0))

2

T⋅(1−e2)

3/2

Page 33: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

32

Per crear el fitxer amb les dades d’entrada a la IA el programa ha de:

1. Separar l’òrbita calculada en 5000 punts i seleccionar un conjunt de 50 a 250 de punts (aquests valors es determinen tenint en compte el nombre màxim i mínim de punts que hi ha en els fitxers descarregats de la notícia).

2. Ordenar cronològicament els punts, simulant els fitxers de la notícia, sense oblidar convertir el temps en data Juliana.

3. Ordenar cronològicament la velocitat a la que es mou l’estrella en aquell

instant, col·locant un valor aleatori a l’error de la mesura de velocitat, que va entre 0,5 m/s i 3 m/s, encara que hi ha una certa probabilitat de què l’error sigui major o menor, i omplir les altres columnes amb un valor fix.

4.4. Creació de la IA44

Després de diversos intents, s’ha aconseguit una IA que funcioni amb un bon rendiment, és a dir, un error proper al 5%. A part, el funcionament principal de totes les IAs té característiques comunes:

Per poder entrar-li la informació:

1. La IA obre els fitxers d’entrenament i cerca l’últim dia. 2. La IA resta 5000 dies (aproximadament 15 anys) al dia trobat i assignar

el resultat com a dia 0, fent que tots els valors que no entrin en aquests període quedin eliminats.

3. La IA crea un array45 de 5000 punts, tots en valor 0. 4. Omple amb les velocitats del fitxers d’entrenament on els correspongui

temporalment. L’hora del dia quan es va fer la observació es menysprea perquè es considera mínim el moviment diari.

5. Escala els valors de les velocitats perquè adquireixin un valor entre 0,5 i -0,5.

44 Annex 7.4 45 Glossari

Representació de les velocitats amb el temps

Page 34: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

33

Per optimitzar la IA es calcula la diferència quadràtica, la forma correcta de calcular l’error. La IA s’entrena minimitzant aquest error. Cal tenir en compte que l’error representa en les gràfiques és l’error relatiu d’un paquet

d’entrenament, expressat en tant per cent.

1. Programa 1:

Primer es van iniciar tots els valors de W i B a 0 perquè és més senzill. Després de fer diversos intents, l’entrenament no es produïa perquè el valor de W no variava, Sempre amb un error al voltant de 300%. Després de variar el nombre de capes i neurones s’arriba a la conclusió que l’error era culpa dels 0 de la inicialització.

2. Programa 2:

En iniciar els valors de W i B amb un d’aleatori, la IA entrenava i l’error va

passar del 120% al 15% al final del procés.

Gràfica d’un dels primers entrenaments.

Gràfica del últim entrenament.

Page 35: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

34

L’objectiu de la IA era trobar la velocitat màxima, l’excentricitat, el període i el

radi mínim. En la taula següent s’observen les diverses modificacions del

número de neurones per disminuir el % d’error. Número intent

Número capes ocultes

Neurones per capa oculta Error en %

1 1 1000 124 2 1 2000 120 3 2 1000 200 60 4 2 2000 200 69 5 2 1000 400 92 6 2 1000 50 50 7 2 1000 10 64 8 2 200 50 33 9 2 50 50 34

10 2 100 50 35 11 3 100 50 50 25 12 3 200 50 50 19 13 3 300 50 50 23 14 3 200 10 50 45 15 3 200 100 50 16 16 3 200 200 50 23 17 3 200 100 20 24 18 3 200 100 70 29 19 4 200 100 50 50 20 20 4 200 100 50 25 15 21 4 400 200 100 50 16

Aquesta IA no baixa del 15% i si representem l’error de cada variable per separat hi ha errors molt acceptables però no es mantenen.

3. Programa 3:

Per poder reduir el error encara més, es creen diverses IAs, cada una dissenyada específicament per trobar el valor d’una variable en concret. En total, 6 IAs:

VelocitatP La velocitat que té en el periastre, és a dir, la velocitat més gran.

VelocitatA La velocitat que té en l’apoastre, és a dir, la velocitat més petita.

Període El temps que triga en donar una volta. Masses La relació de masses, és a dir, la divisió de la massa de

l’estrella i el planeta.

Page 36: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

35

LongitudP La inclinació de la longitud en passar pel periastre respecte el semieix de coordenades.

Excentricitat L’excentricitat, és a dir, quan d’ovalada és l’òrbita.

La diferència més important respecte els altres programes és que una neurona en lloc de buscar un valor, com per exemple el període que resultaria un nombre entre 100 i 5000 dies, generant molta imprecisió, s’han fet servir 30 neurones per representar el mateix interval, utilitzant una escala logarítmica46 per distribuir el temps entre totes les neurones de manera que l’error d’una, individualment, disminueix.

En aquestes IAs em fixo en dos errors, el resultant al final del entrenament i l’error observat en la gràfica dels últims punts del entrenament.

Gràfica d’un entrenament.

Gràfica dels 500 últims punts de l’entrenament.

L’error del entrenament era del 3,49%

Això ho feia perquè l’error de l’entrenament era del 3,49% però com es veu en les gràfiques al final l’error no s’estabilitza i per tenir un valor més fiable de

l’error agafava el valor més alt dels últims punts. Totes començaven amb 3 capes i amb 200, 100, 50 neurones per capa.

Error en % Error de la gràfica en % VelocitatP 1,08 3,2 VelocitatA 1,48 4,5 Període 2,72 8 Masses 0,45 50

LongitudP 2,06 5,8 Excentricitat 9,51 32

En veure que algunes variables, com les velocitats, resultaven valors molt positius i altres, com les masses o l’excentricitat, donen valors inacceptables. Es van descartar les IAs de les masses, ja que es pot deduir, i la longitud

46 Annex 7.3

Page 37: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

36

perquè és poc important. Aquesta decisió permet concentrar l’atenció en

millorar el valor de l’excentricitat i el període.

Excentricitat:

La taula següent els diversos entrenaments per trobar la combinació amb el menor error. El nombre de capes ocultes sempre va ser 3.

Nombre intent

Neurones per capa oculta Error en %

Error de la gràfica

en % 1 200 100 50 9,51 32 2 400 100 50 0,13 18 3 200 150 50 0,23 25 4 400 200 50 5,62 10 5 400 200 100 9,45 35 6 400 300 50 2,30 5 7 400 300 100 1,99 23 8 400 150 50 2,88 9,75 9 400 350 50 4,67 13

10 400 300 50 1,20 50

Període:

En el cas del període, es produeix com en el cas anterior. La variació de l’error

ha estat mínima.

Nombre intent

Neurones per capa oculta Error en %

Error de la gràfica

en % 1 200 100 50 2,72 8 2 400 100 50 5,29 8 3 200 150 50 3,46 7 4 200 100 75 5,04 10 5 400 200 100 18,81 40 6 450 150 50 4,17 8 7 800 200 50 3,20 8

4. Programa 4:

Davant l’evidència que els fitxers d’entrenament no conservaven l’energia i les IAs l’únic que feien era aprendre un valor característic de cada fitxer i dir el valor que coincidia amb el resultat, es van executar els canvis següents:

Page 38: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

37

Canvi 1:

Crear un array unint els punts de velocitats que tenim amb rectes.

Canvi 2:

Per representar gràficament si la IA està entrenant a cada volta, es calcula l’error relatiu. El canvi consisteix en invertir el procés, calcular primer el valor absolut i posteriorment la mitja, ja que contràriament els errors positius es restaven amb els negatius donant un error final més petit i utilitzant el segon mètode, la mitjana troba un valor més representatiu del error total.

Canvi 3:

L’últim canvi permet que el programa pugui guardar la IA per poder-la utilitzar posteriorment o per fer uns test de prova per veure l’eficiència amb arxius que no hagin estat utilitzats durant l’entrenament.

5. Programa 5:

Aquest programa és igual al programa anterior, amb la diferència que si abans cada variable tenia un programa diferent, en canvi aquest, és un programa que pot crear les tres IAs.

Finalment només cal trobar els valors de VelocitatP, VelocitatA i Període per determinar les dades de l’exoplaneta, la resta, com l’Excentricitat, les Masses o LongitudP es poden deduir reduint el nombre de IAs creades.

El principal problema és el no poder determinar la certesa de les IAs, degut a que els arxius d’entrenament són una simplificació de la realitat. Per solucionar-

Representació de les velocitats amb el temps

Page 39: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

38

ho s’han creat deu IAs amb cadascuna de les variables i després s’han

comparat els resultats tenint en compte que a major semblança la probabilitat de que el resultat sigui correcte augmenta.

Com aquestes IAs s’utilitzaran per determinar els exoplanetes i han de estar ben entrenades. Per poder assegurar un bon entrenament s'ha realitzat el procés d’entrenament deu cops per a cada IA. A diferència dels altres programes, l’ordinador utilitzat només suporta entrenar cinc IAs alhora i només cinc entrenaments com a màxim, durant un temps de càlcul total de 8 hores aproximadament, així que en total es va haver d’iniciar el programa dotze cops amb una duració total de 96 hores, és a dir, 4 dies de càlcul.

6. Programa 6:

Aquest programa només agafa les IAs entrenades anteriorment i introdueix els arxius de planetes, que proporcionava la notícia, per trobar el resultat, que apunta en un fitxer, separat per comes, els valors obtinguts d’una variable al

costat del nom de l’estrella per després convertir-ho en un full de càlcul.

4.5. Resultats

S’ha creat tres fulls de càlcul, un per a cada variable, i s’ha calculat la sigma47 de cada un. Després s’ha representat l’error de cadascuna i les gràfiques obtingudes són les següents:

47 Glossari: v. Propagació d’errors

0 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 17000

10

20

30

40

50

60

70

80

90

100

Error Relatiu

PeríodeV. PeriastreV. Apoastre

Por

cent

atge

Page 40: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

39

Com es pot veure les tres gràfiques tenen una forma molt semblant. La velocitat del periastre ha tingut molt bon resultat, en canvi el període té més error, però el fet de no superar el 100%, és un senyal molt bo, ja que l’error

inicial per les IAs era del 300% o superior.

S’han seleccionat els cinc millors valors de les tres fulles, i s’han resumit en les

taules següents:

Velocitat Periastre Nom estrella Valor mitja Sigma Error relatiu

HD221974 5,1173 0,2004709109 3,92% HD206116 12,331187 0,4851520389 3,93% HD209393 21,072768 0,8514902954 4,04% HD103890 7,579267 0,308933077 4,08% HD9113 12,983756 0,5292234764 4,08%

Velocitat Apoastre Nom estrella Valor mitja Sigma Error relatiu

HIP26857 4,696175 0,6580910703 14,01% HD40397 21,654159 3,1749282084 14,66% HD30649 745,127075 109,2985918618 14,67% HD4614B 11,879303 1,802896112 15,18% G60-06 2,490823 0,3851285087 15,46%

Període Nom estrella Valor mitja Sigma Error relatiu HD39828 4048,129638 301,8994519313 7,46% HD190360 2832,768871 216,9052583697 7,66% HD9986 3268,898827 279,3236083162 8,54% HD144287 3976,581105 353,301971878 8,88% HD4635 4126,382764 380,5227409344 9,22%

A partir d’aquestes tres dades s’han calculat48 els següents paràmetres de l’òrbita:

Massa relativa Massa de l’exoplaneta Semieix major Excentricitat Radi mínim Radi màxim

48 Annex 7.2

Page 41: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

40

Després s’ha calculat l’error49 en tant per cent i finalment s’han ordenat els resultats segons l’error i numerat. També s’ha fet la mitjana aritmètica dels valors de la numeració del període, la massa de l’exoplaneta, el semieix i

l’excentricitat per obtenir un ranking dels resultats50. En les següents taules s’han seleccionat els deu millors:

Nom Període Massa Semieix Excentricitat dies error % M Júpiter error % UA error % valor error %

1 HD4635 4126 9,22 0,2340 10,7 5,035 17,5 0,4547 17,9 2 HIP1368 4119 11,0 0,3948 13,8 5,030 22,1 0,5461 17,1 3 HD29461 3627 14,7 43,95 14,0 4,683 24,1 0,5382 17,1 4 HD38858 3322 16,4 0,5143 15,4 4,358 26,8 0,5296 19,6 5 HD47752 2473 22,8 0,1999 14,6 3,579 29,8 0,5360 16,6 6 HD185414 2898 18,7 60,23 16,4 4,053 29,0 0,5649 17,9 7 HD61606 3938 17,6 0,2602 12,4 4,881 24,1 0,4077 22,2 8 HD174080 3998 13,8 0,5877 14,2 4,931 24,0 0,4535 23,6 9 GL317 720,7 13,9 0,8902 15,6 1,178 25,7 0,4800 23,9

10 GL2066 2290 15,0 0,2861 12,8 3,401 22,9 0,3963 24,9

Si es representen els valors d’aquest sistemes proporcionats per la notícia i es comparen amb les gràfiques obtingudes a partir de les respostes s’observen les

següents gràfiques:

GL317

GL2066

HD4635

HD29461

49 Glossari: v. Propagació d’errors 50 Full de càlcul amb tots els resultats a l’annex 7.5

Page 42: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

41

HD38858

HD47752

HD61606

HD174080

HD185414

HIP1368

Page 43: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

42

5. Conclusions i agraïments

L’objectiu principal d’aquest treball és respondre a la pregunta:

Una IA pot determinar si una estrella té exoplanetes.

Fent servir varies IAs senzilles s’ha demostrat que sí. S’han trobat estrelles que poden tenir un planeta al seu voltant amb un grau de fiabilitat molt alt.

Per dissenyar les IAs ha calgut:

Aprendre a programar Python. Crear les IAs utilitzant les llibreries de TensorFlow Aplicar conceptes matemàtics i físics com les primitives, càlculs

estadístics o les lleis de Newton i Kepler, desconeguts per mi. Aprendre a utilitzar fulls de càlcul.

S’ha aconseguit:

Crear un conjunt de IA, programades amb Python. Executar aquestes IAs i obtenir els paràmetres físics per poder confirmar

l’existència d’exoplantes. Tractar les dades per trobar exoplanetes amb molta fiabilitat.

Per la determinació dels paràmetres físics dels exoplanetes, primer es van utilitzar un model deduït a partir de les lleis de Newton, però no la integració matemàtica de TensorFlow no conservava l’energia i els resultats eren erronis.

Va caldre deduir un nou model a partir de les lleis de Kepler que sí va funcionar.

Durant el procés no s’ha aconseguit fer servir la targeta gràfica per

l’entrenament de les IAs, cosa que hauria reduït molt el temps de càlcul.

A nivell personal, aquest treball m’ha motivat a continuar amb l’estudi de les

IAs, per ser un sistema amb moltes possibilitats, senzill d’aplicar i imagino que

en un futur pròxim serà molt potent i les trobarem aplicades a molts camps (conducció autònoma de vehicles, robòtica, entre d’altres).

Per confirmar el mètode i el càlcul, s’enviarà un correu o a diferents entitats amb els cinc millors resultats obtinguts i es demanarà que verifiquin l’existència

o no d’aquests exoplanetes.

Per finalitzar el meu treball voldria agrair l’ajuda en la part pràctica al meu pare,

les correccions d’estil i ortografia de la meva mare i els consells i correccions de la meva tutora.

Page 44: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

43

6. Web grafia

1. Noticia dels exoplanetes http://gizmodo.com/scientists-need-your-help-discovering-the-next-

exoplane-1792307596 2. Web per instal·lar TensorFlow

https://www.tensorflow.org/install/ https://www.tensorflow.org/install/install_windows

3. Web oficial de Anaconda

https://www.continuum.io/downloads 4. Web oficial de instal·lació de Microsoft visual C++

https://support.microsoft.com/es-es/help/2977003/the-latest-supported-visual-c-downloads

5. Vídeos de xarrades sobre com utilitzar TensorFlow

https://www.youtube.com/watch?v=Nv67i-agXWU https://www.youtube.com/watch?v=YT6_cMxlfXc https://www.youtube.com/watch?v=A1mixlmDrzg https://www.youtube.com/watch?v=GKsJ4Y_mS8g https://www.youtube.com/watch?v=n-5ifngrV7k https://www.youtube.com/watch?v=3ODGSDGy5fc https://www.youtube.com/watch?v=qKysEIFNYIQ

6. Llibre de iniciació al TensorFlow “Hello World” en TensorFlow

http://jorditorres.org/libro-hello-world-en-tensorflow/ 7. Informació de xarxes neuronals

https://ca.wikipedia.org/wiki/Xarxa_neuronal https://www.frro.utn.edu.ar/repositorio/catedras/quimica/5_anio/orientado

ra1/monograias/matich-redesneuronales.pdf 8. Enllaç a la llista dels llenguatge de programació més demandats per les

empreses https://www.forbes.com/sites/jeffkauflin/2017/05/12/the-five-most-in-

demand-coding-languages/#560dee30b3f5 9. Informació de Python

https://es.wikipedia.org/wiki/Python 10. Informació de TensorFlow

https://es.wikipedia.org/wiki/TensorFlow

Page 45: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

44

11. Informació de Jupyter

http://jupyter.org/ https://es.wikipedia.org/wiki/IPython

12. Informació d’exoplanetes

https://ca.wikipedia.org/wiki/Planeta_extrasolar https://es.wikipedia.org/wiki/Planeta_extrasolar

13. Efecte Doppler

https://ca.wikipedia.org/wiki/Efecte_Doppler 14. Llista d’exoplanetes

https://es.wikipedia.org/wiki/Anexo:Planetas_extrasolares 15. Alfa Centauri Bb

https://es.wikipedia.org/wiki/Alfa_Centauri_Bb 16. TRAPPIST-1

https://es.wikipedia.org/wiki/TRAPPIST-1 17. Informació de microlents gravitatòries

http://www.cienciahistoria.com/2017/04/metodo-de-microlente-gravitatoria-para.html

18. Informació de la història de les IAs

https://es.wikipedia.org/wiki/Historia_de_la_inteligencia_artificial 19. Test de Turing

https://ca.wikipedia.org/wiki/Test_de_Turing 20. Noticia de la IA del MIT amb millor CI que un nen de 4 anys

http://www.pcworld.com/article/2044846/artificial-intelligence-hits-preschooler-level-study-finds.html

21. Noticia de DeepMind jugant als jocs de Atari 2600

http://www.techrepublic.com/article/google-ai-beats-humans-at-more-classic-arcade-games-than-ever-before/

22. Noticia de AlphaGo

https://www.theverge.com/2016/3/9/11184362/google-alphago-go-deepmind-result

Page 46: Star stuff, contemplating the stars Carl Sagan · guanyar un torneig de poker contra els millors jugadors del món.10 2.2. Com funciona una IA? Com he comentat al punt anterior les

IA a la recerca de nous planetes

45

23. Noticia de la IA que guanya a experts del vol https://phys.org/news/2016-06-video-games-artificial-intelligence-

tactical.html 24. IA que guanya al poker

https://www.theverge.com/2017/1/4/14161080/ai-vs-humans-poker-cmu-libratus-no-limit-texas-hold-em

25. Significat de multiparadigmàtic

https://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_multiparadigma