• ¿Quieres apoyar a nuestro foro haciendo una donación?, entra aquí.

Duda con algoritmos genéticos

yuseppi2

Culiad@
Registrado
2020/01/09
Mensajes
3.258
Sexo
Macho
Para que sirven exactamente?.

Lo encuentro interesante pero nos dieron una pincelada rasca en clases, a lo mucho encontré un problema de optimización con algoritmos genéticos por internet, pero de implementación no mucho.

Qué decir de redes neuronales, lo mismo, creo es material que da para mucho, pero el conocimiento que tengo es escaso, a lo mucho, unos cálculos a mano y problemas difusos (lo único que pasaron).

Quiero salir luego de ésta wea de carrera para estudiar como corresponde...

:ear:.
 
Tal como dijiste, es un método de optimización. La idea principal es usar el concepto de "genética" en dónde comienzas inicialmente con una población inicial de cromosomas de tamaño N (por lo general generados al azar) e ir cruzando los genes entre pares para obtener un resultado deseado.
De hecho el cromosoma tiene un largo fijo y valores binarios (aunque podría no serlo), en dónde cada gen podría ser una propiedad del problema a resolver.
Por ejemplo, un cromosoma de 5 bits de largo, el primer bit podría identificar el sexo, el segundo si es extranjero o no y así hasta finalizar.


Al final, la gracia es que entre cruce y cruce tu vas dándole mayor probabilidad de cruza a las siguientes generaciones cuando el valor que quieres obtener es mayor. Por ejemplo, si quisieras optimizar la esperanza de vida, entonces si en tu ecuación obtienes que ciertas configuraciones te dan un mejor resultado, pues serán estos quienes tendrán mayor probabilidad de cruzarse.

Hay otros conceptos entre medio como mutación, que impiden que quedes atrapado en un óptimo local. La mutación no es más que mutar un gen al azar de un cromosoma para aumentar las posibilidades de exploración de un problema.


A la larga, es un método iterativo que funciona bastante bien :Sisi:
 
Son algoritmos de optimización, particularmente metaheurísitcas, es decir, utilizan un conjunto de reglas que se espera sirvan para llegar a la solución del problema.

Se utilizan harto en problemas de optimización global en que métodos tradicionales no te van a servir por tiempo de cálculo o simplemente porque no se pueden aplicar. Ejemplos de estos problemas son algunos donde la función objetivo es altamente no convexa, por lo que puede tener muchos mínimos locales. En otros casos uno solo tiene acceso a evaluaciones de la función que quieres optimizar, y no existe la posibilidad de calcular el gradiente, hessiano, u algún otro indicador de direcciones de decrecimiento u optimalidad.

Las metaheurísitcas en general tienen otras desventajas, como que muchas veces no pueden asegurar optimalidad, o siquiera cotas entre las que se debe encontrar el óptimo (a veces se puede calcular un nivel de confianza con el que el óptimo se encuentre en un intervalo, por ejemplo), sin embargos, hay algunas aplicaciones en que sí son muy útiles porque "no queda otra". También es posible que para problemas con estructuras particulares algunas metaheurísticas sean particularmente eficientes (supongo).
 
Última edición:
Excelentes respuestas, ahora en términos concretos, donde usarían un algoritmo genético?.

Recuerdo nos pasaron redes neuronales, estuvo OK las diapositivas, pero en eso quedó, en diapositivas, se terminó la unidad de redes y pasamos a algo más (algoritmos genéticos o algo entremedio, no lo recuerdo bien) y nunca más supe de las famosas R.N.A.

Por mi lado encontré una tesis donde aplican la teoría de redes neuronales para determinar si va a caer o no un rayo, bajo variables conocidas, ésto para proteger la infraestructura de una subestación de un posible impacto eléctrico (asumo que si el resultado del R.N.A tiene una certeza sobre el 70% entonces se activa el protocolo, de lo contrario, nada).

Eso me motivó bastante más que una cagá de serie de diapositivas a estudiar redes, la aplicación del conocimiento, no estudiar para dar la prueba y no morir en el intento (vuelvo a repetir, todas las weas se basaron en evaluar la capacidad de calcular a mano la evolución de la población en caso de A.G, o entrenar manualmente un banco con 1 capa oculta de R.N.A).

Francamente estoy disgustado, es material que da para mucho y no le pudieron dar cabida a ese tipo de conocimiento frente a asignaturas administrativas que por la bajo fueron 1/6 de la carrera.

Las disculpas correspondientes si divagué demasiado.
 
Estoy estudiando Control industrial (un instrumentista glorificado porque no alcanza para ingeniería), me hago a la idea de que carreras relacionadas a tecnologías de la información en algún punto de la malla les pasarán algo relacionado a la inteligencia artificial, hasta ahora, lo más inserto que he visto de inteligencia artificial ha sido visión artificial (interpretación de patrones y entrenamiento de una red neuronal para OCR fue el último trabajo que realicé).

La verdad no tiene pies ni cabeza según mi punto de vista que me pasen algo de inteligencia artificial, quizás buscaré por ahí como insertar un banco de entrenamiento a un control para buscar el control óptimo sin tanto cálculo de estabilidad y punto crítico, pero sería más como hobby que algo para estudiar.

Aunque pensando bien, Matlab hace bien la pega de encontrar punto crítico y estabilidad de sistemas, hay tantas weas que se pueden aplicar en el campo de la electricidad y teoría de control pero tan poco tiempo...
 
Excelentes respuestas, ahora en términos concretos, donde usarían un algoritmo genético?.

Recuerdo nos pasaron redes neuronales, estuvo OK las diapositivas, pero en eso quedó, en diapositivas, se terminó la unidad de redes y pasamos a algo más (algoritmos genéticos o algo entremedio, no lo recuerdo bien) y nunca más supe de las famosas R.N.A.

Por mi lado encontré una tesis donde aplican la teoría de redes neuronales para determinar si va a caer o no un rayo, bajo variables conocidas, ésto para proteger la infraestructura de una subestación de un posible impacto eléctrico (asumo que si el resultado del R.N.A tiene una certeza sobre el 70% entonces se activa el protocolo, de lo contrario, nada).

Eso me motivó bastante más que una cagá de serie de diapositivas a estudiar redes, la aplicación del conocimiento, no estudiar para dar la prueba y no morir en el intento (vuelvo a repetir, todas las weas se basaron en evaluar la capacidad de calcular a mano la evolución de la población en caso de A.G, o entrenar manualmente un banco con 1 capa oculta de R.N.A).

Francamente estoy disgustado, es material que da para mucho y no le pudieron dar cabida a ese tipo de conocimiento frente a asignaturas administrativas que por la bajo fueron 1/6 de la carrera.

Las disculpas correspondientes si divagué demasiado.

Yo creo que su principal aplicación esta en problemas de optimización con estructura muy compleja para atacarlos con otros métodos, y cuando asegurar optimalidad no es tan relevante como obtener una solución buena (bajo algún criterio de desempeño). Por ejemplo, he visto algunas aplicaciones en donde se busca optimizar algunos parámetros de diseño. Ahí puede que qué tan bueno sea un diseño se determine realizando muchas simulaciones en distintas condiciones y calculando alguna métrica de desempeño (por ejemplo, desempeño promedio). En ese caso ni siquiera tienes una función con una expresión analítica cerrada que quieres optimizar, sino que tienes "evaluaciones" que obtienes realizando las simulaciones. También puede que solo necesites un diseño razonablemente bueno, y no necesariamente el mejor. En ese tipo de problemas yo creo que las metaheurisitcas (y los algoritmos genéticos en particular) tienen su mayor aplicación.

Redes neuronales actualmente se están usando para prácticamente todo, de hecho puede que se estén usando demasiado, especialmente considerando que su funcionamiento es muy "de caja negra". Yo no soy para nada un experto en el tema, pero tengo hartos conocidos que sí, y algunas aplicaciones que he visto son: visión computacional en robótica, procesamiento de imágenes en general, diseño de controladores, diagnóstico de fallas, pronósitco, reconocimiento de patrones y clasificación en general, extrapolación, etc.
 
Yo creo que su principal aplicación esta en problemas de optimización con estructura muy compleja para atacarlos con otros métodos, y cuando asegurar optimalidad no es tan relevante como obtener una solución buena (bajo algún criterio de desempeño). Por ejemplo, he visto algunas aplicaciones en donde se busca optimizar algunos parámetros de diseño. Ahí puede que qué tan bueno sea un diseño se determine realizando muchas simulaciones en distintas condiciones y calculando alguna métrica de desempeño (por ejemplo, desempeño promedio). En ese caso ni siquiera tienes una función con una expresión analítica cerrada que quieres optimizar, sino que tienes "evaluaciones" que obtienes realizando las simulaciones. También puede que solo necesites un diseño razonablemente bueno, y no necesariamente el mejor. En ese tipo de problemas yo creo que las metaheurisitcas (y los algoritmos genéticos en particular) tienen su mayor aplicación.

Redes neuronales actualmente se están usando para prácticamente todo, de hecho puede que se estén usando demasiado, especialmente considerando que su funcionamiento es muy "de caja negra". Yo no soy para nada un experto en el tema, pero tengo hartos conocidos que sí, y algunas aplicaciones que he visto son: visión computacional en robótica, procesamiento de imágenes en general, diseño de controladores, diagnóstico de fallas, pronósitco, reconocimiento de patrones y clasificación en general, extrapolación, etc.
Eso tenía entendido respecto a las R.N.A (al menos las de tipo perceptrón multicapa), aplicar cálculos a una red multicapa pasado la segunda capa oculta se torna inviable matemáticamente, por ser exageradamente complejo su resolución (target indefinido dentro de la capa oculta).
La wea sirve, no preguntes cómo, sirve :lol2:.

Me queda poco para terminar la carrera, quizás en un futuro vuelva a estudiar, me interesa poder aplicar R.N.A convolucionales a la visión artificial, tengo entendido que existen sistemas de cámaras que pueden determinar el yield, tamaño de burbujas, calidad y concentración de minerales en piscinas de lixiviación (así se llaman cierto?).

Hay mucho de donde poder agarrarse respecto a la teoría de control con enfoques a deep learning y machine learning a mi parecer, sólo que en Chile, no se han aplicado a gran escala por ser tecnología nueva (las pelotas, la inteligencia artificial lleva décadas entre nosotros, sólo era inviable con el poder de calculo cuándo se empezó a desarrollar la teoría).

Gracias por la ayuda niños, ya inventaré mi consolador con ruedas y rayos laser 5G (broma, esa wea no tiene sentido).
 
Volver
Arriba