4.6. DISEÑO DEL MODELO
4.6.4 FORMALIZACION DEL MODELO COMPUTACIONAL
4.6.4.1.
Definición del Modelo Computacional basado en técnicas de minería
de datos
El presente modelo computacional representa un sistema basado en redes neuronales artificiales (RNA) y algoritmos genéticos (AG), la cual es capaz de aprender a través de patrones de entrada y un proceso evolutivo (de entrenamiento) que lo conllevará a obtener la solución más óptima. Luego podrá ejecutarse para poder realizar la predicción por la que fue entrenada.
4.6.4.2.
Descripción del Modelo Computacional basado en técnicas de
minería de datos
Este modelo computacional está sujeto al paradigma de aprendizaje supervisado. Eso quiere decir que asignamos a nuestro modelo las muestras de los datos de entrenamiento, los cuales incluyen la respuesta esperada para cada muestra. Durante el proceso compara este resultado esperado con el resultado que se obtuvo y realiza los ajustes pertinentes, así se realiza el aprendizaje de las propiedades de la muestra de entrenamiento.
En este modelo de predicción de la demanda está incluida una RNA. Decidimos mantener el método simple, debido a las limitaciones de tiempo que nos enfrentamos. Por ende que la RNA es una red estándar feedforward multicapa con solo una tasa de entrenamiento y un momento, para el aprendizaje de la red. La RNA se compone de una serie de nodos (neuronas) de entrada que es lo mismo decir el número de atributos de entrada elegidos para la RNA, en el centro tiene una o más capas ocultas, y luego la capa de salida.
4.6.4.3.
Elementos del Modelo Computacional basado en técnicas de minería
de datos
A continuación se explicará los elementos fundamentales del modelado computacional propuesto.
El presente modelo propuesto es un modelo de predicción (MP) de acuerdo al análisis realizado en la sección (4.1), basado en un modelo de red neuronal Perceptrón multicapa de acuerdo al análisis realizado en la sección (4.2).
BIBLIOTECA
DE CIENCIAS
FÍSICAS
Podemos representar al modelo propuesto como la unión de una red neuronal artificial y un algoritmo genético, así tenemos:
𝑴𝑷 = 𝑹𝑵𝑨 ∪ 𝑨𝑮
Dónde:𝑹𝑵𝑨: Red Neuronal Artificial
𝑨𝑮 : Algoritmos Genéticos A. Red Neuronal Artificial
Una Red Neuronal Artificial (RNA) de tipo Perceptrón Multicapa se puede definir como:
𝐑𝐍𝐀 = (𝐂𝐄, 𝐂𝐎, 𝐂𝐒, 𝐌, 𝐋, 𝐟𝐚, 𝐟𝐩, 𝐟𝐞)
Dónde:
𝑪𝑬, es la capa de entrada de la Red Neuronal Artificial.
𝑪𝑶, es el conjunto de capas ocultas de la Red Neuronal Artificial. 𝑪𝑺, es la capa de salida de la Red Neuronal Artificial.
𝑴, es el conjunto de neuronas que conformará la red. 𝑳, es el conjunto de enlaces entre las neuronas de la red. 𝒇𝒂, es la función de activación de la Red Neuronal artificial. 𝒇𝒑, es la función de propagación de la Red Neuronal Artificial.
𝒇𝒆, es la función para el cálculo de error durante el entrenamiento de la RNA.
a) Conjuntos de Neuronas
El conjunto de nodos (neuronas) que formarán toda la red neuronal artificial será representado por M.
𝑴 = {𝑛𝑒𝑢𝑟𝑜𝑛𝑎1, 𝑛𝑒𝑢𝑟𝑜𝑛𝑎2, … , 𝑛𝑒𝑢𝑟𝑜𝑛𝑎𝑛}, 𝑛 ∈ 𝑁
BIBLIOTECA
DE CIENCIAS
FÍSICAS
b) Capa de entrada
El Perceptrón multicapa presenta una sola capa de entrada, la cantidad de neuronas en esta capa dependerá de los patrones de entrada que se le asigne y sea necesario para realizar el entrenamiento adecuado de la RNA y logre la predicción de la venta de productos farmacéuticos. Su representación formal está definido como:
𝑪𝑬 = (𝒊𝒅𝑪𝒂𝒑𝒂, 𝑴𝑬), 𝑴𝑬⊂ 𝑴
Dónde:
idCapa es el identificador de la capa de entrada.
ME es un subconjunto del conjunto de neuronas M, también es
el conjunto de neuronas que formará la capa de entrada.
c) Capas ocultas
Se tiene que tomar dos decisiones en el momento de definir la parte oculta de la RNA (capas ocultas); el primero es el número de capas ocultas que se tendrá en la red neuronal y la segunda es la cantidad de neuronas que se tendrá en cada una de ellas. En primer lugar, se examinará la forma de determinar el número de capas ocultas de usar con la red neuronal.
Tenemos que tomar en cuenta que, raramente se encuentra problemas que requieren dos capas ocultas. Sin embargo, las RNA con dos capas ocultas pueden representar funciones con cualquier tipo de forma. No existe razón teórica para el uso de redes neuronales con más de dos capas ocultas. Es más, para muchos problemas prácticos, no hay ninguna razón para usar más de una capa oculta. La tabla 8 resume las capacidades de las arquitecturas de red neuronal de acuerdo a la cantidad de capas ocultas.
BIBLIOTECA
DE CIENCIAS
FÍSICAS
Tabla 9: Capacidades de una red con respecto al número de sus capas [creación propia]
En la siguiente sección determinaremos la cantidad de neuronas que debe ir en cada una de las capas ocultas de la RNA.
El número de neuronas en las capas ocultas
Al momento de decidir la arquitectura general de la red neuronal nos preguntamos ¿cuántas neuronas deben ir en cada una de las capas ocultas?, pues esto se explica a continuación.
A pesar de que estas capas no interactúan directamente con el ambiente externo, tienen una enorme influencia en el resultado final. Tanto el número de capas ocultas y el número de neuronas en cada una de estas capas ocultas deben ser cuidadosamente considerados.
Utilizando muy pocas neuronas en las capas ocultas se traducirá en algo que se llama underfitting. El underfitting ocurre cuando hay muy pocas neuronas en las capas ocultas para detectar adecuadamente las señales en un conjunto de datos complejos.
El uso excesivo de neuronas en las capas ocultas puede resultar en varios problemas. En primer lugar, demasiadas neuronas en las capas ocultas pueden dar lugar a overfitting (sobreajuste). El overfitting ocurre cuando la red neuronal tiene una capacidad de procesamiento de información mayor que la cantidad limitada
Número de capas ocultas
Resultado
0 Sólo es capaz de representar funciones linealmente separables.
1 Se puede aproximar cualquier función que contiene un mapeo continuo de un espacio finito a otro.
2
Puede representar una frontera de decisiones arbitraria a precisión arbitraria con funciones de activación racional y puede aproximarse sin problemas a cualquier asignación de precisión.
BIBLIOTECA
DE CIENCIAS
FÍSICAS
de información contenida en el conjunto de entrenamiento, la cual no es suficiente para entrenar a todas las neuronas en las capas ocultas.
Hay muchos métodos para determinar el número correcto de las neuronas para su uso en las capas ocultas, tales como las siguientes:
El número de neuronas ocultas deben estar entre el tamaño de la capa de entrada y el tamaño de la capa de salida.
El número de neuronas ocultas debe ser 2/3 del tamaño de la capa de entrada, más el tamaño de la capa de salida.
El número de neuronas debe ser inferior a dos veces el tamaño de la capa de entrada.
Estas tres reglas proveen un punto de partida para escoger el número de neuronas que debe ir en cada capa oculta.
Su representación formal es:
𝑪𝑶𝒊= (𝒊𝒅𝑪𝒂𝒑𝒂𝒊, 𝑴𝑶𝒊)
𝑴𝑶𝒊 ⊂ 𝑴 ∧ 𝑴𝑶𝒊∩ 𝑴𝑶𝒋 = ∅, 𝑠𝑖 𝒊 ≠ 𝒋, 𝒊, 𝒋 = 0, … 𝒏/𝒏 ∈ 𝑵
Dónde:
𝒊, indica la i-ésima capa oculta de la red neuronal.
𝒊𝒅𝑪𝒂𝒑𝒂𝒊, representa el identificador de la i-ésima capa oculta.
𝑴𝑶𝒊, representa el conjunto de neuronas que conforma la i-ésima capa oculta, y además es un subconjunto del conjunto total de neuronas.
d) Capa de salida
El Perceptrón multicapa presenta una sola capa de salida, la cantidad de neuronas depende del problema a solucionar.
𝑪𝑺 = (𝒊𝒅𝑪𝒂𝒑𝒂, 𝑴𝑺) 𝑴𝑺⊂ 𝑴
BIBLIOTECA
DE CIENCIAS
FÍSICAS
Y MATEMÁTICAS
Donde 𝒊𝒅𝑪𝒂𝒑𝒂 es el identificador de la capa de salida, y 𝑴𝒔 es un
subconjunto del conjunto de neuronas 𝑴, además de ser el conjunto de neuronas que formará la capa de entrada.
Con respecto a la descripción de cada una de las capas de la red neuronal se debe cumplir lo siguiente:
𝑴𝑬∩ 𝑴𝑶𝒊 = ∅, 𝑴𝑬∩ 𝑴𝑺= ∅, 𝑴𝑶𝒊∩ 𝑴𝑺= ∅,
𝒊 = 0, … , 𝒏/𝒏 ∈ 𝑵
En pocas palabras, una neurona solo pertenecerá a una sola capa, ya sea de entrada, oculta o de salida.
e) Conjunto de Enlaces
Un enlace es una conexión sináptica entre dos neuronas, la neurona pre sináptica (𝐧𝐞𝐮𝐫𝐨𝐧𝐚𝒋) y la neurona post-sináptica (𝐧𝐞𝐮𝐫𝐨𝐧𝐚𝒊). Un enlace
entre 2 neuronas es unidireccional, tienen un valor asociado denominado peso sináptico. Los pesos sinápticos pueden tomar valores positivos, negativos o cero.
𝑳𝒊𝒋 = (𝒊𝒅𝑬𝒏𝒍𝒂𝒄𝒆, 𝒏𝒆𝒖𝒓𝒐𝒏𝒂𝒋, 𝒏𝒆𝒖𝒓𝒐𝒏𝒂𝒊, 𝑾𝒊𝒋)
𝒊, 𝒋 = 1, … , 𝒏 𝒏⁄ ∈ 𝑁; 𝑾𝒊𝒋 ∈ 𝑹
Dónde:
𝒊𝒅𝑬𝒏𝒍𝒂𝒄𝒆, es le identificador del enlace entre una neurona 𝒊 y una
neurona 𝒋.
𝑾𝒊𝒋, es el peso sináptico entre las neuronas enlazadas.
f) Función de propagación
Integra la información proveniente de las distintas neuronas artificiales y determina el potencial resultante de la interacción de la neurona i-ésima con las 𝒏 neuronas vecinas. Es una suma ponderada y se puede representar formalmente: 𝒇𝒑: 𝑅𝑛 → 𝑅 𝒇𝒑 = 𝒚𝒊= ∑ 𝒘𝒊𝒋𝒙𝒋 𝑛
BIBLIOTECA
DE CIENCIAS
FÍSICAS
Y MATEMÁTICAS
𝒊, 𝒋 = 1, … 𝒏/𝒏 ∈ 𝑵
Dónde:
𝒘𝒊𝒋, es el peso sináptico entre las neuronas 𝒋 y la neurona 𝒊, y es un elemento del conjunto de pesos sinápticos.
𝒙𝒋, es el valor asociado a la neurona 𝒋.
g) Función de activación
La mayoría de las redes neuronales pasan la salida de sus capas a través de funciones de activación. Estas funciones de activación escalan la salida de la red neuronal en rangos adecuados. Para este modelo hemos utilizado una función de activación sigmoidea debido a que la red neuronal se encuentra en el rango de [0,1].
Función sigmoidea
Una función de activación sigmoidea usa la función sigmoidea para determinar su activación. La función sigmoidea se define como sigue:
𝒇(𝒙) = 1
1 + 𝑒−𝑥
El término sigmoidea significa curvado en dos direcciones, su gráfico es parecido a la letra “S”, como se puede observar en la figura 21:
Figura 23: Gráfico de la función sigmoidea [PER11].
Un punto importante a observar sobre la función de activación sigmoidea es que sólo devuelve valores positivos, pues su rango está entre [0,1]. Si se
BIBLIOTECA
DE CIENCIAS
FÍSICAS
necesitara una red neuronal que devuelva números negativos, la función sigmoidea será inadecuada.
Por lo tanto, la representación formal de la función de activación sería:
𝒇𝒂 = 𝒇(𝒚𝒊)
𝒇: 𝑅 → [0,1]
∀𝑦 ∈ 𝑅, 𝒇(𝒚𝒊) = 1
1 + 𝑒−𝒚𝒊
Donde 𝒚𝒊, representa al valor calculado por la función de propagación para una neurona 𝒊.
h) Función de Error
Para el cálculo del error hemos utilizado los siguientes métodos:
MSE (Mean Square Error): Es el promedio de los cuadrados del error de cada venta mensual y se utiliza para comparar la Precisión entre el Método propuesto con el Método tradicional y seleccionar aquel con menor MSE.
𝑴𝑺𝑬 =∑
(
𝐚𝐜𝐭𝐮𝐚𝐥𝐢− 𝐢𝐝𝐞𝐚𝐥𝐢)
𝟐𝒏 𝒕=𝟏
𝒏
Dónde: 𝒂𝒄𝒕𝒖𝒂𝒍𝒊, representa la salida actual de la red para un conjunto de
patrones 𝒊.
𝒊𝒅𝒆𝒂𝒍𝒊, representa la salida ideal para el conjunto de patrones
ingresado.
𝒕
: Es la cantidad de iteraciones.
𝒏
: representa la cantidad de conjuntos de patrones que se utilizarán para el entrenamiento.MAPE (Mean Absolute Percentage Error): Es la medida de los errores porcentuales en valor absoluto, no considera el signo del error, sólo la magnitud. Es una de las medidas más utilizadas para calcular pronósticos de ventas.
BIBLIOTECA
DE CIENCIAS
FÍSICAS
𝑴𝑨𝑷𝑬 =
∑
|𝐚𝐜𝐭𝐮𝐚𝐥
𝐢− 𝐢𝐝𝐞𝐚𝐥
𝐢|
𝐢𝐝𝐞𝐚𝐥
𝐢∗ 𝟏𝟎𝟎
𝒏 𝒕=𝟏𝒏
Dónde: 𝒂𝒄𝒕𝒖𝒂𝒍𝒊, representa la salida actual de la red para un conjunto de
patrones 𝒊.
𝒊𝒅𝒆𝒂𝒍𝒊, representa la salida ideal para el conjunto de patrones
ingresado.
𝒕
: Es la cantidad de iteraciones.
𝒏
: representa la cantidad de conjuntos de patrones que se utilizarán para el entrenamientoB. Algoritmo Genético
Un Algoritmo Genético al ser un algoritmo evolutivo secuencial, se puede definirlo como una tupla de 7 elementos:
𝑨𝑮 = (𝑰, 𝜱, 𝜴, 𝜳, 𝜾, 𝝁, 𝝀)
Dónde:
𝑰, es el espacio de los individuos. 𝜱, es la función de adecuación.
𝜴, es el conjunto de operadores genéticos. 𝜳, es la función de transición entre generaciones. 𝜾, es el criterio de terminación.
𝝁, es el tamaño de la población.
𝝀, es el tamaño del conjunto de descendientes. a) Espacio del Individuo
Donde 𝑰 = 𝓖 𝑥 𝑹 es el espacio de individuos, siendo 𝒢 el genotipo al que se asocia un valor de adecuación perteneciente al conjunto de valores reales 𝑹. Para asignar a cada individuo un valor de adecuación se utiliza la función de adecuación 𝜱: 𝓖 → 𝑹. A su vez, definimos el fenotipo ℱ como el conjunto de
BIBLIOTECA
DE CIENCIAS
FÍSICAS
valores resultantes de expresar el genotipo 𝒢 en parámetros con significado para el problema.
De esta forma 𝓒: 𝓕 → 𝓖 es la función de codificación que permite representar los parámetros de problema como puntos del espacio de genotipos. La función inversa 𝓒−𝟏 es la que se utiliza siempre sobre un individuo antes de someterlo a evaluación.
b) Función de adecuación
La función de adecuación puede someter a cierta transformación el valor devuelto por la función objetivo antes de considerarlo como valor de adecuación del individuo. Para ello se utiliza una función 𝛟: 𝐑 → 𝐑. El objetivo es asegurar valores positivos de adecuación y separar dichos valores entre sí de forma que se facilite el trabajo del operador de selección.
Por tanto, dada una estructura ⍺ ∈ 𝓖 el proceso de evaluación implica:
𝜱(⍺) = 𝝋(𝒇(𝓒−𝟏(⍺)))
c) Conjunto de operadores genéticos
La componente 𝛺 representa un conjunto de operadores genéticos de aplicación no determinista 𝒘𝜽𝒊, cada uno de ellos controlado por un conjunto de parámetros 𝜽𝒊⊂ 𝑹𝝓𝒊. El valor 𝜱
𝒊 es el número de parámetros que controlan
el funcionamiento del operador i-ésimo, 𝒔 = 𝒘𝜽𝟎 es el operador de selección de parejas y 𝒔 = 𝒘𝜽𝒛−𝟏 es la selección ambiental o llamada también reemplazo.
Si notamos como 𝒛 el número de operadores entonces el conjunto de operadores se define como sigue:
𝜴 = {𝒘𝜽𝟏, … , 𝒘𝜽𝒛−𝟐|𝒘𝜽𝒊: 𝑰 𝝀→ 𝑰𝝀} ∪ {𝒘 𝜽𝟎: 𝑰 𝝁→ 𝑰𝝀} ∪ {𝒘 𝜽𝒛−𝟏: 𝑰 𝝀∪ 𝑰𝝀+𝝁 → 𝑰𝝁}
También se permite 𝝁 = 𝝀. Por otro lado, siguiendo con la descripción de los elementos de la tupla, los valores 𝝁, 𝝀 ∈ 𝑵 son valores naturales, indicando el tamaño de la población y el tamaño del conjunto de descendientes generados por los operadores, respectivamente.
BIBLIOTECA
DE CIENCIAS
FÍSICAS
d) Criterio de terminación
El criterio de terminación de un Algoritmo Genético se puede representar formalmente como:
𝜾: 𝑰𝝁→ {𝒕𝒓𝒖𝒆, 𝒇𝒂𝒍𝒔𝒆}
e) Función de transición
La transición entre dos generaciones está dada por la función Ѱ: 𝑰𝝁→ 𝑰𝝁 quien describe el proceso completo de transformación de una población 𝑃(𝑡) en la siguiente por aplicación del plan adaptativo, es decir, la composición ordenada de operadores desde la selección de parejas hasta la ambiental:
Ѱ = 𝒘𝜽𝒛−𝟏𝒐 𝒘𝜽
𝒊𝟏… 𝒐 𝒘𝜽𝒊𝒋𝒐 𝒘𝜽𝟎
Ѱ(𝑷(𝒕)) = 𝒘𝜽𝒛−𝟏(𝓠 ∪ 𝒘𝜽𝒊𝟏(… (𝒘𝜽𝒊𝒋(𝒘𝜽𝟎(𝑷(𝒕)))) … ))
Dónde: {𝒊𝟏, … , 𝒊𝒋} ⊆ {𝟏, … , 𝒛 − 𝟐}𝒚 𝓠 ∈ {∅, 𝑷(𝒕)}
La definición anterior admite numerosas variantes consecuencia de modificaciones en la definición de operadores, representación de los individuos, tipo de la evaluación, criterio de parada, etc. Aunque el espacio de búsqueda es arbitrariamente complejo, tradicionalmente los Algoritmos Genéticos se han ceñido a un espacio vectorial en el conjunto de los reales. Los parámetros de cada operador utilizado determinan comportamientos distintos del mismo algoritmo. El criterio de terminación puede ser tan simple como alcanzar un número preestablecido de generaciones o tan complejo como una condición dependiente de alguna métrica sobre los individuos de la población.
f) Otras definiciones
Un algoritmo evolutivo itera un cierto número de veces generando una secuencia de poblaciones e identificando como solución una de las estructuras de la población aparecida durante el tiempo de ejecución transcurrido hasta satisfacer la condición de terminación.
BIBLIOTECA
DE CIENCIAS
FÍSICAS
Función objetivo
De forma simple, podemos establecer que, un problema de optimización global como el que permite resolver un algoritmo evolutivo, requiere encontrar un vector de parámetros libres tal que se optimice (maximice o minimice) con él un cierto criterio de calidad conocido como función objetivo.
𝒇(𝒙) → 𝒎𝒂𝒙
Dada una función
𝒇: 𝑴 ⊆ 𝑹𝒏→ 𝑹, 𝑴 ≠ ∅, 𝑝𝑎𝑟𝑎 𝒙∗∈ 𝑴, 𝑒𝑙 𝑣𝑎𝑙𝑜𝑟 𝒇∗=: 𝒇(𝒙∗) < ∞+
Se denomina máximo global si:
∀𝒙 ∈ 𝑴: 𝒇(𝒙∗) ≥ 𝒇(𝒙)
Donde 𝒙∗ es un máximo global, 𝒇 es la función objetivo, y el conjunto
𝑴 es la región de soluciones admisibles. El problema de determinar un máximo global se denomina problema de optimización global.
Secuencia de poblaciones
Dado un Algoritmo Genético con una función de transición entre generaciones Ѱ: 𝑰𝝁→ 𝑰𝝁 y una población inicial 𝑷(𝒕) ∈ 𝑰𝝁, la secuencia 𝑷(𝟎), 𝑷(𝟏), 𝑷(𝟐), … se denomina secuencia de poblaciones o evolución de 𝑷(𝟎), si y solamente si:
∀𝒕 ≥ 𝟎: 𝑷(𝒕 + 𝟏) = Ѱ(𝑷(𝒕))
La creación de la población inicial 𝑷(𝟎) se suele realizar de forma aleatoria aunque en algunas aplicaciones prácticas puede utilizarse información dependiente del problema para generar un conjunto de puntos de búsqueda iniciales que presenten a priori ciertas ventajas. Típicamente se distinguen dos modelos de algoritmos evolutivos atendiendo a si se determina como solución una única estructura o bien una población completa. En este trabajo utilizaremos el primer criterio. Por tanto, podemos definir como resultado la estructura, de
BIBLIOTECA
DE CIENCIAS
FÍSICAS
entre todas las generadas durante el proceso de búsqueda, que provoque un mayor valor de la función objetivo.
Tiempo de ejecución
El tiempo de ejecución lo denotaremos como 𝝉𝑨𝑮, quedando definido éste como el menor número de generaciones que satisface el criterio de terminación.
Dado un Algoritmo Genético (AG) con una función de transición Ѱ y una población inicial 𝑷(𝟎) ∈ 𝑰𝝁 se define como tiempo de ejecución a
𝝉𝑨𝑮 si:
𝝉𝑨𝑮= 𝐦𝐢𝐧{𝒕 ∈ 𝑵| 𝜾 (Ѱ𝒕(𝑷(𝟎))) = 𝒕𝒓𝒖𝒆}
Resultado de un Algoritmo Genético
Dado un Algoritmo Genético con una función de transición entre generaciones Ѱ y una población inicial 𝑷(𝟎) ∈ 𝑰𝝁 se define como resultado al individuo ⍺, si:
𝜶 ∈ ⋃ Ѱ𝒕(𝑷(𝟎))
𝝉𝑨𝑮
𝒕=𝟎
Y además se cumple que:
𝒇(𝜶) = 𝐦𝐚𝐱{𝒇(𝜶′)|𝜶′ ∈ ⋃𝝉𝑨𝑮Ѱ𝒕(𝑷(𝟎))
𝒕=𝟎 }
El Genotipo
Los algoritmos genéticos trabajan sobre cadenas de longitud fija 𝒍, es decir:
𝓖 = 𝑹𝒍
Operadores Genéticos
Un operador genético 𝒘𝜽: 𝑰𝒑→ 𝑰𝒒 se denomina:
Unario, si y solo si: ∃𝒘𝜽′: 𝑰 → 𝑰
𝒘𝜽(𝒂𝟏, … , 𝒂𝒑) = (𝒘𝜽′(𝒂 𝟏), … , 𝒘𝜽′(𝒂𝒑)) ∧ 𝒑 = 𝒒
BIBLIOTECA
DE CIENCIAS
FÍSICAS
Y MATEMÁTICAS
Binario, si y solo si: ∃𝒘𝜽′: 𝑰𝟐 → 𝑰
𝒘𝜽(𝒂𝟏, … , 𝒂𝒑) = (𝒘′𝜽(𝒂𝒊𝟏, 𝒂𝒋𝟏), … , 𝒘𝜽
′ (𝒂
𝒊𝒒, 𝒂𝒋𝒒)) Donde ∀𝒌 ∈ {𝟏, … , 𝒒} se eligen aleatoriamente 𝒊𝒌, 𝒋𝒌∈ {𝟏, … , 𝒑} Operador de selección
La selección juega un importante papel tanto en los algoritmos genéticos, ya que guía la búsqueda y provoca la convergencia de la población de individuos. Por tanto, representa el tan importante compromiso entre exploración y explotación.
Sea 𝝁 el número de cadenas en la población, y 𝒂𝒊(𝒕) una cadena del paso de evolución (generación) 𝒕. Para ello el operador la probabilidad de seleccionar a un individuo cualquiera de entre los presentes en la población:
𝒑𝒔(𝒂𝒊(𝒕)) =
𝜱(𝒂𝒊(𝒕))
∑𝝁𝒋=𝟏𝜱(𝒂𝒋(𝒕))
Entonces el operador de selección se puede definir formalmente como:
𝑺{𝒑𝒔}: 𝑰 → 𝓖
Donde 𝐼 es el conjunto de individuos, y 𝒢 el genotipo escogido. El operador de cruzamiento es muy importante en el campo de los algoritmos genéticos. Existen numerosas tipos de él, el más estándar es el binario y genera dos hijos. Originalmente, los AG utilizaban cruzamiento de 1 punto, el cual cortaba dos cromosomas en un punto y empalmaba las mitades para crear los nuevos individuos. Pero con ésta técnica, la cabeza y la cola de un cromosoma no pueden pasarse juntas a la descendencia. Si tanto la cabeza como la cola contienen buena información genética, ninguno de los descendientes heredará estas dos características. Al usar la cruza de 2 puntos o más, se evita esta desventaja, y entonces se la considera generalmente una técnica mejor.
BIBLIOTECA
DE CIENCIAS
FÍSICAS
Dado un genotipo 𝓖 de longitud 𝒍, una variable aleatoria discreta uniforme 𝝉 y dos valores aleatorios 𝜶, 𝝈 se define el operador de dos puntos de cruce sobre dos vectores a y b como:
⨂𝑫𝑷𝑿: 𝓖 𝑿 𝓖 → 𝓖 𝑿 𝓖 𝝉 ∈ [𝟎, 𝟏] 𝜶, 𝝈 ∈ {𝟏, … , 𝒍 − 𝟏} 𝝈 > 𝜶
Si 𝝉 ≤ 𝒑𝒄 entonces ⨂𝑫𝑷𝑿{𝒑𝒄}(𝒂 = (𝒂𝟏, … , 𝒂𝒍), 𝒃 = (𝒃𝟏, … , 𝒃𝒍))
= ((𝒂𝟏, … , 𝒂𝜶, 𝒃𝜶+𝟏, … , 𝒃𝝈, 𝒂𝝈+𝟏, … , 𝒂𝒍), (𝒃𝟏, … , 𝒃𝜶, 𝒂𝜶+𝟏, … , 𝒂𝝈, 𝒃𝝈+𝟏, … , 𝒃𝒍))
Sino ⨂𝑫𝑷𝑿{𝒑𝒄}(𝒂 = (𝒂𝟏, … , 𝒂𝒍), 𝒃 = (𝒃𝟏, … , 𝒃𝒍)) = ((𝒂𝟏, … , 𝒂𝒍), (𝒃𝟏, … , 𝒃𝒍)) Operador de mutación
El tipo de mutación a utilizar es la mutación numérica, debido a que los genes de los cromosomas que se va a utilizar tienen valores reales. Este tipo de mutación se desarrolló en base a observaciones realizadas sobre el algoritmo Backpropagation. En dicho algoritmo cada peso es modificado proporcionalmente al gradiente de la función de error. De esta manera, a medida que la red se va acercando a la solución, las modificaciones son menores.
Dado un genotipo 𝓖 de longitud 𝒍 se define el operador de mutación real sobre un vector 𝒔 como:
𝒎{𝒑𝒎𝒓}: 𝓖 → 𝓖 𝒎{𝒑𝒎𝒓}(𝒔𝟏, … , 𝒔𝒍) = (𝒔𝟏′, … , 𝒔𝒍′)
Donde 𝜣𝒎𝒓 = {𝒑𝒎𝒓} es el conjunto de parámetros, consiste únicamente en la probabilidad 𝒑𝒎𝒓 de mutar.
La mutación real que utilizaremos consiste en restar o sumar un valor aleatorio al parámetro que se deba mutar, ajustando al rango de definición de la variable el resultado de dicha operación. El sumando es un porcentaje aleatorio elegido nuevamente para cada mutación del intervalo de definición de la variable que determina la perturbación introducida. Por tanto, cada parámetro que deba ser mutado cambiará según:
BIBLIOTECA
DE CIENCIAS
FÍSICAS
∀𝒋 ∈ {𝟏, … , 𝒍}; 𝒔𝒋′ = (𝒔𝒋± 𝒑𝒎𝒓. 𝒔𝒋)
Funcionamiento de un Algoritmo Genético
Para terminar esta sección, y a modo de resumen, vamos a expresar con estos formalismos el funcionamiento de un AG en el siguiente algoritmo:
Algoritmo 1: Funcionamiento de un Algoritmo Genético
𝑡 ≔ 0; 𝑖𝑛𝑖𝑐𝑖𝑎𝑙𝑖𝑧𝑎𝑟: 𝑃(0) ≔ {𝑎1(0), … , 𝑎𝜇(0)} ∈ 𝒢𝜇; 𝑒𝑣𝑎𝑙𝑢𝑎𝑟: 𝑃(0) ≔ {𝑎1(0), … , 𝑎𝜇(0)} ∈ 𝒢𝜇; 𝑚𝑖𝑒𝑛𝑡𝑟𝑎𝑠 𝜄(𝑃(𝑡)) ≠ 𝑡𝑟𝑢𝑒 ℎ𝑎𝑐𝑒𝑟 𝑠𝑒𝑙𝑒𝑐𝑐𝑖𝑜𝑛𝑎𝑟: 𝑃′(𝑡) ≔ 𝑠 𝛩𝑠(𝑃(𝑡)); 𝑟𝑒𝑐𝑜𝑚𝑏𝑖𝑛𝑎𝑟: 𝑝′′(𝑡) ≔ ⨂ 𝛩𝑐(𝑃 ′(𝑡)); 𝑚𝑢𝑡𝑎𝑟: 𝑃′′′(𝑡) ≔ 𝑚 𝛩𝑚𝑃′′(𝑡); 𝑒𝑣𝑎𝑙𝑢𝑎𝑟: 𝑃′′′(𝑡) ≔ {𝛷(𝑎 1 ′′′(0)), … , 𝛷(𝑎 𝜆′′′(0))}; 𝑟𝑒𝑒𝑚𝑝𝑙𝑎𝑧𝑎𝑟: 𝑃(𝑡 + 1) ≔ 𝑟𝛩𝑟(𝑃′′′(𝑡) ∪ 𝒬); 𝑡 ≔ 𝑡 + 1; 𝑓𝑖𝑛 𝑚𝑖𝑒𝑛𝑡𝑟𝑎𝑠
BIBLIOTECA
DE CIENCIAS
FÍSICAS
Y MATEMÁTICAS
𝑴𝑷 = 𝑹𝑵𝑨 ∪ 𝑨𝑮 𝑹𝑵𝑨 = (𝑪𝑬, 𝑪𝑶, 𝑪𝑺, 𝑴, 𝑳, 𝒇𝒂, 𝒇𝒑, 𝒇𝒆) 𝑨𝑮 = (𝑰, 𝜱, 𝜴, Ѱ, 𝜾, 𝝁, 𝝀) 𝑪𝑬 = (𝒊𝒅𝑪𝒂𝒑𝒂, 𝑴𝑬), 𝑴𝑬⊂ 𝑴 𝑰 = 𝓖 𝒙 𝑹 𝓖 = 𝑹𝒍, 𝒍 ∈ 𝑵 𝑪𝑶𝒊 = (𝒊𝒅𝑪𝒂𝒑𝒂𝒊, 𝑴𝒐𝒊) 𝒊, 𝒋 = 𝟎, … , 𝒏/𝒏 ∈ 𝑵 𝑴𝒐𝒊⊂ 𝑴 ∧ 𝑴𝒐𝒊∩ 𝑴𝒐𝒋= ∅, 𝒔𝒊 𝒊 ≠ 𝒋 𝜱(𝜶) = 𝝋 (𝒇 (𝓒−𝟏(𝜶))) , 𝜶 ∈ 𝓖, 𝝋: 𝑹 → 𝑹 𝑪𝑺 = (𝒊𝒅𝑪𝒂𝒑𝒂, 𝑴𝒔), 𝑴𝒔⊂ 𝑴 𝜴 = {𝒘𝜽𝟏, … , 𝒘𝜽𝒛−𝟐|𝒘𝜽𝒊: 𝑰𝝀→ 𝑰𝝀} ∪ {𝒘𝜽𝟎: 𝑰𝝁→ 𝑰𝝀} ∪ {𝒘𝜽𝒛−𝟏: 𝑰𝝀∪ 𝑰𝝀+𝝁 → 𝑰𝝁} 𝝁, 𝝀 ∈ 𝑵 𝑳𝒊𝒋(𝒊𝒅𝑬𝒏𝒍𝒂𝒄𝒆, 𝒏𝒆𝒖𝒓𝒐𝒏𝒂𝒋, 𝒏𝒆𝒖𝒓𝒐𝒏𝒂𝒊, 𝒘𝒊𝒋) 𝒊, 𝒋 = 𝟏, … , 𝒏 𝒏⁄ ∈ 𝑵 ∧ 𝒘𝒊𝒋∈ 𝑹 𝜾: 𝑰 𝝁→ {𝒕𝒓𝒖𝒆, 𝒇𝒂𝒍𝒔𝒆} 𝒇𝒑: 𝑹𝒏→ 𝑹 𝒇𝒑 = 𝒚 𝒊 = ∑ 𝒘𝒊𝒋𝒙𝒋 𝒏 𝒋=𝟏 𝒊, 𝒋 = 𝟏, … , 𝒏 𝒏⁄ ∈ 𝑵 Ѱ = 𝒘𝜽𝒛−𝟏𝒐 𝒘𝜽𝒊𝟏… 𝒐 𝒘𝜽𝒊𝒋𝒐 𝒘𝜽𝟎 𝒇𝒂 = 𝒇(𝒚) 𝒇𝒂: 𝑹 → [𝟎, 𝟏] ∀𝒚 ∈ 𝑹, 𝒇(𝒚𝒊) = 𝟏 𝟏 + 𝒆−𝒚𝒊 𝓒: 𝓕 → 𝓖 𝓒−𝟏: 𝓖 → 𝓕 𝑴𝑨𝑷𝑬 =∑ |𝐚𝐜𝐭𝐮𝐚𝐥𝐢− 𝐢𝐝𝐞𝐚𝐥𝐢| 𝐢𝐝𝐞𝐚𝐥𝐢 ∗ 𝟏𝟎𝟎 𝒏 𝒕=𝟏 𝒏 𝐌𝐒𝐄 =∑ (𝐚𝐜𝐭𝐮𝐚𝐥𝐢− 𝐢𝐝𝐞𝐚𝐥𝐢) 𝟐 𝐧 𝐭=𝟏 𝐧 𝜣𝒊⊂ 𝑹𝝓𝒊, 𝝓 𝒊∈ 𝑵, 𝒊 ∈ 𝑵 𝒇: 𝑴 ⊆ 𝑹𝒏→ 𝑹, 𝑴 ≠ ∅, 𝒏 ∈ 𝑵 𝑴𝑬∩ 𝑴𝒐𝒊= ∅, 𝑴𝑬∩ 𝑴𝒔= ∅, 𝑴𝒐𝒊∩ 𝑴𝒔= ∅ 𝒊 = 𝟎, … , 𝒏 𝒏⁄ ∈ 𝑵 ∃𝒘𝜽′: 𝑰 → 𝑰, 𝒘 𝜽(𝒂𝟏, … , 𝒂𝒑) = (𝒘𝜽′(𝒂𝟏), … , 𝒘𝜽′(𝒂𝒑)) ∧ 𝒑 = 𝒒 ∃𝒘𝜽′: 𝑰𝟐 → 𝑰,𝒘 𝜽(𝒂𝟏, … , 𝒂𝒑) = (𝒘𝜽′(𝒂𝒊𝟏, 𝒂𝒋𝟏), … , 𝒘𝜽 ′ (𝒂 𝒊𝒒, 𝒂𝒋𝒒)) ∀𝒌 ∈ {𝟏, … , 𝒒}, 𝒊𝒌, 𝒋𝒌 ∈ {𝟏, … , 𝒑}
Sea el fenotipoℱ, el conjunto de valores resultantes de expresar el genotipo 𝒢 en parámetros con significado para el problema.
Tabla 10: Modelo computacional basado en técnicas de minería de datos [creación propia].