tesis redes neuronales inteligencia artificial

151
8/18/2019 Tesis Redes Neuronales Inteligencia Artificial http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 1/151 FACULTAD DE INGENIERIAS  Tema: DISEÑO Y CONSTRUCCIÓN DE UNA RED NEURONAL ARTIFICIAL DE PROPÓSITO GENERAL Octubre 2007 Quito-Ecuador SEDE QUITO – CAMPUS SUR CARRERA DE INGENIERIA DE SISTEMAS MENCIÓN ROBÓTICA E INTELIGENCIA ARTIFICIAL TESIS PREVIA A LA OBTENCIÓN DEL TITULO DE INGENIERO DE SISTEMAS DANY ANAEL LÓPEZ LOAIZA DIRECTOR: ING. NAVAS RUILOVA GUSTAVO UNIVERSIDAD POLITÉCNICA SALESIANA

Upload: pedro-pablo-juarez

Post on 06-Jul-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 1/151

FACULTAD DE INGENIERIAS 

Tema:

DISEÑO Y CONSTRUCCIÓN DE UNA RED NEURONALARTIFICIAL DE PROPÓSITO GENERAL

Octubre 2007Quito-Ecuador

SEDE QUITO – CAMPUS SUR 

CARRERA DE INGENIERIA DE SISTEMAS

MENCIÓN ROBÓTICA E INTELIGENCIA ARTIFICIAL 

TESIS PREVIA A LA OBTENCIÓN DEL TITULO DE INGENIERO DE SISTEMAS 

DANY ANAEL LÓPEZ LOAIZA 

DIRECTOR: ING. NAVAS RUILOVA GUSTAVO 

UNIVERSIDAD POLITÉCNICA SALESIANA

Page 2: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 2/151

1

DECLARACIÓN

Yo, Danny Anael López Loaiza, declaro bajo juramento que el trabajo aquí

descrito es de mi autoría; que no ha sido previamente presentado para ningn

grado o cali!icación pro!esional; y, que hemos consultado las re!erencias

bibliogr"!icas que se incluyen en este documento#

 A trav$s de la presente declaración cedemos nuestros derechos de propiedad

intelectual correspondientes a este trabajo, a la %niversidad &olit$cnica 'alesiana,segn lo establecido por la Ley de &ropiedad (ntelectual, por su reglamento y por

la normatividad institucional vigente#

  ))))))))))))))))))))))) 

  Danny Anael López Loaiza

Page 3: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 3/151

2

CERTIFICACIÓN

*erti!ico que el presente trabajo !ue desarrollado por Danny Anael López Loaiza,

bajo mi dirección#

 _______________________ 

Ing. Navas Ruilova Gustavo

Page 4: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 4/151

3

DEDICATORIA

Dedicado a todas aquellas personas que en lugar de ver una nota, un pago o un

premio; vieron la necesidad y gusto de aprender algo, imaginarlo y verlo

!uncionar#

 A quien no sigue una carrera esperando encontrar trabajo o buen sueldo#

 A quien no aspira emplearse, sino ser !uente de empleo#

 A quien no ve el reloj para salir de su trabajo#

 A quien comprende que el conocimiento no se puede esconder y sabe

compartirlo#

Y a quien, an estando en desacuerdo, permite al resto hacerlo#

Page 5: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 5/151

4

AGRADECIMIENTOS

+presar en pocas lineas de teto el pro!undo agradecimiento hacia todas laspersonas que hacen posible que alguien tenga la oportunidad de escribir esto, me

resulta m"s complicado que la redacción del trabajo en sí#

Y pues, si somos resultado de todas las eperiencias que vivimos, agradecer a

cada una de ellas resultaría una tarea de m"s complicada#

 Así que para hacer un breve resumen puedo agradecer a mis padres por su

cari-o, por todas las oportunidades que me regalan, por hacerme ver el mundo de

otra !orma, por solo mencionar unas pocas razones#

 A quien estuvo alado mio durante todo este camino de aprendizaje#

 A mis amigos quienes nunca me !altaron y estuvieron siguiendo mi mismo

camino, u otro que aunque parecía lejano, a la larga resultó la !orma de estar m"s

cerca#

 A mis pro!esores, tutores, guías, senseis y dem"s, quienes pudieron ejempli!icar ymostrar el conocimiento de libros en un idioma m"s entendible para mi#

 A mi tutor por su gran paciencia, con!ianza y sinceridad#

+ntre muchas, muchas m"s a quienes no creo que hago justicia en este

agradecimiento; como al viejo pichirilo que entre atentados !ísicos y velocidadesnunca vistas, me llevo sano y salvo a mi casa todas las noches durante algunos

a-os#

Page 6: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 6/151

5

ÍNDICE DE CONTENIDO

Indice :

. DECLARACIÓN................................................................................................................. 1

. CERTIFICACIÓN............................................................................................................... 2

. DEDICATORIA...................................................................................................................3

. AGRADECIIENTO!....................................................................................................... 4

. "NDICE DE CONTENIDO .................................................................................................5

. RE!#EN.........................................................................................................................13

. $RE!ENTACIÓN..............................................................................................................14

1. CA$IT#LO I% Int&o'u((i)n al T*+a '* T*sis.................................................................151.1. Titulo%....................................................................................................................... 15

1.2. $lant*a+i*nto '*l ,&o-l*+a% ................................................................................... 15

1.3. O-*tivos...................................................................................................................1/

1.3.1. O-*tivo G*n*&al...............................................................................................1/

1.3.2. O-*tivos *s,*(0i(os........................................................................................ 1/

1.4. Al(an(*..................................................................................................................... 1

1.5. I+,o&tan(ia ustii(a(i)n.......................................................................................1

1.5.1. I+,o&tan(ia.......................................................................................................1

1.5.2. ustii(a(i)n...................................................................................................... 1

2. CA$IT#LO II% T*(nolog0a DotNET................................................................................26

2.1. Int&o'u((i)n% ............................................................................................................26

2.2. .NET F&a+*7o&8%.....................................................................................................21

2.2.1. CLI 9Co++on Languag* In&ast&u(tu&*:..........................................................23

2.2.2. ;CL 9;as* Class Li-&a&:%................................................................................25

2.2.3. CLR 9Co++on Languag* Runti+*:.................................................................2/

2.2.4. RE!#EN....................................................................................................... 2

2.3. IDE 9Int*g&at*' D*v*lo,+*nt Envi&on+*nt: ,a&a .NET%........................................ 31

2.4. <*&sion*s '*l .NET F&a+*7o&8%..............................................................................34

2.4.1. .NET F&a+*7o&8 v1.6% .................................................................................... 34

2.4.2. .NET F&a+*7o&8 v1.1% .................................................................................... 34

2.4.3. .NET F&a+*7o&8 v2.6% .................................................................................... 35

2.4.4. .NET F&a+*7o&8 v3.6% .................................................................................... 35

Page 7: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 7/151

=

2.5. C> 9!?a&,:@ El l*ngua* ,&*'il*(to '*l .NET &a+*7o&8%........................................ 3=

2.=. T&a-aan'o (on DotNET.......................................................................................... 3

2.=.1. Int&o'u((i)n%..................................................................................................... 3

2.=.2. oto& G&i(o 9GDIB:%..................................................................................... 3

2.=.2.1. Li*no 9G&a,?i(s:%.................................................................................... 46

2.=.2.2. L,i(*s 9$*n:%............................................................................................41

2.=.2.3. ;&o(?as 9;&us?:%....................................................................................... 41

2.=.2.4. Figu&as ;si(as%........................................................................................ 42

2.=.2.5. an*o '* I+g*n*s%................................................................................ 44

2.=.3. $unt*&os%........................................................................................................... 4=

2.=.4. ilos 9T?&*a's:%................................................................................................ 4

2.=.5. C&*a(i)n '* Cont&ol*s '* #sua&io%................................................................... 513. CA$IT#LO III% R*'*s N*u&onal*s A&tii(ial*s 9RNA:...................................................=6

3.1. Int&o'u((i)n%.............................................................................................................=6

3.2. R*s*a ist)&i(a%......................................................................................................=1

3.3. N*u&ona ;iol)gi(a%...................................................................................................=3

3.3.1. D*n'&itas...........................................................................................................=3

3.3.2. !ina,sis............................................................................................................. =4

3.3.3. !o+a................................................................................................................. =43.3.4. A)n..................................................................................................................=4

3.4. N*u&ona A&tii(ial%....................................................................................................=5

3.5. $*&(*,t&)n%................................................................................................................==

3.5.1. A,&*n'ia* '*l $*&(*,t&)n% .............................................................................=/

3.5.2. $&o-l*+a '* Os(ila(i)n.................................................................................... =

3.5.3. $&o-l*+a '* Lin*ali'a' ................................................................................... /6

3.=. $*&(*,t&)n ulti(a,a................................................................................................/=3.=.1. N*u&ona a&tii(ial auilia& 9;IA!:% ................................................................../

3./. Algo&it+o '* a,&*n'ia*% ;AC$RO$AGATION................................................1

3./.1. Int&o'u((i)n%..................................................................................................... 1

3./.2. R*su+*n ?ist)&i(o%............................................................................................2

3./.3. Algo&it+o '* A,&*n'ia*%............................................................................... 4

3./.3.1. Ca,a '* !ali'a%........................................................................................../

3./.3.2. #na Ca,a O(ulta%......................................................................................

3./.3.3. G*n*&alia& a N (a,as O(ultas%................................................................. 6

Page 8: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 8/151

/

4. CA$IT#LO I<% Anlisis .................................................................................................2

4.1. Int&o'u((i)n..............................................................................................................2

4.2. Li+ita(ion*s............................................................................................................. 2

4.3. R*Huisitos................................................................................................................. 3

4.4. R**&*n(ias a ot&os ,&o*(tos................................................................................... /

4.5. Diag&a+as '* Casos '* #so.....................................................................................

4.5.1. Diag&a+a '* Casos '* #so N 1%......................................................................

4.5.2. Diag&a+a '* Casos '* #so N 2%......................................................................

4.5.3. Diag&a+a '* Casos '* #so N 3%.................................................................... 166

4.5.4. Diag&a+a '* Casos '* #so N 4%.................................................................... 161

4.5.5. Diag&a+a '* Casos '* #so N 5%.................................................................... 162

4.5.=. Diag&a+a '* Casos '* #so N =%.................................................................... 1635. CA$IT#LO <% Dis*o ..................................................................................................164

5.1. Int&o'u((i)n............................................................................................................164

5.2. DI!EJO DEL !OFTKARE 9#L:......................................................................165

5.2.1. Diag&a+as '* Clas*s.......................................................................................165

5.2.2. Diag&a+as '* !*(u*n(ia................................................................................. 16

5.2.2.1. Diag&a+a '* !*(u*n(ia N 1% Conigu&a(i)n '* la RNA........................16

5.2.2.2. Diag&a+a '* !*(u*n(ia N 2% Ca+-ia& Fun(i)n Custo+...................... 165.2.2.3. Diag&a+a '* !*(u*n(ia N 3% Ent&*na+i*nto '* la RNA..................... 116

5.2.2.4. Diag&a+a '* !*(u*n(ia N 4% #so '* la RNA ..................................... 111

5.2.2.5. Diag&a+a '* !*(u*n(ia N 5% #so '*l <iso& '* la RNA..................... 112

=. CA$IT#LO <I% Const&u((i)n....................................................................................... 113

=.1. *&&a+i*ntas #sa'as% ............................................................................................113

=.2. Co+,on*nt* RNA.................................................................................................. 114

=.3. Clas* CA$A............................................................................................................11=.4. Clas* Ca,aCol*((ion..............................................................................................126

=.5. Clas* Evalua'o&!t&ing............................................................................................ 121

=.=. Clas* RNA_<iso&...................................................................................................122

/. CA$IT#LO <II% E*+,lo '* A,li(a(i)n 9OCR ;si(o:...............................................124

/.1. Int&o'u((i)n............................................................................................................124

/.2. A'Huisi(i)n '* la vo(al.......................................................................................... 125

/.3. R*'N*u&onal A&tii(ial..........................................................................................12/

/.4. Con(lusion*s '*l OCR............................................................................................12

Page 9: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 9/151

. CA$IT#LO <III% Con(lusion*s R*(o+*n'a(ion*s....................................................136

.1. Con(lusion*s...........................................................................................................136

.2. R*(o+*n'a(ion*s................................................................................................... 133

. ;I;LIOGRAF"A ...........................................................................................................135

16. ANEMO% anual '* #sua&io.................................................................................... 13=

16.1. Int&o'u((i)n% ........................................................................................................13=

16.2. Ag&*ga& los (ont&ol*s '* IA_RNA....................................................................... 13/

16.3. Conigu&a& la RNA............................................................................................... 13

16.4. Conigu&a& *l <iso&...............................................................................................143

16.4.1. Ca,as.............................................................................................................143

16.4.2. $*sos............................................................................................................. 143

16.4.3. Ta+aos........................................................................................................14416.5. Ent&*na+i*nto.......................................................................................................145

16.=. Consulta................................................................................................................14

Page 10: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 10/151

Dibujos

. Di-uo 1% .NET F&a+*Ko&8 ORIGEN% $&o,ia '*l auto&.................................................21

. Di-uo 2% Est&u(tu&a '*l F&a+*Ko&8 ORIGEN% $&o,ia '*l auto&...................................36

. Di-uo 3% IDE <isual !tu'io.NET ORIGEN% i(&osot <isual !tu'io .NET 2665...... 32

. Di-uo 4% IDE !?a&,D*v*lo, ORIGEN% !?a&,D*v*lo, v2.6..........................................33

. Di-uo 5% a-ilita& C)'igo No !*gu&o ORIGEN% <isual !tu'io.NET 2665.................. 4/

. Di-uo =% Fluo '* ilos ORIGEN% $&o,ia '*l auto&.......................................................56

. Di-uo /% Nu*vo $&o*(to Class Li-&a& ORIGEN% <isual !tu'io.NET 2665...............52

. Di-uo % Nu*vos (o+,on*nt*s o (ont&ol*s ORIGEN% <isual !tu'io.NET 2665...........53

. Di-uo % $&o,i*'a'*s *n *l ()'igo ORIGEN% $&o,ia '*l auto&......................................5

. Di-uo 16% N*u&ona ;iol)gi(a ORIGEN% $&o,ia '*l auto&............................................. =3

. Di-uo 11% N*u&ona A&tii(ial ORIGEN% $&o,ia '*l auto&.............................................. =5

. Di-uo 12% $&o-l*+a '* Os(ila(i)n ORIGEN% $&o,ia '*l auto&..................................... =

. Di-uo 13% !olu(i)n Lin*ali'a' ORIGEN% $&o,ia '*l auto&........................................... =

. Di-uo 14% Co+,u*&ta AND ORIGEN% $&o,ia '*l auto&................................................ /1

. Di-uo 15% !olu(i)n C. AND ORIGEN% $&o,ia '*l auto&............................................... /2

. Di-uo 1=% $&o-l*+a Lin*al ORIGEN% $&o,ia '*l auto&................................................. /3

. Di-uo 1/% Co+,u*&ta MOR ORIGEN% $&o,ia '*l auto&................................................ /4

. Di-uo 1% $&o-l*+a No Lin*al ORIGEN% $&o,ia '*l auto&........................................... /5

. Di-uo 1% Int*&(on*i)n '* (a,as ORIGEN% $&o,ia '*l auto&......................................./=

. Di-uo 26% Est&u(tu&a '* una RNA ORIGEN% $&o,ia '*l auto&...................................... //

. Di-uo 21% !olu(i)n '* la C. MOR ORIGEN% $&o,ia '*l auto&....................................../

. Di-uo 22% N*u&ona ;IA! ORIGEN% $&o,ia '*l auto&.................................................../

. Di-uo 23% $&o,aga(i)n '* *&&o&*s ?a(ia at&s ORIGEN% $&o,ia '*l Auto&....................1

. Di-uo 24% Davi' E. Ru+*l?a&t ORIGEN%

?tt,%777.g&a7*+**&.(o+,s(?olog,&*vious62.?t+................................................ 3

. Di-uo 25% a+*s L (Cl*llan' ORIGEN%

?tt,%777.g&a7*+**&.(o+,s(?olog,&*vious62.?t+................................................ 3

. Di-uo 2=% Caso '* uso N 1 ORIGEN% $&o,ia '*l Auto&..............................................

. Di-uo 2/% Caso '* uso N 2 ORIGEN% $&o,ia '*l Auto&..............................................

. Di-uo 2% Caso '* uso N 3 ORIGEN% $&o,ia '*l Auto&............................................166

. Di-uo 2% Caso '* uso N 4 ORIGEN% $&o,ia '*l Auto&............................................161

Page 11: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 11/151

16

. Di-uo 36% Caso '* uso N 5 ORIGEN% $&o,ia '*l Auto&............................................162

. Di-uo 31% Caso '* uso N = ORIGEN% $&o,ia '*l Auto&............................................163

. Di-uo 32% Diag&a+a '* Clas*s ORIGEN% $&o,ia '*l Auto&.........................................165

. Di-uo 33% L**n'a '* Diag&a+as '* Clas*s ORIGEN% $&o,ia '*l Auto&................... 165

. Di-uo 34% Diag&a+a '* Clas*s 9D*tall* 1: ORIGEN% $&o,ia '*l Auto&...................... 16=

. Di-uo 35% Diag&a+a '* Clas*s 9D*tall* 2: ORIGEN% $&o,ia '*l Auto&...................... 16/

. Di-uo 3=% Conigu&a(i)n '* la RNA ORIGEN% $&o,ia '*l Auto&.............................. 16

. Di-uo 3/% Ca+-ia& Fun(i)n Custo+ ORIGEN% $&o,ia '*l Auto&.............................. 16

. Di-uo 3% Ent&*na+i*nto '* la RNA ORIGEN% $&o,ia '*l Auto&..............................116

. Di-uo 3% #so '* la RNA ORIGEN% $&o,ia '*l Auto&...............................................111

. Di-uo 46% #so '*l <iso& '* la RNA ORIGEN% $&o,ia '*l Auto&............................... 112

. Di-uo 41% Clas* RNA ORIGEN% !?a&,D*v*lo, 2.2....................................................11=

. Di-uo 42% $&o,i*'a'*s '*l RNA ORIGEN% Au'a G*n*&a'a (on Do(u+*ntM 5.6...11/

. Di-uo 43% Pto'o Evalua& ORIGEN% !?a&,D*v*lo, 2.2............................................ 11

. Di-uo 44% Au'a% Pto'o Evalua& ORIGEN% Au'a G*n*&a'a (on Do(u+*ntM 5.6

............................................................................................................................................11

. Di-uo 45% Clas* CA$A ORIGEN% !?a&,D*v*lo, 2.2..................................................11

. Di-uo 4=% Clas* Ca,aColl*(tion ORIGEN% !?a&,D*v*lo, 2.2....................................126

. Di-uo 4/% Clas* Evalua'o&!t&ing ORIGEN% !?a&,D*v*lo, 2.2.................................. 121

. Di-uo 4% Clas* RNA_<iso& ORIGEN% !?a&,D*v*lo, 2.2.........................................122

. Di-uo 4% A'Huisi(i)n '* la vo(al ORIGEN% $&o,ia '*l auto&....................................125

. Di-uo 56% ,a&a+*t&ia(i)n '* la vo(al ORIGEN% $&o,ia '*l auto&..............................12=

. Di-uo 51% ;a&&a '* *&&a+i*ntas ORIGEN% $&o,ia '*l Auto&@ *t&a0'o '* !. <isual

!tu'io 2665........................................................................................................................ 13/

. Di-uo 52% <*ntana '* s*l*((i)n '* (o+,on*nt*s ORIGEN% $&o,ia '*l Auto&@ *t&a0'o

'* !. <isual !tu'io 2665................................................................................................ 13. Di-uo 53% I(onos '* los (o+,on*nt*s ORIGEN% $&o,ia '*l Auto&@ *t&a0'o '* !.

<isual !tu'io 2665............................................................................................................. 13

. Di-uo 54% $&o,i*'a'*s '*l (o+,on*nt* RNA ORIGEN% $&o,ia '*l Auto&@ *t&a0'o '*

!. <isual !tu'io 2665..................................................................................................... 13

. Di-uo 55% $&o,i*'a' O(ultas ORIGEN% $&o,ia '*l Auto&@ *t&a0'o '* !. <isual

!tu'io 2665........................................................................................................................ 146

. Di-uo 5=% FT Es(al)n ORIGEN% $&o,ia '*l Auto&.................................................... 141

. Di-uo 5/% FT Lin*al ORIGEN% $&o,ia '*l Auto&.......................................................141

Page 12: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 12/151

11

. Di-uo 5% FT !ig+oi'* loga&0t+i(a ORIGEN% $&o,ia '*l Auto&.............................. 141

. Di-uo 5% FT !ig+oi'* Tang*n(ial ORIGEN% $&o,ia '*l Auto&...............................142

. Di-uo =6% FT Gauss ORIGEN% $&o,ia '*l Auto&.......................................................142

. Di-uo =1% Conigu&a& *l RNA_<iso& ORIGEN% $&o,ia '*l Auto&.............................144

. Di-uo =2% Ca+-ia& valo&*s '* *nt&a'a '*s'* *l viso& ORIGEN% $&o,ia '*l auto&.......156

. Di-uo =3% *nQ (ont*tual '*l viso& ORIGEN% $&o,ia '*l auto&................................151

Page 13: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 13/151

12

Códigos

C)'igo 1% E*+,lo '* ()'igo *s(&ito *n C> ORIGEN% $&o,ia '*l Auto&..........................3/

C)'igo 2% E*+,lo '*l uso '* ,unt*&os ORIGEN% $&o,ia '*l Auto&................................ 4

C)'igo 3% Ass*+-lIno ORIGEN% $&o,ia '*l auto&........................................................ 53

C)'igo 4% C&*a& una $&o,i*'a' ORIGEN% $&o,ia '*l auto&..............................................54

C)'igo 5% Pto'o $AINT ORIGEN% $&o,ia '*l auto&......................................................54

C)'igo =% Cont&ol s*n(illo ORIGEN% $&o,ia '*l auto&..................................................... 55

C)'igo /% C&*a& un Ev*nto ORIGEN% $&o,ia '*l auto&....................................................5=

C)'igo % Co+*nta&ios ML ORIGEN% $&o,ia '*l auto&................................................5/

C)'igo % A&gu+*ntos 'o(u+*nta'os ORIGEN% $&o,ia '*l auto&...................................5

C)'igo 16% E*+ '* *nt&*na+i*nto ORIGEN% $&o,ia '*l auto&......................................14=

C)'igo 11% E*+ '*l *v*nto it*&a(i)n ORIGEN% $&o,ia '*l auto&..................................14/

C)'igo 12% D*t*n*& *l *nt&*na+i*nto ORIGEN% $&o,ia '*l auto&...................................14/

C)'igo 13% E*+,lo '* uso (on ;DD ORIGEN% $&o,ia '*l auto&..................................14

C)'igo 14% E*+,lo '*l uso '* i(?*&o ORIGEN% $&o,ia '*l auto&................................14

C)'igo 15% E*+ '* (onsulta ORIGEN% $&o,ia '*l auto&............................................... 14

Page 14: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 14/151

13

RESUMEN

+l presente trabajo muestra el dise-o y construcción de un control escrito en *.,

que encapsula todas las !uncionalidades de una red neuronal multi/perceptrón

con el algoritmo de aprendizaje 0ac1&ropagation o propagación para atr"s# +l

mismo que podr" ser usado para crear aplicaciones usando este tipo de redes en

cualquier lenguaje de programación soportado por la tecnología Dot2+3 de la

versión 4#5 del 6rame7or1 de 8icroso!t# &ara lograrlo, los controles est"n

encapsulados en un DLL que permite la compatibilidad entre lenguajes#

+l componente que encapsula todas las !uncionalidades de una red neuronal

arti!icial se llamar" RNA por sus siglas# &ero adicionalmente se crear" un control

gr"!ico llamado RNA_Visor  que ser" una representación e inter!az gr"!ica de una

92A, dando así una completa herramienta para el estudio y aplicación de las

redes neuronales#

: : :

Page 15: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 15/151

14

PRESENTACIÓN

Dada la realidad económica y tecnológica de nuestro medio, estoy convencido

que el uso de programas comerciales especializados en materias de inteligencia

arti!icial no es una buena solución, por su alto precio, para la elaboración de

sistemas inteligentes que el medio necesita#

&or esta razón, creo que el uso de so!tare abierto o libre es la mejor alternativa a

la hora de desarrollar una aplicación# +n cuanto a sistemas inteligentes, a la hora

de desarrollar el presente trabajo, no eisten proyectos de so!tare abierto para

inteligencia arti!icial# De modo que el dise-o y construcción de nuestras propias

herramientas se convierte en un eje indispensable; y así es que el presente

trabajo muestra, no solo como programar una herramienta inteligente que en este

caso es una red neuronal, sino que muestra como crear una herramienta, un

control para ser usado en cualquier aplicación y en!oc"ndola al programador y no

a un usuario !inal#

: : :

Page 16: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 16/151

15

1 CAPITULO I: Introducción al Tema de Tesis

1.1 Titulo:

Dise-o y *onstrucción de una 9ed 2euronal Arti!icial <92A= de

propósito general

1.2 Planteamiento del problema:

*omprendiendo la inmensa necesidad de !omentar la peque-a y mediana

empresa de nuestro país, casi todas las universidades en la actualidad educan

a sus alumnos para competir y desarrollar sus propios bienes y servicios#

Lamentablemente uno de los principales obst"culos que eiste es el di!ícil

acceso a las herramientas de desarrollo que se aprecia m"s en las

especialidades o "reas vinculadas a la tecnología como es el caso de la

robótica e inteligencia arti!icial#

+n el caso especí!ico de 9edes 2euronales Arti!iciales <92A= como

herramienta de desarrollo de procesos inteligentes, resulta casi imposible por

los altos costos# &or ejemplo, una herramienta de programación que permita el

uso de las 92A es el paquete Lab>ie v?#45 de la 2acional (nstrument que se

puede adquirir por un precio de @4,BC %'D  ,otro es el paquete de

programación matem"tico 8A3LA0 de 8ath7or1s que sumado el tool1it de

92A llegan a un precio de @,CC5 %'D4  ,y por ltimo el paquete deprogramación 2+%9E(ntelligence alcanza un precio de @,BBB %'D #

  Precio consultado en agosto del 2006 en: http://www.ni.com/labview/esa/ 

2  Precio consultado en agosto del 2006 en: http://www.mathworks.com/store/priceListLink.do

3  Precio consultado en agosto del 2006 en: ?tt,%777.alu'a.(o+

Page 17: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 17/151

1=

Dada esta realidad social y económica que hace pr"cticamente imposible que

una peque-a empresa !inancie una herramienta de programación de tal

elevados costos, nos encontramos hoy en día con ingenieros que han pasadoa !ormar parte de otros sectores como operarios, realizando !unciones

impropias a las de un ingeniero, que son la investigación y desarrollo de

soluciones; convergiendo en uno de los tantos problemas que nos sitan como

un país consumista y tercermundista#

Page 18: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 18/151

1/

1.3 Objetios

1.3.1 Objetio !eneral.

Dise-ar y construir una red neuronal arti!icial de propósito general que pueda ser

usada en cualquier lenguaje de programación que soporte la tecnología Dot2+3

v4# <8icroso!t 6rame7or1 4#5=

1.3.2 Objetios espec"#icos.

● Desarrollar el so!tare en su totalidad en el lenguaje de programación *.

v4#

● +mpaquetar el programa en un componente o control #2+3 <archivo DLL=

para !acilitar su uso y portabilidad#

● *onstruir una inter!az gr"!ica que muestre la 92A programada y su

!uncionamiento#

● %sar estructuras F8L <Data'ets= para el almacenamiento de los datos

brind"ndole así la posibilidad de interactuar con cualquier base de datos#

● %sar punteros para el c"lculo de pesos y así mejorar la velocidad de

procesamiento#

● %sar programación en hilos para no atascar el !lujo de todo el programa en

los procesos largos de la 92A#

Page 19: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 19/151

1

1.$ Alcance

+l so!tare de 92A a desarrollar estar" basado en la versión 4 del 6rameor1 de

8icroso!t y solo alcanza una compatibilidad directa con los programas y entornosde programación que soporten este !rameor1, tal es el caso de >isual 0asic en

su versión ?, *. 4, *GG para #2+34, >0A para Autocad 455H, etc#

+l uso de lenguajes de programación que permitan una compatibilidad indirecta

con esta tecnología como es el caso de Delphi ?#2+3, >isual 0asic H I H#, *.,

Linu con su proyecto Jo/8E2E, Lab>ie, >isual 0asic K y otros, 2E est"n en el

alcance investigativo de esta tesis aunque en teoría !uncionarían sin problema#

La 92A a programarse nicamente soportar" el algoritmo de aprendizaje

denominado 0ac1&ropagationM#

 Así mismo el so!tare esta sujeto a las limitaciones y alcance que posee la

plata!orma 6rame7or1 4#

Page 20: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 20/151

1

1.% Importancia & 'usti#icación.

1.%.1 Importancia.

La herramienta de programación que o!rece el presente trabajo permitir" a

muchos desarrolladores poner en pr"ctica sus conocimientos de 92A de una

!orma !"cil, r"pida y a un costo etremadamente bajo en relación a sus similares,

al distribuirse el control como Fr!"r## 0rindando así una gran ayuda a la

!ormación y crecimiento de la peque-a y mediana empresa que se dedique al

desarrollo de procesos inteligentes#

 Adem"s se pretende !omentar el desarrollo a bajos costos de herramientas que

permitan el desarrollo en conjunto del "rea de robótica e inteligencia arti!icial que

tiene poca o ninguna acogida en nuestro país#

1.%.2 'usti#icación.

+l presente trabajo nació de una necesidad real en el desarrollo y aplicación de

procesos inteligentes en una peque-a empresa de Nuito, así como tambi$n en

distintos proyectos o trabajos de tesis presentados contempor"neamente a este#

&or otro lado, dar" una alternativa al o!recer una herramienta que permita estudiar

las 92A de una !orma pr"ctica y no solo teórica#

+l uso de la tecnología #2+3 se eligió por su gran avance y acogida, siendo la

plata!orma usada por m"s de 45 lenguajes hoy en día <>isual 0asic, Ada, *obol,

&erl, *GG, Oava, etc= , siendo *. su lenguaje por ecelencia#

 Adem"s la etensa documentación que lo sustenta lo hace la mejor opción para

un trabajo de esta naturaleza# Y por ltimo, la visión a corto plazo que plantea

esta tecnología lo hace compatible con diversas plata!ormas como Linu,

8acintosh, 'olaris, etc#

4 !ot7a&* '* 'ist&i-u(i)n g&atuita sin l0+it* '* ti*+,o. ?tt,%*s.7i8i,*'ia.o&g7i8iF&**7a&*

Page 21: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 21/151

26

2 CAPITULO II: Tecnolo("a )ot*+T

2.1 Introducción:

La creciente demanda de los programadores para desarrollar aplicaciones

multimedia y 7eb obligaba a plata!ormas como 7indos a desarrollar sobre la

marcha A&(s <Application &rogramming (nter!ace= cada vez m"s elaborados y

complejos que carecían de documentación detallada y en muchos casos caían en

incompatibilidades y errores#

La solución empezó a dialogarse en las mesas de los ejecutivos de

8icroso!t a !inales de los B5Ps, y así en Oulio del 4555, su presidente, 0ill Jates

anunciaba al mundo en la Profesional Developer Conference <PDC$%  de Erlando

una vista preliminar de lo que sería una nueva plata!orma de desarrollo que

uni!icaría todos los "mbitos del so!tare, desde aplicaciones de escritorio

pasando por entornos 7eb, Dispositivos móviles, 0ases de Datos, entre otros#

*omo era de esperarse, 8icroso!t copio la idea que tan bien le estaba

!uncionando a la empresa 'un 8icrosystems con su lenguaje OA>A, y decidió

usar un compilador O(3 así como un lenguaje hibridado entre *GG y 0asic < *. =K# 

&ero no se con!ormaron solo con eso, pensaron en ir m"s all" y establecer

un est"ndar a nivel internacional y lograr que cualquier lenguaje de programaciónpueda ser usado con su tecnología, y que esta cubriera todos los "mbitos de

programación eistentesQ &EE, Jr"!icos, 8ultimedia, 0DD, 7eb, Dispositivos

móviles, Ouegos, etc#

5 ?tt,%777.+i(&osot.(o+$&*ss,ass,&*ss2666ul66,'(gat*s8*not*,&.+s,

= Con(lusion ,&o,ia '*l auto& 

Page 22: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 22/151

21

2.2 .*+T ,rame-or:

+l !rameor1, traducido al espa-ol como marco de trabajoM aunque se

recomienda mantener la palabra en ingl$s por su concepto dedicado, es el

corazón de la tecnología Dot2+3 y aunque !ue impulsada por 8icroso!t, en su

desarrollo intervinieron empresas comoQ Relett/&ac1ard , (ntel, (08, 6ujitsu

'o!tare, &lum Rall, la %niversidad de 8onash e ('+

  Jeneralizando un poco, se puede decir que el .NET Framework   es a la

tecnología 2+3 como el Java Virtual Machine, JRE y J2SE  es al Oava# +s decir,

el !rameor1 constituye el vínculo entre el sistema operativo y el programa

generado bajo la tecnología Dot2+3, dando así una transparencia al código alresolver el problema de incompatibilidad que se daba al tener que tomar en

cuenta el sistema operativo base, su versión, e incluso su con!iguración al

programar#

  %n dato muy importante que cabe recalcar es que muchos de los elementos

de la tecnología Dot2+3 !ueron estandarizados bajo normativas internacionales, y

por lo tanto abiertas a todo el mundo# La normativa que rige al #2+3 !rameor1 es

 Dibujo 1: .!" #rame$ork % &'()!: Propia del autor 

Page 23: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 23/151

22

la ECMA&''%( ISO)IEC *'*+,+# 0asado en esto la versión de 8icroso!t toma el

nombre deQ Microsoft .NET Framework  y no es el nico eistente, hoy en día

eisten varios aunque el de 8icroso!t constituye el m"s usado y !amoso; no

obstante la empresa -i.i"/ y m"s tarde No011, ambas encargadas de dar vida a

los programas de código libre entre ellos Linu, empezó con la tarea de crear un

#2+3 !rameor1 para todas los sistemas operativos, y al proyecto lo llamaronQ

MONO2, el cual ya esta disponible de !orma gratuita en su p"gina eb y ha tenido

mucha acogida por programadores de 7indos, Linu, 'olaris y 8ac E' F#

+l #2+3 6rameor1 se divide en las siguientes partesQ

● (n!raestructura comn de lenguajes o *L(

● La 0iblioteca de *lases 0ase o 0*L

● +ntorno *omn de +jecución para Lenguajes o *L9

/ ?tt,%777.+i(&osot.(o+$&*ss,ass,&*ss2666ul66,'(gat*s8*not*,&.+s, 

?tt,%777.+ono,&o*(t.(o+ 

Page 24: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 24/151

23

2.2.1 CLI 3Co..o/ L"/gu"g I/4r"s5ru65ur$

+l propósito del *L( es soportar una gran gama de lenguajes de

programación y traducirlos a un lenguaje comn propio del !rameor1 conocidocomo MSIL  <8icroso!t (ntermediate Lenguaje= que ser" usado luego por el

compilador O(3#

 Así, el *L( se encarga de brindar una in!raestructura que debe cumplir

todos los lenguajes que quieran !uncionar bajo la tecnología #2+3, adem"s se

encarga de la validación del mismo y de su respectiva compilación para alcanzar

el código 8'(L que ser" un lenguaje parecido al ensamblador y resultado !inal del

programa# +s decir un programa realizado en #2+3 nunca alcanza el lenguaje de

m"quina del computador por si solos, sino que queda epresado en este lenguaje

8'(L que cumple la misma !uncionalidad que el lenguaje llamado 0Y3+*ED+ en

Oava#

&uesto de esta manera, es posible usar cualquier lenguaje deprogramación que cumpla las especi!icaciones del *L( para poder usar la

tecnología #2+3, y es por esto que hoy en día tenemos varios lenguajes a nuestra

disposición# Los o!recidos por 8icroso!t sonQ C7( C88( Visu"1 9"si6 : ;7(  no

obstante muchas empresas han brindado a sus propios lenguajes de

programación la compatibilidad con el *L( del #2+3 !rameor1 de 8icroso!t, y es

así que hoy en día se puede encontrar lenguajes como< D1=>i?NET( Pr1(

P:5>o/( For5r"/ : Cobo1?NET entre otros# Rasta la !echa se han sumado m"s de

30 lenguaes de programaci!n" que pueden ser usados en la tecnología #2+3#

+l *L( posee internamente un compilador para cada uno de los lenguajes a

usarse, y es así que realizar un programa en >isual 0asic no va a ser igual que

realizarlo en un *., las di!erencias de velocidad, alcance, entre otras va a seguir

dando las mismas di!erencias que siempre# %n lenguaje eterno como los

?tt,%777.'otn*t,o7*&*'.(o+languag*s.as, 

Page 25: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 25/151

24

mencionados antes <Delphi, *obol, 6ortran, etc= deben de poseer un compilador

eterno, y claramente ser compatible con el *L( y m"s especí!icamente con el

*L' <*ommon Language 'peci!ication= que es la parte del *L( donde se

encuentran las reglas a seguir para validar o no un lenguaje, adem"s usar el *3'

<*ommon 3ype 'ystem= que es el encargado de brindar un sistema de tipos nico

para todos los lenguajes de programación, es decir, para todos los lenguajes

basados en #2+3 las variables como int, string, long, doubleM van a tener el

mismo tama-o en bits, y los mismos limites#

Page 26: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 26/151

25

2.2.2 9CL 39"s C1"ss Libr"r:$<

+sta biblioteca es un conjunto muy bien organizado de clases que abarcan

las !unciones m"s comunes para todo programador#

+st"n de!inidas como archivos DLL lo que signi!ica que est"n en código 8'(L y

por lo tanto pueden ser usadas de !orma transparente por cualquier lenguaje #2+3

 Aquí una lista de las principales !uncionalidades que se pueden encontrar en esta

biblioteca de clasesQ

● (nteracción con los dispositivos peri!$ricos

● 6ormularios y componentes para aplicaciones de escritorio <7indos

6orms=

● 8anejo de datos <ADE#2+3=

●  Administración de memoria

● 3ransmisión y recepción de datos por distintos medios <F8L, 3*&I(&=

●  Administración de componentes 7eb que corren tanto en el servidor como

en el cliente <A'&#2+3=

● 8anejo y administración de ecepciones

● 8anejo del sistema de ventanas

● Rerramientas de despliegue de gr"!icos <JD(G=

● Rerramientas de seguridad e integración con la seguridad del sistema

operativo

● (nteracción con otras aplicaciones

● 8anejo de cadenas de caracteres y epresiones regulares

● 8anejo de archivos, !icheros y streams#

● Eperaciones aritm$ticas

● 8anipulación de !echas, zonas horarias y periodos de tiempo

● 'erialización

Page 27: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 27/151

2=

● 8anipulación de archivos de im"genes

● Jeneración de código

● 8anejo de idiomas

● (nteracción con el A&( 7in4 o 7indos A&(#

Page 28: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 28/151

2/

2.2.3 CLR 3Co..o/ L"/gu"g Ru/5i.$

+s el verdadero ncleo de la tecnología #2+3, se encarga de las !unciones

principales de un buen motor de ejecución, cumpliendo tambi$n las !unciones dedepuración, organización de memoria, seguridad y m"s#

Las !unciones que cumple sonQ

• *arga las di!erentes clases de la 0*L, recursos y las uni!ica al programa#

• 8aneja la iteración con antiguos componente *E8 que no son propios de

la tecnología #2+3

• *ontrola todos los recursos de memoria para soportar hilos <threads=

• >eri!ica y valida los di!erentes tipos a usarse

• *ontrola las ecepciones

• 8otor de seguridad

8otor de depuración• *ontrolador de código en general

• 9ecolector de basura <Jarbage *olector J*M=

• *ompilador O(3

+l *ompilador O(3 <Oust/(n/3ime= es un motor que corre en tiempo real generando

a partir del código 8'(L un lenguaje de m"quina propio de cada computador# +ste

es en realidad el que otorga a la tecnología #2+3 la compatibilidad con los

di!erentes sistemas#

Page 29: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 29/151

2

*uando uno realiza un programa en la tecnología #2+3, este programa ya en su

etapa de release, por ejemplo un ejecutable +F+; el #2+3 !rameor1 lo deja

epresado en el código 8'(L, cuando es ejecutado el programa, el motor O(3 lo

trans!orma en tiempo real al lenguaje de m"quina del computador local# +n caso

de que el programa !uese usado en otra computadora con otro sistema operativo

y otro procesador# +l programa ser" interpretado por el motor O(3 de la otra

m"quina, como el lenguaje 8'(L sigue siendo el mismo, el motor O(3 del nuevo

computador traducir" en tiempo real el código 8'(L a un nuevo lenguaje de

m"quina perteneciente a esta nueva computadora# Etorgando así la !leibilidad de

tener un programa que pueda correr en varias computadoras con di!erentes

con!iguraciones, siendo el !rameor1 el encargado de realizar los cambios

respectivos, dando al programador total transparencia#

Page 30: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 30/151

2

2.2.$ RESUMEN

&ara simpli!icar las cosas, podemos decir que el !rameor1 es el motor que

corre entre el usuario y el sistema operativo, siendo claramente indispensabletenerlo instalado en la computadora donde se quiera ejecutar cualquier programa

bajo la tecnología #2+3

+l !rameor1 es un est"ndar a nivel mundial, siendo 8icroso!t la empresa

que lo impulso y por lo tanto la pionera en esta tecnología#

+l 8icroso!t #2+3 6rameor1 es la versión de 8icroso!t de este !rameor1, y es

completamente gratuito, pudiendo ser descargada desde el (nternet# &ero no es el

nico !rameor1 bajo la tecnología #2+3, el proyecto 8E2E es una alternativa al

!rameor1 de 8icroso!t impulsado por la grande del código libre 2ovell#

+l !rameor1 se divide en tres partes !undamentalmenteQ

• +l *L(, encargado de compilar y validar un código escrito en muchos de los

lenguajes de programación eistentes para la tecnología #2+3 y dar como

resultado un código ensambler virtual conocido como 8'(L#

• +l 0*L es la biblioteca de clases en las que se encuentran todas las

!unciones m"s comunes que un programador pueda requerir para una

aplicación#

• +l *L9 es el motor que ejecuta el código 8'(L y lo trans!orma al código de

m"quina requerido de !orma di!erente en cada computador#

Page 31: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 31/151

36

 Dibujo 2: !structura del #rame$ork % &'()!: Propia del autor 

*. >0#2+3

CLI / Common Lan(ua(e In#rastructure 0

 8'(L

1CL /1ase Class Librar&0

CL2 /Common Lan(ua(e 2untime0

 8'(L

D55D5DD5DD5DD5DDD5

'('3+8A E&+9A3(>E

8icroso!t #2+3

6rame;or1

Page 32: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 32/151

31

2.3 I)+ /Inte(rated )eelopment +nironment0 para .*+T:

*omo todos sabemos un (D+ es una #ntorno $ntegrado de Desarrollo que

brinda a un programador varias herramientas entre ellas una inter!az gr"!ica deusuario <J%(=, un int$rprete, coloración de sintais entre otras; para !acilitar el

trabajo a la hora de programar#

+l #2+3 6rameor1 como vimos anteriormente consta internamente de

compiladores para los lenguajes promocionados por 8icroso!t, entre los que se

encuentran *. y >isual 0asic principalmente# 3eniendo la posibilidad de realizar

nuestros programas sin pagar un solo centavo por licencias de programas, al ser

como ya dijimos el #2+3 !rameor1 una aplicación !reeare que se puede

descargar de (nternet#

&ero hay que estar consientes que esto involucra escribir nuestro código en

algn editor de teto que ya dispongamos como el 0loc de 2otas, y hacer la

respectiva compilación desde un entorno de consola de comandos <DE'=# Asícomo no disponer de dise-adores gr"!icos para las aplicaciones con !ormularios

lo que resulta un dolor de cabeza#

Dado el mencionado problema, vemos la gran ayuda que signi!ica el uso de

un (D+ para la tecnología #2+3, y es aquí que 8icroso!t lanza al mercado el (D+

m"s usado en el mundo para esta tecnología, conocido comoQ Mi6roso45 Visu"1

S5udio?NET, que sirve como (D+ para todos los lenguajes de 8icroso!t, no

obstante si se desea un (D+ para un lenguaje nada m"s podemos encontrar uno

dedicado a >isual 0asic llamado Mi6roso45 Visu"1 9"si6?NET, o para *.

conocido como Mi6roso45 Visu"1 C7?

Page 33: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 33/151

32

&ero cabe recalcar que el paquete 8icroso!t >isual 'tudio#2+3 es tan solo

un (D+ de la tecnología #2+3 y no el motor indispensable# De ahí que no es el

nico (D+ eistente en el mercado, aunque si el mejor y por lo tanto el m"scostoso#

 Dibujo *: (D! +isual ,tudio.!" % &'()!: -icrosot +isual ,tudio .!"

200

Page 34: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 34/151

33

Race varios a-os ya, un grupo de personas empezaron la tarea de o!recer a los

programadores de #2+3 un (D+ !reeare y de ahí que hoy podemos descargar de

!orma gratuita el tan !amoso S>"r=D01o=

<#icsharpcode#netIEpen'ourceI'D= que por menos de 580 <versión 4#5= ,

podemos tener un (D+ de altísimo nivel, igualando en casi todos los aspectos al

(D+ de 8icroso!t#

 Dibujo : (D! ,harpDeelop % &'()!: ,harpDeelop 2.0

 

'harpDevelop tuvo tan buena acogida en el mercado de los programadores

a nivel mundial que obligo a 8icroso!t a hacer algo que hace algunos a-osparecía imposible que lo llegue a hacer, me re!iero concretamente a su versión

+press del paquete 455C, el cual da a sus usuarios una versión !reeare de su

(D+ del cual hablaremos m"s adelante#

 Ambos (D+s cumplen los requisitos mínimos que un programador necesita,

entre ellos, un dise-ador gr"!ico de !ormularios, coloración de sintais, coloración

de errores, base de datos de los m$todos y propiedades de una clase <lista que

Page 35: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 35/151

34

aparece indicando los m$todos y variables que posee una clase=, depuración,

entre otros# 2o obstante cabe se-alar que segn mi apreciación personal, la

versión de 8icroso!t es un poco m"s r"pida y consta de mejores herramientas

que el 'D, aunque se debe tomar muy en cuenta que el >isual 'tudio viene en 4

*Ds en comparación a los 580 del 'harpDevelop#

2.$ ersiones del .*+T ,rame-or:

Desde el a-o 4555 cuando !ue presentada la idea de la tecnología #2+3, se

empezó a trabajar en la construcción de un !rameor1 que alcanzara tal nivel de

pro!undidad que se pueda construir todo un sistema operativo sobre $l# Ran

pasado casi H a-os desde entonces y las ambiciones de 8icroso!t se est"n

materializando#

2.$.1 ?NET Fr".@or 0,?B< 

'u primera versión vio la luz a !inales del 455 y vino de la mano con la salida de

Visu"1 S5udio?NET *BB* o vH#5, la que incluía claro la versión H de >isual 0asic y

la primera versión de *., este nuevo lenguaje que m"s adelante le dedicaremos

principal atención#

2.$.2 ?NET Fr".@or 0,?,< 

&oco tiempo despu$s de la salida de su primera versión, los cambios y parches

en el !rameor1 eran tan grandes que obligaron a sacar al mercado una versión

# del !rameor1 acompa-ada del Mi6roso45 Visu"1 S5udio *BB' que incluía a

>isual 0asic H# y a *. # # +sta versión es por muchos considerada la primera y

dejo completamente descontinuada a la 4554#

La gran acogida de esta tecnología por los programadores de todo el mundo

sorprendió hasta a los mismos ejecutivos de 8icroso!t, incrementando sus

usuarios en una proporción geom$trica jam"s vista#

+s aquí cuando 'harpDevelop sale al mercado con su versión #5

Page 36: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 36/151

35

2.$.3 ?NET Fr".@or 0*?B< 

&ara el 455C, la llegada de la segunda versión rompió todos los esquemas, dando

completa integración a los programas desarrollados en las versiones anteriores,acompa-ada por el Mi6roso45  Visu"1 S5udio?NET *BB%, la que incluía claro la

versión ? de >isual 0asic y la tan esperada segunda versión de *.# Las mejores

son muy considerables a todo nivel y es actualmente la versión m"s usada en el

mundo para las aplicaciones #2+3, integrando cientos de programas escritos en

esta tecnología, por mencionar alguno al propio Auto*AD 455H de la !irma

 AutoDes1# 'harpDevelop claro, lanzó su segunda versión con este nuevo #2+3

6rameor1#

2.$.$ ?NET Fr".@or 0'?B< 

 Actualmente la acogida en el mundo de los programadores de #2+3 es tan grande

y sobretodo tan creciente que 8icroso!t decidió jugarse todo por el todo con esta

tecnología, y así la llegada del !rameor1 #5 en estas !echas <+nero 455H= nos

trae no solo una versión mejorada, sino la gran sorpresa que quedar" escrita enlos libros, me re!iero concretamente la llegada del nuevo 7indos >ista, el primer

sistema operativo escrito en su totalidad en código 8'(L, es decir en un lenguaje

de alto nivelM, rompiendo la tradición de escribirlo en lenguaje de m"quina# Las

ventajas de este hecho hace que todo el sistema operativo y por lo tanto todos

programas estar"n basados en la tecnología #2+3 y por lo tanto al hacer una

aplicación en #2+3 estaremos al mismo nivel que todo, teniendo completo control

y transparencia#

8icroso!t ha anunciado el desarrollo de una versión #C del !rameor1,

cuyo (D+ est" bajo el nombre clave de ORCAS y ser" la versión 455? del >isual

'tudio#

Page 37: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 37/151

3=

2.% C4 /56arp07 +l len(uaje predilecto del .*+T #rame-or:

+l lenguaje m"s usado de todos los tiempos sin duda es el *GG por su gran

alcance, sin embargo su inminente di!icultad hizo que lenguajes tan super!icialesM

como el 0asic llegaran a las manos de todos por su sencillez y sobretodo por su

velocidad de desarrollo#

Oava, a !inales de los B5, propondría un nuevo lenguaje que hibridara la

sencillez del 0asic con la potencialidad del *GG, marcando un interesanteequilibrio entre los dos# La acogida de este lenguaje marco la historia, teniendo

hoy en día a Oava entre los primeros lenguajes de programación m"s usados en

el mundo entero#

 Así es como 8icroso!t aposto a la creación de un nuevo lenguaje similar a

Oava, y para esto contrato a una leyenda de la programación, encargada de dar

vida al &ascal y a Delphi, me re!iero a A/drs j1sbrg,B, que !ue el arquitectode *. y uno de los encargados de dar vida a la tecnología Dot2+3#

'u sintais se apega a una derivación del *, como casi todos los lenguajes

lo han hecho, !ormando poco a poco en lo que algn día, creo yo, ser" un

est"ndar# +sto es la utilización de ;M para el !in de instrucción, el uso de llaves

S TM, la distinción entre maysculas y minsculas, por mencionar algunas#

16 ?tt,%*s.7i8i,*'ia.o&g7i8iAn'*&s_*ls-*&g 

Page 38: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 38/151

3/

 Adem"s el *. constituye el lenguaje clave para la tecnología #2+3, de ahí

que todo lo que se pueda hacer con esta tecnología, se podr" hacer desde *.,

siendo el resto de lenguajes los que se deban acoplar#

&or citar un ejemplo, el propio (D+ antes mencionado, el 'harpDevelop

esta escrito en su totalidad en *.# 3eniendo en este lenguaje entre los 5 m"s

usados en el mundo, lo que es un r$cord tomando en cuenta que la vida de *. es

de tan solo C a-os con respecto a Oava que lleva m"s de C a-os#

3digo 1: !jemplo de c3digo escrito en 4 % &'()!: Propia del 5utor 

 public Form1() {  InitializeComponent(); }

 private Stopwatch temporizador; private const int cuantasCadenas = !!!!; private void btnCalcular"Clic#(ob$ect sender% &vent'rs e) {  btnCalcular&nabled = *alse;  btnCalcular+e*resh();  ,, -a prueba de Strin.uilder (/ue tarda menos)  thist0tStrin.uildere0t = 23rueba4  ,, -a prueba de Strin (/ue tarde un poco m5s)  thist0tStrine0t = calcularStrin()oStrin();  btnCalcular&nabled = true;

  btnCalcular+e*resh(); }

Page 39: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 39/151

3

2.8 Trabajando con )ot*+T

2.8.1 Introducción:

*omo ya lo había mencionado, dentro de todos los lenguajes que se

pueden usar dentro de la tecnología Dot2+3, vamos a usar el *. <'harp= puesto

que es el lenguaje por ecelencia de Dot2+3, es decir, el *. constituye un

lenguaje creado eclusivamente para esta tecnología y por ende resulta el m"s

compatible y en $l se pueden eplotar al m"imo todas las herramientas que

brinda Dot2+3#

 Al igual que la mayoría de lenguajes de cuarta generación, el *. brinda

una programación estructurada, programación orientada a objetos <&EE=, y

dem"s# &ero en el desarrollo del presente trabajo se utilizaron algunas

herramientas poco usuales en cuanto a este lenguaje y tecnología se re!iere,

como esQ

+l motor gr"!ico JD(G propio de la tecnología Dot2+3 que nos da la !acilidad de

dibujar a un ecelente nivel, pudiendo resolver !"cilmente los problemas deparpadeo que aparecen siempre que intentamos realizar algn tipo de animación,

solo por poner un ejemplo#

+l uso de punteros que era una tarea casi eclusiva para *GG, ahora se

puede hacer desde *., claro, usando ciertas protecciones para combinar el

código administrado por el motor de la tecnología Dot2+3 <código seguro= y el

código en el que usamos punteros <código no seguro=#

 A estas herramientas le aumentamos el uso de hilos para poder correr

varios procesos en paraleloM y una eplicación de como crear controles de

usuario encapsulados en una DLL para poder usarlos desde cualquier lenguaje de

esta tecnología y tendremos todas las herramientas que se han usado en el

desarrollo del presente trabajo#

Page 40: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 40/151

3

2.8.2 9otor !r#ico /!)I;0:

+l JD( por sus siglas en inglesQ Gr"=>i6s D0i6 I/5r4"6,,, es el motor

gr"!ico del sistema operativo indos, y constituye, como todo motor, de un A&(programado originalmente en *GG que nos permite usar esta librería# +sta librería

gr"!ica ha sido modi!icada constantemente para cubrir los grandes avances de las

presentaciones gr"!icas, y es así que para indos F&, los desarrolladores de

microso!t re/hicieron toda la librería gr"!ica dando nacimiento al JD(G, que como

su nombre lo indica es una evolución del mismo#

La tecnología Dot2+3 ha incluido una librería de comunicación directa y en

bajo nivel al JD(G de indos, d"ndonos así la posibilidad de usar esta potente

herramienta de !orma natural y sencilla desde cualquier lenguaje de Dot2+3#

+l JD(G se divide en tres partes principalmenteQ

● Dibujo en 4DQ +sta parte permite dibujar lineas, cuadrados, elipses, y

dem"s !iguras en cualquier parte de nuestros controles, incluyendo los

!ormularios# A esta parte se le ha agregado varias !uncionalidades muy

tiles como los degradados, sistema de colores A9J0, es decir incluyendo

el componente de Al!a que da niveles de transparencia; entre otras

mejoras#

● 8anejo de im"genesQ *on esta parte podemos abrir, manipular y guardar

im"genes que abarcan todos los !ormatos conocidos, como son el 08&,

O&J, J(6, &2J, entre otros# La manipulación de las mismas se la puede

hacer piel por piel, o con matrices de trans!ormación y rotación#

● 8anejo de 3etosQ JD(G incluye un completo algoritmo para le manejo detetos en el dibujo, pudiendo usar degradados, estilos de linea y m"s en la

gra!icación de tetos#

+n *., el uso de esta librería se da por medio del ensambladoQ S:s5.?Dr"@i/g 

Nue a su vez contiene varios ensamblados y clases como por ejemploQ

Draing4D, 3et, (maging, etc#

11 ?tt,%777.+i(&osot.(o+7?'(a&(?iv*GDIn*t.+s, 

Page 41: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 41/151

46

2.6.2.% &ien'o ()raphics*:

+l lienzo, epresado en una clase de nombre Gr"=>i6s, es la clase base

para poder dibujar cualquier cosa en JD(G# Y pues, igual que un lienzo real, es loprimero que hay que tener antes de dibujar aun quesea una linea# +n Dot2+3, el

lienzo es de color transparente y puede ser etraído de casi cualquier lado,

teniendo entre las !ormas m"s comunes las siguientesQ

● es!e una "ma#en$  3eniendo un objeto de tipo I."g  o 9i5."=  que

luego trataremos m"s a !ondo, podemos etraer un lienzo con el siguiente

códigoQ

G&a,?i(s g G&a,?i(s.F&o+I+ag*9i+ag*n:S

● es!e un %ontrol$ 3eniendo cualquier control con inter!az gr"!ica, como

un !ormulario, botón, etiqueta, panel, u otro controlQ

G&a,?i(s g control .C&*at*G&a,?i(s9:S

● &san!o el evento '("NT$  3odos los controles poseen un evento

denominado &A(23, que se genera cuando indos requiere volver a

dibujar dicho control# Así podemos capturar este evento y como argumentodel mismo, tenemos a nuestra disposición el lienzo u objeto Jraphics con

el que podemos alterar lo dibujado en el control#

 ,&ivat* voi' (ont&ol_$aint9o-*(t s*n'*&@ $aintEv*ntA&gs *:

G&a,?i(s g *.G&a,?i(sS

U

+isten varias !ormas m"s de conseguir un lienzo, pero estas son las m"s

usadas# *abe recalcar que cuando se etrae el lienzo de una imagen, todos los

dibujos se quedan intrínsecamente en la imagen y por lo tanto mantiene sus

modi!icaciones# &ero cuando se etrae el lienzo desde un control directamente,

los dibujos realizados sobre este se ejecutan una nica vez, y esto se re!leja al

minimizar por ejemplo el !ormulario, los dibujos se habr"n borrado al restaurar el

!ormulario# &ara lograr que el control mantenga sus dibujos siempre, se usa el

evento &A(23, así se dibujara cada vez que se lo solicite#

Page 42: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 42/151

41

2.6.2.2 &+pices (Pen*:

Los l"pices son clases que representan el estilo con el que se quiere

dibujar la silueta o contorno de algo# &or ejemplo, para crear un l"piz de color Azuly de un grosor de se usaría el siguiente códigoQ

$*n ,1 n*7 $*n9Colo& .;lu*@3:S

+sta clase es muy completa, puesto que permite crear lapices con distintos

colores, teturas, !ormas de empezar como una !lecha por ejemplo, etc#

2.6.2.3 ,rochas (,rush*:

Las brochas son clases que sirven para rellenar un dibujo# &rincipalmente se

puede tenerQ

● 'olid0rush Q +s una brocha de un solo color#

!oli';&us? s-1 n*7 !oli';&us?9Colo& .G&**n:S

● Ratch0rush Q +sta brocha combina dos colores de varias !ormas

predeterminadas#

at(?;&us? -1 n*7 at(?;&us?9at(?!tl*.!?ingl*@ Colo& .;lu*@ Colo& .R*':S

 

● LinearJradient0rush Q &ermite usar una gradiente lineal de varios colores#

Lin*a&G&a'i*nt;&us?  l-1 n*7  Lin*a&G&a'i*nt;&us?

9n*7 $oint96@ 56:@ n*7 $oint9166@ 56:@ Colo& .;lu*@ Colo& .R*':S

 

● &athJradient0rushQ +sta permite una gradiente de !orma circular de varios

colores#

G&a,?i(s$at? g,1 n*7 G&a,?i(s$at?9:S

  g,1.A''R*(tangl*9n*7 R*(tangl*96@6@166@166::S  $at?G&a'i*nt;&us? ,-1 n*7 $at?G&a'i*nt;&us?9g,1:S

Page 43: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 43/151

42

  ,-1.C*nt*&Colo& Colo& .Lig?tV*llo7S

  ,-1.!u&&oun'Colo&s n*7 Colo& WX Colo& .Lig?tG&**n@ Colo& .Lig?tG&**n@

Colo& .G&**n@ Colo& .Da&8G&**n US

● 3eture0rush Q *on esta brocha podemos usar una imagen como papel

tapiz de nuestro relleno#

T*tu&*;&us? t-1n*7 T*tu&*;&us?9I+ag*.F&o+Fil*9YZC%[guill*.,gZ::S

2.6.2.- iguras ,+sicas:

+ntre los m$todos que encontramos en el lienzo <Jraphics=, se ven

claramente dos grupos, los llamados D9A7 y los llamados 6(LL, con quienes se

pueden gra!icar todas las !ormas b"sicas de dibujo como son las lineas,

rect"ngulos, elipses, teto, etc#

Los D9A7 est"n basados en l"pices, por lo tanto solo dibuja siluetas o

contornos# Así se puede tener los siguientes códigosQ

g.D&a7Lin*9,1@ 6@ 6@ 166@ 166:S g.D&a7R*(tangl*9,2@ 166@ 166@ 266@ 266:S

g.D&a7Elli,s*9,1@ 166@ 166@ 56@ 56:S g.D&a7Elli,s*9n*7 $*n9Colo& .R*':@ 166@ 166@

156@ 56:S

Page 44: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 44/151

43

3odos los m$todos del tipo D9A7 dentro de la clase Jraphics sonQQ

D&a7A&(

D&a7;*i*& 

D&a7Clos*'Cu&v*

D&a7Cu&v*

D&a7Elli,s*

D&a7I(on

D&a7I+ag*

D&a7I+ag*#ns(al*'

D&a7Lin*

D&a7Lin*s

D&a7$at?

D&a7$i*

D&a7$olgon

D&a7R*(tangl*

D&a7R*(tangl*s

D&a7!t&ing

&or otro lado, cuando usamos los m$todos 6(LL, estos est"n dirigidos a rellenarlas !ormas, así tenemos lo siguienteQ

g.FillElli,s*9s-1@ 6@ 6@ 166@ 166:S g.FillElli,s*9?-1@ 6@ 6@ 166@ 166:S

g.FillR*(tangl*9,-1@ 6@ 6@ 166@ 166:S g.FillElli,s*9t-1@ 6@ 6@ 366@ 366:S

*omo se ve, en los ejemplos usamos las distintas brochas que creamos

anteriormente#

Page 45: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 45/151

44

La lista de m$todos 6(LL dentro de la clase Jraphics sonQ

6ill9egion

6ill9ectangle

6ill9ectangles

6ill&olygon

6ill&ie

6ill&ath

6ill+llipse

6ill*losed*urve

2.6.2. aneo de $m+genes:

+l manejo de im"genes es muy etenso, y como no se uso el tema en el

presente trabajo, solo dar$ una breve introducción a lo que a im"genes se re!iere#

+l JD(G divide el trato de im"genes en dos grandes clases#

IMAGE<  +s la clase que soporta una im"gen y est" en!ocada a tratar la

manipulación de la imagen a un nivel de archivo# +s decir, abrir la imagen, grabar

en un !ormato establecido, etraer in!ormación de la misma, presentarla en un

&citure0o, etc

I+ag* i+ag*n1 I+ag*.F&o+Fil*9YZC%[guill*.,gZ:S

IT9AP:  Esta (las* ta+-iPn (onti*n* una i+ag*n ,*&o *st *no(a'a al t&ato '* los

 ,i*l*s '* la i+ag*n. Es '*(i&@ *n (uanto a +o'ii(a& los ,i*l*s s* t&ata@ *st* o-*to *s *l

Hu* lo ,*&+it* ?a(*&. A'*+s@ *sta (als* ,*&+it* instan(ia&s* a 'i*&*n(ia '* la IAGE@

(&*an'o as0 una nu*va i+ag*n.

;it+a, -+1 n*7 ;it+a,9166@ 166:S

Page 46: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 46/151

45

+stas dos clases !uncionan casi siempre a la par, puesto que cada una contiene

!uncionalidades requeridas a lo largo de un trabajo de procesamiento de

im"genes# Y son 55U compatibles en cuanto a intercambiabilidad se re!iere# +s

decir, si se requiere pasar una imagen para que sea un objeto 0(38A& o (8AJ+,

basta con hacer el debido castingQ

i+ag*n1 9I+ag*:-+1S

 -+1 9;it+a,:i+ag*n1S

&ara tratar con cada uno de los pieles, es necesario tener la imagen en un objeto

0(38A& y usar los m$todosQ

 -+1.G*t$i*l9@ :S

 -+1.!*t$i*l9@ @ Colo& .R*':S

Donde F,Y son las coordenadas del piel que se quiere leer o escribir# +l piel

esta representado por un color que es toda una clase que brinda !acilidades para

el trato de colores#

Page 47: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 47/151

4=

2.8.3 Punteros:

2ormalmente, las variables, objetos o recursos que usamos en nuestros

programas son alojados de !orma din"mica en la memoria 9A8 de nuestrocomputador, esto signi!ica que dependiendo de las necesidades del sistema

operativo, este tiene la potestad de mover los espacios de memoria 9A8 que

usamos# Jracias a esto, conseguimos que nuestros programas no inter!ieran con

otros que puedan estar corriendo en un computador# 2o obstante, algunas veces

es necesario alojar un paquete de datos en la memoria 9A8 y que este no se

mueva de ahí en un tiempo, adem"s, al tenerlo !ijo es posible acceder a estos

datos de !orma directa# A esto se le conoce como Atacar directamente a lamemoria 9A8M# Las ventajas que se consiguen al hacer esto es principalmente

velocidad#

+n *., el uso de punteros es conocido como *ódigo 2E/'+J%9EM o

U/SAFE, puesto que al tener acceso directamente a la memoria 9A8 de la

computadora, es posible inter!erir con otros programas y llegar al colapso de

varios de ellos# &or esto hay que tener varias consideraciones, que van desde

usar correctamente las variables o punteros, hasta tener en cuenta el tama-o del

banco de datos que nos perteneces y no sobrepasarlo porque podremos alterar

otros valores de algn otro proceso#

&asos para escribir un código no seguro en *.#

# Avisar al compilador que permita el código no seguro# +sto se hace en las

propiedades del proyecto <*lic derecho VV &ropiedades=, en la pesta-a

0%(LDM hay una opción que indica poder habilitar el código no seguro#

 (llow unsafe co!e

Page 48: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 48/151

4/

4# Declarar los m$todos que van a contener el código con punteros como

%2'A6+

 ,u-li( unsa* voi' $&o(*sa&9 -t*WX -u:

 

# 6ijar o congelar una variable u objeto en la memoria 9A8 con el comando

6(F+D#

i*' 9 -t*\ , -u:

W# %sar los punteros de la misma !orma que se hace en *GG, esto es, usar el

puntero para indicar la dirección en la memoria 9A8# %sar el pre!ijo

asterisco < : = para indicar lo +speci!icado porM, es decir, para indicar elcontenido de esa dirección de la 9A8#

63untero = 77; ,,&scribir en la direcci8n indicada por el

puntero el valor de 77

3untero99; ,,'uemntar la direcci8n de la memoria +':

 Dibujo : abilitar 3digo o ,eguro %&'()!: +isual ,tudio.!" 200

Page 49: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 49/151

4

Ej.=1o< 8$todo que dado un vector de entrada, rellene todo el vector con el

valor de 55#

3digo 2: !jemplo del uso de punteros % &'()!: Propia del 5utor 

 public unsa*e void 3rocesar(bte< bu**) {  *i0ed (bte6 p = bu**)  {  bte6 pp = p;  *or(bte i=! ; i > bu**-enth ; i99)  {  6pp = 1!!;

pp99;  }

}

 }

Page 50: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 50/151

4

2.8.$ <ilos /T6reads0:

%n computador realiza varias tareas simult"neamenteM, por ejemplo,

escuchamos msica mientras jugamos solitario y estamos descarg"ndonos algnarchivo del (nternet#

*ontando los procesos propios del sistema operativo y dem"s programas,

tenemos cerca de 5 procesos corriendo simult"neamente en nuestro

computador# &ero nosotros sabemos que casi toda computadora tiene

nicamente un procesador, y bueno, ahora se habla de dos procesadores

!uncionando en paralelo, pero aun así no son 5 procesadores, para cada

programa# Así que lo que se hace, es dividir todos los procesos en peticiones muy

peque-as, y estas son enviadas al procesador; trabajo realizado por el sistema

operativo de !orma transparente para nosotros# Así el procesador solo e!ecta una

nica operación a la vez, pero como hace un pedacito de cada uno, este se

aprecia como si lo hiciera todo a la vez#

*uando nosotros realizamos un programa, este es un proceso m"s para el

sistema operativo, sin embargo es un proceso casi siempre de un solo hilo# Y así

un hilo no es m"s que un sub/proceso que corre independientementeM de los

otros#

&ara aclarar mejor la idea, es muy comn usar los controles 3(8+9 en nuestros

programas# +stos pueden ser muy !"cilmente programados, basta un contador

que llame a un m$todo cuando el tiempo establecido haya !inalizado, sin embargo

si lo program"ramos de la !orma tradicional, mientras el programa realiza el

conteo del timer, no podríamos hacer nada m"s# +s así que un 3imer esta

programado en otro hilo# +sto signi!ica que se ha creado otro proceso

independiente para que realice el conteo, y este est" muy aparte del proceso

normal de nuestro programa#

Page 51: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 51/151

56

+n Dot2+3 v4, han implementado un control llamado 0ac1ground7or1erM que es

un completo control que permite empezar un proceso en un hilo nuevo# +ste

control nos brinda las !acilidades de crear uno o varios procesos en hilos

di!erentes para que puedan correr simult"neamente#

Rilo

ilo 4

 Dibujo 6: #lujo de ilos % &'()!: Propia del autor 

$&og&a+a $&in(i,al

Cont*o '*l Ti+*& 

Page 52: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 52/151

51

2.8.% Creación de Controles de Usuario:

Los controles de usuario nos brindan varias ventajas, entre las m"s

importantes consta la compatibilidad de ser usada sin problema desde cualquier

lenguaje soportado por Dot2+3; así un control desarrollado en *. puede ser

usado desde >isual0asic#2+3 por ejemplo# Adem"s nos brinda protección al

código, puesto que se encuentra compilado y encapsulado en un DLL# &or otro

lado se puede programar el control pensando en una programación de usuario,

esto es, dejando comentarios en F8L para que el motor de >isual 'tudio

encargado de las !acilidades de programación como listas, comentarios de

argumentos, entre otros, pueda usar nuestros propios comentarios; adem"s el

uso correcto de propiedades y dise-o gr"!ico nos da la posibilidad de usar nuestro

control en la plantilla de dise-o#

+isten dos tipo de controles que se pueden crear, los llamados

CONTROLES propiamente dichos son aquellos que constan de una inter!az de

usuario gr"!ica, por ejemplo los botones, las etiquetas, !ormularios, etc# 'e

muestran de !orma gr"!ica en nuestro monitor# &or otro lado eisten controles que

no tienen inter!az gr"!ica que toman el nombre de COMPONENTES y entre estos

se encuentran controles como el 3imer, 'erial&ort, Data'ets, entre otros# 'i bien

el concepto de control o componente puede ajustarse a ambos casos, se usa esta

di!erencia para separar ambos casos, puesto que en la parte de dise-o, ambos

son tratados de !orma di!erente#

Page 53: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 53/151

52

Los pasos a seguir para la creación de un control sonQ

# *rear un proyecto nuevo y elegir la plantilla *lass LibraryM, el nombre del

nombre del proyecto asignado ser" el nombre del ensamblado y del

archivo DLL generado al !inal#

4# Agregar un nuevo *ontrol de %suario# &ara esto basta hacer clic derecho

encima del proyecto en el eplorador de soluciones y elegir la opciónQ Add

VV 2e (temM y seleccionar la plantillaQ %ser *ontrolM para crear un control

y *omponent *lassM para un componente#

 Dibujo 7: ueo Pro8ecto lass Librar8 % &'()!: +isual ,tudio.!" 200

Page 54: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 54/151

53

# &rogramar el control o componente con sus respectivos valores,

propiedades, comentarios, inter!az gr"!ica, etc#

W# *ompilar el control ya sea bajo D+0%J o 9+L+A'+# Al hacerlo saldr" un

mensaje avisando que una biblioteca de clases compilada, crea un DLL

pero este no puede ejecutarse de !orma independiente# De esta !orma,

podemos revisar la carpeta 0(2 de nuestro proyecto y veremos ahí el

archivo DLL creado#

NOTA?& 'e puede abrir el archivo (ssem)ly"nfo.cs que est" dentro de la carpeta

&ropiedades del proyecto, y modi!icar los indicadores con que se compila el DLL,

estos indicadores sonQ

 Dibujo 9: ueos componentes o controles % &'()!:

+isual ,tudio.!" 200

3digo *: 5ssembl8(no % &'()!: Propia del autor 

  <assembl? 'ssemblitle(@:isControles@)  <assembl? 'ssemblAescription(@Controles propios@)  <assembl? 'ssemblCon*iuration(@@)  <assembl? 'ssemblCompan(@SI-&C@)  <assembl? 'ssembl3roduct(@:isControles@)  <assembl? 'ssemblCopriht(@Aann -8pezBCopriht !!D@)  <assembl? 'ssemblrademar#(@@)  <assembl? 'ssemblCulture(@@)

Page 55: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 55/151

54

+n la elaboración de un control de usuario eisten W cosas a tomar en cuentaQ

# Pro=id"ds<  *omo bien sabemos, las propiedades no son m"s que

variables encapsuladas, pero en la creación de controles estas son usadas

para acceder desde la ventana de propiedades en tiempo de dise-o# &or

ejemplo, si creamos una propiedad llamada *olor9ectanguloM de tipo

*ELE9#

4# M5odo O/PAINT?& +ste m$todo est" en la clase %ser*E239EL4 de lacual heredamos nuestra clase, por lo tanto para tener acceso a este

m$todo tenemos que sobre/escribirlo de esta !ormaQ

12 ?tt,%+s'n2.+i(&osot.(o+*nusli-&a&+s1/3639<!.6:.as, 

3digo : rear una Propiedad % &'()!: Propia del autor 

 private Color color+ = Color.lue; public Color Color+ectanulo{  et  {  return color+;  }

  set  {  color+ = value;  } }

3digo : -todo P5(" % &'()!: Propia del autor 

 protected override void En3aint(3aint&vent'rs e) {  raphics  = eraphics;

  ,,'/uG se inresa todo el c8dio para ra*icar en el control  Araw+ectanle(3ens.lue% 7!% 7!% !!% !!);  baseEn3aint(e); }

Page 56: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 56/151

55

+n este ejemplo estamos dibujando un rect"ngulo de color azul en el

control y este aparecer" incluso en el tiempo de dise-o cuando lo coloquemos en

un !ormulario# De este modo solo basta un buen dote artístico para crear

controles gr"!icos, por ejemplo un 'itch, un L+D, u otros#

*ombinando las propiedades y este m$todo podemos probar el siguiente

códigoQ

 

*omo podemos ver, luego de cambiar el valor de la propiedad

Co1orR65"/gu1o, colocamos una llamada al m$todo I/0"1id"5 del control, queobliga a ejecutarse de nuevo el m$todo En&A(23# Y dentro de este, el color del

rect"ngulo ser" el establecido por la propiedad#

Lo interesante de esto es que este código se ejecuta en tiempo de dise-o,

así cuando tengamos a nuestro control en un !ormulario, basta cambiar la

propiedad en la ventana correspondiente y el rect"ngulo cambiar" de color# Y

cabe recalcar una vez m"s que esto se hace en tiempo de dise-o#

3digo 6: ontrol sencillo % &'()!: Propia del autor 

private Color color+ = Color.lue;  public Color Color+ectanulo

  {  et {return color+;}  set  {

color+ = value;  thisInvalidate();  }  }

protected override void En3aint(3aint&vent'rs e)  {  raphics  = eraphics;

  Araw+ectanle(new 3en(color+)% 7!% 7!% !!% !!);  baseEn3aint(e);  }

Page 57: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 57/151

5=

# E0/5os?&  *omo se trata de una clase con código cerrado, es

indispensable el uso de eventos para avisar al programa sustentador del

control que se ha e!ectuado una acción# 3odo control de usuario ya posee

por herencia varios eventos tales como el *lic, el &aint, los eventos propios

del 8ouse, etc# &ero por ejemplo, si en nuestro control quisi$ramos

generar un evento cuando se ha cambiado el color del rect"ngulo a rojo,

debemos crear el evento nosotros mismos de esta maneraQ

*omo vemos, el evento se llama %olorRo*o y est" en la lista de eventos de

la ventana &ropiedades del control en tiempo de dise-o, y se lo puede usar como

cualquier evento m"s# Adem"s est" usando un delegado sin argumentos, pero

casi siempre los eventos poseen argumentos que deben estar especi!icados porel delegado#

3digo 7: rear un !ento % &'()!: Propia del autor 

public deleate void dColor();  public event dColor Color+o$o; 

public Color Color+ectanulo  {  et { return color+; }  set {  color+ = value;  i* (color+&/uals(Color+ed))  {  i* (Color+o$o H= null) Color+o$o();  }  thisInvalidate();  }  }

Page 58: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 58/151

5/

W# Co./5"rios -ML?& +stos comentarios son muy tiles a la hora de usar el

control, pues son utilizados por el (D+ de programación# Los comentarios

se colocan antes de empezar con la declaración de una clase, propiedad o

m$todo y son declarados con tres barras inclinadas IIIM# Adem"s en el

caso de las propiedades, tambi$n hay como agregar especi!icaciones para

ser usadas en la ventana de propiedades en tiempo de dise-o# >eamos

unos cuantos ejemplos#

  >entana de &ropiedades en tiempo de dise-o

3digo 9: omentarios ;-L % &'()!: Propia del autor 

 ,,, >summar ,,, &s el color /ue va a tener el borde del rect5nulo ,,, >,summar 

<Aescription'ttribute(@&s el color /ue va a tener el borde delrect5nulo@)

 <.indable'ttribute(true) <Cateor'ttribute(@Colores@) public Color Color+ectanulo { 

 (lustraci3n 1: +entana de Propiedades %

&'()!: Propia del autor 

Page 59: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 59/151

5

*omentario de la propiedad al escribir código#

+n el caso de los m$todos se puede usar m"s indicativos como por ejemploQ

 

%sando estos comentarios de !orma correcta, podemos hacer uso de las

!acilidades que brinda visual studio al navegar por objetos, es decir podemos usar

 Dibujo <: Propiedades en el c3digo % &'()!: Propia del autor 

3digo <: 5rgumentos documentados % &'()!: Propia del autor 

  ,,, >summar  ,,, :Jtodo /ue suma dos valores  ,,, >,summar  ,,, >param name=@sumando1@Kalor del primer nLmero a sumar>,param  ,,, >param name=@sumando@Kalor del seundo nLmero a sumar>,param  ,,, >returns+espuesta de la suma>,returns  public double Sumar(double sumando1% double sumando)  {  return sumando1 9 sumando;  }

Page 60: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 60/151

5

el eplorador de objetos, los comentarios en tiempo de dise-o, generar reportes

de m$todos, ayudas, y muchas cosas m"s#

Page 61: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 61/151

=6

3 CAPITULO III: edes *euronales Arti#iciales /*A0

3.1 Introducción:

La inteligencia arti!icial b"sicamente trata de dotarle a un sistema computacional

la capacidad de tener inteligencia, y esta en un breve resumen se puede centrar

puntualmente en dos aspectosQ

a= 3oma de decisiones segn el entorno

b= 8ejorar sus conocimientos en el transcurso del tiempo <aprendizaje X

evolución=#

&ara cumplir el primer aspecto se-alado, es necesario tener un sistema

retroalimentado que consta b"sicamente de sensores para poder parametrizar el

entorno, un cerebro que procese la in!ormación y tome decisiones, y actuadores

para poder interactuar con el entorno#

+n tanto el segundo aspecto se torna un poco m"s complicado# &ara que

un sistema pueda aprender se necesita inevitablemente cambiar la in!ormación

que posee, es decir sus reglas del juego, y para conseguir esto es necesario tener

un sistema computacional, puesto que es el nico sistema que tiene la capacidad

de cambiar sus datos de !orma autónoma#

2o obstante, la complejidad de cambiar de !orma autónoma un programa

para que este pueda aprenderM nos obliga a buscar una manera de conseguir

una estructura in!orm"tica estable y que dependa nicamente de DA3E' o

valores para su cambio o aprendizaje#

+s así que las redes neuronales arti!iciales, basadas en el !uncionamiento

de las redes neuronales biológicas, cumplen el segundo aspecto de la inteligencia

arti!icial, constan de un sistema in!orm"tico estable que depende de valores

!"cilmente alterables para su aprendizaje#

Page 62: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 62/151

=1

3.2 ese=a <istórica:

Las redes neuronales arti!iciales nacieron de la idea de simular o imitar el

!uncionamiento de las redes neuronales biológicas, así que para mirar su pasadodebemos empezar mencionando a &latón y Aristóteles quienes !ueron los

primeros en plantear teóricamente el !uncionamiento del cerebro humano# *laro,

no !ue hasta BK que A1"/ Turi/g miró al cerebro como una !orma de ver los

sistemas computacionales, presentando muchos trabajos sobre la inteligencia

arti!icial, algunos consagrados como el !amoso Test !e Turin# +#

&ero la verdadera cuna de las redes neuronales arti!iciales como tales,

viene de la mano de !"rr/ M6Cu11o6> y !"15r Pi55s, un neuro!isiólogo y un

matem"tico, respectivamente# Nuienes publicaron en ,#' un libro llamadoQ A

1ogi6"1 6"16u1us o4 5> id"s i.."//5 i/ /r0ous "65i0i5: que mostraba un

an"lisis matem"tico del !uncionamiento del cerebro y adem"s mostraron el primer

modelamiento de una neurona simple, construida con circuitos electrónicos de la

$poca, al que llamaron Pr6=5ró/#

&ero el gran avance de estos sistemas tendría un golpe muy duro de la

mano de M"r0i/ Mi/s:,#  : S:.our P"=r5  del (nstituto 3ecnológico de

8assachussets <8(3=, que presento el libro 'erce-trons en BKB que mostraba

al perceptrón como una unidad de control muy d$bil al no poder resolver la

!unción FE9 <E9 eclusiva=, y así demostrar la linealidad del perceptrón,

característica intolerable en un mundo no/lineal, razón su!iciente como para

declarar a la neurona arti!icial como un elemento de control no apropiado y

caduco#

+n el transcurso de la siguiente d$cada muy pocas investigaciones se

hicieron, aunque !ue en BHW cuando se realizo el primer algoritmo de aprendizaje

de propagación para atr"s#

13 ?tt,%777.il.ion.u(l.a(.u8]asagintttt*st.?t+l 

14 ?tt,%7*-.+*'ia.+it.*'u],a,*&t 

Page 63: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 63/151

=2

&ero el nuevo renacimiento de las redes neuronales arti!iciales vendría de

;o>/ o=4i1d del mismo (nstituto 3ecnológico de 8assachussetsC en B?4 al

publicar el libro Nur"1 Co.=u5"5io/ o4 D6isio/ i/ O=5i.i"5io/ Prob1.sM

que mostraba la idea de conjunto de neuronas, conjunto de perceptrones que al

ser combinados en una estructura podían solucionar problemas no/lineales, y

claro, lo demostraron con el mismo problema que a-os atr"s había destruido al

perceptrón#

Desde entonces las redes neuronales han ido evolucionando

constantemente, teniendo ahora un gran nmero de alternativas que van desde

un multi/layer perceptrón con 0ac1 &ropagation, hasta lo conocido como 9edes

neuronales di!usas#

Y sus aplicaciones hoy est"n en muchos de los arte!actos que usamos a diario#

+ntre ellos los m"s conocidos sonQ todos los E*9 <reconocimiento óptico de

caracteres=, reconocedores de voz, 33'K <3et 3o 'peech= , 9econocedores de

huellas digitales, *ontroladores 0iom$tricos de personal, correctores de gram"tica

de procesadores de palabras, etc

15 ?tt,%7*-.+it.*'u 

1= ?tt,%*n.7i8i,*'ia.o&g7i8i!,**(?_snt?*sis 

Page 64: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 64/151

=3

3.3 *eurona ioló(ica:

 Al basarse las redes neuronales arti!iciales en el comportamiento de las redes

neuronales biológicas, es evidente empezar por entender el !uncionamiento deuna simple neurona biológica, esta sin entrar en mayor detalle se compone en de

W partesQ

 Dibujo 10: eurona =iol3gica % &'()!: Propia del autor 

3.3.1 D/dri5"s

'on capilares que permiten el ingreso de los impulsos neuronales hacia el ncleo

o 'E8A de la neurona# +s decir, las dendritas constituyen las +ntradasM de la

neurona biológica#

Los impulsos neuronales son cargas electro/químicas generadas por el paso de

iones el$ctricos de varios componentes químicos como el potasio y sodio#

Page 65: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 65/151

=4

3.3.2 Si/"=sis

+s una membrana premiable que se encuentra al etremo de cada dendrita# +sta

sinapsis modi!ica el impulso el$ctrico que ingresa por la dendrita, atenu"ndolo o

ampli!ic"ndolo, de tal manera que es visto como la JananciaM de una dendrita#*omo veremos posteriormente, la ganancia que la sinapsis le brinda a cada

dendrita es la causante directa del resultado que la neurona genere, de este modo

es considerada a este nivel como la 8emoriaM de la neurona, puesto que

depende de la sinapsis para que una neurona se comporte de una !orma u otra#

3.3.3 So."?

+s el ncleo de la neurona, y es aquí donde se procesa todas las se-ales

procedentes de las dendritas para generar una se-al resultado# +ste

procesamiento se divide b"sicamente en dos etapasQ

'uma de se-ales#/ 'implemente se suman todas las se-ales obtenidas de las

dendritas#

6unción de 3rans!erencia#/ Ebtenida la se-al sumada, esta pasa por una !unción

de trans!erencia propia de cada tipo de neuronas, y genera una se-al resultado#

3.3.$ AHó/?

+s la salida de la neurona, es decir, la se-al resultado que o!rece el 'E8A luego

de procesar las se-ales de las dendritas, es transportada por el aón que puede

etenderse en el caso de los humanos, hasta varios metros rami!ic"ndose

llevando esta se-al no solo hasta la dendrita una neurona, sino que puede llegar a

dar su se-al hasta a 5 555 neuronas, y así, con la coneión de aones y

dendritas, !ormar lo que se conoce como una 9ed 2euronal#

Page 66: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 66/151

=5

3.$ *eurona Arti#icial:

0as"ndose en el modelo de la neurona biológica, vamos a tenerQ

 Dibujo 11: eurona 5rtiicial % &'()!: Propia del autor 

Donde claramente las entradas estar"n epresadas con el vector F, las

respectivas ganancias con J, la sumatoria y !unción de trans!erencia y !inalmente

la respuesta epresada en la se-al Y#

Dado este modelo lógico, pasar a un modelo matem"ticoH es bastante sencilloQ

:9

1

 (  .  > 

$  ;  ( n

i

ii

=

⋅=  ∑=

HLibroQ A logical calculus o! the ideas immanent in nervous activityM

Page 67: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 67/151

FD

F4

FA

Fn

7D

74

7A

7n

Y

==

Donde se ha reemplazado la ganancia JM, por la 7M, puesto que la

mayoría de autores le tratan a la ganancia de una entrada como &+'E de la

entrada, así en ingl$s sería 7(D3R y de ahí que se usa la 7M en lugar de la JM

para epresar este par"metro#

3.% Perceptrón:

+l perceptrón es uno de los primeros modelos de neurona arti!icial que eistió, y

apareció en BW# +st" basado en el modelamiento matem"tico antes visto y usala !unción de trans!erencia +'*AL2# +s decir, consta nicamente de dos

valores de salida A*3(>ADE I D+'A*3(>ADE que puede epresarse de !orma

binaria por y 5 lógico# +ste valor de salida depende de un umbral <u= el cual casi

siempre tiene el valor de 5; al sobrepasar este umbral, la neurona se activa y al no

pasar el umbral la neurona queda desactivada#

∑=⋅=

n

i

ii   $  ;  ( 1

(! ( V u Q Y Z

+lse Y Z 5

Page 68: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 68/151

=/

3.%.1 Aprendi>aje del Perceptrón:

+n BW?, C a-os despu$s de la creación del perceptrón, Donald Rebb

propuso un algoritmo matem"tico para ajustar los pesos del perceptrón, y conesto lograr que la neurona responda como se desea al dar unas determinadas

entradas#

+l algoritmo de variación de los pesos se basa en el error o di!erencia que

eiste entre la salida obtenida de la neurona y la salida requerida o deseada; y

multiplicar este error por el valor mismo de la entrada, dando un valor el cual

indicar" la di!erencia entre el nuevo peso y el antiguo#

$ $ $ 

 !  ; $ 

> >  ! 

t t   ii

ii

od 

∆+=⋅=∆

−=

+ :19

Do/d<

  Q 'alida Deseada

  Q 'alida Ebtenida

  Q 'igni!ica el Deltha del peso

  Q Race re!erencia al valor del nuevo peso, por eso el <t G =, que signi!ica

<3iempoG=

Q +ste entonces sería el peso actual# +n el tiempo actual <t=

Los pasos a seguir para ense-ar a una neurona a comportarse de la !orma

que deseamos, es el siguienteQ

*olocamos valores aleatorios en todos los pesos#

i

i

i

o

:19   +

Page 69: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 69/151

=

>amos colocando un conjunto de entradas y tomando la salida obtenida#

*alculamos el error, que no es m"s que la di!erencia entre la salida deseada y la

obtenida#

*alculamos el d7, es decir, el valor Deltha del peso#

 Ahora tomamos un segundo juego de entradas y volvemos a aplicar los pasos 4,

y W# +sto lo hacemos para todos los conjuntos de entradas#

'umamos todos los d7 de un peso que obtenemos en los distintos conjuntos de

entradas, para uni!icar el cambio que queremos darle al peso#

 Actualizamos los valores de los pesos segn nuestro d7

*on esto terminamos lo que se conoce como UNA ITERACIÓN#

+l aprendizaje de una neurona se mide en razón de las iteraciones que le demora

converger en una respuesta# De este modo una neurona lograr" converger a una

respuesta en varios miles de iteraciones, claro, dependiendo de la complejidad del

problema a resolver#

3.%.2 Problema de Oscilación.

+ste problema se encontró en las iteraciones !inales de una neurona alalcanzar una respuesta# Y no es m"s que un cambio brusco en los pesos que

hace que la solución no llegue a converger en una respuesta

 

 Dibujo 12: Problema de &scilaci3n % &'()!: Propia del autor 

9espuesta Deseada

9espuesta Ebtenida

(teraciones

Page 70: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 70/151

=

La solución de este problema no es m"s que atenuar el cambio de los pesos, para

que no cambien tan bruscamente y así pueda converger m"s r"pido# Así nace el

par"metro conocido como Taa !e a-ren!ia*e, en ingl$s /earnin# Rate

epresado normalmente con las siglas L9 o como una constante o coe!iciente, es

decir con una letra griega como alpha <[=#

+ste valor de taza de aprendizaje normalmente toma un valor entre 5 y ,

siendo un valor cercano a 5 su!iciente como para variar muy poco los pesos# 'e

usa un valor así de bajo cuando se quiere pulir una respuesta# &or otro lado, un

valor alto cercano a haría que los pesos cambien bruscamente#

%sar un valor alto siempre, hace que la respuesta oscile y no converja en

una respuesta como lo veíamos anteriormente, por otro lado un valor muypeque-o haría demasiado lento el proceso de entrenamiento# &or eso es

recomendable empezar el entrenamiento con un valor alto de L9, y segn vaya

llegando a una respuesta reducir esta variable hasta converger en una respuesta#

 An sabiendo la !uncionalidad eacta de este par"metro L9, no es posible

asignar un algoritmo que lo describa a lo largo del entrenamiento de la neurona#

 Así que el valor y la variación del mismo depender" de la eperiencia empírica dequien entrena la red, así como la complejidad del problema a resolver# +n todo

caso, muchos optan por dejar con un valor !ijo a este par"metro durante todo el

entrenamiento, el cual casi siempre esta entre 5,C y 5,K#

 Dibujo 1*: ,oluci3n Linealidad % &'()!: Propia del autor 

9espuesta Deseada

9espuesta Ebtenida

(teraciones

Page 71: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 71/151

/6

3.%.3 Problema de Linealidad

&ara comprender de mejor manera el problema de linealidad de una

neurona, vamos a tomar como ejemplo un perceptrón de dos entradas, el cual sepuede representar en un plano donde el valor de cada entrada toma un valor en

cada uno de los 4 ejes, gra!icando un punto en el plano, propio de cada conjunto

de entradas#

 Ahora, vamos a entrenar a nuestra neurona para que se comporte como una

compuerta lógica A2D, es decir, que responda de acuerdo a la siguiente tablaQ

a b Y

5 5 5

5 5

5 5

Jra!icando este problema en un plano tendríamos queQ

&

a

b

Y

Page 72: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 72/151

/1

 Dibujo 1: ompuerta 5D % &'()!: Propia del autor 

 Ahora, si observamos la ecuación que describe el comportamiento del perceptrón

tenemosQ

∑=

⋅=n

i

ii   $  ;  ( 1

  "f " 0 1 $ 3 + $Else 3 1 

Y aplicada al problema de nuestro ejemplo tenemosQ

21   $ b$ a (    ⋅+⋅=&ues bien, est" !ormula es correspondiente a la ecuación de una recta, en dondeQ

  2  =>  5; r    ++=   121   +⋅+⋅=   $ b$ a ( 

 A Z 7 Q 0 Z 74 Q F Z a Q Y Z b Q * Z

*omo sabemos, las constantes que dan !orma a una recta son A y 0,

correlacionadas a nuestra neurona, vendrían a ser los pesos de la misma# Así es

Y Z

  Y Z 5

  5

a

b

 

5

Page 73: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 73/151

/2

que al modi!icar los pesos de esta neurona, en realidad estamos creando y

ubicando una recta en el plano#

%na recta que resuelva nuestro problema, se gr"!ica en el plano a continuaciónQ

 Dibujo 1: ,oluci3n . 5D % &'()!: Propia del autor 

9ecordando a la ecuación de la recta que usualmente us"bamos para saber si un

punto <,y= o en este ejemplo <a,b= se encontraba !ormando parte de la recta#

 Ahora vamos a usar la ecuación para saber a que lado de la recta se encuentra

un punto#

Y esto se logra solo viendo si el resultado es positivo, se encuentra a un lado, y si

es negativo, se encuentra al otro# *laro, tendiendo en 5 que nuestro punto !orma

parte de la recta#

De esta !orma, los valores constantes que representan a esta recta, ser"n los

valores de los pesos de nuestra neurona al llegar a la respuesta de este

problema#

 Y Z

  Y Z 5

  5

a

b

 

5

Page 74: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 74/151

/3

>isto desde este punto, al inicializar los pesos de !orma aleatoria, estamos

colocando una recta cualquiera en el plano, y esta empieza a moverse a medida

que nuestra neurona se entrena, hasta llegar a separar un conjunto de otro#

'i analizamos cualquier otro ejemplo de 4 entradas, podremos gra!icar los

conjuntos de respuesta en un plano, y gra!icar una recta que los separe# Dando

así con el valor de los pesos para que un perceptrón resuelva el problema#

&or ejemploQ

 Dibujo 16: Problema Lineal % &'()!: Propia del autor 

'i trabajamos con una sola entrada, podemos gra!icar los valores como puntossobre un solo eje, y la rectaM solucionadora quedaría epresada solo como un

punto que separe los do grupos a clasi!icar#

'i trabajamos con tres entradas nos tocaría gra!icar los valores en un plano en

tres dimensiones, y la rectaM solucionadora debería ser ahora un plano que

separe un grupo de otro#

De esta !orma, si trabajamos con W entradas, en teoría se debería gra!icar los

valores en un plano de W dimensiones, lo cual no es posible, al menos por ahora,

a

b

 Y Z

  Y Z 5

Page 75: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 75/151

/4

y la separación estaría dada por un cubo# +n todo caso, el modelamiento

matem"tico sirve para resolver problemas de cualquier nmero de entradas, así

no sea posible un modelamiento gr"!ico del mismo#

Ya sea con una, dos o nM entradas, el &erceptrón solo responde a una respuesta

linealM si$ndole imposible resolver problemas donde sus respuestas requeridas

no puedan ser separadas por una línea# Y es así que 8arvin 8ins1y y 'eymour

&apera del 8(3 en BKB mostraban la imposibilidad del perceptrón al tratar de

resolver la operación binaria FE9# Dado que, la tabla de verdad de la FE9 y su

respuesta debería serQ

a b Y

5 5 5

5

5

5

*omo se puede apreciar, una recta no podría nunca dar resultado a este

problema# Adem"s, argumentando que los problemas en la naturaleza responden

 Dibujo 17: ompuerta ;&' % &'()!: Propia del autor 

Page 76: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 76/151

/5

m"s a una solución desordenada que a una ordenada que demanda una

respuesta no lineal de los sistemas, por ejemploQ

 Dibujo 19: Problema o Lineal % &'()!: Propia del autor 

 Así es como estos investigadores del 8(3 recomendaron en su libroabandonar toda investigación respecto al uso del las neuronas arti!iciales# Y así

!ue que durante 5 a-os no se hizo mayor investigación al respecto#

a

b

 Y Z

  Y Z 5

Page 77: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 77/151

/=

3.8 Perceptrón 9ulticapa

+n B?4 de se muestra una investigación realizada por el mismo 8(3 que a-os

atr"s había sepultado al perceptrón, la posibilidad de armar una red conperceptrones, es decir combinar un conjunto de neuronas arti!iciales y hacerlas

!uncionar a la par para resolver un mismo problema# A esta combinación de

neuronas arti!iciales se le conoció como &erceptrón 8ulticapa, y es aquí donde

nace la idea propiamente dicho de Rds Nu5r"1s Ar5i4i6i"1s#

+stas redes estar"n organizadas por capas, teniendo nicamente dos al

inicio, la capa de entrada y la capa de salida# Y ambas interconectadas teniendo a

todas las neuronas de la capa de salida con una coneión o peso para cada una

de las neuronas de la capa de entrada#

 Dibujo 1<: (ntercone?i3n de capas % &'()!: Propia del autor 

+ste modelo sirvió para combinar varias neuronas arti!iciales en un mismo

problema, pero seguían siendo perceptrones que respondían a una respuestalineal# +s así que se vio la necesidad de epandir este modelo y aumentar una o

Page 78: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 78/151

Page 79: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 79/151

/

 Dibujo 21: ,oluci3n de la . ;&' % &'()!: Propia del autor 

+n cuanto al algoritmo de aprendizaje, las redes neuronales se clasi!ican en dos

grandes gruposQ

●  Aprendizaje 'upervisado

●  Aprendizaje 2E/'upervisado

'iendo la primera aquella que necesita saber la salida deseada antes de empezar

el proceso de aprendizaje# 'e le conoce como supervisada por el mismo hecho de

tener que o!recerle las salidas que se buscan, lo que implica inevitablementesaber las salidas que se quieren, lo cual no siempre es un dato al que tenemos

acceso# +n este sistema, se encuentran varios algoritmos teniendo el m"s usado

y popular al 0ac1/&ropagation el cual se eplicar" en detalle m"s adelante#

+l aprendizaje 2o/'upervisado es un dise-o di!erente de redes neuronales donde

la propia red establece cuales son las mejores salidas que puede o!recer# +sto

representa como en todo, puntos a !avor y en contra# &or un lado hace m"s

din"mico el aprendizaje y logra converger a soluciones de una manera m"s

natural y m"s cercana al modelo biológico del cerebro# &ero por otro lado, el no

tener las salidas deseadas, hace imposible calcular una taza de error y por lo

tanto muy complejo saber hasta cuando llevar a cabo el entrenamiento de la

misma# +n este tipo de aprendizaje entran modelos de redes como las de \anon,

8apas Auto/Erganizativos y dem"s#

Page 80: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 80/151

/

3.8.1 *eurona arti#icial au?iliar /IA50:

+l manejo de las redes neuronales de !orma empírica o!reció muchos resultados a

los investigadores quienes buscan maneras de hacer el aprendizaje m"s eacto ysobretodo r"pido# +n base a uno de estos estudios empíricos nació la idea de una

neurona arti!icial auiliar a la que llamaron 3endencia o por su ingl$s 0(A', que

no es m"s que un perceptrón en una capa que siempre tendr" como valor de

entrada la unidad <=, de esta !orma no a!ecta como entrada al sistema, pero sus

pesos si a!ectan al conjunto# Agregar esta neurona auiliar demostró en la

pr"ctica mejoras muy signi!icativas en varios problemas, y el uso o no de la

misma an no est" regido a una norma, como muchas cosas en las redesneuronales, esta depende de la eperiencia del dise-ador de la red#

La mayoría de autores, muestran a la neurona auiliar como una neurona de

!orma triangular, ubicada como una neurona m"s en la capa anterior y sin

representar su entrada, puesto que siempre ser" #

 Dibujo 22: eurona =(5, % &'()!: Propia del autor 

Page 81: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 81/151

6

8uchas veces el modi!icar un peso, implicar alterar signi!icativamente la

entrada al que corresponde dicho peso# La neurona auiliar 0(A' nos brinda la

posibilidad de tener pesos, los cuales podemos modi!icar sin que esto implique

alterar a su entrada, puesto que su entrada siempre ser" y por lo tanto no

tomada en cuenta, adem"s es una neurona auiliar, es decir est" como sobra del

sistema y por lo tanto no inter!iere, pero si nos da varios pesos m"s que mover y

así converger a un resultado m"s r"pido#

Page 82: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 82/151

1

3.@ Al(oritmo de aprendi>aje: ACPOPA!ATIO*

[email protected] Introducción:

La creación de redes multicapas resolvía el problema de linealidad como ya vimos

anteriormente, pero plantea un nuevo problema en cuanto al algoritmo de

aprendizaje#

&ara usar la regla delta se necesita saber los valores de salida deseados y

compararlos con los valores obtenidos por la red neuronal, sin embargo al tener

una o varias capas ocultas, necesitaríamos conocer los valores que quisi$ramos

que dicha capa oculta saque, y esto no es posible# 2o obstante las salidas

deseadas de la capa de salida si se los tiene, al ser un aprendizaje supervisado y

podemos saber el error general de la red neuronal y en base a este error,

distribuirlo hacia las capas ocultas usando una modi!icación o generalización de la

regla delta, conocida mejor como algoritmo 9"6Pro="g"5io/ haciendo $n!asis

en la idea de capturar el error en la capa de salida y propagar el error hacia atr"s,

llegando a todas las capas ocultas#

 Dibujo 2*: Propagaci3n de errores hacia atr@s % &'()!: Propia del 5utor 

Page 83: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 83/151

2

[email protected] esumen 6istórico:

+n BHW, &aul >erbos, &h#D# de la %niversidad de Rarvard, publica el libro T>

Roo5s o4 9"6Pro="g"5io/J  donde describe un sin nmero de procesos

matem"ticos para propagar el error hacia atr"s en cualquier red de modelamientoparalelo# Dado que las redes neuronales se consideran un tipo especial de redes,

sus colegas cientí!icos tomaron poca o ninguna importancia a sus estudios que

generalizaban este proceso sin darle una utilidad concreta a las redes neuronales#

Doce a-os despu$s de esto <B?K=, dos trabajos realizados al mismo tiempo porDavid +# 9umelhart, Jeo!!rey +# Rinton y 9onald O# 7illiams, David &ar1er y

Yann Le *un, mostraban un algoritmo bac1propagation mucho m"s concreto,

estable y dedicado a las redes neuronales; recibiendo mucha acogida por la

comunidad de desarrolladores#

'in embargo !ue gracias al libro que el mismo a-o publicaron David + 9umelhart y

Oames L 8c*lelland de la %niversidad de *ali!ornia con el título de P"r"111

dis5ribu5d =ro6ssi/gM que hizo del algoritmo uno de los m"s populares y

usados m$todos de aprendizaje hasta nuestros días#

 Libro 1: "he 'oots o =ackPropagation % (,=: <79071<9<79

Page 84: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 84/151

 Dibujo 2: Daid !. 'umelhart % &'()!:

http://www.graweme8er.com/ps8cholog8/preious/02.htm

3

 

 Libro 2: Parallel Distributed Processing % (,= 02621912*1

 Dibujo 2: Aames L -clelland % &'()!:

http://www.graweme8er.com/ps8cholog8/preious/02.htm

Page 85: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 85/151

4

[email protected] Al(oritmo de Aprendi>aje:

La regla delta generalizada o 0ac1propagation se puede resumir simplemente

comoQ

21   ! $ $  t t    ∇−=+   α 

DondeQ

1+t $    Z 2uevo valor del peso

$    Z >alor actual del peso

α    Z L9 <Learning 9ate= o taza de aprendizajeQ >alor +ntre 5 y

2 ! ∇−   Z Jradiente negativa del error medio cuadr"tico

+ntonces la di!erencia entre el nuevo y el actual valor del peso esta dado por la

gradiente negativa del error medio cuadr"tico, atenuado por el L9

+l LR o 5"" d "=r/di"j es un valor que va entre 5 y , siendo 5 un indicador

que no haría ningn cambio en el peso, y el que deje pasar todo el valor al

nuevo peso# Así un 5,C atenuaría el cambio del nuevo peso a la mitad#

+n posteriores capítulos trataremos de nuevo el valor de la taza de aprendizaje

para entender mejor como a!ecta en el entrenamiento de la red neuronal#La gradiente inversa del error se describe como la derivada del error

respecto a todos los pesos de la red#

 !  ! 

∂∂

−=∇−2

2

Page 86: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 86/151

5

&ara continuar desenvolviendo la derivada hasta llegar a una representación

matem"tica !"cil de interpretar en código, veamos una vez m"s la nomenclatura

usada para de!inir todas las partes de una red neuronal#

&ara este ejemplo demostrativo, solo veremos una red neuronal con una capa

oculta#

 AsíQ

E1  Z 'alida de la primera neurona de la capa de entrada

i  Z 2umero de neuronas en la capa de entrada

O1  Z 'alida de la primera neurona de la capa oculta

   Z 2umero de neuronas en la capa oculta

!1  Z 'alida de la primera neurona de la capa de salida

8   Z 2umero de neuronas en la capa de salida

Ki Z &eso que conecta a la neurona iM de la capa de entrada y la neurona jM

de la capa oculta#

Page 87: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 87/151

=

K 8 Z &eso que conecta a la neurona jM de la capa oculta y la neurona 1M

de la capa de salida#

 Adem"s teniendo implícitamente cada neurona variables tales comoQ

IE1  Z >alor neto de la primera neurona de la capa de entrada

MiO  Z >alor de entrada iM de la neurona jM de la capa oculta

I!8   Z >alor neto de la neurona 1M de la capa de salida

+ntonces para sacar el error medio cuadr"tico procedemos a aplicar la

siguiente !órmula?Q

∑=

−=k 

n

nn   ,  D ! 1

22 :92

1

DondeQ

Dn Z 'alida Deseada de la neurona en la posición nM

&uesto que en estos momentos no tenemos idea de los valores que tienen

los pesos, por muchos motivos, empezando con que se inicializan con valores

aleatorio; no es posible sacar una derivada num$rica del error medio cuadr"tico

con respecto a los pesos, así que debemos operar la derivada hasta llegar aepresarla en otro dominio#

1 ?tt,%o?+.ut,.*'u.(on*u&onal*sCa,itulo2;a(8,&o,agationR*gla;.?t+

Page 88: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 88/151

/

3..3.% Capa de 4alida:

'iendoQ

 jk $ 

 ! 

∂−

2

 

La gradiente inversa del error con respecto a los pesos que corresponden a las

coneiones entre la capa oculta y la capa de salida < j 1 =#

3enemosQ

 jk 

k nn

n

nn

 jk  jk    $ 

, ,  D,  D

$ $ 

 ! 

∂∂

×−=  

  

 −

∂∂

−=∂∂

−   ∑=

:9:92

1

1

22

 Ahora tenemos a la derivada de las se-ales de salida con respecto a los pesos#

+ntonces sabiendo que la salida es una !unción directa de la sumatoria interna de

las entradas a la que llamamos < ( =, aplicamos la regla de la cadenaQ

 jk 

 jk 

 ( 

 ( 

∂∂

×∂∂

=∂∂

+ntonces, reemplazando esta ecuación con la anterior tenemos queQ

 jk 

k k k 

 jk    $ 

 ( 

 ( 

, ,  D

 ! 

∂∂

×∂∂

×−=∂∂

−   :92

Page 89: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 89/151

9ecordando que :9 (  .  >  =   tenemosQ

 jk 

,k 

,k k k  jk    $ 

 (  (  .  ,  D

 ! 

∂××−=

∂−   :9^:9

2

Y recordando tambi$n queQ ( )∑=

⋅= j

n

nk nk    $  ;  ( 1

  tenemosQ

 j,k k k  jk  & (  .  ,  D$ 

 ! 

××−=∂

−   :9^:9

2

'iendo O   la salida de la capa oculta, y por lo tanto entrada de la capa de

salida#

+ntonces volviendo a la !órmula principal de cambio de pesos tenemos queQ

 j,k k k  jk  jk    & (  .  ,  D$ $ t t 

××−×+=+

:9^:9:9:19

α 

3eniendo a mejor epresar comoQ

  j,k k k   jk    & (   .  ,  D$    ××−=∆   :9^:9

  jk   jk   jk    $ $ $ t t 

∆×+=+

α :9:19

DondeQ

 jk $ ∆   Z +s la di!erencia o cambio a aplicar en el peso K 8 

Page 90: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 90/151

3..3.2 5na Capa culta:

+n cuanto a los pesos de la capa oculta, basta con proyectar la misma !órmula

teniendo en cuenta que ahora la derivada del error a desarrollar y su respectiva

regla de la cadena quedarían asíQ

ij

&j

&j

 j

 j

,k 

,k 

ij

 ( 

 ( 

&

&

 ( 

 ( 

∂×

∂×

∂∂

×∂∂

=∂∂

9esumiendo el proceso, la !órmula !inal quedaríaQ

( )  i

n

  jk ,k k k &jij  ! $  (   .  ,  D (   .  $    ×××−×=∆   ∑

=1

:9^:9:9^

ijijij   $ $ $ t t 

∆×+=+

α :9:19

Page 91: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 91/151

6

3..3.3 )enerali'ar a 7 capas cultas:

&ara generalizar la !órmula a 2 capas ocultas, vamos a pensar en una red

neuronal de las siguientes característicasQ

DondeQ

k ,  Z 2eurona 1M en la capa de salida

l i&   Z 2eurona lM en la capa oculta iM

mi&   :19   + Z 2eurona mM en la capa oculta que le sigue a la capa iM

ni&   :19   − Z 2eurona nM en la capa oculta anterior a la capa iM

Page 92: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 92/151

1

 Así, la capa oculta iM, empezar" siendo la ltima capa, la que se encuentra m"s

cercana a la capa de salida, donde la capa iGM ser" la capa de salida y la capa

Mi/M la penltima capa# Luego la capa iM pasar" a ser la que muestra el gr"!ico y

que antes era la capa i/M y la capa iGM pasar" a ser la que antes era la capa iM

y así sucesivamente hasta cubrir todas las capas ocultas#

 Ahora vamos a de!inir un nuevo valor que muchos autores denominan

4Sensitivi!a! !e la ca-a5  < δ   = y no es m"s que la !uerza que tiene el error

propagado en esa capa#

 Así, la sensitividad de la capa de salida ser"Q

:9^:9 ,k k k k ,   (  .  ,  D   ×−=δ 

+sta sensitividad es la nica di!erencia a partir de ahora entre una capa de salida

y una capa oculta, siendo la sensitividad de una capa ocultaQ

( )∑=

××=  +

n

 j

mj j&

m&m

& $  (  .  i

i

i

1

:19

:9^   δ δ 

La generalización de las !órmulas para el cambio de pesos sería entoncesQ

l i

m&

lmo &$ 

ii:19   −

×=∆   δ 

lmo

lmo

lmo   i

i

i

$ $ $    ∆×+=+

  α :9:19

Page 93: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 93/151

2

$ CAPITULO I: Anlisis

$.1 Introducción

+n el presente capítulo se detallaran todos los requerimientos y limitaciones que

va a tener la tesis en!oc"ndose en el aspecto t$cnico# 3eniendo toda la teoría a

disposición, el an"lisis se dar" mediante una auto evaluación de las necesidades

que se quiere cubrir, actuando como %suario &rogramador <cliente= y

desarrollador al mismo tiempo#

$.2 Limitaciones

Dejando a un lado las limitaciones propias del hardare y so!tare que actan

como plata!orma, en cuanto al sistema se re!iere, este tendr" nicamente el

algoritmo de aprendizaje por 0ac1propagation, usando las !órmulas matem"ticas

que se muestran con detalle en el capítulo #

Page 94: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 94/151

3

$.3 eBuisitos

● Desarrollar íntegramente el código en *. v4#

● *ompilar el código en base al 8icroso!t 6rame7or1 v4#5

● *rear un componente que permita usar una red neuronal arti!icial, teniendo

las siguientes característicasQ

○ 2mero ilimitado: de neuronas en la capa de entrada

○ 2mero ilimitado: de neuronas en la capa de salida

2mero ilimitado

:

 de capas ocultas, pudiendo ir desde ninguna hastalas que se requieran#

○ 2mero ilimitado: de neuronas en cada capa oculta#

○ (ntegrar las siguientes !unciones de trans!erenciaQ

■ +scalón

■ Lineal

■ 'igmoide Logarítmica

■ 'igmoide 3angencial

■ Jauss

○ (ncluir una !unción de trans!erencia personalizada por el %suario

&rogramador, es decir, que pueda escribir directamente la !órmula

matem"tica que desea como !unción de trans!erencia#

○ &oder asignar una !unción de trans!erencia por cada capa de !orma

independiente#

○ &oder usar opcionalmente la neurona auiliar 0(A'M por cada capa de

!orma independiente#\ Li+ita'o ,o& las (a,a(i'a'*s '* sot7a&* ?a&'7a&* '*l (o+,uta'o&@ ,o& **+,lo +*+o&ia RA.

Page 95: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 95/151

4

○ (ncluir una !orma de inicializar todos los pesos de la red de !orma

aleatoria#

○ Dadas un nmero de muestras de entradas y salidas deseadas, que

ejecute su debido aprendizaje usando el algoritmo de bac1propagation#

&ermitiendo, así mismo, elegir los par"metros de aprendizaje como son

la taza de aprendizaje, el momento y el error mínimo para terminar el

proceso de aprendizaje#

○ +l proceso de aprendizaje debe reportar su avance mediante un evento

donde indique el error y la iteración llevada a cabo#

○ +l proceso de aprendizaje debe correr en otro hilo que el programa

principal# &uesto que dicho proceso es largo, no debe paralizar el

programa principal#

○ Debe permitir consultar a la red neuronal arti!icial dada un vector de

entradas teniendo como resultado el vector de salida e indicando cual

de ellas es la mayor#

○ 3odos los par"metros a modi!icar por el %suario &rogramador deben de

estar como &ropiedadesM para poder usar la inter!az de dise-o denuestro (D+ de programación#

○ &oder eportar las con!iguraciones y pesos de una red hacia una

estructura F8L <Ebjeto Data'+3=

○ &oder eportar las con!iguraciones y pesos de una red hacia una

archivo eterno#

Page 96: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 96/151

5

● *rear un control que permita visualizar la con!iguración y !uncionamiento

del componente de redes neuronales arti!iciales con las siguientes

característicasQ

○ &oder seleccionar cual objeto del componente se requiere visualizar#

○ >isualizar todas las capas y neuronas de la red#

○ Di!erenciar claramente entre la capa de entrada, salida y ocultas en el

caso de eistir#

○ Dada la variedad de nmero de neuronas que puede haber en cada

capa, se requiere poder variar el tama-o del gr"!ico que represente a

una neurona#

○ &oder cambiar los colores de cada capa#

○ >isualizar los valores num$ricos de cada entrada y cada salida de la

red#

○ >isualizar las coneiones o pesos de la red#

○ 9epresentar con un color, el valor num$rico del peso en cada una de

las coneiones#

○ 3oda el diagrama de la red debe ser auto/escalado dependiendo del

tama-o del control, es decir, si el control cambia de tama-o en alguna

acción como por ejemplo maimizar la ventana, el gr"!ico se ajusta al

nuevo tama-o#

○  Asignar el nmero de decimales a mostrar en los valores num$ricos de

la capa de salida

○ &oder cambiar el tipo de letra y color del teto mostrado en el visor#

Page 97: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 97/151

=

○ &ermitir en tiempo de dise-o y por medio de este control varias tareas

del componente de redes neuronales, como sonQ

■  Asignar pesos aleatorios

■  Asignar valores a cada una de las entradas de la red

■ +jecutar una consulta con los valores de entrada actuales

■ Juardar y 9estaurar un archivo donde est$ la con!iguración y pesos

de la red#

○ (ngresar en tiempo de ejecución los valores de las entradas de la red#

○ 9epresentar la neurona auiliar 0(A'M#

○ %sar círculos para la representación de las neuronas, lineas para las

coneiones y tri"ngulos para las neuronas auiliares 0(A'M#

○ 8ostrar gr"!icamente en el centro de cada neurona, un símbolo que

indique la !unción de trans!erencia usada#

● +ncapsular ambos controles en un archivo DLL#

● Documentar con comentarios F8L el código#

Page 98: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 98/151

/

$.$ e#erencias a otros pro&ectos

 A la !echa de inicio de este proyecto, no eistía ningn trabajo sobre redes

neuronales arti!iciales escritas en el lenguaje de programación *., que se pueda

encontrar, ya sea en algn libro o en el (nternet# +l no encontrar ningn trabajo deeste tipo !ue una de las razones que impulso el desarrollo de esta tesis#

2o obstante, a la !echa de hoy, se puede encontrar m"s de un trabajo realizado

en *. re!erente a las redes neuronales arti!iciales# &royectos que nunca se

tomaron como re!erentes para el an"lisis, ni desarrollo de la tesis actual# 'in

embargo, luego de la culminación del mismo, se ha revisado brevemente algunos

de los trabajos encontrados en (nternet y se ha podido ver con satis!acción

di!erencias muy grandes entre todos los proyectos#

 A continuación se muestra las re!erencias de los proyectos de redes neuronales

arti!iciales que se ha podido encontrar en (nternet hasta la !echa de hoy#

● Ti5u1o< A( Q 2eural 2etor1 !or beginners <&arte , 4 y =

Au5or< 'acha 0arber 

U/i0rsid"d<  'usse %niversity in (n!ormation 3echnology !or +/

*ommerce <(3+*= (nglaterra

URL< httpQII#codeproject#comIcsIalgorithmsI2eural2etor1)#asp

● Ti5u1o< *. 2eural netor1 library

Au5or< 6ranc1 6leurey <6rancia=

URL< httpQII!ranc1#!leurey#!ree#!rI2eural2etor1

Page 99: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 99/151

$.% )ia(ramas de Casos de Uso

$.%.1 )ia(rama de Casos de Uso * 1:

C"so d Uso< *rear Aplicativo para entrenar#

A65ors< &rogramador 

Ds6ri=6ió/< +s necesario crear un aplicativo para poder entrenar la 92A que se

encuentra en !orma de componente en un archivo DLL# 9azón por la cual el caso

de uso presente muestra como crear un aplicativo en cualquier lenguaje de

Dot2+3, por ejemplo >0#2+3 y muestra tambi$n como agregar la re!erencia del

DLL para usar los componentes#

 Dibujo 26: aso de uso B 1 % &'()!: Propia del

 5utor 

Page 100: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 100/151

$.%.2 )ia(rama de Casos de Uso * 2:

C"so d Uso< Agregar y *on!igurar una 92A

A65ors< &rogramador 

Ds6ri=6ió/< +l componente 92A que ahora se debe encontrar en la barra deherramientas del tiempo de dise-o de un !ormulario, se agrega como cualquierotro componente, es decir arrastr"ndolo hacia el !ormulario# %na vez colocado, seprocede a con!igurarlo mediante la ventana de &ropiedades del entorno dedise-o#

 Dibujo 27: aso de uso B 2 % &'()!: Propia del

 5utor 

Page 101: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 101/151

166

$.%.3 )ia(rama de Casos de Uso * 3:

C"so d Uso< Agregar y *on!igurar el control 92A)>isor

A65ors< &rogramador 

Ds6ri=6ió/< +l control 92A)>isor que ahora se debe encontrar en la barra de

herramientas del tiempo de dise-o de un !ormulario, se agrega como cualquier

otro componente, es decir arrastr"ndolo hacia el !ormulario# %na vez colocado, se

procede a con!igurarlo mediante la ventana de &ropiedades del entorno de dise-o

y sirve como visualizador de un componente 92A#

 Dibujo 29: aso de uso B * % &'()!: Propia del

 5utor 

Page 102: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 102/151

161

$.%.$ )ia(rama de Casos de Uso * $:

C"so d Uso< +ntrenar una 92A

A65ors< &rogramador, +structura F8L <Data'et=

Ds6ri=6ió/< La etapa de entrenamiento de la red neuronal# *on este proceso se

especializa a la red en una tarea dada#

 Dibujo 2<: aso de uso B % &'()!: Propia del 5utor 

Page 103: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 103/151

162

$.%.% )ia(rama de Casos de Uso * %:

C"so d Uso< *onsultar una 92A

A65ors< &rogramador, +structura F8L <Data'et=

Ds6ri=6ió/< La etapa de consulta es el uso como tal del sistema, una vez

entrenada la red, est" lista para ser consultada o usada#

 Dibujo *0: aso de uso B % &'()!: Propia del 5utor 

Page 104: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 104/151

163

$.%.8 )ia(rama de Casos de Uso * 8:

C"so d Uso< 3rabajar con el visor de la 92A

A65ors< &rogramador 

Ds6ri=6ió/< 'e puede visualizar el proceso de una red neuronal mediante este

control, este caso de uso, muestra su utilización#

 Dibujo *1: aso de uso B 6 % &'()!: Propia del

 5utor 

Page 105: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 105/151

164

% CAPITULO : )ise=o

%.1 Introducción

+n el presente capítulo, se analizar" el dise-o de los controles que permitir"n el

uso de redes neuronales arti!iciales# 3eniendo el an"lisis en el capítulo anterior,

aquí veremos el dise-o de las clases y secuencia de operaciones, manteniendo el

modelamiento %8L#

Page 106: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 106/151

165

%.2 )I5+DO )+L 5O,TEA+ /U9L0

%.2.1 )ia(ramas de Clases

+l detalle de las clases se muestra a continuación, representados con la siguiente

simbologíaQ

 

 Dibujo *2: Diagrama de lases % &'()!: Propia del 5utor 

 Dibujo **: Le8enda de Diagramas de lases %

&'()!: Propia del 5utor 

Page 107: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 107/151

16=

 Dibujo *: Diagrama de lases CDetalle 1 % &'()!: Propia del 5utor 

Page 108: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 108/151

16/

 Dibujo *: Diagrama de lases CDetalle 2 % &'()!: Propia del 5utor 

Page 109: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 109/151

16

%.2.2 )ia(ramas de 5ecuencia

.2.2.% Diagrama de 4ecuencia 78 %: *on!iguración de la 92A

A65ors< &rogramador 

 Dibujo *6: oniguraci3n de la '5 % &'()!: Propia del 5utor 

Page 110: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 110/151

16

.2.2.2 Diagrama de 4ecuencia 78 2: *ambiar 6unción *ustom

A65ors< &rogramador 

 Dibujo *7: ambiar #unci3n ustom % &'()!: Propia del 5utor 

Page 111: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 111/151

116

.2.2.3 Diagrama de 4ecuencia 78 3: +ntrenamiento de la 92A

A65ors< &rogramador 

 Dibujo *9: !ntrenamiento de la '5 % &'()!: Propia del 5utor 

Page 112: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 112/151

111

.2.2.- Diagrama de 4ecuencia 78 -: %so de la 92A

A65ors< &rogramador 

 Dibujo *<: Eso de la '5 % &'()!: Propia del 5utor 

Page 113: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 113/151

112

.2.2. Diagrama de 4ecuencia 78 : %so del >isor de la 92A

A65ors< &rogramador 

 Dibujo 0: Eso del +isor de la '5 % &'()!: Propia del 5utor 

Page 114: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 114/151

113

8 CAPITULO I: Construcción

8.1 <erramientas Usadas:

*omo se ha repetido a lo largo de todo el documento, todo el sistema est"

programado íntegramente en el lenguaje de programación *., compilado bajo el

6rame7or1 de 8icroso!t en su versión 4#5

+l (D+ de programación usado es el S>"r=D01o= 0*?* que se puede descargar

gratuitamente de su p"gina eb como se indico en el capítulo 4#

 Así mismo, se probó abrir y ejecutar el proyecto desde el (D+ de 8icroso!t >isual

'tudio 455C con todo $ito, ya sea en su versión gratuita <+press= como en la

pro!esional#

 Adem"s, para la creación del control que muestra una representación gr"!ica, seuso el motor JD(G propio de Dot2+3# Así mismo se usaron punteros y manejo de

hilos# 3odos estas herramientas eplicadas en el capítulo 4#

Page 115: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 115/151

114

8.2 Componente *A

+l componente encargado de mani!estar todo el comportamiento de la red

neuronal arti!icial como ya vimos en el diagrama de clases, se llama 92A por sussiglas# +ste componente ser" una clase heredada de Component   que es una

clase propia del 0*L del !rameor1 y encapsula todas las propiedades y m$todos

que le permiten comportarse como un componente de usuario y poder ser usado

como tal en todo el (D+#

3odas las clases usadas estar"n dentro de un namespace llamado (A)92A,

haciendo re!erencia que es parte de la (nteligencia Arti!icial# 2ombre que llevara

tambi$n el ensamblado DLL#

+l código de esta clase, como en el resto de clases, est" debidamente organizado

utilizando los 9+J(E2, que son sentencias ignoradas por el compilador que

sirven para agrupar el código y así ser m"s !"cil organizarlo#

 Adem"s, el uso de comentarios F8L para documentar el código resulta muy

recomendable puesto que a la hora de compilar, estos comentarios se enlazan

como 8etadatos a la aplicación !inal, siendo en este caso el archivo DLL# De esta

!orma un (D+ como el 'harpDevelop o el >isual 'tudio pueden mostrar estos

comentarios din"micamente al %suario &rogramador#

&or otro lado, eisten muchas herramientas eternas como el Document9   de la

empresa innovasys que nos permiten generar todo un documento de ayuda en

base a estos comentarios F8L de !orma autom"tica# +n el transcurso de este

capitulo, presentaremos pedazos de código y muestras del documento de ayuda

generado con esta herramienta eterna#

Page 116: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 116/151

115

+n este gr"!ico se puede apreciar la organización que nos brinda los 9+J(E2s,

así como un comentario F8L, que siempre comienzan con un triple símbolo dedividido <slash IM =# +n el ejemplo, se muestra un resumen <sumary= de lo que va

a hacer esa clase#

La linea de código que se muestra justo encima de la declaración de la clase,

sirve para asignar un icono al componente y así lograr que este salga en la barra

de herramientas de nuestro (D+#

 Dibujo 1: lase '5 % &'()!: ,harpDeelop 2.2

Page 117: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 117/151

11=

+n cuanto al documento de ayuda generado, se puede ver en el siguiente gr"!ico

una muestra de como nos presenta las propiedades del

Del mismo modo, estos comentarios F8L pueden brindar m"s in!ormación, como

por ejemplo en los m$todos, se puede describir los argumentos de entrada, la

salida, e incluso colocar un ejemplo de aplicación# 3odo esto eportado al

documento de ayuda#

 A continuación se muestra un ejemplo del código de los comentarios F8L y del

archivo de ayuda, que adicionalmente deja epresada la declaración en algunos

lenguajes de Dot2+3#

 Dibujo 2: Propiedades del '5 % &'()!: 58uda )enerada con DocumentF; .0

Page 118: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 118/151

11/

 Dibujo *: -todo !aluar % &'()!: ,harpDeelop 2.2

 Dibujo : 58uda: -todo !aluar % &'()!: 58uda )enerada con DocumentF; .0

Page 119: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 119/151

11

8.3 Clase CAPA

La capa clase contiene todas las !uncionalidades de una capa de la red neuronal,

y esta maneja todas las neuronas de una !orma global# +s decir, en primerainstancia se piensa en crear una clase 2+%9E2A que contenga el algoritmo de

proceso y aprendizaje, y que un vector de objetos de tipo 2+%9E2A sea una

capa# 2o obstante en el presente trabajo se decidió usar una clase *A&A que

maneje todas las !uncionalidades de proceso y aprendizaje de todas las neuronas

de dicha capa; desapareciendo de cierta !orma la individualidad de la neurona#

 Dibujo : lase 5P5 % &'()!: ,harpDeelop 2.2

Page 120: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 120/151

11

8.$ Clase CapaColeccion

+sta capa nace de la necesidad de poder mani!estar las capas ocultas, puesto

que estas pueden estar entre 5 o un nmero alto# Así es que se crea una claseque, con la ayuda de la clase Collection del 0*L del 6rame7or1, administra todo

lo re!erente a una lista o colección din"mica, es decir, tener los m$todos Add,

*lear, etc#

*abe recalcar que esta estructura de herencia es nueva, y que al menos hasta

ahora, no se ha visto en otro lenguaje de programación# Y es que no solo se

hereda la clase Collection, sino en la misma declaración de clase, se indica la

clase de la cual se va a hacer la colección, siendo en este caso la clase *A&A#

 Dibujo 6: lase apaollection % &'()!: ,harpDeelop 2.2

Page 121: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 121/151

126

8.% Clase +aluador5trin(

+sta capa cumple un papel especí!ico y no indispensable en el sistema#

+ntre las !unciones de trans!erencia que eisten, tenemos la opción *%'3E8,

que se encarga de dar una ventana a que el %suario &rogramador para quepueda personalizar su !unción de trans!erencia# +ntonces para lograrlo, se crea

esta clase que permite crear una !unción virtual en tiempo de ejecución# +sto es,

que mientras se est" ejecutando el programa, se puede escribir en una cadena de

teto una !unción, compilarla y usarla#

Jracias a esta clase que permite evaluar como código un 'tring, se puede crear

una !unción virtual donde se deje espacio para que el %suario &rogramador cree

una !unción matem"tica a gusto y la ingrese dentro de la propiedad

formula;Custom de la clase *A&A#

 Dibujo 7: lase !aluador,tring % &'()!:

,harpDeelop 2.2

Page 122: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 122/151

121

8.8 Clase *AFisor

+s la clase m"s etensa del sistema, y se encarga de crear una representación

gr"!ica de la red neuronal# +sta se instancia como un control normal, y entre laspropiedades solicita se indique que red neuronal se desea visualizar# 3eniendo

que tener previamente ya una instancia de 92A#

 Dibujo 9: lase '5G+isor % &'()!: ,harpDeelop 2.2

Page 123: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 123/151

122

+ste control se hereda de la clase 5serControl   del 0*L del 6rameor1, y

sobrecarga el m$todo nPaint   del mismo para lograr la mejor !orma de

gra!icación# &uesto que el m$todo nPaint se ejecuta autom"ticamente cuando el

control requiere dibujarse, dando mucha !acilidad de hacerlo al heredar tambi$n el

objeto Jraphics o Lienzo del control# 3oda esta in!ormación de como dibujar en un

control s ella puede encontrar en el capítulo 4; donde se especi!ica la creación de

controles y el manejo del JD(G, puesto que absolutamente todos los gr"!icos de

este visor, son creados con el JD(G#

Page 124: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 124/151

123

@ CAPITULO II: +jemplo de Aplicación /OC sico0

@.1 Introducción

&ara poder mostrar el correcto !uncionamiento de los controles para redes

neuronales creados en el presente trabajo, es necesario darle un aplicativo real#

&or esta razón, a continuación se presenta un peque-o ejemplo de aplicación de

uno de los m"s comunes usos de las redes neuronales, que es un E*9

<9econocimiento ptico de *aracteres, por sus siglas en ingl$s=#

+l uso de redes neuronales para el reconocimiento de caracteres es muy usado

actualmente principalmente por la característica de J+2+9AL(]A*(2 de una

red neuronal, la cual permite ingresar un patrón aproimado a la letra, y la red

determinar" el grado de aproimación a cada una de las muestras de

entrenamiento# +sto nos brinda la opción de ingresar un patrón con cierto grado

de error, inevitable a la hora de trabajar con im"genes#

&ara una demostración simple, este E*9 va a reconocer las cinco vocales del

al!abeto espa-ol, es decirQ A, +, (, E, %# De una muestra gr"!ica al car"cter A'*((

correspondiente a la letra#

Page 125: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 125/151

124

@.2 AdBuisición de la ocal

Dada la orientación acad$mica/demostrativa de este E*9, la adquisición de la

imagen se da por medio de una 7eb*A8, conectada al computador, que debecaptar cualquier imagen de una vocal de color negro escrita en mano imprenta en

maysculas en !ondo blanco#

Luego de capturar una imagen est"tica de la ebcam, se procede a binarizar la

imagen pudiendo seleccionar manualmente el umbral para ajustarse de mejor

manera a la imagen requerida#

%na vez tenida la imagen, se debe separar la letra de entre toda la imagen

capturada#

3eniendo la imagen de la letra lista, se procede a parametrizar la imagen y

obtener así una muestra num$rica para la red neuronal#

 Dibujo <: 5dHuisici3n de la ocal % &'()!: Propia del autor 

Page 126: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 126/151

125

La parametrización de la letra, se da por medio de una matriz HC que se

ajusta a toda la imagen, y dependiendo de los pieles negros en cada cajón

de la matriz, este toma un valor de para negro, y 5 para blanco, teniendo

al !inal una matriz de 5 y correspondiente a la imagen# Dicha matriz,

epresa en orden las C entradas binarias de la red neuronal a usarse para

el reconocimiento#

 Dibujo 0: parametriIaci3n de la ocal %

&'()!: Propia del autor 

Page 127: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 127/151

12=

@.3 edG*euronal Arti#icial

Los pasos a seguir para entrenar una red neuronal para el reconocimiento de

vocales es el siguienteQ

● Ebtener las muestras de cada vocal parametrizadas como se indica

anteriormente#

Letra AQ

5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

Letra +Q

5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

Letra (Q

5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

Letra EQ

5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

Letra %Q

5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

● *rear un objeto de tipo 92A, y un control 92A)>isor en una aplicación en

*. , tal como muestra el manual de usuario aneo en la presente tesis#

● 6ijar como nmero de entradas de la red C, puesto que son C los

nmeros de la matriz HC resultante de la parametrización#

Page 128: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 128/151

12/

● 6ijar como nmero de salidas de la red neuronal C, puesto que se requiere

nicamente distinguir C tipos de letras, las vocales#

● 2o !ijar ninguna capa oculta, puesto que se debe siempre empezar sin

ninguna capa oculta, y en caso de ser necesarias, ir aument"ndolas#

● Dejar el resto de valores por de!ecto, es decir, sin uso de neuronas

auiliares 0(A', con la !unción de trans!erencia 'igmoide, etc#

● *orrer el proceso de entrenamiento tal como muestra el manual de usuario

aneo a la presente tesis, con los valores deQ

L9 Z 5,

8omento Z 5,B

+rror 8ínimo Z 5,555

+n este caso, la red neuronal termina su proceso de entrenamiento !"cilmente

luego de 45 555 iteraciones# &or lo cual se da por terminado el E*9, listo para

consultar con cualquier letra parametrizada#

Page 129: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 129/151

12

@.$ Conclusiones del OC 

● &ara hacer un reconocedor de m"s letras, por ejemplo todas las

consonantes y vocales del al!abeto espa-ol, es necesario incrementar laresolución de la letra, es decir incrementar la matriz de HC a una con

mayor calidad, por ejemplo una 45C, que daría un nmero de entradas

de 55#

● +l uso de una capa oculta no !ue necesario, puesto que la red neuronal

logro converger a una solución con tan solo dos capas# Y esto resulta

lógico, puesto que cada neurona de salida se especializa en un solo patrón

de entradas <letra=, sin inter!erir con las dem"s#

● +n el caso de querer representar la letra reconocida en !ormato binario,

como el código A'*((, es indispensable usar una o m"s capas ocultas,

puesto que una letra a!ecta a varias salidas ahora, y esto hace que la

in!ormación de la capa de salida tenga que ser compartida entre sí#

● &ara lograr un reconocedor de teto, el principio de reconocer es el mismo,

es decir, letra por letra# La di!erencia va a estar en el pre/procesamiento de

la imagen, la cual debe seleccionar autom"ticamente letra por letra de todo

un teto continuo, siendo este un problema m"s de visión arti!icial#

Page 130: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 130/151

12

H CAPITULO III: Conclusiones & ecomendaciones

H.1 Conclusiones

● +l lenguaje de programación *. mostró ser un ecelente candidato para el

desarrollo de todo tipo de herramientas, brindando un ecelente equilibrio

entre !acilidad de sintais, velocidad y alcance !uncional#

● +n el desarrollo de herramientas, la creación de componentes y controles

<clases en DLL= son la mejor !orma de trabajar, puesto que nos brinda una

ecelente estructura organizativa, una muy buena documentación y

velocidad de desarrollo al usar código reciclado#

● +ncapsular los distintos códigos probados en una DLL nos brinda muchas

!acilidades como sonQ protección de código, compatibilidad entre lenguajes,

velocidad de compilación, etc#

● +l uso del motor gr"!ico JD(G que nos brinda la tecnología Dot2+3 resultó

ser muy liviana y r"pida, siendo la mejor !orma de mostrar una inter!az

gr"!ica para nuestros controles# Y así !acilitar el uso y comunicación entre

el programador y las herramientas#

● %sar una estructura F8L como el objeto Data'et propio de Dot2+3 para

ser de puente universal con todo tipo de almacenamiento de datos, es de

vital importancia cuando se crea una herramienta de propósito general#

&uesto que la tecnología F8L se ha convertido en un est"ndar en cuanto a

portabilidad de datos se re!iere#

Page 131: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 131/151

136

● +l uso de punteros es una ecelente !orma de ganar velocidad en los

procesos, no obstante hay que usarlos con mucho cuidado y no abusar de

los tama-os de memoria que se congelan#

● *uando de procesos costosos en tiempo se hablan, es indispensable el

uso de hilos <3hreads=# +n la practica, el uso de esta herramienta brinda

una transparencia a la hora de trabajar con normalidad en todo el sistema,

mientras un proceso se sigue ejecutando en otro hilo#

● +l traspaso de un modelamiento matem"tico a uno in!orm"tico,

especí!icamente el de programación, resulta bastante complejo de muchas

!ormas# &uesto que en el transcurso de este trabajo, el traspaso de las

!órmulas matem"ticas a código resultaba ambiguo, m"s que en la !órmula

en sí, en el orden de aplicar uno u otro proceso# +videnciando una !alta de

documentación al respecto, puesto que todos los tetos de in!ormación de

redes neuronales, muestran el camino o la solución matem"tica y

aconsejan el uso de so!tare dedicado como el 8atLab para su uso

in!orm"tico#

● La representación gr"!ica de la red neuronal es e!iciente cuando se trabaja

con redes relativamente peque-as, en donde se pueda apreciar sin ningn

problema las distintas neuronas y las coneiones entre ellas# 'i se requiere

usar una red mucho m"s grande, no se recomienda el uso de la inter!az

gr"!ica#

● +l algoritmo de bac1propagation es algo lento para llegar a converger a

una respuesta, no obstante permite alcanzar niveles de agrupación o

separación muy altos y precisos#

● %na adecuada documentación del código usando estructuras F8L, resulta

de mucha utilidad a la hora de usar un control o componente# Las distintas

Page 132: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 132/151

131

ayudas que nos brinda nuestro (D+ !avorito, nos van mostrando la

documentación de !orma din"mica, !acilitando signi!icativamente el

desarrollo de un sistema#

● +l uso correcto de las propiedades en un control o componente nos

permiten usar la ventana de propiedades de nuestro (D+ en tiempo de

dise-o, ganando mucha velocidad a la hora desarrollar un sistema#

●  Al encapsular un código en una DLL, se pierde todo acceso que no sea

de!inido al mismo, por este motivo, es de principal importancia dejar todos

los accesos posibles, tanto propiedades y m$todos que !uncionan como

entradas, así como los eventos que !uncionan como salidas o respuestas

del comportamiento de una clase#

● %na red neuronal no siempre llega a un resultado satis!actorio# +ste

depende de muchos !actores, en especial la con!iguración de la propia red#

+s decir, nmero de neuronas, nmero de capas, !unción de trans!erencia,

y dem"s# &or este motivo, la creación de este control es nicamente la

mitad del camino, de ahí parte toda la ciencia atr"s del uso y con!iguración

de las redes neuronales para la solución de problemas#

Page 133: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 133/151

132

H.2 ecomendaciones

+n!ocado hacia el 5suario Programador Q

● La inicialización de los pesos antes de entrenar una red es de vital

importancia# 'egn algunas pruebas que se hicieron, se aconseja colocarvalores muy cercanos a cero y con cierto equilibrio, es decir, que todos los

pesos est$n balanceados sin llegar a que en un lado de la red los pesos

tengan valores muy altos y al otro lado muy bajos#

● 'e debe analizar con mucho cuidado la !orma de representar las entradas

de una red# &or ejemplo, se puede epresar en una sola neurona un

nmero grande, o en muchas el mismo nmero en binario, o en

headecimal# Dependiendo de la importancia y variación que este nmero

va a tener en la red, se debe aprovechar lo mejor posible la in!ormación y

desglosarla en varias entradas#

● +l nmero de neuronas de salida tambi$n deben ser estudiadas,

analizando la mejor !orma de dispersar la in!ormación# Así una de lasmejores !ormas usada casi siempre, es las salidas binarias en conjunto o

en solitario, es decir, en solitario cuando se tiene una neurona por cada

salida deseada, y en conjunto cuando se aplica la combinación binaria

num$rica#

● Las capas ocultas resultan lo m"s complicado de resolver en cuanto a la

con!iguración se re!iere# 'e recomienda empezar sin ninguna capa oculta,

para que cada salida este linealmente epresada por una !unción de todas

las entradas# 'i lo vemos desde este punto de vista, la in!ormación de cada

salida est" completamente separada una de la otra# &ero si se requiere

que la in!ormación no trabaje por separado y m"s bien se busca

combinarlas, es necesario una capa oculta que entrevera la in!ormación#

● De la misma manera, el nmero de neuronas en cada capa oculta es un

dilema cubierto nicamente por la eperiencia del dise-ador# 2o obstante

Page 134: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 134/151

133

se puede aconsejar usar un nmero medio entre las entradas y salidas de

la red# *onsejo en el que coinciden casi todos los autores#

● +n cuanto a la !unción de trans!erencia se re!iere, la que m"s se usa es lasigmoide, sea tangencial o logarítmica# 2o obstante, cuando se requiere

una respuesta proporcional entre las entradas y las salidas, es mejor usar

la !unción lineal# Y cuando las eigencias del sistema así lo requieran, el

uso de la !unción gauss nos brinda mucha eactitud pero poca !leibilidad

al ingresar entradas que no han sido entrenadas previamente#

● 'e recomienda siempre tener un visor del error mientras la red se entrena#

+sto es de muchísima utilidad a la hora de probar una con!iguración,

puesto que con la curva del error se puede concluir un valor erróneo de la

taza de aprendizaje, o del momento; así como tambi$n se puede ver una

!alta de capas ocultas o dem"s par"metros#

Page 135: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 135/151

134

ILIO!A,JA

LibrosQ

● 2i1ola \# \asabov, 6oundations o! 2eural 2etor1s, 6uzzy 'ystems, and\noledge +ngineeringM, 'egunda +dición, BB?, 8assachusetts (nstituteo! 3echnology, ^ ('02 5C?C5?HKH _

● 9ol! +c1mille, 2eural netor1s <*omputer science=I *ongresses, BB5,%niversidad de 8ichigan, ^ ('02 5WWW??W55B _

● Oos$ 9# Rilera I >ictor O# 8artínez, 9edes 2euronales Arti!iciales#6undamentos, modelos y aplicacionesM, 4555, AL6AE8+JA Jrupo editor, ^('02 BH5C5CHB _

● 9# 9ojas# 7eural 7etwor<s: = 4stematic $ntroduction> 'pringer, BBK^ ('02 /CW5/K5C5C/ _

%9LsQ

● ?tt,%777.+i(&osot.(o+$&*ss,ass,&*ss2666ul66,'(gat*s8*not*,&.+s, 

● ?tt,%+s'n2.+i(&osot.(o+*s*sn*t&a+*7o&8aa5=239*nus:.as, 

● httpQIIes#i1ipedia#orgIi1iI#2+3 

● httpQIIen#i1ipedia#orgIi1iI8icroso!t)#2+3)6rameor1 

● httpQII#monogra!ias#comItrabajos4IredneuroIredneuro#shtml 

● httpQIIes#i1ipedia#orgIi1iI9edes)neuronales)arti!iciales 

● httpQIIohm#utp#edu#coIneuronalesI*apitulo4I0ac1propagationI9egla0#htm 

httpQIIes#i1ipedia#orgIi1iI9ed)neuronal 

● httpQIIes#i1ipedia#orgIi1iI2eurona 

● httpQIIen#i1ipedia#orgIi1iIJraphics)Device)(nter!ace 

● httpQIImsdn#microso!t#comIlibraryIde!ault#asp`urlZIlibraryIen/ usIgdicppIJD(&lusIaboutJD(&lus#asp

● httpQII#elguille#in!oIcolaboraIpunto2+3ItutJD(Iindice#htm 

Page 136: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 136/151

135

1K A*+O: 9anual de Usuario

1K.1 Introducción:

+l namespace  (A)92A, o!rece dos componentes para el uso de redes

neuronales arti!iciales# +l primer componente 92A, es en sí una red neuronal

arti!icial multi/perceptrón con el algoritmo de aprendizaje denominado

0ac1&ropagation o &ropagación para atr"s# Y el componente 92A)>isor es el

encargado de mostrar una !orma visual de la 92A, así, en el visor se muestra de

!orma gr"!ica cada una de las neuronas, sus pesos, capas, bias, etc#Dichos controles se encuentran encapsulados en un archivo DLL, por lo que

resulta indispensable tener un programa que lo use como re!erencia# +s por este

motivo que el presente trabajo est" en!ocado a un usuario programador y 2E a un

usuario !inal#

Page 137: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 137/151

13=

1K.2 A(re(ar los controles de IAF*A

 

%na vez creado cualquier proyecto bajo la tecnología Dot2+3, ya sea en

>isual 0asic o en *., siendo estos dos los m"s conocidos# >amos a usar laherramienta gr"!ica del dise-ador de nuestro (D+, como el que nos presenta el

8icroso!t >isual 'tudio 455C# Y seguimos los siguientes pasosQ

● +n la barra de herramientas en tiempo de dise-o, hacer clic derecho y

seleccionar la opción que diceQ +legir (temsM o *hosee (temsM

 Dibujo 1: =arra de erramientas % &'()!: Propia del 5utorJ e?traKdo de -,. +isual

,tudio 200

Page 138: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 138/151

13/

● +n la ventana que aparece, podemos elegir cualquier componente o

control del 6rame7or1 #2+3 o un componente *E8# +n nuestro caso

debemos seleccionar 0roser####M o +aminar###M, donde debemos elegir el

archivoQ IA_RNA?d11J y damos clic en E\#

● Los tres componentes del (A)92A#dll se encuentran ahora en nuestra

barra de herramientas con los siguientes gr"!icosQ

 Dibujo 2: +entana de selecci3n de componentes % &'()!: Propia del

 5utorJ e?traKdo de -,. +isual ,tudio 200

 Dibujo *: (conos de los componentes % &'()!: Propia

del 5utorJ e?traKdo de -,. +isual ,tudio 200

Page 139: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 139/151

13

● %na vez que los controles se encuentran en la barra de herramientas,

basta con arrastrarlas a un !ormulario para que el dise-ador de nuestro

(D+, se encargue del código que re!erencia el DLL#

1K.3 Con#i(urar la *A

La con!iguración de la 92A no es m"s que establecer las propiedades del

mismo, ya sea desde código o desde la barra de propiedades que nos o!rece

cualquier (D+ en su etapa de dise-o#

+n el caso de la propiedad Ecultas, la colección de capas se muestra en otra

ventana donde se puede agregar, modi!icar o eliminar cuantas capas se

requieran#

 Dibujo : Propiedades del componente '5 % &'()!: Propia del

 5utorJ e?traKdo de -,. +isual ,tudio 200

Page 140: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 140/151

13

D5"11s d 6"d" =ro=id"d

● C"="E/5r"d"_/u.ro< +s el nmero de neuronas en la capa de entrada#

● C"="S"1id"_/u.ro< +s el nmero de neuronas en la capa de salida#

● C"="S"1id"_5i=oFT< +s el tipo de !unción de trans!erencia de las neuronas

de la capa de salida, los cuales est"n de!inidos por el enum

unction?ransfer;?pe detallado m"s adelante#

● C"="S"1id"_For.u1"Cus5o.< +sta propiedad es usada cuando el tipo de

!unción de trans!erencia es !ijada como *%'3E8, y detalla en !orma de

stringM la !unción de trans!erencia a usarse, teniendo como argumento, lasuma del producto de todos los pesos y valores de entrada, denominado

por la mayoría de autores con la letra (M# &or ejemploQ

*apa'alida)6ormula*ustom Z 8ath#'in<(=M

● C"="S"1id"_9IAS< +sta propiedad establece si la capa de salida va a

tener una neurona auiliar denominada 0(A'

Nu.I5r"6io/s_E0/5o< +s el nmero de iteraciones a cumplirse paraque se genere el evento evento;$teracion del control#

 Dibujo : Propiedad &cultas % &'()!: Propia del 5utorJ e?traKdo de -,.

+isual ,tudio 200

Page 141: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 141/151

146

● O6u15"s< +sta propiedad como ya vimos es una colección de capas, que

permite !ijar a su vez propiedades por cada capa oculta que se agregue,

estas propiedades sonQ 0ias, 6ormula)*ustom, 3ipo63, 2umero2euronas;

que son eactamente iguales a las propiedades de la capa de salida, sino

que aplicadas a cada una de las capas ocultas#

Fu/65io/Tr"/s4r_T:=< +s un enum que describe los tipos de !unción de

trans!erencia que se puede aplicar a una capa de neuronas#

● Es6"1ó/?&  +s la !unción de trans!erencia típica, que de!ine una salida

binaria !ijada en un umbral que casi siempre es 5#

● Li/"1?& +s la !unción de trans!erencia que pasa el valor sin procesar, de

esta !orma epresa una proporción directa representada por una linea#

● Sig.oid Log"rK5.i6"?& +s la !unción de trans!erencia que nace de la

necesidad de usar el escalón como !unción continua para ser derivada y

así ser usada en el algoritmo de 0ac1&ropagation#

 Dibujo 6: #" !scal3n % &'()!: Propia

del 5utor 

 Dibujo 7: #" Lineal % &'()!: Propia del

 5utor 

 Dibujo 9: #" ,igmoide logarKtmica %

&'()!: Propia del 5utor 

Page 142: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 142/151

141

● Sig.oid T"/g/6i"1?&  +s una !unción de trans!erencia id$ntica a la

anterior pero con su límite in!erior en menos uno#

● C".="/" d G"uss& +s una !unción de trans!erencia que brinda una

salida activa muy eigente gracias a su !orma en campana de gauss#

● Cus5o.?&  +s la !unción de trans!erencia que permite personalizar la

!órmula#

 Dibujo <: #" ,igmoide "angencial % &'()!:

 Propia del 5utor 

 Dibujo 60: #" )auss % &'()!: Propia del

 5utor 

Page 143: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 143/151

142

1K.$ Con#i(urar el isor

+l control para visualizar una 92A, est" heredado de un %ser*ontrol y por lo

tanto sus propiedades cubren todos los niveles de herencia del control,centr"ndose las particulares de este control en tres grupos de propiedades#

3eniendo por separado a la propiedad 9ed)2euronal que es la que establece

cual red neuronal se va a visualizar#

1K.$.1 Capas

+n este grupo se establecen los colores de las neuronas que van a verse

en cada capa#

■ Co1or9IAS< +s el color que va a tomar el tri"ngulo que representa a

la neurona auiliar 0(A'#

■ Co1orE/5r"d"< +s el color que va a tomar todas las neuronas de la

capa de entrada

■ Co1orO6u15"s< +s el color que va a tomar todas las neuronas de las

capas ocultas#

■ Co1orS"1id"< +s el color que va a tomar todas las neuronas de la

capa de salida

■ Co1orSi.bo1o< +s el color que va a tomar el símbolo interno de

cada neurona que representa la !unción de trans!erencia#

1K.$.2 Pesos

 Aquí se establecen los par"metros para los pesos o coneiones <lineas=,

entre valores m"imos y mínimos que se ajustara un gradiente de color#

■ Co1orPsoM"H< +s el color que va a tomar la coneión cuando el

valor del peso sea mayor o igual a la propiedad @alorPesoaA #

■ Co1orPsoMi/< +s el color que va a tomar la coneión cuando el

valor del peso sea menor o igual a la propiedad @alorPesoin#

■ V"1orPsoM"H< +s el valor tomado como m"imo para asignar el

color de la propiedad *olor PesoaA #

Page 144: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 144/151

143

■ V"1orPsoMi/< +s el valor tomado como mínimo para asignar el

color de la propiedad *olor Pesoin#

1K.$.3 Tama=os

+n este grupo de propiedades se establecen los valores de apariencia adibujarse#

■ A/6>oCo/Hio/s<  +s el ancho en pieles de las coneiones

<lineas= a dibujarse, normalmente el valor es #

■ Co1orFo/5< +s el color que va a tener el resto del teto, como los

valores de entrada y salida#

Fu/5TH5o<  +s la !uente de teto a usarse para mostrar losvalores de entrada y salida#

■ Nuro/"T"."o< +s el di"metro en pieles que tendr" el circulo

que representa a cada una de las neuronas#

■ N.roD6i."1s< +s el nmero de decimales que van a usarse

para representar los valores de las salidas# >alor entre 5 para

adelante#

 Dibujo 61: onigurar el '5G+isor % &'()!: Propia del 5utor 

Page 145: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 145/151

144

1K.% +ntrenamiento

%na vez teniendo una 92A con!igurada, sea que esta tenga o no un control

92A)>isor asociado, se puede empezar con el proceso de entrenamiento#

+l entrenamiento de la red neuronal se da por medio de un m$todo del

componente 92A llamado Entrenar , el cual requiere C argumentos para trabajarQ

● 8uestras de entrada

● 8uestras de salida

Las muestras, tanto de entradas como de salidas deben ser epresadas en un

doble vector de tipo DE%0L+# &ara esto vamos a tener un ejemplo donde la redneuronal tenga neuronas de entrada y 4 de salida# Y vamos a epresar W

muestras#

Ent&a'a 1 Ent&a'a 2 Ent&a'a 3 !ali'a 1 !ali'a 2

u*st&a 1 2 5 / 1 6

u*st&a 2 3 4 = 1 6

u*st&a 3 5 4 6 6 1

u*st&a 4 4 1 6 1

Donde cada muestra va a ser un vector de tipo DE%0L+, y todas las muestras,

tanto de entradas como de salidas van a estar representadas por un vector de los

vectores de entrada, es decir un doble vector#

L9 <Learning 9ate= o 3aza de aprendizaje es un valor entre 5 y quede!ine la velocidad de aprendizaje que va a tener la red neuronal,

generalmente se empieza con un nivel alto, sea un 5#H o 5#? y se lo baja

progresivamente a medida que el entrenamiento !inalice# E simplemente se

lo deja con un valor medio, sea 5#C o 5#K

● 8omento es un valor que de!ine una tendencia hacia una dirección, este

valor ayuda a que la red neuronal no caiga en un oscilamiento perpetuo#

Page 146: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 146/151

145

● 8ínimo +rror es un valor requerido como meta, al cumplirse un error menor

o igual a este, el proceso de entrenamiento se da por !inalizado#

+l entrenamiento se procesa internamente por medio de un hilo di!erente al

proceso de la aplicación, y noti!ica a este su avance por medio de un evento

llamado evento)(teracion que se dispara al cumplir cuantas iteraciones se

especi!iquen en la propiedad 2um(teraciones)+vento del componente 92A#

Dicho evento, entrega en sus argumentos el conteo de las iteraciones y el error

que lleva el proceso de entrenamiento# +sto es clave para poder mostrar de una!orma gr"!ica el avance del entrenamiento al programador#

'ou-l*W XW X u*st&as_Ent&a'a  n*7 'ou-l*W4XS 4 u*st&as '* *nt&a'a

'ou-l*W XW X u*st&as_!ali'a  n*7 'ou-l*W4XS 4 u*st&as '* sali'a

u*st&as_Ent&a'aW6X  n*7 'ou-l*W3X 2@ 5@ /US u*st&a 1

u*st&as_Ent&a'aW1X  n*7 'ou-l*W3X 3@ 4@ =US u*st&a 2

u*st&as_Ent&a'aW2X  n*7 'ou-l*W3X 5@ 4@ 6US u*st&a 3

u*st&as_Ent&a'aW3X  n*7 'ou-l*W3X 4@ @ 1US u*st&a 4

u*st&as_!ali'aW6X  n*7 'ou-l*W2X 1@ 6 US u*st&a 1

u*st&as_!ali'aW1X  n*7 'ou-l*W2X 1@ 6 US u*st&a 2u*st&as_!ali'aW2X  n*7 'ou-l*W2X 6@ 1 US u*st&a 3

u*st&as_!ali'aW3X  n*7 'ou-l*W2X 6@ 1 US u*st&a 4

Ent&*na& (on un LR 6.= @ o+*nto '* 6.1 un E&&o& +0ni+o a 6.666661

&na1.Ent&*na&9u*st&as_Ent&a'a@ u*st&as_!ali'a@ 6.=@ 6.1@ 6.666661:S

3digo 10: !jem de entrenamiento % &'()!: Propia del autor 

Page 147: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 147/151

14=

&ara detener el proceso de entrenamiento, basta con ejecutar el m$todo

*ancelar+ntrenamiento#

6inalmente se puede concluir que el proceso de entrenamiento de una red

neuronal depende en su mayor parte del programador que la est$ supervisando,

teniendo a su disposición todas las herramientas para que pueda observar el

comportamiento de su red, y así determinar cambios en los par"metros de

entrenamiento o dise-o en la estructura de la red#

3eniendo un resultado satis!actorio del proceso de entrenamiento, es necesario

poder almacenar de alguna !orma los pesos de la red neuronal, que despu$s de

todo son los que almacenan la eperiencia del entrenamiento, pudiendo decir de

alguna !orma que los pesos son la memoria de nuestro peque-o cerebro <92A=#

&ara esto, tenemos dos !ormas de almacenar los pesosQ

Enlaa& *l *v*nto

&na1.*v*nto_It*&a(ion B n*7 RNA.'*l*ga'o_it*&a(ion9t?is.&na1_*v*nto_It*&a(ion:S

 

Ev*nto It*&a(i)n

 ,&ivat* voi' &na1_*v*nto_It*&a(ion9int int*&a(@ 'ou-l* *&&o&:

  ...........................................

U

3digo 11: !jem del eento iteraci3n % &'()!: Propia del autor 

Can(*la *l ,&o(*so '* *nt&*na+i*nto

&na1.Can(*la&Ent&*na+i*nto9 :S

3digo 12: Detener el entrenamiento % &'()!: Propia del autor 

Page 148: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 148/151

14/

● Obj5o D"5"S5< +l componente 92A tiene un m$todo llamado getData4et

y uno llamado setData4et , que nos entrega o recibe un objeto Data'et con

los pesos y estructura de la red, dicho objeto es usado en la tecnología

Dot2+3 como una base de datos virtual escrita en el lenguaje F8L,

pudiendo ser utilizada para importar o eportar a cualquier base de datos

soportada por Dot2+3#

● Ar6>i0o d "1."6/".i/5o< &ara no tener que usar obligatoria menteuna base de datos, el componente 92A tiene los m$todos Juardar y Abrir,

los cuales guardan y recuperan de un archivo plano toda la estructura y

pesos de una determinada red neuronal#

Gua&'a la *st&u(tu&a ,*sos '* la

&*' n*u&onal *n *l a&(?ivo *s,*(ii(a'o

&na1.Gua&'a&9ZC%[[&*'1.+lZ:S

R*(u,*&a la *st&u(tu&a ,*sos '* la

&*' n*u&onal '*l a&(?ivo *s,*(ii(a'o

&na1.A-&i&9ZC%[[&*'1.+lZ:S

3digo 1: !jemplo del uso de ichero % &'()!: Propia del

autor 

Data!*t 'atas*t1  n*7 Data!*t9:S

Gua&'a& *n ;as* '* Datos la *st&u(tu&a ,*sos '* la RNA

'atas*t1  &na1.g*tData!*t9:S

!HlDataA'a,t*&1.#,'at*9'atas*t1:S

R*stau&a& '*s'* una ;as* '* Datos la *st&u(tu&a ,*sos '* la RNA

!HlDataA'a,t*&1.Fill9'atas*t1:S

&na1.!*tData!*t9'atas*t1:S

3digo 1*: !jemplo de uso con =DD % &'()!: Propia del autor 

Page 149: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 149/151

14

1K.8 Consulta

&ara el proceso de consulta de la red neuronal, se debe tener ya una instancia de

92A con su estructura y pesos de entrenamiento, así que se pueden tomar varios

caminos para llegar a este punto# &or ejemplo, se puede consultar en la mismaaplicación del entrenamiento, o se puede guardar los pesos en un archivo o base

de datos y crear otra aplicación de consulta donde nicamente se restaure la red

neuronal previamente entrenada y usarla para consultas, siendo este ltimo la

!orma m"s comn de hacerlo#

(ndependientemente de como se llegue a tener la 92A entrenada, el proceso de

consulta es muy simple, basta con ejecutar el m$todo #valuar   de la 92A,

envi"ndole como argumento el vector de entradas de tipo DE%0L+#

&or ejemplo, si deseamos consultar a la red neuronal entrenada anteriormente

<ver *ódigo .=, se procedería a simplemente de!inir el vector de la entrada y

ejecutar el m$todo #valuar , cuyo resultado ser" el vector de salida# 2o obstante,

como en la mayoría de los casos, el objetivo de la consulta es tener nicamente

una neurona ganadora, el componente 92A posee una propiedad que se

actualiza despu$s de ejecutar una evaluación o consulta con el índice de la

neurona ganadora#

 Adicionalmente, es posible hacer una consulta directa por medio del control visor

de redes neuronales, y la consulta se e!ecta en tiempo de ejecución en lainter!az gr"!ica del visor#

<*(to& '* *nt&a'a

'ou-l*W X Ent&a'a  n*7 'ou-l*W3X 2@ 5@ /US

Evalua& 

&na1.Evalua&9Ent&a'a:S

N*u&ona gana'o&aint Gan'o&a &na1.In'*a!ali'aS

3digo 1: !jem de consulta % &'()!: Propia del autor 

Page 150: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 150/151

14

&ara cambiar los valores de entrada de la red en este modo gr"!ico, basta en

hacer clic con el ratón encima del valor de entrada y aparecer" un cuadro de

edición donde se puede alterar el valor# &ara salir de este modo de edición, basta

con hacer clic !uera del cuadro#

%na vez cambiados los valores de entrada, se puede acceder al men contetual

del visor haciendo clic secundario <típicamente derecho= encima del control y

seleccionar la primera opción que diceQ &rocesarM# *abe resaltar que desde estemen es posible ejecutar varias tareas, como !ijar pesos aleatorios, guardar y

restaurar desde un !ichero la estructura y pesos de la red asociada al visor, etc#

 Dibujo 62: ambiar alores de entrada desde el isor % &'()!:

 Propia del autor 

Page 151: Tesis Redes Neuronales Inteligencia Artificial

8/18/2019 Tesis Redes Neuronales Inteligencia Artificial

http://slidepdf.com/reader/full/tesis-redes-neuronales-inteligencia-artificial 151/151

156

 Dibujo 6*: -en conte?tual del isor % &'()!: Propia del autor