private

21
PDF generado usando el kit de herramientas de fuente abierta mwlib. Ver http://code.pediapress.com/ para mayor información. PDF generated at: Thu, 13 Mar 2014 06:07:07 UTC Los Cpu los tipos de asistemas

Upload: octavio-nunez

Post on 22-Jun-2015

102 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Private

PDF generado usando el kit de herramientas de fuente abierta mwlib. Ver http://code.pediapress.com/ para mayor información.PDF generated at: Thu, 13 Mar 2014 06:07:07 UTC

Los Cpulos tipos de asistemas

Page 2: Private

ContenidosArtículos

Algoritmo 1Aprendizaje automático 8Red neuronal artificial 11

ReferenciasFuentes y contribuyentes del artículo 17Fuentes de imagen, Licencias y contribuyentes 18

Licencias de artículosLicencia 19

Page 3: Private

Algoritmo 1

Algoritmo

Los diagramas de flujo sirven para representaralgoritmos de manera gráfica.

En matemáticas, lógica, ciencias de la computación y disciplinasrelacionadas, un algoritmo (del griego y latín, dixit algorithmus y estea su vez del matemático persa Al-Juarismi) es un conjunto prescrito deinstrucciones o reglas bien definidas, ordenadas y finitas que permiterealizar una actividad mediante pasos sucesivos que no generen dudasa quien deba realizar dicha actividad.[1] Dados un estado inicial y unaentrada, siguiendo los pasos sucesivos se llega a un estado final y seobtiene una solución. Los algoritmos son el objeto de estudio de laalgoritmia.

En la vida cotidiana, se emplean algoritmos frecuentemente pararesolver problemas. Algunos ejemplos son los manuales de usuario,que muestran algoritmos para usar un aparato, o las instrucciones querecibe un trabajador por parte de su patrón. Algunos ejemplos enmatemática son el algoritmo de multiplicación, para calcular elproducto, el algoritmo de la división para calcular el cociente de dosnúmeros, el algoritmo de Euclides para obtener el máximo comúndivisor de dos enteros positivos, o el método de Gauss para resolver unsistema lineal de ecuaciones.

Definición formalEn general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores losseñalan como listas de instrucciones para resolver un cálculo o un problema abstracto, es decir, que un número finitode pasos convierten los datos de un problema (entrada) en una solución (salida). Sin embargo cabe notar que algunosalgoritmos no necesariamente tienen que terminar o resolver un problema en particular. Por ejemplo, una versiónmodificada de la criba de Eratóstenes que nunca termine de calcular números primos no deja de ser un algoritmo.A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelosmatemáticos. Esto fue realizado por Alonzo Church en 1936 con el concepto de "calculabilidad efectiva" basada ensu cálculo lambda y por Alan Turing basándose en la máquina de Turing. Los dos enfoques son equivalentes, en elsentido en que se pueden resolver exactamente los mismos problemas con ambos enfoques. Sin embargo, estosmodelos están sujetos a un tipo particular de datos como son números, símbolos o gráficas mientras que, en general,los algoritmos funcionan sobre una vasta cantidad de estructuras de datos. En general, la parte común en todas lasdefiniciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmosparalelos:

Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–, definiendo así unasecuencia de estados "computacionales" por cada entrada válida (la entrada son los datos que se le suministranal algoritmo antes de comenzar).Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura deprimer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos)de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.Exploración acotada. La transición de un estado al siguiente queda completamente determinada por unadescripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta unacantidad fija y limitada de términos del estado actual.

Page 4: Private

Algoritmo 2

En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sinambigüedad y sin hacer referencia a una computadora en particular, y además tiene un límite fijo en cuanto a lacantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia definición abarca tanto a algoritmosprácticos como aquellos que solo funcionan en teoría, por ejemplo el método de Newton y la eliminación deGauss-Jordan funcionan, al menos en principio, con números de precisión infinita; sin embargo no es posibleprogramar la precisión infinita en una computadora, y no por ello dejan de ser algoritmos. En particular es posibleconsiderar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de que toda funcióncalculable se puede programar en una máquina de Turing (o equivalentemente, en un lenguaje de programaciónsuficientemente general):

Aritmetizabilidad. Solamente operaciones innegablemente calculables están disponibles en el paso inicial.

Medios de expresión de un algoritmoLos algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramasde flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas yextensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichasexpresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes deun lenguaje de programación específico.La descripción de un algoritmo usualmente se hace en tres niveles:1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el

algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto

capaz de llevar a cabo instrucciones.También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad oambos.

Diagrama de flujo

Page 5: Private

Algoritmo 3

Diagrama de flujo que expresa un algoritmo paracalcular la raíz cuadrada de un número

Los diagramas de flujo son descripciones gráficas de algoritmos; usansímbolos conectados con flechas para indicar la secuencia deinstrucciones y están regidos por ISO.

Los diagramas de flujo son usados para representar algoritmospequeños, ya que abarcan mucho espacio y su construcción eslaboriosa. Por su facilidad de lectura son usados como introducción alos algoritmos, descripción de un lenguaje y descripción de procesos apersonas ajenas a la computación.Los algoritmos pueden ser expresados de muchas maneras, incluyendoal lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes deprogramación entre otros. Las descripciones en lenguaje naturaltienden a ser ambiguas y extensas. El usar pseudocódigo y diagramasde flujo evita muchas ambigüedades del lenguaje natural. Dichasexpresiones son formas más estructuradas para representar algoritmos;no obstante, se mantienen independientes de un lenguaje deprogramación específico.

Pseudocódigo

El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto nivel de un algoritmoque emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes deprogramación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizadopara describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo deun algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que losalgoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas.

El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puedeomitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizarconvenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sinembargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno deprogramación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacerdirectamente a partir de él.Así el pseudodocódigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolosson los lenguajes para la programación. Busque fuentes más precisas para tener mayor comprensión del tema.

Sistemas formalesLa teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos que formalizan el conceptode algoritmo. Los modelos más comunes son la máquina de Turing, máquina de registro y funciones μ-recursivas.Estos modelos son tan precisos como un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sinembargo se mantienen independientes de cualquier computadora y de cualquier implementación.

ImplementaciónMuchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden serimplementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico y eléctrico.Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo demultiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raízcuadrada son sólo algunos ejemplos.

Page 6: Private

Algoritmo 4

VariablesSon elementos que toman valores específicos de un tipo de datos concreto. La declaración de una variable puederealizarse comenzando con var. Principalmente, existen dos maneras de otorgar valores iniciales a variables:1.1. Mediante una sentencia de asignación.2.2. Mediante un procedimiento de entrada de datos (por ejemplo: 'read').Ejemplo:

...

i:=1;

read(n);

while i < n do begin

(* cuerpo del bucle *)

i := i + 1

end;

...

Estructuras secuencialesLa estructura secuencial es aquella en la que una acción sigue a otra en secuencia. Las operaciones se suceden de talmodo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. La asignación deesto consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombrede la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma:1. Simples: Consiste en pasar un valor constante a una variable (a ← 15)2. Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a ← a + 1)3. Acumulador: Consiste en usarla como un sumador en un proceso (a ← a + b)4. De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a ←

c + b*2/4).Un ejemplo de estructura secuencial, como obtener la área de un triángulo:

Inicio

...

float b, h, a;

printf("Diga la base");

scanf("%f", &b);

printf("Diga la altura");

scanf("%f", &h);

a = (b*h)/2;

printf("El área del triángulo es %f", a)

...

Fin

Algoritmos como funciones

Page 7: Private

Algoritmo 5

Esquemática de un algoritmo solucionando un problema de ciclo hamiltoniano.

Un algoritmo se puede concebir comouna función que transforma los datosde un problema (entrada) en los datosde una solución (salida). Más aun, losdatos se pueden representar a su vezcomo secuencias de bits, y en general,de símbolos cualesquiera. Como cada secuencia de bits representa a un número natural (véase Sistema binario),entonces los algoritmos son en esencia funciones de los números naturales en los números naturales que sí se puedencalcular. Es decir que todo algoritmo calcula una función donde cada número natural es lacodificación de un problema o de una solución.

En ocasiones los algoritmos son susceptibles de nunca terminar, por ejemplo, cuando entran a un bucle infinito.Cuando esto ocurre, el algoritmo nunca devuelve ningún valor de salida, y podemos decir que la función quedaindefinida para ese valor de entrada. Por esta razón se considera que los algoritmos son funciones parciales, es decir,no necesariamente definidas en todo su dominio de definición.Cuando una función puede ser calculada por medios algorítmicos, sin importar la cantidad de memoria que ocupe oel tiempo que se tarde, se dice que dicha función es computable. No todas las funciones entre secuencias datos soncomputables. El problema de la parada es un ejemplo.

Análisis de algoritmosComo medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume elalgoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (oespecifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada.El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de loscasos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de programación ni cualquier otraimplementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisisde los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Unaforma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguajemuy simple tal como Lexico, cuyos códigos pueden estar en el idioma del programador.Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento,mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso enel que existiera algún dispositivo físico que fuera capaz de funcionar eternamente. En este último caso, lafinalización con éxito del algoritmo no se podría definir como la terminación de este con una salida satisfactoria,sino que el éxito estaría definido en función de las secuencias de salidas dadas durante un periodo de vida de laejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binariainfinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valordevuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario. De esta forma, mientras evalúa lasiguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en el caso de que el número de ceros seamayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como ladevolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso,devolverá una mezcla de señales positivas y negativas.

Page 8: Private

Algoritmo 6

Ejemplo de algoritmoEl problema consiste en encontrar el máximo de un conjunto de números. Para un ejemplo más complejo véaseAlgoritmo de Euclides.

Descripción de alto nivelDado un conjunto finito de números, se tiene el problema de encontrar el número más grande. Sin pérdida degeneralidad se puede asumir que dicho conjunto no es vacío y que sus elementos están numerados como

.

Es decir, dado un conjunto se pide encontrar tal que para todo elemento que pertenece al conjunto .Para encontrar el elemento máximo, se asume que el primer elemento ( ) es el máximo; luego, se recorre elconjunto y se compara cada valor con el valor del máximo número encontrado hasta ese momento. En el caso que unelemento sea mayor que el máximo, se asigna su valor al máximo. Cuando se termina de recorrer la lista, el máximonúmero que se ha encontrado es el máximo de todo el conjunto.

Descripción formalEl algoritmo puede ser escrito de una manera más formal en el siguiente pseudocódigo:

Algoritmo Encontrar el máximo de un conjunto

función max( )

// es un conjunto no vacío de números//

← // es el número de elementos de // ←

para ← hasta hacer

si entonces

← devolver

Sobre la notación:• "←" representa una asignación: ← significa que la variable toma el valor de ;• "devolver" termina el algoritmo y devuelve el valor a su derecha (en este caso, el máximo de ).

ImplementaciónEn lenguaje C++:

int max(int c[], int n)

{

int i, m = c[0];

for (i = 1; i < n; i++)

if (c[i] > m) m = c[i];

return m;

}

Page 9: Private

Algoritmo 7

Referencias[1] Real Academia Española. Diccionario de la lengua española (http:/ / buscon. rae. es/ draeI/ SrvltGUIBusUsual?TIPO_HTML=2&

TIPO_BUS=3& LEMA=algoritmo) "Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema."

Bibliografía• Fundamentos de Algoritmia, G. Brassard y P. Bratley. (ISBN 848966000X)• The Art of Computer Programming, Knuth, D. E. [quien fue también, el creador del TeX]• Introduction to Algorithms (2nd ed), Cormen, T. H., Leiserson, C. E., Rivest, R. L. y Stein, C.• Introduction to Algorithms. A Creative Approach, Mamber, U.• Algorithms in C (3r ed), Sedgewick, R. (también existen versiones en C++ y Java)•• The Design and Analysis of Computer Algorithms, Aho, A.

Enlaces externosWikilibros• Wikilibros alberga un libro o manual sobre Algoritmia.• Wikcionario tiene definiciones y otra información sobre algoritmo.Wikcionario• Portal de algoritmia (http:/ / www. algoritmia. net)• Técnicas de Diseño de Algoritmos (http:/ / www. lcc. uma. es/ ~av/ Libro/ ) manual que explica y ejemplifica los

distintos paradigmas de diseño de algoritmos. Rosa Guerequeta y Antonio Vallecillo (profesores de laUniversidad de Málaga).

• Transparencias de la asignatura "Esquemas Algorítmicos", Campos, J. (http:/ / webdiis. unizar. es/ asignaturas/EDA/ )

• Apuntes y problemas de Algorítmica por Domingo Giménez Cánovas (http:/ / dis. um. es/ ~domingo/ alg. html)• Curso de Diseño de Algoritmos de Carlos Pes (http:/ / www. carlospes. com/ curso_de_algoritmos/ )• Algoritmos y Diagramas de Flujo (http:/ / snippets-tricks. org/ algoritmos-y-diagramas-de-flujo/ )

Page 10: Private

Aprendizaje automático 8

Aprendizaje automáticoEl aprendizaje automático o aprendizaje de máquinas es una rama de la inteligencia artificial cuyo objetivo esdesarrollar técnicas que permitan a las computadoras aprender. De forma más concreta, se trata de crear programascapaces de generalizar comportamientos a partir de una información no estructurada suministrada en forma deejemplos. Es, por lo tanto, un proceso de inducción del conocimiento. En muchas ocasiones el campo de actuacióndel aprendizaje automático se solapa con el de la estadística, ya que las dos disciplinas se basan en el análisis dedatos. Sin embargo, el aprendizaje automático se centra más en el estudio de la complejidad computacional de losproblemas. Muchos problemas son de clase NP-hard, por lo que gran parte de la investigación realizada enaprendizaje automático está enfocada al diseño de soluciones factibles a esos problemas. El aprendizaje automáticopuede ser visto como un intento de automatizar algunas partes del método científico mediante métodos matemáticos.El aprendizaje automático tiene una amplia gama de aplicaciones, incluyendo motores de búsqueda, diagnósticosmédicos, detección de fraude en el uso de tarjetas de crédito, análisis del mercado de valores, clasificación desecuencias de ADN, reconocimiento del habla y del lenguaje escrito, juegos y robótica.

Aprendizaje automático

Interacción Hombre-Máquina

Algunos sistemas de Aprendizaje Automático intentan eliminar todanecesidad de intuición o conocimiento experto de los procesos deanálisis de datos, mientras otros tratan de establecer un marco decolaboración entre el experto y la computadora. De todas formas, laintuición humana no puede ser reemplazada en su totalidad, ya que eldiseñador del sistema ha de especificar la forma de representación delos datos y los métodos de manipulación y caracterización de losmismos.

Tipos de algoritmosLos diferentes algoritmos de Aprendizaje Automático se agrupan en una taxonomía en función de la salida de losmismos. Algunos tipos de algoritmos son:Aprendizaje supervisado

El algoritmo produce una función que establece una correspondencia entre las entradas y las salidas deseadasdel sistema. Un ejemplo de este tipo de algoritmo es el problema de clasificación, donde el sistema deaprendizaje trata de etiquetar (clasificar) una serie de vectores utilizando una entre varias categorías (clases).La base de conocimiento del sistema está formada por ejemplos de etiquetados anteriores. Este tipo deaprendizaje puede llegar a ser muy útil en problemas de investigación biológica, biología computacional ybioinformática.

Aprendizaje no supervisadoTodo el proceso de modelado se lleva a cabo sobre un conjunto de ejemplos formado tan sólo por entradas alsistema. No se tiene información sobre las categorías de esos ejemplos. Por lo tanto, en este caso, el sistematiene que ser capaz de reconocer patrones para poder etiquetar las nuevas entradas.

Aprendizaje semisupervisadoEste tipo de algoritmos combinan los dos algoritmos anteriores para poder clasificar de manera adecuada. Setiene en cuenta los datos marcados y los no marcados.

Page 11: Private

Aprendizaje automático 9

Aprendizaje por refuerzoEl algoritmo aprende observando el mundo que le rodea. Su información de entrada es el feedback oretroalimentación que obtiene del mundo exterior como respuesta a sus acciones. Por lo tanto, el sistemaaprende a base de ensayo-error.

TransducciónSimilar al aprendizaje supervisado, pero no construye de forma explícita una función. Trata de predecir lascategorías de los futuros ejemplos basándose en los ejemplos de entrada, sus respectivas categorías y losejemplos nuevos al sistema.

Aprendizaje multi-tareaMétodos de aprendizaje que usan conocimiento previamente aprendido por el sistema de cara a enfrentarse aproblemas parecidos a los ya vistos.

El análisis computacional y de rendimiento de los algoritmos de aprendizaje automático es una rama de la estadísticaconocida como teoría computacional del aprendizaje.El aprendizaje automático las personas lo llevamos a cabo de manera automática ya que es un proceso tan sencillopara nosotros que ni nos damos cuenta de cómo se realiza y todo lo que implica. Desde que nacemos hasta quemorimos los seres humanos llevamos a cabo diferentes procesos, entre ellos encontramos el de aprendizaje pormedio del cual adquirimos conocimientos, desarrollamos habilidades para analizar y evaluar a través de métodos ytécnicas así como también por medio de la experiencia propia. Sin embargo, a las máquinas hay que indicarles cómoaprender, ya que si no se logra que una máquina sea capaz de desarrollar sus habilidades, el proceso de aprendizajeno se estará llevando a cabo, sino que solo será una secuencia repetitiva. También debemos tener en cuenta que eltener conocimiento o el hecho de realizar bien el proceso de aprendizaje automático no implica que se sepa utilizar,es preciso saber aplicarlo en las actividades cotidianas, y un buen aprendizaje también implica saber cómo y cuándoutilizar nuestros conocimientos.Para llevar a cabo un buen aprendizaje es necesario considerar todos los factores que a este le rodean, como lasociedad, la economía, la ciudad, el ambiente, el lugar, etc. Por lo tanto, es necesario empezar a tomar diversasmedidas para lograr un aprendizaje adecuado, y obtener una automatización adecuada del aprendizaje. Así, loprimero que se debe tener en cuenta es el concepto de conocimiento, que es el entendimiento de un determinadotema o materia en el cual tu puedas dar tu opinión o punto de vista, así como responder a ciertas interrogantes quepuedan surgir de dicho tema o materia.En el aprendizaje automático podemos obtener 3 tipos de conocimiento, que son:1. Crecimiento

Es el que se adquiere de lo que nos rodea, el cual guarda la información en la memoria como si dejara huellas.2. Reestructuración

Al interpretar los conocimientos el individuo razona y genera nuevo conocimiento al cual se le llama dereestructuración.

3. AjusteEs el que se obtiene al generalizar varios conceptos o generando los propios.

Los tres tipos se efectúan durante un proceso de aprendizaje automático pero la importancia de cada tipo deconocimiento depende de las características de lo que se está tratando de aprender.El aprendizaje es más que una necesidad, es un factor primordial para satisfacer las necesidades de la inteligenciaartificial.

Page 12: Private

Aprendizaje automático 10

Aplicaciones•• Motores de búsqueda•• Diagnóstico médico•• Detección de fraudes con el uso de tarjetas de crédito•• Análisis del mercado de valores• Clasificación de secuencias de ADN•• Reconocimiento del habla•• Robótica

Temas del aprendizaje automáticoA continuación se muestran una serie de temas que podrían formar parte del temario de un curso sobre aprendizajeautomático.• Modelado de funciones de densidad de probabilidad condicionadas: clasificación y regresión

•• Redes neuronales artificiales•• Árboles de decisión•• Modelos de regresión múltiple no postulados•• Regresión en procesos Gaussianos•• Análisis de discriminantes lineales•• k-vecinos más próximos•• Perceptrón•• Funciones de base radial•• Máquinas de soporte vectorial

• Modelado de funciones de densidad de probabilidad mediante modelos generativos•• Algoritmo EM• Modelos gráficos, como las redes bayesianas y los campos aleatorios de Markov•• Mapeado topográfico generativo

•• Técnicas de inferencia aproximada• Cadenas de Markov y Método de Montecarlo•• Métodos variacionales

• Optimización: La mayoría de los métodos descritos arriba usan algoritmos de optimización o son por sí mismosinstancias de problemas de optimización.

Enlaces externos• Machine Learning Development with Perl [1] (en inglés)• Weka [2] Software open-source• Grupo de investigación - Sistemas Inteligentes [3]

Bibliografía• Mitchell, T. (1997). Machine Learning, McGraw Hill. ISBN 0-07-042807-7

Referencias[1] http:/ / www. perlmonks. org/ index. pl?node_id=638391[2] http:/ / www. cs. waikato. ac. nz/ ml/ weka[3] http:/ / web. archive. org/ web/ http:/ / www. esp. uem. es/ gsi/

Page 13: Private

Red neuronal artificial 11

Red neuronal artificial

Red neuronal artificial perceptrón multicapa con n neuronas de entrada, m neuronas en sucapa oculta y una neurona de escape.

Las redes de neuronas artificiales(denominadas habitualmente comoRNA o en inglés como: "ANN"[1]) sonun paradigma de aprendizaje yprocesamiento automático inspirado enla forma en que funciona el sistemanervioso de los animales. Se trata deun sistema de interconexión deneuronas que colaboran entre sí paraproducir un estímulo de salida. Eninteligencia artificial es frecuentereferirse a ellas como redes deneuronas o redes neuronales.

Historia

Los primeros modelos de redes neuronales datan de 1943 por los neurólogos McCulloch y Pitts. Años más tarde, en1949, Donald Hebb desarrolló sus ideas sobre el aprendizaje neuronal, quedando reflejado en la "regla de Hebb". En1958, Rosemblatt desarrolló el perceptrón simple, y en 1960, Widrow y Hoff desarrollaron el ADALINE, que fue laprimera aplicación industrial real.

En los años siguientes, se redujo la investigación, debido a la falta de modelos de aprendizaje y el estudio de Minskyy Papert sobre las limitaciones del perceptrón. Sin embargo, en los años 80, volvieron a resurgir las RNA gracias aldesarrollo de la red de Hopfield, y en especial, al algoritmo de aprendizaje de retropropagación ideado porRumelhart y McLellan en 1986 que fue aplicado en el desarrollo de los perceptrones multicapa. [2]

Propiedades

Perceptrón con 2 entradas.

Una red neuronal se compone de unidades llamadasneuronas. Cada neurona recibe una serie de entradas através de interconexiones y emite una salida. Estasalida viene dada por tres funciones:1. Una función de propagación (también conocida

como función de excitación), que por lo generalconsiste en el sumatorio de cada entradamultiplicada por el peso de su interconexión (valorneto). Si el peso es positivo, la conexión sedenomina excitatoria; si es negativo, se denomina inhibitoria.

2. Una función de activación, que modifica a la anterior. Puede no existir, siendo en este caso la salida la mismafunción de propagación.

3. Una función de transferencia, que se aplica al valor devuelto por la función de activación. Se utiliza para acotar lasalida de la neurona y generalmente viene dada por la interpretación que queramos darle a dichas salidas. Algunasde las más utilizadas son la función sigmoidea (para obtener valores en el intervalo [0,1]) y la tangentehiperbólica (para obtener valores en el intervalo [-1,1]).

Page 14: Private

Red neuronal artificial 12

Diseño y programación de una RNA (red neuronal artificial)Con un paradigma convencional de programación en ingeniería del software, el objetivo del programador es modelarmatemáticamente (con distintos grados de formalismo) el problema en cuestión y posteriormente formular unasolución (programa) mediante un algoritmo codificado que tenga una serie de propiedades que permitan resolverdicho problema. En contraposición, la aproximación basada en las RNA parte de un conjunto de datos de entradasuficientemente significativo y el objetivo es conseguir que la red aprenda automáticamente las propiedadesdeseadas. En este sentido, el diseño de la red tiene menos que ver con cuestiones como los flujos de datos y ladetección de condiciones, y más que ver con cuestiones tales como la selección del modelo de red, la de las variablesa incorporar y el preprocesamiento de la información que formará el conjunto de entrenamiento. Asimismo, elproceso por el que los parámetros de la red se adecuan a la resolución de cada problema no se denominagenéricamente programación sino que se suele denominar entrenamiento neuronal.Por ejemplo en una red que se va a aplicar al diagnóstico de imágenes médicas; durante la fase de entrenamiento elsistema recibe imágenes de tejidos que se sabe son cancerígenos y tejidos que se sabe son sanos, así como lasrespectivas clasificaciones de dichas imágenes. Si el entrenamiento es el adecuado, una vez concluido, el sistemapodrá recibir imágenes de tejidos no clasificados y obtener su clasificación sano/no sano con un buen grado deseguridad. Las variables de entrada pueden ser desde los puntos individuales de cada imagen hasta un vector decaracterísticas de las mismas que se puedan incorporar al sistema (por ejemplo, procedencia anatómica del tejido dela imagen o la edad del paciente al que se le extrajo la muestra).

EstructuraLa mayoría de los científicos coinciden en que una RNA es muy diferente en términos de estructura de un cerebroanimal. Al igual que el cerebro, una RNA se compone de un conjunto masivamente paralelo de unidades de procesomuy simples y es en las conexiones entre estas unidades donde reside la inteligencia de la red. Sin embargo, entérminos de escala, un cerebro es muchísimo mayor que cualquier RNA creada hasta la actualidad, y las neuronasartificiales también son más simples que su contrapartida animal.Biológicamente, un cerebro aprende mediante la reorganización de las conexiones sinápticas entre las neuronas quelo componen. De la misma manera, las RNA tienen un gran número de procesadores virtuales interconectados quede forma simplificada simulan la funcionalidad de las neuronas biológicas. En esta simulación, la reorganización delas conexiones sinápticas biológicas se modela mediante un mecanismo de pesos, que son ajustados durante la fasede aprendizaje. En una RNA entrenada, el conjunto de los pesos determina el conocimiento de esa RNA y tiene lapropiedad de resolver el problema para el que la RNA ha sido entrenada.Por otra parte, en una RNA, además de los pesos y las conexiones, cada neurona tiene asociada una funciónmatemática denominada función de transferencia. Dicha función genera la señal de salida de la neurona a partir delas señales de entrada. La entrada de la función es la suma de todas las señales de entrada por el peso asociado a laconexión de entrada de la señal. Algunos ejemplos de entradas son la función escalón de Heaviside, la lineal o mixta,la sigmoide y la función gaussiana, recordando que la función de transferencia es la relación entre la señal de salida yla entrada.

Page 15: Private

Red neuronal artificial 13

VentajasLas redes neuronales artificiales (RNA) tienen muchas ventajas debido a que están basadas en la estructura delsistema nervioso, principalmente el cerebro.• Aprendizaje: Las RNA tienen la habilidad de aprender mediante una etapa que se llama etapa de aprendizaje.

Esta consiste en proporcionar a la RNA datos como entrada a su vez que se le indica cuál es la salida (respuesta)esperada.

• Auto organización: Una RNA crea su propia representación de la información en su interior, descargando alusuario de esto.

• Tolerancia a fallos: Debido a que una RNA almacena la información de forma redundante, ésta puede seguirrespondiendo de manera aceptable aun si se daña parcialmente.

• Flexibilidad: Una RNA puede manejar cambios no importantes en la información de entrada, como señales conruido u otros cambios en la entrada (por ejemplo si la información de entrada es la imagen de un objeto, larespuesta correspondiente no sufre cambios si la imagen cambia un poco su brillo o el objeto cambialigeramente).

• Tiempo real: La estructura de una RNA es paralela, por lo cual si esto es implementado con computadoras o endispositivos electrónicos especiales, se pueden obtener respuestas en tiempo real.

Tipología de las RNA

ModelosExiste una serie de modelos que aparecen en la mayoría de estudios académicos y la bibliografía especializada.•• Perceptrón•• Adaline•• Perceptrón multicapa•• Memorias asociativas•• Máquina de Boltzmann•• Máquina de Cauchy•• Propagación hacia atrás (backpropagation)•• Redes de Elman•• Redes de Hopfield•• Red de contrapropagación•• Redes de neuronas de base radial•• Redes de neuronas de aprendizaje competitivo• Mapas Autoorganizados (RNA) (Redes de Kohonen)•• Crecimiento dinámico de células•• Gas Neuronal Creciente• Redes ART (Adaptative Resonance Theory)

TopologíaUna primera clasificación de las redes de neuronas artificiales que se suele hacer es en función del patrón deconexiones que presenta. Así se definen tres tipos básicos de redes:• Dos tipos de redes de propagación hacia delante o acíclicas en las que todas las señales van desde la capa de

entrada hacia la salida sin existir ciclos, ni conexiones entre neuronas de la misma capa de red neuronal y suclasificación.• Monocapa. Ejemplos: perceptrón, Adaline.

Page 16: Private

Red neuronal artificial 14

• Multicapa. Ejemplos: perceptrón multicapa.• Las redes recurrentes que presentan al menos un ciclo cerrado de activación neuronal. Ejemplos: Elman,

Hopfield, máquina de Boltzmann.

AprendizajeUna segunda clasificación que se suele hacer es en función del tipo de aprendizaje de que es capaz (si necesita o noun conjunto de entrenamiento supervisado). Para cada tipo de aprendizaje encontramos varios modelos propuestospor diferentes autores:• Aprendizaje supervisado: necesitan un conjunto de datos de entrada previamente clasificado o cuya respuesta

objetivo se conoce. Ejemplos de este tipo de redes son: el perceptrón simple, la red Adaline, el perceptrónmulticapa, red backpropagation, y la memoria asociativa bidireccional.

• Aprendizaje no supervisado o autoorganizado: no necesitan de tal conjunto previo. Ejemplos de este tipo deredes son: las memorias asociativas, las redes de Hopfield, la máquina de Boltzmann y la máquina de Cauchy, lasredes de aprendizaje competitivo, las redes de Kohonen o mapas autoorganizados y las redes de resonanciaadaptativa (ART).

• Redes híbridas: son un enfoque mixto en el que se utiliza una función de mejora para facilitar la convergencia.Un ejemplo de este último tipo son las redes de base radial.

• Aprendizaje reforzado: se sitúa a medio camino entre el supervisado y el autoorganizado.

Tipo de entradaFinalmente también se pueden clasificar las RNAs según sean capaces de procesar información de distinto tipo en:• Redes analógicas: procesan datos de entrada con valores continuos y, habitualmente, acotados. Ejemplos de este

tipo de redes son: Hopfield, Kohonen y las redes de aprendizaje competitivo.• Redes discretas: procesan datos de entrada de naturaleza discreta; habitualmente valores lógicos booleanos.

Ejemplos de este segundo tipo de redes son: las máquinas de Boltzmann y Cauchy, y la red discreta de Hopfield.

AplicacionesLas características de las RNA las hacen bastante apropiadas para aplicaciones en las que no se dispone a priori deun modelo identificable que pueda ser programado, pero se dispone de un conjunto básico de ejemplos de entrada(previamente clasificados o no). Asimismo, son altamente robustas tanto al ruido como a la disfunción de elementosconcretos y son fácilmente paralelizables.Esto incluye problemas de clasificación y reconocimiento de patrones de voz, imágenes, señales, etc. Asimismo sehan utilizado para encontrar patrones de fraude económico, hacer predicciones en el mercado financiero, hacerpredicciones de tiempo atmosférico, etc.También se pueden utilizar cuando no existen modelos matemáticos precisos o algoritmos con complejidadrazonable, por ejemplo la red de Kohonen ha sido aplicada con un éxito más que razonable al clásico problema delviajante (un problema para el que no se conoce solución algorítmica de complejidad polinómica).Otro tipo especial de redes neuronales artificiales se ha aplicado en conjunción con los algoritmos genéticos (AG)para crear controladores para robots. La disciplina que trata la evolución de redes neuronales mediante algoritmosgenéticos se denomina Robótica Evolutiva. En este tipo de aplicación el genoma del AG lo constituyen losparámetros de la red (topología, algoritmo de aprendizaje, funciones de activación, etc.) y la adecuación de la redviene dada por la adecuación del comportamiento exhibido por el robot controlado (normalmente una simulación dedicho comportamiento).

Page 17: Private

Red neuronal artificial 15

Ejemplos

Quake II Neuralbot

Un bot es un programa que simula a un jugador humano. El Neuralbot es un bot para el juego Quake II que utilizauna red neuronal artificial para decidir su comportamiento y un algoritmo genético para el aprendizaje. Es muy fácilprobarlo para ver su evolución. Más información aquí [3]

Clasificador No Sesgado de Proteínas

Es un programa que combina diversas técnicas computacionales con el objetivo de clasificar familias de proteínas.Un posible método consiste en utilizar métricas adaptativas como por ejemplo: mapas autoorganizados y algoritmosgenéticos.El problema de clasificación no sesgada basada en la expresión de las proteínas en Aminoácidos puede reducirse,conceptualmente, a lo siguiente:•• La identificación de grupos de proteínas que compartan características comunes.•• La determinación de las razones estructurales por las cuales las proteínas en cuestión se agrupan de la manera

indicada.• Evitar la idea de establecer criterios de clasificación (“sesgados”) fundamentados en ideas preconcebidas para

lograr su clasificación. En este sentido, hay dos asuntos que considerar:•• Cómo lograr la caracterización de las proteínas de manera no sesgada• Cómo lograr lo anterior sin apelar a medidas de agrupamiento que, a su vez, impliquen algún tipo de sesgo

sobre dicho agrupamiento.Las RNA han sido aplicadas a un número en aumento de problemas en la vida real y de considerable complejidad,donde su mayor ventaja es en la solución de problemas que son bastante complejos para la tecnología actual,tratándose de problemas que no tienen una solución algorítmica o cuya solución algorítmica es demasiado complejapara ser encontrada.En general, debido a que son parecidas a las del cerebro humano, las RNA son bien nombradas ya que son buenaspara resolver problemas que el humano puede resolver pero las computadoras no. Estos problemas incluyen elreconocimiento de patrones y la predicción del tiempo. De cualquier forma, el humano tiene capacidad para elreconocimiento de patrones, pero la capacidad de las redes neuronales no se ve afectada por la fatiga, condiciones detrabajo, estado emocional, y compensaciones.Se conocen cinco aplicaciones tecnológicas extendidas:1.1. Reconocimiento de textos manuscritos2.2. Reconocimiento del habla3.3. Simulación de centrales de producción de energía4.4. Detección de explosivos5.5. Identificación de blancos de radares

Page 18: Private

Red neuronal artificial 16

Referencias[1] Aunque en francés se utiliza el acrónimo ANN (de Artificial Neural Networks) para referirse a este campo de la computación en este artículo

se utilizará su equivalente castellano RNA.[2] Redes de Neuronas Artificiales (http:/ / www. lab. inf. uc3m. es/ ~a0080630/ redes-de-neuronas/ index. html), Redes de Neuronas

Artificiales, UC3M, RAI 2012.[3] http:/ / homepages. paradise. net. nz/ nickamy/ neuralbot/ index. html

Enlaces externos• Wikimedia Commons alberga contenido multimedia sobre Red neuronal artificialCommons.• Redes Neuronales Artificiales - Implementación con C# (catellano) (http:/ / www. pedrov. info/ redesneuronales.

html)• Tutorial de la Universidad Politécnica de Madrid (http:/ / www. gc. ssr. upm. es/ inves/ neural/ ann2/ anntutorial.

html) (castellano)• Introducción a las redes de neuronas artificiales (http:/ / sabia. tic. udc. es/ mgestal/ cv/ RNAtutorial/ index. html)

(castellano)• Artículos sobre redes neuronales artificiales (http:/ / www. neurosecurity. com/ articles. php) (inglés)• Sitio Web sobre redes neuronales artificiales, ejemplos y aplicaciones (http:/ / electronica. com. mx/ neural)

(castellano)• Introducción a las Redes Neuronales y sus Modelos (http:/ / www. redes-neuronales. com. es/

tutorial-redes-neuronales/ tutorial-redes. htm) (castellano)• Sistema nervioso artificial (http:/ / www. dat. etsit. upm. es/ ?q=node/ 5955)• ¿Qué son las redes neuronales? (http:/ / info. fisica. uson. mx/ arnulfo. castellanos/ archivos_html/ quesonredneu.

htm)(castellano)

Page 19: Private

Fuentes y contribuyentes del artículo 17

Fuentes y contribuyentes del artículoAlgoritmo  Fuente: http://es.wikipedia.org/w/index.php?oldid=72474879  Contribuyentes: -jem-, .Sergio, AS990, Abel406, AchedDamiman, Acratta, Adrianantoniors, Airunp, Aitorzubiaurre,AlbertMA, Albertochoa, Aleator, Alejandrocaro35, Alexav8, AlfonsoERomero, Alhen, AlphaWiki, Alvaro qc, Amadís, Angel GN, Angus, Antonorsi, Antur, Aquiel, Arlm1, Arthur 'Two Sheds'Jackson, Açipni-Lovrij, Baiji, Balderai, Banfield, BlackBeast, BuenaGente, CASF, Caiser, Calitb, Camilo, Camima, Carlo el calvo, Carmin, Carutsu, Chuchot, Cinabrium, Clarad, ClausxD,Cratón, Crescent Moon, Ctrl Z, Dangelin5, Danielba894, David0811, DerHexer, Diegusjaimes, Dodo, Dogor, Dorieo, Drake 81, Dromero, Ecemaml, Edgar, Edslov, Eduardosalg, Edub, Eduman,Efegé, Ejmeza, Elabra sanchez, Elisardojm, Elwikipedista, Emiduronte, Emijrp, Er Komandante, Eyetheunlord, Ezarate, FAR, Fadesga, Farisori, Fegc77, Fide07, Flakinho, Francisco Mochis,Fsd141, GermanX, Ginés90, Gizmo II, Gothmog, Guillervf91, Gusbelluwiki, Gusgus, H3r3dia, HUB, Haitike, Halfdrag, Hantartico, Henry bedon, Heynry1, Huhsunqu, Humbefa, Humberto,Ictlogist, Igna, Ignacio Icke, Imperioonepiece, Ingenioso Hidalgo, Irvinopuma, Isha, JAAC, JMPerez, Jarisleif, Jarke, Javierito92, Jecanre, Jesuja, Jhoelito14, Jjflorescueto, Jkbw, JorgeGG,Jorgeu, Jsanchezes, Jstitch, JuanRodríguez, Jugones55, Julie, Junior1209, Kn, KnightRider, Komputisto, Kotas, Kved, Laura Fiorucci, Lcpousa, Lecuona, Leonpolanco, Libertad y Saber, Llull,Lourdes Cardenal, M.heda, Macrocoliset, MadriCR, Mansoncc, ManuelGR, Manwë, Mar del Sur, MarcoAurelio, Matdrodes, McMalamute, Mel 23, Metilisopropilisergamida, Metrónomo,Miguel hdez, MiguelAngel fotografo, Mipataentutrasero, MorZilla, Moriel, Mortadelo2005, Muro de Aguas, Mutari, Netito777, Ninovolador, Nixón, Nocturnogatuno, Obueno, Orgullomoore,Paintman, Pan con queso, Papaplus, Pedrito suarez, Pedrovicenterosero, Peregring-lk, PeruProfe, Petruss, Pit, Pólux, Qix, Queninosta, Raulshc, Raystorm, Rbonvall, Relleu, Renly, Rigenea,Riviera, Rosarino, RoyFocker, RoyFokker, Rsg, Ruy Pugliesi, Ríos-Ortega, S3v3r-1, Sabbut, Sancebau, Sandovaltk10, Sauron, Savh, Schummy, Sebrev, Sergio Andres Segovia, Shining.Star,Shooke, Snakeyes, Sophie kowalsky, Speedplus, SuperBraulio13, Superzerocool, Tano4595, Technopat, Tirithel, Tomatejc, Tostadora, Triku, Ucevista, Valentin estevanez navarro, Veon, VicFede, Virgi, Vitamine, Waka Waka, Wikielwikingo, Wilfredor, Willtron, XalD, Xavigivax, Xpress500, Xxim, Xxxmagicmanxxx, Yeza, YoaR, Zam, ZrzlKing, Zupez zeta, conversion script,proxy1.unizar.es, 1098 ediciones anónimas

Aprendizaje automático  Fuente: http://es.wikipedia.org/w/index.php?oldid=72480584  Contribuyentes: Acratta, AlfonsoERomero, Ascánder, Astaffolani, Claudiapat1, Damifb, Davidsevilla,Debora.riu, DerkeNuke, Edub, El Quinche, Enric Naval, Ensada, Farisori, Gbayon, GermanX, Grillitus, Hiperfelix, Hspitia, Ignacio Icke, Jesuja, Jmartinezot, JoaquinFerrero, Jorge.maturana,Lagoset, Luis Felipe Schenone, Machucho2007, Mar25 mercedes, OLGA JANET, Pinar, Pintaio, T4nn0, Taichi, Technopat, Trylks, 35 ediciones anónimas

Red neuronal artificial  Fuente: http://es.wikipedia.org/w/index.php?oldid=73133317  Contribuyentes: Alcojol, Alhen, Alrik, Anrfernandez, Ascánder, Augt.pelle, Beepath, CayoMarcio,Changcho, Chico512, Cinabrium, Claudiapat1, Cobalttempest, DamianFinol, Danidvt, Daniel G., Danypalma1984, DerkeNuke, Deu2000, Dodo, Ecemaml, Emijrp, Enric Naval, Ensada, Farisori,Finderlog, Fortran, Gacpro, Gengiskanhg, GermanX, Góngora, HiTe, Hombresigma, Hprmedina, Humbefa, Humberto, Icvav, Ivanwalkesmc, JMPerez, Jcaraballo, Jkbw, Joma.huguet,Jorge.maturana, Jorgenumata, Jose figueredo, Joseaperez, Juan renombrado, JurgenNL, Lancaster, Lionni, Lobillo, LuchoX, Maldoror, Manwë, Matdrodes, Moriel, Mortadelo2005, NaBUru38,Nathan, Nerika, No sé qué nick poner, Oscar ., Osepu, PabloGN, Paintman, Pedromanuelbaeza, Petronas, Pinar, Pólux, RGLago, Ricardogpn, Rosarinagazo, Rsg, Saloca, Sauron, Srbanana,SuperBraulio13, Taichi, Tamorlan, Tano4595, Technopat, Trec, UA31, Varano, Xavigivax, Yearofthedragon, YoniG, Zorak, 224 ediciones anónimas

Page 20: Private

Fuentes de imagen, Licencias y contribuyentes 18

Fuentes de imagen, Licencias y contribuyentesArchivo:LampFlowchart-es.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:LampFlowchart-es.svg  Licencia: Creative Commons Attribution-Sharealike 3.0  Contribuyentes:LampFlowchart.svg: svg by Booyabazookaoriginal png by Wapcaplet derivative work: Huhsunqu (talk)Archivo:AlgoritmoRaiz.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:AlgoritmoRaiz.png  Licencia: Creative Commons Attribution-Sharealike 2.5  Contribuyentes: KnArchivo:EsquemáticaAlgoritmo1.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:EsquemáticaAlgoritmo1.svg  Licencia: Creative Commons Attribution-Share Alike Contribuyentes: KnArchivo:Wikibooks-logo.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Wikibooks-logo.svg  Licencia: logo  Contribuyentes: User:Bastique, User:Ramac et al.Archivo:Wiktionary-logo-es.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Wiktionary-logo-es.png  Licencia: logo  Contribuyentes: es:Usuario:PybaloArchivo:Esquema aprendizaje.jpg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Esquema_aprendizaje.jpg  Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: User:Debora.riuArchivo:RedNeuronalArtificial.png  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:RedNeuronalArtificial.png  Licencia: GNU Free Documentation License  Contribuyentes:Original uploader was Gengiskanhg at es.wikipediaArchivo:Computer.Science.AI.Neuron.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Computer.Science.AI.Neuron.svg  Licencia: Creative Commons Attribution-ShareAlike3.0 Unported  Contribuyentes: User:YearofthedragonArchivo:Commons-logo.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Commons-logo.svg  Licencia: logo  Contribuyentes: SVG version was created by User:Grunt andcleaned up by 3247, based on the earlier PNG version, created by Reidab.

Page 21: Private

Licencia 19

LicenciaCreative Commons Attribution-Share Alike 3.0//creativecommons.org/licenses/by-sa/3.0/