Comienzo con una analogía:
Digamos que le gustaría encontrar un tesoro escondido en una región montañosa con un grupo de amigos para encontrar un tesoro de $ 10 millones 🙂 Imágenes
Suponemos que la ubicación del tesoro es desconocida; solo sabemos que tenemos que encontrar el valle más profundo con la elevación mínima. Entonces, no conocemos la ubicación sino solo la evaluación. Suena fácil, pero el área de búsqueda es enorme y solo podemos caminar.
- ¿Qué dicen los profesores universitarios sobre las técnicas de aprendizaje automático aplicadas en sus campos?
- Cómo hacer un bot que pueda abrir cbseresults.nic.in y obtener el resultado
- Cómo crear una IA como EDI de Mass Effect con el cuerpo de 3
- ¿Cuáles son las partes que componen un robot básico y cuáles son sus funciones?
- ¿Cuál es tu visión de la inteligencia artificial? Y algunos años más tarde, ¿es posible que se necesiten trabajos enteros de humanos y las personas estarán desempleadas?
También asumimos que cada miembro del equipo puede comunicarse con otros miembros por teléfono. Otra suposición es que puede usar un GPS para obtener el valor de elevación al final de cada día. Para resumir, cada persona tiene los siguientes engranajes:
- Un par de buenos zapatos para caminar millas y millas por día 🙂
- Un bloc de notas para escribir y actualizar la mejor posición encontrada hasta ahora por el miembro del equipo (que llamamos PBEST )
- Un bloc de notas para escribir la mejor posición que ha encontrado todo el equipo hasta ahora (lo llamamos GBEST )
- Un GPS que muestra qué tan profunda es una posición (elevación) en la región montañosa (podemos llamarla función objetivo )
Para buscar el tesoro, cada miembro del equipo sigue estas reglas:
- Cada miembro del equipo comienza primero en una ubicación aleatoria y con una dirección aleatoria . Calculamos la elevación de la primera ubicación de inmediato. Obviamente, tenemos que extender el equipo tanto como podamos para aumentar las posibilidades de encontrar el tesoro.
- La expedición lleva T días y haces planes todos los días por la mañana; no hay comunicación hasta el día siguiente
- Cada mañana, todo el equipo compara la elevación de sus posiciones y actualiza el GBEST en sus cuadernos si es necesario. Entonces, GBEST es la única información compartida entre los miembros del equipo. De hecho, la ubicación de GBEST y su elevación son compartidas.
- Además, cada miembro del equipo actualiza el PBEST en el cuaderno si encuentra una mejor posición. Los PBEST no se comparten con otros miembros del equipo.
- Aquí está la parte principal. Para moverse, todos los días, cada miembro del equipo toma, por ejemplo, A pasos en la dirección del último día , B pasos en la dirección hacia el PBEST y C pasos en la dirección hacia el GBEST.
- Los pasos son al azar. Esto le da algún tipo de aleatoriedad a la búsqueda y al patrón de búsqueda estocástica para todo el equipo.
Verá, con estas reglas simples, el equipo sigue buscando diferentes regiones mientras vigila la mejor ubicación encontrada hasta ahora. No hay garantía de encontrar el tesoro, pero la búsqueda es efectiva ya que siempre se buscan las mejores regiones. Al menos, tiende a ser mejor que una búsqueda completamente aleatoria.
¿De dónde vienen estas reglas? Bueno, los científicos creen que así es como un enjambre de pájaros navega y se alimenta en la naturaleza.
Vamos a entrar en la optimización de enjambre de partículas ahora:
Particle Swarm Optimization (PSO) es un algoritmo estocástico bien considerado en la literatura de Swarm Intelligence. Este algoritmo se ha inspirado en el comportamiento de flocado de las aves en la naturaleza cuando se alimentan o migran. De hecho, la interacción de las aves en una bandada fue modelada matemáticamente.
En PSO, cada solución tiene tres componentes:
- posición (similar a la ubicación en la analogía anterior)
- velocidad (similar a la dirección del movimiento en la analogía anterior)
- valor de condición física (similar a la elevación en la analogía anterior). El valor de aptitud se calcula mediante una función objetivo (aptitud), que es similar al GPS en la analogía anterior.
La posición se refiere a los valores de los parámetros. El vector de posición indica dónde está un pájaro artificial en un espacio de búsqueda dimensional donde n es el número de variables de un problema de optimización. El vector de velocidad es para almacenar la velocidad que se utiliza para actualizar las aves de posición. Finalmente, el valor de aptitud muestra cuán en forma está un pájaro.
La parte principal del PSO es el vector de velocidad. Este vector considera la posición actual de un pájaro, la mejor posición encontrada por todo el enjambre y la mejor posición del pájaro actual. Aquí hay un modelo matemático aproximado de este algoritmo:
Velocidad = r1 * CurrentVelocity + r2 * distancia a PBEST + r3 * distancia a GBEST
Posición = Posición + Velocidad
- currentVelocity: mantiene la ruta de vuelo actual y la velocidad
- distancia a PBEST: simula la inteligencia individual de un pájaro en el enjambre al tener un impulso hacia la mejor solución encontrada hasta ahora por el pájaro
- Distancia a GEST: simule la inteligencia social de un pájaro gravitando hacia la mejor solución encontrada por los enjambres
Cada uno de los tres componentes en el vector de velocidad se multiplica por números aleatorios (r1, r2 y r3) para proporcionar un comportamiento estocástico al igual que los pasos aleatorios en la analogía anterior. También hay tres coeficientes: peso de inercia (w), c1 y c2, por lo que la formulación de velocidad real es:
V (t + 1) = w * V (t) + c1 * r1 * (PBEST_i – X_i) + c2 * r2 * (GBEST-X_i)
Hay un buen video en Problemas de optimización y algoritmos | Curso de Udemy que explica PSO con una analogía similar que puede ser interesante.