0% encontró este documento útil (0 votos)
279 vistas22 páginas

Algoritmos Genéticos: Funcionamiento y Usos

Los algoritmos genéticos funcionan optimizando soluciones a problemas a través de procesos inspirados en la evolución biológica como la selección natural, el cruzamiento y la mutación. Evalúan soluciones codificadas como cromosomas y generan nuevas soluciones aplicando operadores genéticos para mejorar la aptitud de la población a lo largo de las generaciones hasta alcanzar una solución óptima. Se han aplicado con éxito en muchos problemas de optimización complejos.

Cargado por

Cristian Se
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
279 vistas22 páginas

Algoritmos Genéticos: Funcionamiento y Usos

Los algoritmos genéticos funcionan optimizando soluciones a problemas a través de procesos inspirados en la evolución biológica como la selección natural, el cruzamiento y la mutación. Evalúan soluciones codificadas como cromosomas y generan nuevas soluciones aplicando operadores genéticos para mejorar la aptitud de la población a lo largo de las generaciones hasta alcanzar una solución óptima. Se han aplicado con éxito en muchos problemas de optimización complejos.

Cargado por

Cristian Se
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Algoritmos genèticos

Introducción[editar]
Funcionamiento[editar]

Los algoritmos genéticos (AG) funcionan entre el conjunto de soluciones de un problema llamado fenotipo, y el conjunto de individuos de
una población natural, codificando la información de cada solución en una cadena, generalmente binaria, llamada cromosoma. Los
símbolos que forman la cadena son llamados genes. Cuando la representación de los cromosomas se hace con cadenas de dígitos
binarios se le conoce como genotipo. Los cromosomas evolucionan a través de iteraciones, llamadas generaciones. En cada
generación, los cromosomas son evaluados usando alguna medida de aptitud. Las siguientes generaciones (nuevos cromosomas), son
generadas aplicando los operadores genéticos repetidamente, siendo estos los operadores
de selección, cruzamiento, mutación y reemplazo.

Cuándo usar estos algoritmos[editar]

Los algoritmos genéticos son de probada eficacia en caso de querer calcular funciones no derivables (o de derivación muy compleja)
aunque su uso es posible con cualquier función.
Deben tenerse en cuenta también las siguientes consideraciones:

 Si la función a optimizar tiene muchos máximos/mínimos locales se requerirán más iteraciones del algoritmo para "asegurar"
el máximo/mínimo global.

 Si la función a optimizar contiene varios puntos muy cercanos en valor al óptimo, solamente podemos "asegurar" que
encontraremos uno de ellos (no necesariamente el óptimo).
Funcionamiento de un algoritmo genético básico[editar]

Un algoritmo genético puede presentar diversas variaciones, dependiendo de cómo se aplican los operadores genéticos
(cruzamiento, mutación), de cómo se realiza la selección y de cómo se decide el reemplazo de los individuos para formar la nueva
población. En general, el pseudocódigo consiste de los siguientes pasos:

Algoritmo genético i: inicialización, f(X): evaluación, ?: condición de término, Se: selección, Cr: cruzamiento, Mu: mutación, Re:
reemplazo, X*: mejor solución.

 Inicialización: Se genera aleatoriamente la población inicial, que está constituida por un conjunto de cromosomas los cuales
representan las posibles soluciones del problema. En caso de no hacerlo aleatoriamente, es importante garantizar que dentro de
la población inicial, se tenga la diversidad estructural de estas soluciones para tener una representación de la mayor parte de la
población posible o al menos evitar la convergencia prematura.

 Evaluación: A cada uno de los cromosomas de esta población se aplicará la función de aptitud para saber cómo de "buena"
es la solución que se está codificando.

 Condición de término: El AG se deberá detener cuando se alcance la solución óptima, pero esta generalmente se
desconoce, por lo que se deben utilizar otros criterios de detención. Normalmente se usan dos criterios: correr el AG un número
máximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en la población. Mientras no se cumpla la condición
de término se hace lo siguiente:

o Selección: Después de saber la aptitud de cada cromosoma se procede a elegir los cromosomas que serán
cruzados en la siguiente generación. Los cromosomas con mejor aptitud tienen mayor probabilidad de ser seleccionados.

o Recombinación o cruzamiento: La recombinación es el principal operador genético, representa la reproducción


sexual, opera sobre dos cromosomas a la vez para generar dos descendientes donde se combinan las características de
ambos cromosomas padres.

o Mutación: Modifica al azar parte del cromosoma de los individuos, y permite alcanzar zonas del espacio de
búsqueda que no estaban cubiertas por los individuos de la población actual.
o Reemplazo: Una vez aplicados los operadores genéticos, se seleccionan los mejores individuos para conformar
la población de la generación siguiente.
Desventajas y limitaciones[editar]

Entre otras podemos mencionar:

 Para problemas de alta complejidad la función de evaluación puede tornarse demasiado costosa en términos de tiempo y
recursos. Por ejemplo existen casos en la vida real para los cuales recrear una simulación de la solución propuesta por una
iteración puede tardar muchos días y consumir gran cantidad de procesamiento y recursos asociados.

 Puede haber casos en los cuales dependiendo los parámetros que se utilicen para la evaluación el algoritmo podría no llegar
a converger en una solución óptima o bien terminar en una convergencia prematura con resultados no satisfactorios (la
convergencia prematura podría significar una convergencia en un óptimo local o punto arbitrario afectando los resultados a largo
plazo).

 Se dice que no poseen una buena escalabilidad con la complejidad, por ejemplo para sistemas que están compuestos por
muchas variables, componentes o elementos su respectivo espacio de búsqueda crece de manera exponencial debido entre otras
cosas a las relaciones que puedan surgir, por lo tanto el problema del diseño de una aeronave debe desglosarse en
representaciones simples, como perfiles aerodinámicos, tomando en cuenta que la recombinación de los elementos puede
perjudicar el rendimiento individual.

 La "mejor" solución lo es solo en comparación a otras soluciones por lo que no se tiene demasiado claro un criterio de
cuándo detenerse ya que no se cuenta con una solución específica.

 No es recomendable utilizarlos para problemas que buscan respuesta a problemas que convergen en soluciones simples
como Correcto/Incorrecto ya que el algoritmo difícilmente convergerá y el resultado será tan válido como escogerlo al azar.

 El diseño, la creación de la función de aptitud (fitness) y la selección de los criterios de mutación entre otros, necesitan de
cierta pericia y conocimiento del problema para obtener buenos resultados.
Aplicaciones[editar]

 Diseño automatizado, incluyendo investigación en diseño de materiales y diseño multiobjetivo de componentes


automovilísticos: mejor comportamiento ante choques, ahorros de peso, mejora de aerodinámica, etc.

 Diseño automatizado de equipamiento industrial.

 Diseño automatizado de sistemas de comercio en el sector financiero.

 Construcción de árboles filogenéticos.

 Optimización de carga de contenedores.

 Diseño de sistemas de distribución de aguas.

 Diseño de topologías de circuitos impresos.

 Diseño de topologías de redes computacionales.

 En teoría de juegos, resolución de equilibrios.

 Análisis de expresión de genes.

 Aprendizaje de comportamiento de robots.

 Aprendizaje de reglas de lógica difusa.

 Análisis lingüístico, incluyendo inducción gramática, y otros aspectos de procesamiento de lenguajes naturales, tales como
eliminación de ambigüedad de sentido.

 Infraestructura de redes de comunicaciones móviles.

 Optimización de estructuras moleculares.

 Planificación de producción multicriteria.

 Predicción.
 Aplicación de algoritmos genéticos al dilema del prisionero iterado.

 Optimización de sistemas de compresión de datos, por ejemplo, usando wavelets.

 Predicción de plegamiento de proteínas.

 Optimización de Layout.

 Predicción de estructura de ARN.

 En bioinformática, alineamiento múltiple de secuencias.

 Aplicaciones en planificación de procesos industriales, incluyendo planificación job-shop.

 Selección óptima de modelos matemáticos para la descripción de sistemas biológicos.

 Manejo de residuos sólidos.

 Ingeniería de software.

 Construcción de horarios en grandes universidades, evitando conflictos de clases.

 Problema del viajante.

 Hallazgo de errores en programas.

 Optimización de producción y distribución de energía eléctrica.

 Diseño de redes geodésicas (problemas de diseño).

 Calibración y detección de daños en estructuras civiles.

Metodología[editar]
Problemas de optimización[editar]

En un algoritmo genético, una población de soluciones candidatas (llamadas individuos, criaturas o fenotipos) a un problema de
optimización se desarrolla hacia mejores soluciones. Cada solución candidata tiene un conjunto de propiedades
(sus cromosomas o genotipos) que pueden ser mutados y alterados. Tradicionalmente, las soluciones se representan en binario como
cadenas de ceros y unos, pero también son posibles otras codificaciones.

La evolución suele partir de una población de individuos generados al azar, y es un proceso iterativo, con la población en cada iteración
llamada generación. En cada generación, se evalúa la aptitud de cada individuo en la población. La aptitud suele ser el valor de la
función objetivo en el problema de optimización que se está resolviendo. Los individuos más aptos son seleccionados estocásticamente
de la población actual, y el genoma de cada individuo es modificado ( recombinado y posiblemente mutado al azar) para formar una
nueva generación. La nueva generación de soluciones candidatas se utiliza entonces en la siguiente iteración del algoritmo.
Comúnmente, el algoritmo termina cuando se ha producido un número máximo de generaciones, o se ha alcanzado un nivel de aptitud
satisfactorio para la población.

Un algoritmo genético típico requiere:

1. Una representación genética del dominio de la solución.

2. Una función de aptitud para evaluar el dominio de la solución.

Una representación estándar de cada solución candidata es como una matriz de bits. Las matrices de otros tipos y estructuras se
pueden utilizar esencialmente de la misma manera. La propiedad principal que hace convenientes estas representaciones genéticas es
que sus partes son fácilmente alineadas debido a su tamaño fijo, lo que facilita las operaciones de cruce simple. También se pueden
usar representaciones de longitud variable, pero la implementación del entrecruzamiento cromosómico es más compleja en este caso.
Las representaciones arborescentes se exploran en la programación genética y las representaciones en forma de gráfico se exploran en
la programación evolutiva. Una mezcla de ambos cromosomas lineales y árboles se explora en la programación de expresión génetica.

Una vez que se define la representación genética y la función de acondicionamiento físico, un AG procede a inicializar una población de
soluciones y luego a mejorarla mediante la aplicación repetitiva de los operadores de mutación, entrecruzamiento cromosómico,
inversión y selección.

Inicialización[editar]

El tamaño de la población depende de la naturaleza del problema, pero normalmente contiene varios cientos o miles de posibles
soluciones. A menudo, la población inicial se genera aleatoriamente, permitiendo toda la gama de posibles soluciones (el espacio de
búsqueda). Ocasionalmente, las soluciones pueden ser "sembradas" en áreas donde es probable encontrar soluciones óptimas.

Selección[editar]
Durante cada generación sucesiva, una parte de la población existente se selecciona para criar una nueva generación. Las soluciones
individuales se seleccionan a través de un proceso basado en la aptitud, donde las soluciones de acondicionamiento (como medido por
una función de acondicionamiento físico) son típicamente más probables de ser seleccionadas. Ciertos métodos de selección evalúan la
aptitud de cada solución y preferentemente seleccionan las mejores soluciones. Otros métodos califican solo a una muestra aleatoria de
la población, ya que el proceso anterior puede llevar mucho tiempo.

La función de fitness se define sobre la representación genética y mide la calidad de la solución representada. La función de
acondicionamiento físico depende siempre del problema. Por ejemplo, en el problema de la mochila se quiere maximizar el valor total de
los objetos que se pueden poner en una mochila de alguna capacidad fija. Una representación de una solución puede ser una matriz de
bits, donde cada bit representa un objeto diferente, y el valor del bit (0 o 1) representa si el objeto está o no en la mochila. No todas las
representaciones son válidas, ya que el tamaño de los objetos puede exceder la capacidad de la mochila. La aptitud de la solución es la
suma de valores de todos los objetos en la mochila si la representación es válida, o 0 de lo contrario.

En algunos problemas, es difícil o incluso imposible definir la expresión de la condición física. En estos casos, se puede utilizar
una simulación para determinar el valor de la función de aptitud de un fenotipo (por ejemplo, la dinámica de fluidos computacional se usa
para determinar la resistencia al aire de un vehículo cuya forma se codifica como fenotipo) o incluso algoritmos genéticos interactivos.

Operadores genéticos[editar]

El siguiente paso es generar una población de segunda generación, de soluciones de las seleccionadas a través de una combinación de
operadores genéticos: entrecruzamiento cromosómico (también llamado crossover o recombinación) y mutación.

Para cada nueva solución que se ha producido, se ha seleccionado un par de soluciones "padre" para la cría de la agrupación
seleccionada previamente. Al producir una solución de "cría" usando los métodos de entrecruzamiento cromosómico y mutación arriba
mencionados, se crea una nueva solución que típicamente comparte muchas de las características de sus "padres". Se seleccionan
nuevos padres para cada nueva cría, y el proceso continúa hasta que se genere una nueva población de soluciones de tamaño
apropiado. Aunque los métodos de reproducción que se basan en el uso de dos padres son más "biología inspirada", algunos temas de
investigación sugieren que más de dos "padres" puedan generar cromosomas de mayor calidad.

Estos procesos finalmente resultan en la siguiente generación de población de cromosomas, que es diferente a la generación inicial. En
general, la aptitud física promedio se ha incrementado por este procedimiento para la población, ya que solo los mejores organismos de
la primera generación son seleccionados para la cría, junto con una pequeña proporción de soluciones menos aptas. Estas soluciones
menos aptas aseguran la diversidad genética dentro del grupo genético de los padres y, por lo tanto, aseguran la diversidad genética de
la siguiente generación de hijos.

La opinión se divide en la importancia del cruce versus la mutación. Hay muchas referencias en Fogel (2006) que apoyan la importancia
de la búsqueda basada en mutaciones.

Aunque el cruce y la mutación se conocen como los principales operadores genéticos, es posible utilizar otros operadores como el
reagrupamiento, la colonización-extinción o la migración en algoritmos genéticos.

Vale la pena ajustar parámetros como la probabilidad de mutación, la probabilidad de entrecruzamiento cromosómico y el tamaño de la
población para encontrar ajustes razonables para la clase de problema que se está trabajando. Una tasa de mutación muy pequeña
puede conducir a la deriva genética (que es de naturaleza no ergódica). Una tasa de recombinación que es demasiado alta puede
conducir a la convergencia prematura del algoritmo genético. Una tasa de mutación demasiado alta puede conducir a la pérdida de
buenas soluciones, a menos que se utilice una selección elitista.

Terminación[editar]

Este proceso generacional se repite hasta que se alcanza una condición de terminación. Las condiciones de terminación comunes son:

 Se encuentra una solución que satisface los criterios mínimos.

 Se alcanza un número fijado de generaciones.

 Se alcanza el presupuesto asignado (tiempo de cálculo / dinero).

 La aptitud de la solución de la clasificación más alta está alcanzando o ha alcanzado una meseta tal que las sucesivas
iteraciones ya no producen mejores resultados.

 Inspección manual.

 Combinaciones de las anteriores.

La hipótesis del bloque de construcción[editar]

Los algoritmos genéticos son sencillos de implementar, pero su comportamiento es difícil de entender. En particular, es difícil entender
por qué estos algoritmos con frecuencia tienen éxito en la generación de soluciones de alta aptitud cuando se aplica a problemas
prácticos. La hipótesis del bloque de construcción (BBH) consiste en:

 Una descripción de una heurística que realiza la adaptación identificando y recombinando "bloques de construcción", es
decir, orden bajo, esquemas de definición de longitud baja con una aptitud superior al promedio.

 Una hipótesis de que un algoritmo genético realiza adaptación implícita y eficientemente implementando esta heurística.

Goldberg describe la heurística de la siguiente manera:

Los esquemas cortos, de bajo orden y de alto ajuste son muestreados, recombinados (cruzados) y remuestreados para formar cadenas
de aptitud potencialmente más alta. En cierto modo, al trabajar con estos esquemas particulares (los bloques de construcción), hemos
reducido la complejidad de nuestro problema. En lugar de construir cadenas de alto rendimiento mediante el intento de todas las
combinaciones concebibles, construimos mejores y mejores cadenas de las mejores soluciones parciales de los últimos muestreos.
"Debido a que los esquemas altamente ajustados de baja definición de longitud y bajo orden desempeñan un papel tan importante en la
acción de los algoritmos genéticos, ya les hemos dado un nombre especial: bloques de construcción. Como un niño crea magníficas
fortalezas a través de la disposición de bloques simples de madera, también lo hace un algoritmo genético buscando acercarse a un
rendimiento óptimo a través de la yuxtaposición de corto, de bajo orden, de alto rendimiento esquemas, o bloques de construcción."

A pesar de la falta de consenso en cuanto a la validez de la hipótesis de bloques de construcción, se ha evaluado y utilizado como
referencia a lo largo de los años. Muchas estimaciones de los algoritmos de distribución, por ejemplo, se han propuesto en un intento de
proporcionar un entorno en el que la hipótesis se cumpliría. Aunque se han reportado buenos resultados para algunas clases de
problemas, todavía queda escepticismo con respecto a la generalidad y / o practicidad de la hipótesis del bloque de construcción como
explicación de la eficiencia de los AG. De hecho, hay una cantidad razonable de trabajo que intenta entender sus limitaciones desde la
perspectiva de la estimación de los algoritmos de distribución.

Limitaciones[editar]

Existen limitaciones en el uso de un algoritmo genético en comparación con algoritmos de optimización alternativos:

 La evaluación repetida de la función de aptitud para problemas complejos es a menudo el segmento más prohibitivo y
limitante de los algoritmos evolutivos artificiales. Encontrar la solución óptima a problemas tridimensionales y multimodales
complejos requiere a menudo evaluaciones de la función de acondicionamiento muy costosas. En problemas del mundo real tales
como problemas de optimización estructural, una evaluación de una sola función puede requerir varias horas a varios días de
simulación completa. Métodos típicos de optimización no pueden hacer frente a este tipo de problemas. En este caso, puede ser
necesario renunciar a una evaluación exacta y utilizar una aptitud aproximada que sea computacionalmente eficiente. Es evidente
que la amalgama de modelos aproximados puede ser uno de los enfoques más prometedores para usar de manera convincente
AG para resolver complejos problemas de la vida real.

 Los algoritmos genéticos no se adecuan bien a la complejidad. Es decir, cuando el número de elementos expuestos a la
mutación es grande, a menudo hay un aumento exponencial en el tamaño del espacio de búsqueda. Esto hace extremadamente
difícil el uso de la técnica en problemas tales como el diseño de un motor, una casa o un avión. Con el fin de hacer que tales
problemas sean tratables a la búsqueda evolutiva, deben ser descompuestos en la representación más simple posible. Por lo
tanto, normalmente vemos algoritmos evolutivos que codifican diseños para álabes de ventilador en lugar de motores, formas de
construcción en lugar de planes detallados de construcción y perfiles aerodinámicos en lugar de diseños completos de aeronaves.
El segundo problema de la complejidad es la cuestión de cómo proteger partes que han evolucionado para representar buenas
soluciones de una mutación destructiva adicional, particularmente cuando su evaluación de la aptitud requiere que se combinen
bien con otras partes.

 La solución "mejor" es sólo en comparación con otras soluciones. Como resultado, el criterio de parada no está claro en
cada problema.

 En muchos problemas, los AG pueden tener una tendencia a converger hacia óptima local o incluso puntos arbitrarios en
lugar del óptimo global del problema. Esto significa que no "sabe cómo" sacrificar la aptitud a corto plazo para ganar aptitud a más
largo plazo. La probabilidad de que esto ocurra depende de la forma del paisaje de fitness: ciertos problemas pueden proporcionar
un ascenso fácil hacia un óptimo global, otros pueden hacer que sea más fácil para la función encontrar la óptima local. Este
problema puede ser aliviado mediante el uso de una función de fitness diferentes, el aumento de la tasa de mutación, o mediante
el uso de técnicas de selección que mantienen una diversa población de soluciones [12], aunque el almuerzo libre teorema [13]
demuestra que no hay una solución general A este problema. Una técnica común para mantener la diversidad es imponer una
"pena de nicho", en la cual, cualquier grupo de individuos de similar similitud (radio de nicho) tiene una penalización agregada, lo
que reducirá la representación de ese grupo en generaciones posteriores, permitiendo otros) A mantener en la población. Este
truco, sin embargo, puede no ser eficaz, dependiendo del paisaje del problema. Otra técnica posible sería simplemente
reemplazar parte de la población con individuos generados al azar, cuando la mayoría de la población es demasiado similar entre
sí. La diversidad es importante en los algoritmos genéticos (y en la programación genética) porque cruzar una población
homogénea no genera nuevas soluciones. En las estrategias de evolución y la programación evolutiva, la diversidad no es
esencial debido a una mayor dependencia de la mutación.

 Operar en conjuntos de datos dinámicos es difícil, ya que los genomas comienzan a converger tempranamente hacia
soluciones que ya no son válidas para datos posteriores. Se han propuesto varios métodos para remediar esto, aumentando la
diversidad genética de alguna manera y evitando la convergencia temprana, ya sea aumentando la probabilidad de mutación
cuando cae la calidad de la solución (llamada hipermutación desencadenada) o introduciendo ocasionalmente nuevos elementos
generados aleatoriamente en el conjunto genético (Llamados inmigrantes aleatorios). Una vez más, las estrategias de evolución y
la programación evolutiva se pueden implementar con una llamada "estrategia de coma" en la que los padres no se mantienen y
los nuevos padres se seleccionan sólo a partir de la descendencia. Esto puede ser más eficaz en problemas dinámicos.

 Los GAs no pueden resolver problemas en los que la única medida correcta es una medida correcta / incorrecta (como
problemas de decisión), ya que no hay forma de converger en la solución (no hay colina para escalar). En estos casos, una
búsqueda aleatoria puede encontrar una solución tan rápidamente como una AG. Sin embargo, si la situación permite que el
ensayo de éxito / fracaso se repita dando (posiblemente) resultados diferentes, entonces la proporción de éxitos a fracasos
proporciona una medida de aptitud adecuada.

 Para problemas específicos de optimización e instancias problemáticas, otros algoritmos de optimización pueden ser más
eficientes que los algoritmos genéticos en términos de velocidad de convergencia. Los algoritmos alternativos y complementarios
incluyen estrategias de evolución, programación evolutiva, recocido simulado, adaptación gaussiana, escalada de colinas e
inteligencia de enjambre (por ejemplo: optimización de hormigas, optimización de enjambre de partículas) y métodos basados en
programación lineal entera. La idoneidad de los algoritmos genéticos depende de la cantidad de conocimiento del problema; Los
problemas bien conocidos suelen tener enfoques mejores y más especializados.

Variantes[editar]
Representación del cromosoma[editar]

El algoritmo más simple representa cada cromosoma como una cadena de bits. Normalmente, los parámetros numéricos pueden ser
representados por números enteros, aunque es posible usar representaciones de coma flotante. La representación en coma flotante es
natural para las estrategias de evolución y la programación evolutiva. La noción de algoritmos genéticos de valor real se ha ofrecido pero
es realmente un nombre incorrecto porque no representa realmente la teoría del bloque de construcción que fue propuesta por John
Henry Holland en los años 70. Esta teoría no está sin apoyo, sin embargo, sobre la base de los resultados teóricos y experimentales
(véase más adelante). El algoritmo básico realiza el cruce y la mutación en el nivel de bits. Otras variantes tratan el cromosoma como
una lista de números que son índices en una tabla de instrucciones, nodos en una lista enlazada, hashes, objetos o cualquier otra
estructura de datos imaginable. El cruce y la mutación se realizan para respetar los límites de los elementos de datos. Para la mayoría
de los tipos de datos, se pueden diseñar operadores de variación específicos. Los diferentes tipos de datos cromosómicos parecen
funcionar mejor o peor para diferentes dominios de problemas específicos.

Cuando se utilizan representaciones de números de bits de números enteros, a menudo se emplea la codificación Gray. De esta
manera, pequeños cambios en el número entero pueden ser fácilmente afectados por mutaciones o crossovers. Esto se ha encontrado
para ayudar a prevenir la convergencia prematura en las paredes llamadas Hamming, en el que demasiadas mutaciones simultáneas (o
eventos de cruce) debe ocurrir con el fin de cambiar el cromosoma a una mejor solución.

Otros enfoques implican el uso de matrices de números de valor real en lugar de cadenas de bits para representar los cromosomas. Los
resultados de la teoría de los esquemas sugieren que en general, cuanto menor es el alfabeto, mejor es el rendimiento, pero inicialmente
fue sorprendente para los investigadores que se obtuvieron buenos resultados usando cromosomas de valor real. Esto se explicó como
el conjunto de valores reales en una población finita de cromosomas como la formación de un alfabeto virtual (cuando la selección y la
recombinación son dominantes) con una cardinalidad mucho menor de lo que se esperaría de una representación en coma flotante [14]
[15]

Una expansión del algoritmo genético accesible problema del dominio se puede obtener a través de la codificación más compleja de la
solución de agrupaciones por concatenación de varios tipos de genes heterogéneamente codificados en un cromosoma. [16] Este
enfoque particular permite resolver problemas de optimización que requieren dominios de definición sumamente dispares para los
parámetros del problema. Por ejemplo, en los problemas de ajuste en cascada del controlador, la estructura del controlador de bucle
interno puede pertenecer a un regulador convencional de tres parámetros, mientras que el bucle externo podría implementar un
controlador lingüístico (tal como un sistema difuso) que tiene una descripción inherentemente diferente. Esta forma particular de
codificación requiere un mecanismo especializado de cruce que recombina el cromosoma por sección, y es una herramienta útil para el
modelado y simulación de sistemas adaptativos complejos, especialmente procesos de evolución.

Elitismo[editar]

Una variante práctica del proceso general de construcción de una nueva población es permitir que los mejores organismos de la
generación actual se trasladen a la siguiente, sin alterarse. Esta estrategia se conoce como selección elitista y garantiza que la calidad
de la solución obtenida por la GA no disminuirá de una generación a la siguiente

Implementaciones paralelas[editar]

Implementaciones paralelas de algoritmos genéticos vienen en dos sabores. Los algoritmos genéticos paralelos de grano grueso
asumen una población en cada uno de los nodos informáticos y la migración de individuos entre los nodos. Los algoritmos genéticos
paralelos suponen un individuo en cada nodo procesador que actúa con individuos vecinos para la selección y reproducción. Otras
variantes, como algoritmos genéticos para problemas de optimización en línea, introducen dependencia del tiempo o ruido en la función
de fitness.

Algoritmo genético adaptativo[editar]

Los algoritmos genéticos con parámetros adaptativos (algoritmos genéticos adaptativos, AGAs) es otra variante significativa y
prometedora de los algoritmos genéticos. Las probabilidades de crossover (pc) y mutación (pm) determinan en gran medida el grado de
exactitud de la solución y la velocidad de convergencia que los algoritmos genéticos pueden obtener. En lugar de utilizar valores fijos de
pc y pm, los AGs utilizan la información de población en cada generación y ajustan adaptativamente el pc y pm con el fin de mantener la
diversidad de población así como para sostener la capacidad de convergencia. En AGA (algoritmo genético adaptativo), el ajuste de pc y
pm depende de los valores de aptitud de las soluciones. En CAGA (algoritmo adaptativo basado en el clustering), a través del uso de
análisis de agrupación para juzgar los estados de optimización de la población, el ajuste de pc y pm depende de estos estados de
optimización. Puede ser muy eficaz combinar GA con otros métodos de optimización. GA tiende a ser bastante bueno para encontrar en
general buenas soluciones globales, pero bastante ineficiente para encontrar las últimas mutaciones para encontrar el óptimo absoluto.
Otras técnicas (como la simple subida de colinas) son bastante eficientes para encontrar el óptimo absoluto en una región limitada. La
alternancia de GA y escalada de colinas puede mejorar la eficiencia de GA [citación necesaria], mientras que superar la falta de solidez
de la subida de la colina.

Esto significa que las reglas de variación genética pueden tener un significado diferente en el caso natural. Por ejemplo - siempre que
los pasos se almacenan en orden consecutivo - cruce puede sumar una serie de pasos de ADN materno añadiendo una serie de pasos
de ADN paterno y así sucesivamente. Esto es como añadir vectores que más probablemente pueden seguir una cresta en el paisaje
fenotípico. Por lo tanto, la eficiencia del proceso puede aumentarse en muchos órdenes de magnitud. Además, el operador de inversión
tiene la oportunidad de situar los pasos en orden consecutivo o cualquier otra orden adecuada a favor de la supervivencia o la eficiencia.

Una variación, en la que la población en su conjunto se desarrolla en lugar de sus miembros individuales, se conoce como
recombinación de grupos genéticos.

Se han desarrollado una serie de variaciones para intentar mejorar el rendimiento de los AGs en problemas con un alto grado de
epistasis de aptitud, es decir, cuando la aptitud de una solución consiste en interaccionar subconjuntos de sus variables. Tales
algoritmos tienen como objetivo aprender (antes de explotar) estas interacciones fenotípicas beneficiosas. Como tales, están alineados
con la hipótesis del bloque de construcción en la reducción adaptativa de la recombinación disruptiva.

Dominios de problemas[editar]

Los problemas que parecen ser particularmente apropiados para la solución mediante algoritmos genéticos incluyen problemas de
programación y muchos paquetes de software de programación se basan en AGs. Los AG también se han aplicado a la ingeniería. Los
algoritmos genéticos a menudo se aplican como un enfoque para resolver problemas de optimización global.

Como regla general, los algoritmos genéticos pueden ser útiles en dominios problemáticos que tienen un paisaje de aptitud complejo, ya
que la mezcla, es decir, la mutación en combinación con crossover, está diseñada para alejar a la población de la óptima local de que un
algoritmo tradicional. Observe que los operadores de crossover de uso común no pueden cambiar ninguna población uniforme. La
mutación por sí sola puede proporcionar ergodicidad del proceso general del algoritmo genético (visto como una cadena de Markov).

Historia[editar]

En 1950, Alan Turing propuso una "máquina de aprendizaje" que sería paralela a los principios de la evolución. La simulación por
computadora de la evolución comenzó tan pronto como en 1954 con el trabajo de Nils Aall Barricelli, que utilizaba la computadora en el
instituto para el estudio avanzado en Princeton, New Jersey. Su publicación de 1954 no fue ampliamente notada. A partir de 1957, el
australiano cuantitativo genetista Alex Fraser publicó una serie de artículos sobre la simulación de la selección artificial de organismos
con múltiples loci controlando un rasgo mensurable. A partir de estos comienzos, la simulación por ordenador de la evolución por los
biólogos se hizo más común a principios de 1960, y los métodos fueron descritos en los libros de Fraser y Burnell (1970)
y Crosby (1973) Las simulaciones de Fraser incluían todos los elementos esenciales de los algoritmos genéticos modernos.
Además, Hans-Joachim Bremermannpublicó una serie de artículos en los años sesenta que también adoptaron una población de
solución a problemas de optimización, sometidos a recombinación, mutación y selección. La investigación de Bremermann también
incluyó los elementos de los algoritmos genéticos modernos. Otros destacados primeros pioneros son Richard Friedberg, George
Friedman y Michael Conrad. Muchos de los primeros artículos han sido reimpresos por Fogel (1998).

Aunque Barricelli, en el trabajo que relató en 1963, había simulado la evolución de la capacidad de jugar un juego simple, la evolución
artificial se convirtió en un método de optimización ampliamente reconocido como resultado del trabajo de Ingo Rechenberg y Hans-Paul
Schwefel en los años 1960 Y principios de 1970 - el grupo de Rechenberg fue capaz de resolver problemas complejos de ingeniería a
través de estrategias de evolución.Otro enfoque fue la técnica de programación evolutiva de Lawrence J. Fogel, que se propuso para
generar inteligencia artificial. La programación evolutiva utilizó originalmente máquinas de estado finito para predecir los entornos y
utilizó la variación y la selección para optimizar las lógicas predictivas. Los algoritmos genéticos, en particular, se hicieron populares a
través del trabajo de John Henry Holland a principios de los años setenta, y particularmente de su libro Adaptation in Natural and
Artificial Systems (1975). Su trabajo se originó con estudios de autómatas celulares, conducidos por Holanda y sus estudiantes en la
Universidad de Michigan. Holanda introdujo un marco formalizado para predecir la calidad de la próxima generación, conocido como el
teorema del esquema de Holanda. La investigación en GAs permaneció en gran parte teórica hasta mediados de los años 80, cuando la
primera conferencia internacional en algoritmos genéticos fue llevada a cabo en Pittsburgh, Pennsylvania.

Productos comerciales[editar]

A finales de 1980, General Electric comenzó a vender el primer producto de algoritmo genético del mundo, una caja de herramientas
basada en mainframe diseñada para procesos industriales. En 1989, Axcelis, Inc. lanzó Evolver, el primer producto AG comercial para
computadoras de escritorio. El escritor de la tecnología del New York Times John Markoff escribió sobre Evolver en 1990, y siguió siendo
el único algoritmo comercial interactivo hasta 1995. Evolver fue vendido a Palisade en 1997, traducido a varios idiomas, y actualmente
está en su sexta versión.

Ejemplo[editar]

Considérese el problema de insertar signos de suma o resta entre los dígitos 9 8 7 6 5 4 3 2 1 para construir una expresión cuyo valor
sea 100; no se vale añadir, retirar o desordenar a los dígitos. Una solución puede ser 98+7-6+5-4+3-2-1 porque, al evaluar su valor, da
exactamente 100.

Hay 9 sitios (uno antes de cada dígito) donde colocar un signo de más (+), un signo de menos (-) o nada (lo cual implicará que dos o
más dígitos se unan para formar cantidades mayores; como 98 en el ejemplo anterior, donde se puso "nada" antes del 9 y antes del 8).
Existen, por lo tanto, 3 a la 9 = 19683 expresiones distintas (por combinatoria) entre las cuales buscar aquellas con la suma deseada. Es
posible desarrollar un algoritmo exhaustivo que las genere todas y, dada la relativa pequeñez de este ejemplo, determinar
completamente todas las posibles configuraciones. Sin embargo, este reto se presta para ilustrar los pasos de un proceso genético.

Codificación[editar]

Existe una biyección entre las cadenas de "trits" (dígitos ternarios: 0, 1, 2) de longitud 9 y las posibles configuraciones de signos para
cada suma. Por ejemplo, si se adopta la convención de que "0" representa "nada", "1" representa "menos" y "2" representa "más",
entonces la cadena de "trits" 002121211 corresponde a la solución 98+7-6+5-4+3-2-1.

Técnicas relacionadas[editar]
Campos de los padres[editar]

Los algoritmos genéticos son un subcampo de:

 Algoritmos evolutivos

 Computación evolutiva

 Metaheurística

 Optimización estocástica

 Mejoramiento
Campos relacionados[editar]
Algoritmos evolutivos[editar]

Los algoritmos evolutivos son un sub-campo de la computación evolutiva.

 Las estrategias de evolución (ES, véase Rechenberg, 1994) evolucionan a los individuos por medio de la mutación y la
recombinación intermedia o discreta. Los algoritmos ES están diseñados especialmente para resolver problemas en el dominio de
valor real. Utilizan la autoadaptación para ajustar los parámetros de control de la búsqueda. La des-aleatorización de la auto-
adaptación ha llevado a la actual Covariance Matrix Adaptation Evolution Strategy (CMA-ES).

 La programación evolutiva (EP) implica poblaciones de soluciones con mutación y selección y representaciones arbitrarias.
Utiliza la autoadaptación para ajustar los parámetros, y puede incluir otras operaciones de variación, como combinar información
de múltiples padres.

 La estimación del algoritmo de distribución (EDA) sustituye a los operadores tradicionales de reproducción por operadores
guiados por modelos. Estos modelos son aprendidos de la población empleando técnicas de aprendizaje automático y
representados como Modelos Gráficos Probabilísticos, a partir de los cuales se pueden muestrear nuevas soluciones [45] [46] o
generadas a partir de entrecruzamiento cromosómico guiado [47].
 La programación de expresión génica (GEP) también utiliza poblaciones de programas informáticos. Estos complejos
programas informáticos están codificados en cromosomas lineales más simples de longitud fija, que luego se expresan como
árboles de expresión. Los árboles de expresión o programas informáticos evolucionan porque los cromosomas experimentan
mutación y recombinación de una manera similar a la GA canónica. Pero gracias a la organización especial de los cromosomas
GEP, estas modificaciones genéticas siempre dan lugar a programas informáticos válidos. [48]

 La programación genética (GP) es una técnica relacionada popularizada por John Koza en la que se optimizan los
programas informáticos, en lugar de los parámetros funcionales. La programación genética a menudo utiliza estructuras de datos
internas basadas en árboles para representar los programas informáticos para la adaptación en lugar de las estructuras de lista
típicas de los algoritmos genéticos.

 La agrupación algoritmo genético (GGA) es una evolución de la AG donde el foco se desplaza de los elementos individuales,
como en las AG clásicas, a los grupos o subconjunto de elementos. [49] La idea detrás de esta evolución de la GA propuesta por
Emanuel Falkenauer es que la solución de algunos problemas complejos, como la agrupación o problemas de partición donde un
conjunto de elementos debe ser dividido en un grupo de elementos disjuntos de una manera óptima, se lograría mejor mediante la
toma de características de los grupos de artículos equivalentes a los genes. Este tipo de problemas incluyen embalaje de
contenedores, balanceo de líneas, agrupación con respecto a una medida de distancia, pilas iguales, etc., en las que los GA
clásicos demostraron un mal desempeño. Hacer que los genes equivalgan a grupos implica cromosomas que son en general de
longitud variable, y operadores genéticos especiales que manipulan grupos enteros de elementos. Para el embalaje de los
recipientes, en particular, un GGA hibridado con el Criterio de Dominancia de Martello y Toth, es posiblemente la mejor técnica
hasta la fecha.

 Los algoritmos evolutivos interactivos son algoritmos evolutivos que utilizan la evaluación humana. Por lo general, se aplican
a dominios donde es difícil diseñar una función de aptitud computacional, por ejemplo, la evolución de imágenes, música, diseños
artísticos y formas para ajustarse a la preferencia estética de los usuarios.
Inteligencia de enjambre[editar]

 La optimización de la colonia de hormigas (ACO) utiliza muchas hormigas (o agentes) equipadas con un modelo de
feromonas para recorrer el espacio de la solución y encontrar áreas productivas locales. Se considera una estimación del
algoritmo de distribución.

 La optimización de enjambre de partículas (PSO) es un método computacional para la optimización multiparamétrica que
también utiliza un enfoque basado en la población. Una población (enjambre) de soluciones candidatas (partículas) se mueve en
el espacio de búsqueda, y el movimiento de las partículas es influenciado tanto por su posición mejor conocida como por la
posición global más conocida del enjambre. Al igual que los algoritmos genéticos, el método de PSO depende del intercambio de
información entre los miembros de la población. En algunos problemas, el PSO es a menudo más eficiente desde el punto de vista
computacional que los AG, especialmente en problemas sin restricciones con variables continuas.
Otros algoritmos evolutivos de computación[editar]

 El algoritmo Memetic (MA), a menudo llamado algoritmo genético híbrido, entre otros, es un método basado en la población
en el cual las soluciones también están sujetas a fases de mejora local. La idea de los algoritmos meméticos proviene de los
memes, que a diferencia de los genes, pueden adaptarse. En algunas áreas problemáticas se demuestra que son más eficientes
que los algoritmos evolutivos tradicionales.

 Los algoritmos bacteriológicos (BA) están inspirados en la ecología evolutiva y, más concretamente, en la adaptación
bacteriológica. La ecología evolutiva es el estudio de los organismos vivos en el contexto de su entorno, con el objetivo de
descubrir cómo se adaptan. Su concepto básico es que en un ambiente heterogéneo, no hay un individuo que se ajuste a todo el
entorno. Por lo tanto, uno tiene que razonar a nivel de la población. También se cree que los BA podrían aplicarse con éxito a
complejos problemas de posicionamiento (antenas para teléfonos celulares, planificación urbana, etc.) o minería de datos. [52]

 El algoritmo cultural (CA) consiste en el componente de la población casi idéntico al del algoritmo genético y, además, un
componente del conocimiento llamado el espacio de la creencia.

 El algoritmo de búsqueda diferencial (DS) está inspirado en la migración de superorganismos.

 La adaptación gaussiana (adaptación normal o natural, abreviada NA para evitar la confusión con GA) está destinada a
maximizar el rendimiento de fabricación de sistemas de procesamiento de señales. También se puede utilizar para la optimización
paramétrica ordinaria. Se basa en un cierto teorema válido para todas las regiones de aceptabilidad y todas las distribuciones
gaussianas. La eficiencia de la NA depende de la teoría de la información y de un cierto teorema de la eficiencia. Su eficiencia se
define como información dividida por el trabajo necesario para obtener la información. Debido a que la NA maximiza la aptitud
media más que la aptitud del individuo, el paisaje se suaviza de tal manera que los valles entre picos pueden desaparecer. Por lo
tanto, tiene una cierta "ambición" para evitar los picos locales en el paisaje de fitness. La NA también es buena para escalar
crestas afiladas mediante la adaptación de la matriz de momentos, porque la NA puede maximizar el desorden (información
promedio) del gaussiano manteniendo simultáneamente la aptitud media constante.
Otros métodos metaheurísticos[editar]

 El recocido simulado (SA) es una técnica de optimización global relacionada que atraviesa el espacio de búsqueda mediante
la prueba de mutaciones aleatorias en una solución individual. Una mutación que aumenta la aptitud siempre se acepta. Una
mutación que disminuye la aptitud se acepta probabilisticamente basándose en la diferencia en aptitud y un parámetro decreciente
de la temperatura. En la jerga del SA, se habla de buscar la energía más baja en lugar de la aptitud máxima. El SA también se
puede utilizar dentro de un algoritmo GA estándar comenzando con una tasa relativamente alta de mutación y disminuyendo a lo
largo del tiempo a lo largo de un calendario dado.

 La búsqueda tabú (TS) es similar al recocido simulado en que ambos atraviesan el espacio de la solución probando
mutaciones de una solución individual. Mientras que el recocido simulado genera sólo una solución mutada, la búsqueda de tabú
genera muchas soluciones mutadas y se mueve a la solución con la energía más baja de las generadas. Con el fin de evitar
bucles y fomentar un mayor movimiento a través del espacio de solución, se mantiene una lista tabú de soluciones parciales o
completas. Está prohibido pasar a una solución que contiene elementos de la lista tabú, que se actualiza a medida que la solución
atraviesa el espacio de la solución.

 La Optimización Extrema (EO), a diferencia de los GAs, que trabajan con una población de soluciones candidatas, desarrolla
una única solución y realiza modificaciones locales a los peores componentes. Esto requiere que se seleccione una
representación adecuada que permita asignar a los componentes de solución individuales una medida de calidad ("aptitud"). El
principio de gobierno detrás de este algoritmo es el de la mejora emergente mediante la eliminación selectiva de componentes de
baja calidad y su sustitución por un componente seleccionado al azar. Esto está decididamente en desacuerdo con un GA que
selecciona buenas soluciones en un intento de hacer mejores soluciones.
Otros métodos de optimización estocástica[editar]

 El método de entropía cruzada (CE) genera soluciones de candidatos mediante una distribución de probabilidad
parametrizada. Los parámetros se actualizan mediante la minimización de la entropía cruzada, para generar mejores muestras en
la siguiente iteración.

 La optimización de búsqueda reactiva (RSO) aboga por la integración de técnicas de aprendizaje sub-simbólicas en la
heurística de búsqueda para resolver problemas complejos de optimización. La palabra reactiva sugiere una respuesta rápida a
los eventos durante la búsqueda a través de un bucle interno de retroalimentación en línea para el autoajuste de parámetros
críticos. Las metodologías de interés para la búsqueda reactiva incluyen el aprendizaje mecánico y las estadísticas, en particular
el aprendizaje por refuerzo, el aprendizaje activo o de consulta, las redes neuronales y las metaheurísticas.

Lógica difusa

Funcionamiento[editar]

La lógica difusa (fuzzy logic, en inglés) se adapta mejor al mundo real en el que vivimos, e incluso puede comprender y funcionar con
nuestras expresiones, del tipo «hace mucho calor», «no es muy alto», «el ritmo del corazón está un poco acelerado», etc.

La clave de esta adaptación al lenguaje se basa en comprender los cuantificadores de cualidad para nuestras inferencias (en los
ejemplos de arriba, «mucho», «muy» y «un poco»).

En la teoría de conjuntos difusos se definen también las operaciones de unión, intersección, diferencia, negación o complemento, y otras
operaciones sobre conjuntos (ver también subconjunto difuso), en los que se basa esta lógica.

Para cada conjunto difuso, existe asociada una función de pertenencia para sus elementos, que indica en qué medida el elemento forma
parte de ese conjunto difuso. Las formas de las funciones de pertenencia más típicas son trapezoidal, lineal y curva.

Se basa en reglas heurísticas de la forma SI (antecedente) ENTONCES (consecuente), donde el antecedente y el consecuente son
también conjuntos difusos, ya sea puros o resultado de operar con ellos. Sirvan como ejemplos de regla heurística para esta lógica
(nótese la importancia de las palabras «muchísimo», «drásticamente», «un poco» y «levemente» para la lógica difusa):

 SI hace muchísimo frío. ENTONCES aumento drásticamente la temperatura.

 SI voy a llegar un poco tarde. ENTONCES aumento levemente la velocidad.

Los métodos de inferencia para esta base de reglas deben ser sencillos, versátiles y eficientes. Los resultados de dichos métodos son
un área final, fruto de un conjunto de áreas solapadas entre sí (cada área es resultado de una regla de inferencia). Para escoger una
salida concreta a partir de tanta premisa difusa, el método más usado es el del centroide, en el que la salida final será el centro de
gravedad del área total resultante.

Las reglas de las que dispone el motor de inferencia de un sistema difuso pueden ser formuladas por expertos o bien aprendidas por el
propio sistema, haciendo uso en este caso de redes neuronales para fortalecer las futuras tomas de decisiones.

Los datos de entrada suelen ser recogidos por sensores que miden las variables de entrada de un sistema. El motor de inferencias se
basa en chips difusos, que están aumentando exponencialmente su capacidad de procesamiento de reglas año a año.

Un esquema de funcionamiento típico para un sistema difuso podría ser de la siguiente manera:

Funcionamiento de un sistema de control difuso.

En la figura, el sistema de control hace los cálculos con base en sus reglas heurísticas, comentadas anteriormente. La salida final
actuaría sobre el entorno físico, y los valores sobre el entorno físico de las nuevas entradas (modificado por la salida del sistema de
control) serían tomadas por sensores del sistema.
Por ejemplo, imaginando que nuestro sistema difuso fuese el climatizador de un coche que se autorregula según las necesidades: Los
chips difusos del climatizador recogen los datos de entrada, que en este caso bien podrían ser la temperatura y humedad simplemente.
Estos datos se someten a las reglas del motor de inferencia (como se ha comentado antes, de la forma SI... ENTONCES... ), resultando
un área de resultados. De esa área se escogerá el centro de gravedad, proporcionándola como salida. Dependiendo del resultado, el
climatizador podría aumentar la temperatura o disminuirla dependiendo del grado de la salida.

Lógica Difusa Compensatoria (LDC)[editar]

La LDC es un modelo lógico multivalente que permite la modelación simultánea de los procesos deductivos y de toma de decisiones. El
uso de la LDC en los modelos matemáticos permite utilizar conceptos relativos a la realidad siguiendo patrones de comportamiento
similares al pensamiento humano. Las características más importantes de estos modelos son: La flexibilidad, la tolerancia con la
imprecisión, la capacidad para moldear problemas no lineales y su fundamento en el lenguaje de sentido común. Bajo este fundamento
se estudia específicamente cómo acondicionar el modelo sin condicionar la realidad.

La LDC utiliza la escala de la LD, la cual puede variar de 0 a 1 para medir el grado de verdad o falsedad de sus proposiciones, donde las
proposiciones pueden expresarse mediante predicados. Un predicado es una función del universo X en el intervalo [0, 1], y las
operaciones de conjunción, disyunción, negación e implicación, se definen de modo que restringidas al dominio [0, 1] se obtenga la
Lógica Booleana.

Las distintas formas de definir las operaciones y sus propiedades determinan diferentes lógicas multivalentes que son parte del
paradigma de la LD. Las lógicas multivalentes se definen en general como aquéllas que permiten valores intermedios entre la verdad
absoluta y la falsedad total de una expresión. Entonces el 0 y el 1 están asociados ambos a la certidumbre y la exactitud de lo que se
afirma o se niega y el 0,5 a la vaguedad y la incertidumbre máximas. En los procesos que requieren toma de decisiones, el intercambio
con los expertos lleva a obtener formulaciones complejas y sutiles que requieren de predicados compuestos. Los valores de verdad
obtenidos sobre estos predicados compuestos deben poseer sensibilidad a los cambios de los valores de verdad de los predicados
básicos.

Esta necesidad se satisface con el uso de la LDC, que renuncia al cumplimiento de las propiedades clásicas de la conjunción y la
disyunción, contraponiendo a éstas la idea de que el aumento o disminución del valor de verdad de la conjunción o la disyunción
provocadas por el cambio del valor de verdad de una de sus componentes, puede ser “compensado” con la correspondiente disminución
o aumento de la otra. Estas propiedades hacen posible de manera natural el trabajo de traducción del lenguaje natural al de la Lógica,
incluidos los predicados extensos si éstos surgen del proceso de modelación.

En la LDC, el operador conjunción, expresado como c (and) es la media geométrica. [1]

La modelización de la vaguedad en la Lógica Difusa Compensatoria[editar]

En la LDC la modelización de la vaguedad se logra a través de variables lingüísticas, lo que permite aprovechar el conocimiento de los
expertos, al contrario de lo que ocurre en otros métodos más cercanos a las cajas negras y exclusivamente basados en datos, como por
ejemplo las redes neuronales.

Existen autores como Jesús Cejas Montero en su Artículo La Lógica Difusa Compensatoria publicado en el 2011 por la Revista
Ingeniería Industrial del Instituto Superior Politécnico José Antonio Echeverría, que marcó un hito en la difusión de la LDC, que
recomiendan el uso de funciones de pertenencia sigmoidales para funciones crecientes o decrecientes. Los parámetros de estas
funciones quedan determinados fijando dos valores. El primero de ellos es el valor a partir del cual se considera que la afirmación
contenida en el predicado es más cierta que falsa, por ejemplo pudiera establecerse a partir de 0.5. El segundo es el valor para el cual el
dato hace casi inaceptable la afirmación correspondiente, por ejemplo pudiera establecerse a partir de 0.1.

En la actualidad existe un Sistema de Soporte a Decisiones Basado en Árboles con Operadores de Lógica Difusa cuyo nombre es Fuzzy
Tree Studio 1.0, desarrollado en forma conjunta entre Universidad CAECE y la Universidad Nacional de Mar del Plata (Argentina), que
posee un módulo que trabaja con la LDC. Ello permite al agente decisor despreocuparse por el trasfondo matemático y centrarse en la
formulación verbal del modelo que le permita tomar una decisión.

En general los modelos basados en LDC combinan la experiencia y el conocimiento con datos numéricos, por lo que puede ser visto
como una “caja gris”. Los modelos basados en LD pueden verse como “cajas blancas”, dado que permiten ver su estructura
explícitamente. En contraposición a los modelos basados en datos exclusivamente, como las Redes Neuronales, que corresponderían a
“cajas negras”.

Estos modelos pueden ser optimizados cuando se dispone de datos reales numéricos. El método de optimización puede provenir de la
Inteligencia Computacional. En este contexto, los Algoritmos Genéticos presentan una alternativa interesante. Este enfoque constituye el
fundamento de los sistemas híbridos.

La tendencia de las investigaciones sobre gestión empresarial, mediante las técnicas de la LDC, está orientada a la creación de
sistemas híbridos que integren esta con las habilidades de las Redes Neuronales y las posibilidades de los Algoritmos Genéticos y la
Lógica de Conjuntos. La creación e implementación de estos sistemas mixtos permite resolver problemas complejos y de difícil solución;
en las que se usan estimaciones subjetivas sustentadas en la experiencia y en la información disponible, como son: modelos de decisión
utilizados con criterios de optimización, ubicación de centros comerciales, estrategia de entrada a mercados, selección de carteras de
productos y servicios, desarrollo de aplicaciones informáticas, métodos para problemas de descubrimiento de conocimiento, métodos
para evaluar la eficiencia de diferentes tipos de instituciones, entre otras.

La Lógica Difusa Compensatoria es un modelo lógico multivalente que renuncia a varios axiomas clásicos para lograr un sistema
idempotente y “sensible”, al permitir la “compensación” de los predicados. En la LD el valor de verdad de la conjunción es menor o igual
a todas las componentes, mientras que el valor de verdad de la disyunción es mayor o igual a todas las componentes. La renuncia de
estas restricciones constituye la idea básica de la LDC.

En conclusión la LDC es un nuevo enfoque para los sistemas multivalentes basado en la Media Geométrica que, además de aportar un
sistema formal con propiedades lógicas de notable interés, constituye un puente entre la Lógica y la Toma de Decisiones. La LDC entra
a formar parte del arsenal de métodos para la evaluación multicriterio, adecuándose especialmente a aquellas situaciones en que el
agente decisor puede describir verbalmente, frecuentemente en forma ambigua, la heurística que utiliza cuando ejecuta acciones de
evaluación/clasificación multicriterio. Sin embargo, la consistencia de la plataforma lógica dota a esta propuesta de una capacidad de
formalización del razonamiento que rebasa los enfoques descriptivos de los procesos de decisión. Es una oportunidad para usar el
lenguaje como elemento clave de comunicación en la construcción de modelos semánticos que faciliten la evaluación, la toma de
decisiones y el descubrimiento de conocimiento.

Aplicaciones[editar]
Aplicaciones generales[editar]
La lógica difusa se utiliza cuando la complejidad del proceso en cuestión es muy alta y no existen modelos matemáticos precisos, para
procesos altamente no lineales y cuando se envuelven definiciones y conocimiento no estrictamente definido (impreciso o subjetivo).

En cambio, no es una buena idea usarla cuando algún modelo matemático ya soluciona eficientemente el problema, cuando los
problemas son lineales o cuando no tienen solución.

Esta técnica se ha empleado con bastante éxito en la industria, principalmente en Japón, extendiéndose sus aplicaciones a multitud de
campos. La primera vez que se usó de forma importante fue en el metro japonés, con excelentes resultados. Posteriormente se
generalizó según la teoría de la incertidumbre desarrollada por el matemático y economista español Jaume Gil Aluja.

A continuación se citan algunos ejemplos de su aplicación:

 Sistemas de control de acondicionadores de aire

 Sistemas de foco automático en cámaras fotográficas

 Electrodomésticos familiares (frigoríficos, lavadoras...)

 Optimización de sistemas de control industriales

 Sistemas de escritura

 Mejora en la eficiencia del uso de combustible en motores

 Sistemas expertos del conocimiento (simular el comportamiento de un experto humano)

 Tecnología informática

 Bases de datos difusas: Almacenar y consultar información imprecisa. Para este punto, por ejemplo, existe el lenguaje FSQL.

 ...y, en general, en la gran mayoría de los sistemas de control que no dependen de un Sí/No.
Lógica difusa en inteligencia artificial[editar]

La lógica difusa es una rama de la inteligencia artificial que le permite a una computadora analizar información del mundo real en una
escala entre lo falso y lo verdadero, manipula conceptos vagos, como "caliente" o "húmedo", y permite a los ingenieros construir
dispositivos que juzgan la información difícil de definir.

En Inteligencia artificial, la lógica difusa, o lógica borrosa se utiliza para la resolución de una variedad de problemas, principalmente los
relacionados con control de procesos industriales complejos y sistemas de decisión en general, la resolución y la compresión de datos.
Los sistemas de lógica difusa están también muy extendidos en la tecnología cotidiana, por ejemplo en cámaras digitales, sistemas de
aire acondicionado, lavar ropas, etc. Los sistemas basados en lógica difusa imitan la forma en que toman decisiones los humanos, con
la ventaja de ser mucho más rápidos. Estos sistemas son generalmente robustos y tolerantes a imprecisiones y ruidos en los datos de
entrada. Algunos lenguajes de programación lógica que han incorporado la lógica difusa serían por ejemplo las diversas
implementaciones de Fuzzy PROLOG o el lenguaje Fril.

Consiste en la aplicación de la lógica difusa con la intención de imitar el razonamiento humano en la programación de computadoras.
Con la lógica convencional, las computadoras pueden manipular valores estrictamente duales, como verdadero/falso, sí/no o
ligado/desligado. En la lógica difusa, se usan modelos matemáticos para representar nociones subjetivas, como caliente/tibio/frío, para
valores concretos que puedan ser manipuladas por los ordenadores.

En este paradigma, también tiene un especial valor la variable del tiempo, ya que los sistemas de control pueden
necesitar retroalimentarse en un espacio concreto de tiempo, pueden necesitarse datos anteriores para hacer una evaluación media de
la situación en un período anterior.

Ventajas e inconvenientes[editar]

Como principal ventaja, cabe destacar los excelentes resultados que brinda un sistema de control basado en lógica difusa: ofrece
salidas de una forma veloz y precisa, disminuyendo así las transiciones de estados fundamentales en el entorno físico que controle. Por
ejemplo, si el aire acondicionado se encendiese al llegar a la temperatura de 30º, y la temperatura actual oscilase entre los 29º-30º,
nuestro sistema de aire acondicionado estaría encendiéndose y apagándose continuamente, con el gasto energético que ello
conllevaría. Si estuviese regulado por lógica difusa, esos 30º no serían ningún umbral, y el sistema de control aprendería a mantener
una temperatura estable sin continuos apagados y encendidos.

También está la indecisión de decantarse bien por los expertos o bien por la tecnología (principalmente mediante redes neuronales) para
reforzar las reglas heurísticas iniciales de cualquier sistema de control basado en este tipo de lógica.

Redes neuronales

Historia[editar]

Warren McCulloch y Walter Pitts 2 (1943) crearon un modelo informático para redes neuronales, que se llama lógica umbral, que se base
en las matemáticas y los algoritmos. Este modelo señaló el camino para que la investigación de redes neuronales se divida en dos
enfoques distintos. Un enfoque se centró en los procesos biológicos en el cerebro y el otro se centró en la aplicación de redes
neuronales para la inteligencia artificial.

Aprendizaje de Hebb[editar]
A finales de la década de 1940 el psicólogo Donald Hebb34 creó una hipótesis de aprendizaje basado en el mecanismo de plasticidad
neuronal que ahora se conoce como aprendizaje de Hebb. Aprendizaje de Hebb se considera que es un "típico" de aprendizaje no
supervisado y sus variantes posteriores fueron los primeros modelos de la potenciación a largo plazo. Los investigadores empezaron a
aplicar estas ideas a los modelos computacionales en 1948 con la sugerencia de Turing, que el córtex humano infantil es lo que llamaba
"máquina desorganizada" (también conocido como "máqina Turing Tipo B"). 56

Farley y Wesley A. Clark7 (1954) al principio utilizaron máquinas computacionales, que entonces se llamaban "calculadoras", para
simular una red de Hebb en el MIT. Otras simulaciones de redes neuronales por computadora han sido creadas por Rochester, Holanda,
Hábito y Duda (1956).8

Frank Rosenblatt9 10 (1958) creó el perceptrón, un algoritmo de reconocimiento de patrones basado en una red de aprendizaje de
computadora de dos capas, que utilizaba adición y sustracción simples. Con la notación matemática, Rosenblatt también describe
circuitería que no está en el perceptrón básico, tal como el circuito de o-exclusiva, un circuito que no se pudo procesar por redes
neuronales antes de la creación del algoritmo de propagación hacia atrás por Paul Werbos (1975).11

En 1959, un modelo biológico propuesto por dos laureados de los Premios Nobel, David H. Hubel y Torsten Wiesel, estaba basado en su
descubrimiento de dos tipos de células en la corteza visual primaria: células simples y células complejas.12

El primer reporte sobre redes funcionales multicapas fue publicado en 1965 por Ivakhnenko y Lapa, y se conoce como el método de
agrupamiento para el manejo de datos.131415

La investigación de redes neuronales se estancó después de la publicación de la investigación de aprendizaje automático por Marvin
Minsky y Seymour Papert (1969)16, que descubrió dos cuestiones fundamentales con las máquinas computacionales que procesan las
redes neuronales. La primera fue que los perceptrones básicos eran incapaces de procesar el circuito de o-exclusivo. La segunda
cuestión importante era que los ordenadores no tenían suficiente poder de procesamiento para manejar eficazmente el gran tiempo de
ejecución requerido por las grandes redes neuronales.

Propagación hacia atrás y el resurgimiento[editar]

Un avance clave posterior fue el algoritmo de propagación hacia atrás que resuelve eficazmente el problema de o-exclusivo, y en
general el problema del entrenamiento rápido de redes neuronales de múltiples capas (Werbos 1975). El proceso de propagación hacia
atrás utiliza la diferencia entre el resultado producido y el resultado deseado para cambiar los "pesos" de las conexiones entre las
neuronas artificiales.11

A mediados de la década de 1980, el procesamiento distribuido en paralelo se hizo popular con el nombre conexionismo. El libro
de David E. Rumelhart y James McClelland (1986) proporcionan una exposición completa de la utilización de conexionismo en los
ordenadores para simular procesos neuronales.17

Las redes neuronales, tal como se utilizan en la inteligencia artificial, han sido consideradas tradicionalmente como modelos
simplificados de procesamiento neuronal en el cerebro, a pesar de que la relación entre este modelo y la arquitectura biológica del
cerebro se debate; no está claro en qué medida las redes neuronales artificiales reflejan el funcionamiento cerebral.

Máquinas de soporte vectorial y otros métodos mucho más simples, tales como los clasificadores lineales, alcanzaron gradualmente
popularidad en el aprendizaje automático. No obstante, el uso de redes neuronales ha cambiado algunos campos, tales como la
predicción de las estructuras de las proteínas.1819

En 1992, max-pooling (una forma de submuestreo, en la que se divide los datos en grupos de tamaños iguales, que no tienen elementos
en común, y se transmite solamente el valor máximo de cada grupo) fue introducido para ayudar con el reconocimiento de objetos tri-
dimensionales.20 21 22

En 2010, el uso de max-pooling en el entrenamiento por propagación hacia atrás fue acelerado por los GPUs, y se demostró que ofrece
mejor rendimiento que otros tipos de agrupamiento. 23

El problema del desvanecimiento del gradiente afecta las redes neuronales prealimentadas de múltiples capas, que usan la propagación
hacia atrás, y también los redes neuronales recurrentes(RNNs).2425 Aunque los errores se propagan de una capa a otra, disminuyen
exponencialmente con el número de capas, y eso impide el ajuste hacia atrás de los pesos de las neuronas basado en esos errores. Las
redes profundas se ven particularmente afectadas.

Para vencer este problema, Schmidhuber adoptaba una jerarquía multicapa de redes (1992) pre entrenados, una capa a la vez,
por aprendizaje no supervisado, y refinado por propagación hacia atrás.26 Behnke (2003) contaba solamente con el signo del gradiente
(Rprop)27 tratándose de problemas tales como la reconstrucción de imágenes y la localización de caras.

Como retos anteriores en redes neuronales profundas de capacitación se resolvieron con métodos como pre-entrenamiento no
supervisado y potencia de cálculo incrementada a través del uso de las GPU y la computación distribuida, las redes neuronales se
desplegaron de nuevo a gran escala, sobre todo en problemas de procesamiento de imágenes y de reconocimiento visual. Esto se
conoció como "aprendizaje profundo", aunque el aprendizaje profundo no es estrictamente sinónimo de redes neuronales profundas.

Diseños basados en Hardware[editar]

Se crearon en CMOS dispositivos de cómputo para la simulación biofísica al igual que para la cómputo neuromórfico. Nanodispositivos28
para análisis de componentes principales de escala muy grande y convolución pueden crear una clase nueva de cómputo neuronal,
porque son fundamentalmente analógicos en vez de digitales (aunque las primeras implementaciones puedan utilizar dispositivos
digitales).29 Ciresan y sus cólegos (2010) 30 en el grupo de Schmidhuber mostraron que, a pesar del problema del desvanecimiento del
gradiente, los GPUs hacen factible la propagación hacia atrás para las redes neuronales prealimentadas con múltiples capas.

Mejoras desde 2006[editar]

Se han creado dispositivos computacionales en el CMOS, tanto para la simulación biofísica como para computación neuromórfica. Los
esfuerzos más recientes se muestran prometedores para la creación de nanodispositivos31 para análisis de componentes principales de
gran escala. Si tiene éxito, se crearía una nueva clase de computación neuronal, ya que depende de aprendizaje automático en lugar
de la programación y porque es fundamentalmente analógico en lugar de digital a pesar de que las primeras instancias pueden ser de
hecho con los dispositivos digitales CMOS. 32

Entre 2009 y 2012, las redes neuronales recurrentes y redes neuronales profundas feedforward desarrollados en el grupo de
investigación de Jürgen Schmidhuber en el laboratorio suizo de IA IDSIA han ganado ocho concursos internacionales de reconocimiento
de patrones y aprendizaje automático. Por ejemplo, la memoria bi-direccional y multidimensional de largo a corto plazo(LSTM) de Alex
Graves ha ganado tres competiciones en el reconocimiento de escritura conectada en Conferencia Internacional sobre Análisis de
documentos y Reconocimiento (ICDAR) del 2009, sin ningún conocimiento previo acerca de los tres idiomas diferentes que se pueden
aprender.
Implementaciones de este método basadas en unidades de procesamiento gráfico rápidas, hechos por Dan Ciresan y sus colegas
de IDSIA han ganado varios concursos de reconocimiento de patrones, incluyendo la Competición de Reconocimiento de Señales de
Tráfico del 2011,33 el desafío de ISBI 2012 de segmentación de estructuras neuronales en series de imágenes de Microscopía
Electrónica,34 y otros. Sus redes neuronales también fueron las primeras reconocedoras artificiales de patrones en lograr un rendimiento
superior al humano en los puntos de referencia importantes, tales como el reconocimiento de señales de tráfico (IJCNN 2012) o el
problema de clasificación de dígitos escritos a mano.

Arquitecturas profundas altamente no lineales similares a las del 1980 Neocognitrón por Kunihiko Fukushima y la "arquitectura estándar
de la visión", inspirados en las células simples y complejas identificadas por David H. Hubel y Torsten Wiesel en la corteza visual,
pueden también ser pre-formados por métodos no supervisados en el laboratorio de la universidad de Toronto. Un equipo de este
laboratorio ganó un concurso en 2012 patrocinado por Merck para el diseño de software para ayudar a encontrar moléculas que podrían
conducir a nuevos medicamentos.

Modelos[editar]

Los modelos de redes neuronales en la inteligencia artificial se refieren generalmente a las redes neuronales artificiales (RNA); estos
son modelos matemáticos esencialmente simples que definen una función f:X→Y o una distribución más X o ambos X e Y. Pero a veces
los modelos también están íntimamente asociadas con un algoritmo de aprendizaje en particular o regla de aprendizaje. Un uso común
de la frase "modelo ANN" es en realidad la definición de una clase de tales funciones (donde los miembros de la clase se obtiene
variando parámetros, los pesos de conexión, o específicos de la arquitectura, tales como el número de neuronas o su conectividad).

Función de red[editar]

La palabra red en el término "red neuronal artificial" se refiere a las interconexiones entre las neuronas en las diferentes capas de cada
sistema. Un sistema ejemplar tiene tres capas. La primera capa tiene neuronas de entrada que envían datos a través de las sinapsis a la
segunda capa de neuronas, y luego a través de más sinapsis a la tercera capa de neuronas de salida. Los sistemas más complejos
tendrán más capas, algunos aumentando las de entrada y de salida de neuronas. Las sinapsis almacenan parámetros llamados "pesos"
que manipulan los datos en los cálculos.

Un RNA se define típicamente por tres tipos de parámetros:

1. El patrón de interconexión entre las diferentes capas de neuronas

2. El proceso de aprendizaje para la actualización de los pesos de las interconexiones

3. La función de activación que convierte las entradas ponderadas de una neurona a su activación a la salida.

Matemáticamente, la función de red de una neurona se define como una composición de otras funciones . Este se representa como una
estructura de red, con flechas que representan las dependencias entre variables.Un tipo ampliamente utilizado de la composición es
la suma ponderada no lineal , donde, dónde k (denominado comúnmente como la función de activación35) es una función predefinida,
como la tangente hiperbólica o función sigmoide . La característica importante de la función de activación es que proporciona una
transición suave como valores de entrada de cambio, es decir, un pequeño cambio en la entrada produce un pequeño cambio en la
producción. Será conveniente para la siguiente para referirse a una colección de funciones simplemente como un vector .

Esta cifra representa una descomposición de tales , Con las dependencias entre las variables indicadas por las flechas. Estos pueden
ser interpretados de dos maneras.

La primera vista es la vista funcional: la entrada se transforma en un vector de 3 dimensiones , Que se transforma a continuación en un
vector de 2 dimensiones , Que es finalmente transformado en . Este punto de vista se encuentra más comúnmente en el contexto de la
optimización.

El segundo punto de vista es la vista probabilístico: la variable aleatoria depende de la variable aleatoria , Que depende de , Que
depende de la variable aleatoria . Este punto de vista se encuentra más comúnmente en el contexto de modelos gráficos .

Grafo de dependencias ANN

Los dos puntos de vista son en gran medida equivalente. En cualquier caso, para esta arquitectura de red en particular, los componentes
de las capas individuales son independientes entre sí (por ejemplo, los componentes de son independientes entre sí, dada su
aportación ). Esto permite, naturalmente, un grado de paralelismo en la ejecución.

Las redes como la anterior se llaman comúnmente alimentación hacia delante , porque su gráfica es un grafo dirigido acíclico . Las
redes con ciclos se denominan comúnmente recurrentes . Tales redes se representan comúnmente de la manera mostrada en la parte
superior de la figura, donde se muestra como dependiente sobre sí misma. Sin embargo, no se muestra una dependencia temporal
implícita.

El aprendizaje[editar]

Lo que ha atraído el mayor interés en las redes neuronales es la posibilidad de aprendizaje. Dada una determinada tarea a resolver, y
una clase de funciones , el aprendizaje consiste en utilizar un conjunto de observaciones para encontrar la cual resuelve la tarea de
alguna forma óptima.

Esto implica la definición de una función de coste tal que, para la solución óptima . Es decir, ninguna solución tiene un costo menor que
el costo de la solución óptima.

La función de coste es un concepto importante en el aprendizaje, ya que representa lo lejos que una solución particular se encuentra de
la solución óptima al problema a resolver. Los algoritmos de aprendizaje buscan a través del espacio de soluciones para encontrar una
función que tiene el menor costo posible.

Dos representaciones separadas del recurrente gráfico de dependencias ANN

Para aplicaciones en las que la solución es dependiente de algunos datos, el costo debe ser necesariamente una función de las
observaciones, de lo contrario no estaríamos modelando todo lo relacionado con los datos. Con frecuencia se define como
una estadística a la que se pueden realizar sólo aproximaciones. Como un simple ejemplo, considere el problema de encontrar el
modelo , Lo que reduce al mínimo , Para pares de datos extraída de alguna distribución . En situaciones prácticas sólo
tendríamos muestras de y, por tanto, para el ejemplo anterior, tendríamos solamente minimizar . Por lo tanto, el coste se reduce al
mínimo a través de una muestra de los datos en lugar de toda la distribución de la generación de los datos.

Cuando alguna forma de aprendizaje automático en línea debe ser utilizada, donde el costo se reduce al mínimo parcialmente como se
ve cada nuevo ejemplo. Mientras que la máquina de aprendizaje en línea se utiliza a menudo cuando se fija, es más útil en el caso en el
que la distribución cambia lentamente con el tiempo. En los métodos de redes neuronales, alguna forma de aprendizaje en línea de la
máquina se utiliza con frecuencia para conjuntos de datos finitos.

La elección de una función de coste[editar]

Si bien es posible definir alguna función de coste, con frecuencia un coste particular, se utilizará, ya sea porque tiene propiedades
deseables (tales como convexidad) o porque surge de forma natural a partir de una formulación particular del problema (por ejemplo, en
una formulación probabilística la probabilidad posterior del modelo puede ser utilizada como un costo inverso). En última instancia, la
función de coste dependerá de la tarea deseada.

Paradigmas de aprendizaje[editar]

Hay tres grandes paradigmas de aprendizaje, cada uno correspondiente a una tarea de aprendizaje abstracto en particular. Estos son
el aprendizaje supervisado ,el aprendizaje no supervisado y el aprendizaje por refuerzo.

El aprendizaje supervisado[editar]

En el aprendizaje supervisado, se nos da una serie de ejemplos de pares y el objetivo es encontrar una función en la clase permitido de
funciones que corresponden con los ejemplos. En otras palabras, deseamos inferir el mapeo derivado de los datos; la función de coste
está relacionado con la falta de coincidencia entre nuestro mapeo y los datos, y contiene implícitamente el conocimiento previo sobre el
dominio del problema.36

Un coste de uso común es el error cuadrático medio, que trata de minimizar el error cuadrático medio entre las salidas de la red, y el
valor objetivo sobre todos los pares ejemplares. Cuando uno trata de minimizar este coste utilizando descenso de gradiente para la
clase de las redes neuronales llamadas perceptrones multicapas (MLP), se obtiene el común y bien conocido algoritmo de propagación
hacia atrás para la formación de redes neuronales.

Tareas que caen dentro del paradigma de aprendizaje supervisado son el reconocimiento de patrones (también conocido como
clasificación) y regresión (también conocido como aproximación de función). El paradigma de aprendizaje supervisado es aplicable
también a los datos secuenciales (por ejemplo, reconocimiento del habla, del manuscrito, y de gestos). Esto se puede considerar como
una forma de aprendizaje con un "maestro", en la forma de una función que proporciona información continua sobre la calidad de las
soluciones obtenidas hasta el momento.

Aprendizaje no supervisado[editar]
En el aprendizaje no supervisado, algunos datos se da y la función de coste que se reduce al mínimo, que puede ser cualquier función
de los datos y la salida de la red, .

La función de coste depende de la tarea (lo que estamos tratando de modelar) y nuestros a priori suposiciones implícitas (las
propiedades de nuestro modelo, sus parámetros y las variables observadas).

Como un ejemplo trivial, considere el modelo donde es una constante y el costo . Minimizar este coste nos dará un valor de que es
igual a la media de los datos. La función de coste puede ser mucho más complicado. Su forma depende de la aplicación: por ejemplo,
en la compresión de que podría estar relacionado con la información mutua entre y , Mientras que en la modelización estadística, que
podría estar relacionado con la probabilidad posterior del modelo dados los datos (tenga en cuenta que en estos dos ejemplos esas
cantidades se maximizaría en lugar de reducirse al mínimo).

Tareas que caen dentro del paradigma de aprendizaje no supervisado están en generales de estimación de problemas; las aplicaciones
incluyen el agrupamiento, la estimación de distribuciones estadísticas, la compresión de datos y el filtrado bayesiano de spam.

Aprendizaje por refuerzo[editar]

En el aprendizaje por refuerzo , los datos por lo general no se dan, pero generada por la interacción de un agente con el medio
ambiente. En cada punto en el tiempo , El agente realiza una acción y el medio ambiente genera una observación y un costo
instantáneo , De acuerdo con algunas dinámicas (por lo general desconocidos). El objetivo es descubrir una política para la selección de
las acciones que minimiza una cierta medida de un costo a largo plazo, por ejemplo, el coste acumulativo esperado. La dinámica del
medio ambiente y el coste a largo plazo para cada política general son desconocidos, pero pueden ser estimados.

Más formalmente el medio ambiente se modela como un proceso de decisión de Markov (MDP) con los estados y acciones con las
siguientes distribuciones de probabilidad: la distribución de costos instantánea ,La distribución de observación y la transición Mientras
que una política se define como la distribución condicional sobre las acciones dadas las observaciones. Tomados en conjunto, los dos
entonces definen una cadena de Márkov (MC). El objetivo es descubrir la política (es decir, el MC) que minimice el costo.

RNAs se utilizan con frecuencia en el aprendizaje de refuerzo como parte del algoritmo general. 3738 La programación dinámica se ha
unido a las RNA (dando la programación neurodinámica) por Bertsekas y Tsitsiklis39 y se aplicó problemas no lineales a la multi-
dimensionales, tales como los implicados en enrutamiento de vehículos , gestión de los recursos naturales4041 o la medicina42 debido a la
capacidad de RNAs para mitigar las pérdidas de precisión incluso cuando la reducción de la densidad de la red de discretización para
aproximar numéricamente la solución de los problemas de control originales.

Tareas que caen dentro del paradigma de aprendizaje por refuerzo son problemas de control, juegos y otras secuenciales tareas.

Tipo de entrada[editar]

Finalmente 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.

Algoritmos de aprendizaje[editar]

El entrenamiento de un modelo de red neuronal en esencia significa seleccionar un modelo de la serie de modelos permitidos (o, en
un bayesiano marco, la determinación de una distribución en el conjunto de modelos permitidos) que minimiza el criterio de costo. Hay
numerosos algoritmos disponibles para la formación de los modelos de redes neuronales; la mayoría de ellos puede ser vista como una
aplicación directa de la teoría de optimización y la estimación estadística.

La mayoría de los algoritmos utilizados en las redes neuronales artificiales de formación emplean alguna forma de descenso de
gradiente, utilizando propagación hacia atrás para calcular los gradientes reales. Esto se hace simplemente tomando la derivada de la
función de coste con respecto a los parámetros de la red y a continuación, cambiando los parámetros en una dirección relacionada al
gradiente. Los algoritmos de entrenamiento de propagación hacia atrás generalmente se clasifican en tres categorías:

1. Descenso del gradiente (con tasa variable de aprendizaje y momentum, retropropagación elástica (Rprop));

2. cuasi-Newton ( Broyden-Fletcher-Goldfarb-Shannon, Método de la secante );

3. Levenberg-Marquardt y gradiente conjugado (actualización Fletcher-Reeves, actualizaación Polak-Ribiere, Powell-Beale


reinicio, gradiente conjugado escalado).43

Métodos evolutivos,44 de programación de la expresión génica,45 de recocido simulado,46 de esperanza-maximización, los métodos no
paramétricos y la optimización por enjambre de partículas47 son algunos otros métodos para la formación de redes neuronales.

Algoritmo recursivo convergente de aprendizaje[editar]

Este es un método de aprendizaje específicamente desegnado para redes neuronales controladores de articulación (CMAC por sus
siglas en inglés) de modelo cerebelosa. En 2004, un algoritmo recursivo de mínimos cuadrados estaba introducido para formar en línea
redes neuronales CMAC. 48 Este algoritmo puede convergir en un solo paso, y actualizar todos los pesos en un solo paso con cualquier
dato nuevo de entrada. Al principio, este algoritmo tenía complejidad computacional de O(N3). Basado en factorización QR, este
algoritmo recursivo de aprendizaje había sido simplificado para hacerlo O(N).49

El empleo de redes neuronales artificiales[editar]

Tal vez la mayor ventaja de las RNA es su capacidad de ser utilizado como un mecanismo de función de aproximación arbitraria que
"aprende" a partir de datos observados. Sin embargo, su uso no es tan sencillo, y una relativamente buena comprensión de la teoría
subyacente es esencial.

Elección de modelo
Esto dependerá de la representación de datos y la aplicación. Excesivamente complejos modelos tienden a conducir a
problemas en el aprendizaje.
Algoritmo de aprendizaje
Existen numerosas soluciones de compromiso entre los algoritmos de aprendizaje. Casi cualquier algoritmo va a funcionar bien con
los hiperparámetros correctos para la formación de un conjunto específico de datos fijos. Sin embargo, la selección y el ajuste de un
algoritmo para la formación en datos no previstos requieren una cantidad significativa de experimentación.
Robustez
Si se seleccionan apropiadamente el modelo, la función de coste y el algoritmo de aprendizaje, la RNA resultante puede ser
extremadamente robusto.

Con la aplicación correcta, las RNA pueden ser utilizadas de forma natural en el aprendizaje online y aplicaciones de grandes
conjuntos de datos. Su aplicación sencilla y la existencia de dependencias en su mayoría locales expuestos en la estructura permiten
implementaciones rápidas y paralelas en el hardware.

Aplicaciones[editar]

RNA las hacen bastante apropiadas para aplicaciones en las que no se dispone a priori de un 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 elementos concretos y son fácilmente paralelizables.

Esto incluye problemas de clasificación y reconocimiento de patrones de voz, imágenes, señales, etc. Asimismo se han utilizado para
encontrar patrones de fraude económico, hacer predicciones en el mercado financiero, hacer predicciones de tiempo atmosférico, etc.

También se pueden utilizar cuando no existen modelos matemáticos precisos o algoritmos con complejidad razonable, por ejemplo la
red de Kohonen ha sido aplicada con un éxito más que razonable al clásico problema del viajante (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 algoritmos genéticos se
denomina Robótica Evolutiva. En este tipo de aplicación el genoma del AG lo constituyen los parámetros de la red (topología,
algoritmo de aprendizaje, funciones de activación, etc.) y la adecuación de la red viene dada por la adecuación del comportamiento
exhibido por el robot controlado (normalmente una simulación de dicho comportamiento).

Aplicaciones de la vida real[editar]

Las tareas se aplican a las redes neuronales artificiales tienden a caer dentro de las siguientes categorías generales:

 Aproximación de funciones, o el análisis de regresión, incluyendo la predicción de series temporales, funciónes de aptitud y el modelado.

 Clasificación, incluyendo el reconocimiento de patrones y la secuencia de reconocimiento, detección y de la toma de decisiones


secuenciales.

 Procesamiento de datos, incluyendo el filtrado, el agrupamiento, la separación ciega de las señales y compresión.

 Robótica, incluyendo la dirección de manipuladores y prótesis.

 Ingeniería de control, incluyendo control numérico por computadora.

Las áreas de aplicación incluyen la identificación de sistemas y el control (control del vehículo, predicción de trayectorias 50, el control de
procesos, manejo de recursos naturales), la química cuántica, juegos y la toma de decisiones (backgammon, ajedrez, póquer ), el
reconocimiento de patrones (sistemas radar, reconocimiento facial, clasificación de señales, 51 reconocimiento de objetos y más), de
reconocimiento de secuencia (gesto, voz, reconocimiento de texto escrito a mano), diagnóstico médico , aplicaciones financieras (por
ejemplo, sistemas automatizados de comercio (trading algorítmico) ), minería de datos (o descubrimiento de conocimiento en bases de
datos, "KDD"), la visualización, traducción automática, diferenciando entre informes deseados y no deseados en redes
sociales,52 prevención de spam (correo basura) de correo electrónico.

Las redes neuronales artificiales se han utilizado también para el diagnóstico de varios tipos de cáncer. Un sistema de detección de
cáncer de pulmón híbrido basado ANN llamado HLND mejora la precisión del diagnóstico y la velocidad de la radiología cáncer de
pulmón. Estas redes también se han utilizado para diagnosticar el cáncer de próstata. Los diagnósticos se pueden utilizar para hacer
modelos específicos tomados de un gran grupo de pacientes en comparación con la información de un paciente dado. Los modelos no
dependen de suposiciones acerca de las correlaciones de diferentes variables. El cáncer color rectal también se ha previsto el uso de
las redes neuronales. Las redes neuronales podrían predecir el resultado de un paciente con cáncer color rectal con más precisión que
los métodos clínicos actuales. Después del entrenamiento, las redes podrían predecir múltiples resultados de los pacientes de
instituciones relacionadas.

Las redes neuronales y la neurociencia[editar]

La Neurociencia Teórica y computacional son el ámbito en que se trata del análisis teórico y el modelado computacional de sistemas
neuronales biológicos. Dado que los sistemas neurales están íntimamente relacionados con los procesos cognitivos y de
comportamiento, el campo está muy relacionada con el modelado cognitivo y conductual.

El objetivo del campo es la creación de modelos de sistemas neuronales biológicas con el fin de comprender cómo funcionan los
sistemas biológicos. Para ganar este entendimiento, los neurólogos se esfuerzan por hacer un vínculo entre los procesos biológicos
observados (datos), biológicamente plausibles mecanismos para el procesamiento neuronal y aprendizaje ( redes neuronales
biológicas modelos) y la teoría (la teoría del aprendizaje estadístico y la teoría de la información ).

Tipos de modelos

Muchos modelos se utilizan en el campo, que se define en diferentes niveles de abstracción y el modelado de diferentes aspectos de los
sistemas neurales. Se extienden desde modelos del comportamiento a corto plazo de las neuronas individuales, tras los modelos del
surgimiento de la dinámica de los circuitos neuronales de la interacción entre las neuronas individuales hasta, finalmente, los modelos
del surgimiento del comportamiento de los módulos neuronales abstractos que representan subsistemas completas. Estos incluyen
modelos de plasticidad de largo y corto plazo, y de los sistemas neuronales y sus relaciones con el aprendizaje y la memoria de la
neurona individual a nivel del sistema.
Las redes con memoria

La integración de los componentes de memoria externa con redes neuronales artificiales tiene una larga historia que se remonta a las
primeras investigaciones en las representaciones distribuidas y mapas de auto-organización . Por ejemplo, en memoria distribuida
dispersa los patrones codificados por las redes neuronales se utilizan como direcciones de memoria para la memoria de contenido
direccionable, con "neuronas" que sirven esencialmente como dirección codificadores y decodificadores .

Más recientemente aprendizaje profundo ha demostrado ser útil enhashing semántica , donde un profundo modelo gráfico de los
vectores de palabra de recuento de se obtiene a partir de un gran conjunto de documentos. Los documentos se asignan a las
direcciones de memoria de tal manera que los documentos semánticamente similares se encuentran en direcciones cercanas.
Documentos similares a un documento de consulta a continuación, se pueden encontrar simplemente accediendo a todas las
direcciones que difieren por sólo unos pocos bits de la dirección del documento de consulta.

Redes de memoria es otra extensión de las redes neuronales que incorporan la memoria a largo plazo que fue desarrollado
por Facebook investigación. La memoria a largo plazo puede ser leído y escrito para, con el objetivo de utilizarlo para la predicción.
Estos modelos se han aplicado en el contexto de la búsqueda de respuestas (QA), donde la memoria a largo plazo que de hecho actúa
como un (dinámico) base de conocimientos, y la salida es una respuesta textual.

Máquinas de Turing neuronales desarrollados por Google DeepMind permiten ampliar las capacidades de las redes neuronales
profundas mediante el acoplamiento a los recursos de memoria externos, que pueden interactuar con los procesos atencionales. El
sistema combinado es análogo a una máquina de Turing pero es diferenciable de extremo a extremo, lo que le permite ser entrenado de
manera eficiente con descenso del gradiente. Los resultados preliminares demuestran que las máquinas de Turing neuronales puede
deducir algoritmos simples, tales como copiar, clasificar, y recuerdo asociativo a partir de ejemplos de entrada y salida.

Computadoras neuronales diferenciables (DNC) son una extensión de las máquinas de Turing neuronal, también de DeepMind. Se han
realizado fuera de las máquinas de Turing neuronales, la memoria de largo a corto plazo los sistemas y redes de la memoria en las
tareas de procesamiento de secuencia.

Software de red neuronal

Software de la red neuronal se utiliza para simular, investigación , desarrollo y aplicación de redes neuronales artificiales, redes
neuronales biológicas y, en algunos casos, una gama más amplia de sistemas adaptativos.

Tipos de redes neuronales artificiales

Tipos de redes neuronales artificiales varían de aquellos con sólo una o dos capas de lógica única dirección, para muchos bucles
complejos multi-direccionales de entrada de realimentación y capas. En general, estos sistemas utilizan algoritmos en su programación
para determinar el control y la organización de sus funciones. La mayoría de los sistemas utilizan "pesos" para cambiar los parámetros
del rendimiento y las diferentes conexiones con las neuronas. Las redes neuronales artificiales pueden ser autónomas y aprender
mediante el aporte de "maestros" externos o incluso auto-enseñanza de las reglas escritas de entrada. Redes neuronales estilo Cubo
Neural primera por primera vez por Gianna Giavelli proporcionan un espacio dinámico en el que las redes se recombinan
dinámicamente información y enlaces a través de miles de millones de nodos independientes que utilizan la adaptación neuronal
darwinismo , una técnica desarrollada por Gerald Edelman , que permite sistemas más modeladas biológicamente.

Potencia del cálculo[editar]

El perceptrón multicapa es un aproximado de la función universal, como lo demuestra el teorema de aproximación universal . Sin
embargo, la prueba no es constructivo sobre el número de neuronas es necesario, la topología de red, la configuración de los pesos y
los parámetros de aprendizaje.

El trabajo de Hava Siegelmann y Eduardo D. Sontag ha proporcionado una prueba de que una arquitectura específica recurrente con los
pesos valorados racionales (en oposición a la precisión total número real -valued pesos) tiene toda la potencia de una máquina universal
de Turing [59]utilizando un número finito de las neuronas y las conexiones lineales estándar. Además, se ha demostrado que el uso de
valores irracionales para resultados pesos en una máquina con super-Turing poder.

Capacidad

Los modelos de redes neuronales artificiales tienen una propiedad denominada "capacidad", que corresponde aproximadamente a su
capacidad para modelar cualquier función dada. Se relaciona con la cantidad de información que puede ser almacenada en la red y a la
noción de complejidad.

Convergencia

Nada se puede decir en general sobre la convergencia ya que depende de una serie de factores. En primer lugar, pueden existir muchos
mínimos locales. Esto depende de la función de coste y el modelo. En segundo lugar, el método de optimización utilizado no puede ser
garantizado a converger cuando lejos de un mínimo local. En tercer lugar, para una cantidad muy grande de datos o parámetros,
algunos métodos se vuelven poco práctico. En general, se ha encontrado que las garantías teóricas sobre la convergencia son una guía
fiable para la aplicación práctica.

Generalización y estadísticas

En aplicaciones donde el objetivo es crear un sistema que generaliza bien en los ejemplos que no se ven, ha surgido el problema de la
formación excesiva. Esto surge en los sistemas complicados o sobre especificadas cuando la capacidad de la red supera
significativamente los parámetros libres necesarios. Hay dos escuelas de pensamiento para evitar este problema: La primera es
utilizar la validación cruzada técnicas similares y para comprobar la presencia de un exceso de entrenamiento y de manera óptima
seleccione hiper- tales que se minimice el error de generalización. La segunda es utilizar algún tipo de regularización . Este es un
concepto que surge de manera natural en un marco probabilístico (Bayesiano), donde la regularización puede realizarse mediante la
selección de una probabilidad a priori más grande sobre los modelos más simples; sino también en la teoría estadística de aprendizaje,
donde el objetivo es reducir al mínimo más de dos cantidades: el "riesgo empírico" y el "riesgo estructural ', que corresponde
aproximadamente al error sobre el conjunto de entrenamiento y el error de predicción en los datos que no se ven debido a sobreajuste.
Redes neuronales supervisadas que utilicen un error cuadrático medio (MSE) función de coste se pueden utilizar métodos estadísticos
formales para determinar la confianza del modelo entrenado. El MSE en un conjunto de validación se puede utilizar como una
estimación de la varianza. Este valor puede ser utilizado para calcular el intervalo de confianza de la salida de la red, suponiendo
una distribución normal . Un análisis de confianza realizado de esta manera es estadísticamente válida siempre que la salida
de distribución de probabilidad sigue siendo el mismo y la red no es modificada.
Análisis de confianza de una red neuronal

Mediante la asignación de una función de activación softmax , una generalización de la función logística , en la capa de salida de la red
neuronal (o un componente softmax en una red neuronal basada en componentes) para las variables categóricas de destino, las salidas
se pueden interpretar como las probabilidades. Esto es muy útil en la clasificación, ya que da una medida de la seguridad en las
clasificaciones.

La función de activación softmax es:

La crítica[editar]
Cuestiones de capacitación[editar]

Una crítica común de las redes neuronales, en particular en la robótica, es que requieren una gran diversidad de entrenamiento para el
funcionamiento del mundo real. Esto no es sorprendente, ya que cualquier máquina de aprendizaje necesita suficientes ejemplos
representativos con el fin de capturar la estructura subyacente que le permite generalizar a nuevos casos. Dean A. Powerless, en su
investigación presentada en el documento "Formación basada en el conocimiento de redes neuronales artificiales para la conducción
autónoma del robot", utiliza una red neuronal para entrenar a un vehículo robótico para conducir en múltiples tipos de carreteras (de un
solo carril, varios carriles, suciedad, etc.). Una gran cantidad de su investigación está dedicada a (1) la extrapolación de múltiples
escenarios de entrenamiento a partir de una sola experiencia de formación, y (2) la preservación de la diversidad de entrenamiento
pasado para que el sistema no se convierta en sobre entrenamiento (si, por ejemplo, se presenta con una serie de giros a la derecha -
no debe aprender a girar siempre a la derecha). Estos problemas son comunes en las redes neuronales que debe decidir de entre una
amplia variedad de respuestas, pero se pueden tratar de varias maneras, por ejemplo por revolver al azar los ejemplos de
entrenamiento, mediante el uso de un algoritmo de optimización numérica que no toma demasiado grandes pasos cuando el cambio de
las conexiones de red siguiendo un ejemplo, o mediante la agrupación de ejemplos en los llamados mini-lotes.

Cuestiones teóricas[editar]

AK Dewdney , un científico matemático e informática de la Universidad de Ontario Occidental y ex Scientific American columnista,
escribió en 1997, "A pesar de que las redes neurales hacen resolver algunos problemas de juguete, su poder de computación son tan
limitados que me sorprende que nadie los toma en serio como una herramienta general de resolución de problemas ". No existe una red
neuronal nunca se ha demostrado que resuelve los problemas computacionalmente difíciles, tales como la N-Queens problema,
el problema del viajante de comercio , o el problema de factorizar enteros grandes.

Aparte de su utilidad, una objeción fundamental a las redes neuronales artificiales es que no logran reflejar cómo funcionan las neuronas
reales. Propagación hacia atrás está en el corazón de las redes neuronales artificiales y la mayoría no sólo no hay evidencia de ningún
mecanismo de este tipo de redes neuronales naturales, 53 parece contradecir el principio fundamental de las neuronas reales que la
información sólo puede fluir hacia adelante a lo largo del axón. Como la información está codificada por las neuronas reales aún no se
conoce. Lo que se sabe es que las neuronas sensoriales disparan potenciales de acción con mayor frecuencia con la activación del
sensor y las células musculares tiran más fuertemente cuando sus neuronas motoras asociadas reciben los potenciales de acción con
más frecuencia.54 Aparte del caso más simple de solo transmisión de información de una neurona a un sensor de la neurona motora casi
nada se conoce de los principios generales subyacentes de cómo se maneja la información por las redes neuronales reales.

La motivación detrás de las redes neuronales artificiales no es necesariamente para replicar la función neural real, pero para utilizar
redes neuronales naturales como inspiración para un acercamiento a la computación que es inherentemente paralelo y que proporciona
soluciones a los problemas que tienen hasta ahora ha considerado intratable. Por tanto, una afirmación central de las redes neuronales
artificiales es que encarna algún principio general nuevo y potente para el procesamiento de la información. Por desgracia, estos
principios generales están mal definidos y que a menudo se afirma que son emergentes de la red neuronal en sí. Esto permite la
asociación estadística sencilla (la función básica de las redes neuronales artificiales), que se describe como el aprendizaje o el
reconocimiento. Como resultado, las redes neuronales artificiales tienen, según Dewdney, un "algo para nada la calidad, que imparte un
aura peculiar de la pereza y una clara falta de curiosidad acerca de lo bien que estos sistemas de computación son Ninguna mano
humana (o la mente) interviene; soluciones. Se encuentran como por arte de magia, y nadie, al parecer, ha aprendido nada”. 55

Los problemas de hardware

Para implementar el software de redes neuronales grandes y eficaces, considerables recursos de procesamiento y almacenamiento
deben estar comprometidos. Mientras que el cerebro ha hardware adaptado a la tarea de procesamiento de señales a través de
un gráfico de las neuronas, simulando incluso una forma más simplificada en la arquitectura von Neumann puede obligar a un diseñador
de la red neural para llenar muchos millones de bases de datos filas por sus conexiones - que puede consumir grandes cantidades de
equipo de memoria y disco duro espacio. Además, el diseñador de sistemas de redes neurales a menudo necesitará para simular la
transmisión de señales a través de muchas de estas conexiones y sus neuronas asociadas - que a menudo deben coincidir con una
increíble cantidad de CPU potencia de procesamiento y tiempo.

Jürgen Schmidhuber toma nota de que el resurgimiento de las redes neuronales en el siglo XXI, y su éxito renovado en tareas de
reconocimiento de imagen es atribuible en gran medida a los avances en el hardware: de 1991 a 2015, el poder de computación,
especialmente en lo entregado por GPGPUs (en las GPU ), ha aumentado alrededor de un millón de veces, por lo que el algoritmo de
retropropagación estándar viable para las redes de formación que son varias capas más profundas que antes (pero añade que esto no
resuelve los problemas algorítmicos tales como fuga gradientes "de una manera fundamental"). El uso de la GPU en lugar de CPUs
ordinarios puede traer los tiempos de entrenamiento para algunas redes por debajo de los meses a meros días.

Potencia de cálculo sigue creciendo más o menos de acuerdo con la Ley de Moore , que puede proporcionar recursos suficientes para
llevar a cabo nuevas tareas. Ingeniería neuromorphicaborda la dificultad de hardware directamente, mediante la construcción de chips
de no-von Neumann con circuitos diseñados para implementar redes neuronales desde el principio. Google también ha diseñado un chip
optimizado para el procesamiento de red neural llamado Unidad de Procesamiento Tensor o TPU.

Contraejemplos prácticas a las críticas

Argumentos en contra de la posición de Dewdney son que las redes neuronales se han utilizado con éxito para resolver muchas tareas
complejas y diversas, que van desde aviones que vuelan de forma autónoma para la detección de fraude de tarjetas de crédito.

Escritor de tecnología Roger Bridgman ha comentado las declaraciones de DEWDNEY sobre redes neuronales:

Las redes neuronales, por ejemplo, están en el muelle no sólo porque han sido promocionado al alto cielo, (lo que tiene, no?), sino
también porque se puede crear una red de éxito sin la comprensión de cómo funcionaba: el montón de números que captura su
comportamiento sería con toda probabilidad "una, mesa ilegible opaca... sin valor como recurso científico".

A pesar de su enfática declaración de que la ciencia no es la tecnología, parece Dewdney aquí para ridiculizar a las redes neuronales
como mala ciencia cuando la mayoría de los ideando ellos están tratando de ser buenos ingenieros. Una tabla puede leer que una
máquina útil podía leer todavía sería bien vale la pena tener.

Si bien es cierto que el análisis de lo que se ha aprendido por una red neuronal artificial es difícil, es mucho más fácil de hacerlo que
analizar lo que se ha aprendido por una red neuronal biológica. Por otra parte, los investigadores involucrados en la exploración de
algoritmos de aprendizaje para redes neuronales están descubriendo gradualmente principios genéricos que permiten que una máquina
de aprendizaje tenga éxito. Por ejemplo, Bengio y LeCun (2007) escribió un artículo sobre el aprendizaje locales vs. No locales, así
como poco profundas frente a la arquitectura de profundidad.

Enfoques híbridos

Algunas otras críticas que provienen de los defensores de los modelos híbridos (combinación de redes neuronales y enfoques
simbólicos), que creen que el intermix de estos dos enfoques puede capturar mejor los mecanismos de la mente humana.

Las clases y tipos de RNAs[editar]

 Red Neural dinámico

 Red neuronal feedforward (FNN)

 Red neuronal recurrente (RNN)

 Red de Hopfield

 Máquina de Boltzmann

 Redes recurrentes simples

 Red estatal de eco

 Memoria a largo plazo corto

 Bidireccional RNN

 Jerárquica RNN

 Redes neuronales estocásticos

 Mapas autoorganizados de Kohnen

 Autoencoder

 Red neuronal probabilística (PNN)

 Red neuronal de retardo de tiempo (TDNN)

 Red de realimentación reguladora (RFNN)

 Estática red neuronal

 Neocognitrón
 Neurona de McCulloch-Pitts

 Red de función de base radial (RBF)

 Aprender cuantificación vectorial

 perceptrón

 Modelo Adaline

 Red neuronal de convolución (CNN)

 redes neuronales modulares

 Comité de las máquinas (COM)

 Red neuronal asociativa (ASNN)

 Memoria Red

 Google / Google DeepMind

 Facebook / MemNN

 Memoria asociativa holográfica

 One-shot memoria asociativa

 Máquina de Turing neuronal

 Teoría de la resonancia adaptativa

 la memoria temporal jerárquica

 Otros tipos de redes

 Redes neuronales entrenadas instantáneamente (ITNN)

 Red neuronal de impulsos (SNN)

 Impulsión codificados Redes Neuronales (PCNN)

 En cascada redes neuronales

 Redes Neuro-Fuzzy

 Creciente de gas neural (GNG)

 Redes patrón productoras de composición

 Red de contrapropagación

 Red neuronal oscilante

 Red neural híbrida

 Red neuronal física

 Red neuronal óptica

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

Clasificador No Sesgado de Proteínas[editar]

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 algoritmos gené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:

o Cómo lograr la caracterización de las proteínas de manera no sesgada

o 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 compleja para ser encontrada.

En general, debido a que son parecidas a las del cerebro humano, las RNA son bien nombradas ya que son buenas para resolver
problemas que el humano puede resolver pero las computadoras no. Estos problemas incluyen el reconocimiento de patrones y la
predicción del tiempo. De cualquier forma, el humano tiene capacidad para el reconocimiento de patrones, pero la capacidad de las
redes neuronales no se ve afectada por la fatiga, condiciones de trabajo, estado emocional, y compensaciones.

Se conocen cinco aplicaciones tecnológicas extendidas:

1. Reconocimiento de textos manuscritos

2. Reconocimiento del habla

3. Simulación de centrales de producción de energía

4. Detección de explosivos

5. Identificación de blancos de radares

Galería[editar]

Una sola capa de red neural artificial feedforward. Flechas procedentes de x2 se omiten para mayor claridad. Hay P entradas a esta red
y salidas q. En este sistema, el valor de la salida q-ésima, y_qse calcula como y_q=K*(∑(x_i*w_iq )-b_q )

Una red neuronal artificial feedforward de dos capas.


Una red artificial de alimentación directa de una sola capa neuronal con 4 entradas, 6 ocultos y 2 salidas. Las salidas de estado y
dirección determinada posición de la rueda basan los valores de control

Una red artificial de alimentación directa de dos capas neuronales con 8 entradas, 2x8 ocultos y 2 salidas. Estado determinada posición,
dirección y otro ambiente de valores. Los valores de control basados en salidas empujador.

Indefinido

Indefinido

Herramientas de software[editar]

Existen muchas herramientas de software que implementan redes neuronales artificiales, tanto libres como comerciales como, por
ejemplo:

Emergent Neuroph

FANN NeuroSolutions

Neural Designer Synapse

NeuroIntelligence OpenNN

También podría gustarte