Construyendo Funciones de Activación para Redes Profundas
Funciones de Activación para Redes Profundas
![Imagen generada por IA (craiyon)](https://miro.medium.com/v2/resize:fit:640/format:webp/1*KozBKPl1PKOuow9pPeN_qg.png)
Un componente básico de una red neuronal profunda es la función de activación (AF) – una función no lineal que da forma a la salida final de un nodo (“neurona”) en la red. Las funciones de activación comunes incluyen sigmoidal, tangente hiperbólica (tanh) y unidad lineal rectificada (ReLU).
Más a menudo que no, los constructores de redes desarrollarán nuevos algoritmos de aprendizaje, arquitecturas, etc., mientras siguen usando AFs estándar.
En dos trabajos recientes me he centrado en las AFs, preguntándome qué pasaría si las cambiáramos.
- ¡La Biblioteca de Python de OpenAI y 5 cosas destacadas que ChatGPT puede hacer con ejemplos prácticos en Python!
- EU AI Act ¿Un paso prometedor o una apuesta arriesgada para el futuro de la IA?
- Por qué su próximo director financiero debería ser un científico de datos impulsando decisiones empresariales con ciencia de datos y análisis
En “Redes neuronales con selección a la carta de funciones de activación”, combiné una serie de AFs conocidas en arquitecturas de redes exitosas. Lo hice utilizando Optuna, un software de optimización automática de hiperparámetros de última generación.
Entonces, ¿qué tienen que ver los hiperparámetros con las AFs? Bueno, en última instancia, depende de ti, el programador, definir qué constituye un hiperparámetro. “Le di” a Optuna una lista de 48 posibles AFs de PyTorch:
Algunos de estos están “oficialmente” definidos como AFs (por ejemplo, ReLU y Sigmoid), mientras que los otros son simplemente funciones matemáticas sobre tensores (por ejemplo, Abs y Sin). Como medida adicional, también agregué 4 nuevas AFs que encontré en la literatura de investigación.
Se le dio a Optuna esta lista para tratarla como hiperparámetros. Más precisamente, ejecuté Optuna con redes neuronales de 5 capas y con redes neuronales de 10 capas, y la tarea de Optuna era encontrar la lista de 5 o 10 AFs que funcionara mejor, respectivamente.
Pude demostrar que este método a menudo producía resultados significativamente mejores para 25 problemas de clasificación, en comparación con una red estándar compuesta por unidades ocultas ReLU y una unidad de salida softmax.
En “Evolución de las funciones de activación para la clasificación de imágenes basada en aprendizaje profundo”, mi estudiante de posgrado Raz Lapid y yo investigamos la generación de nuevas AFs. Utilizamos la programación genética, una forma potente de algoritmo evolutivo, donde los grafos evolucionan en un proceso que simula la evolución por selección natural.
Por ejemplo, el siguiente grafo:
representa la conocida AF sigmoidal.
Se le dio al algoritmo evolutivo un conjunto de primitivas, a partir de las cuales componer nuevas AFs:
Como puedes ver, utilizamos como bloques básicos de construcción AFs estándar, así como funciones matemáticas básicas, dejando suelta la evolución para descubrir combinaciones novedosas – posiblemente potentes. Estas últimas combinaciones fueron las nuevas AFs.
También aplicamos otra “trampa” evolutiva, utilizando tres poblaciones de AFs en evolución, en lugar de una; esto se conoce como coevolución. La idea era tener una población de AFs para la capa de entrada, otra población para las AFs de la capa de salida y una tercera población para todas las AFs de las capas ocultas. Razonamos que esto tenía sentido en lo que respecta a las redes neuronales:
Probamos nuestro método en cuatro conjuntos de datos de imágenes y descubrimos que la coevolución (y la evolución “regular”) funcionaron bastante bien, capaces de encontrar buenas AFs que mejoraron el rendimiento de la red en comparación con las AFs estándar. Además, nuestro uso de diferentes AFs en diferentes etapas de la red resultó beneficioso.
Si quieres aprender más sobre la evolución, te remito a algunas de mis otras historias de VoAGI:
Algoritmos Evolutivos, Programación Genética y Aprendizaje
Los algoritmos evolutivos son una familia de algoritmos de búsqueda inspirados en el proceso de evolución (darwiniana) en la Naturaleza…
VoAGI.com
Ataques Adversarios Evolutivos en Redes Profundas
A pesar de su éxito indiscutible, estudios recientes han demostrado que las Redes Neuronales Profundas (DNNs) son vulnerables a…
VoAGI.com
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Desplegando un modelo TFLite en GCP Serverless
- Transformada de Fourier para series de tiempo Sobre convolución de imágenes y SciPy
- 5 Preocupaciones en torno a la Escalabilidad y Adopción de la IA
- ¿Es ChatGPT realmente inteligente?
- Liberando la Inteligencia Artificial Generativa con VAEs, GANs y Transformadores
- Analizar la infestación de roedores utilizando las capacidades geoespaciales de Amazon SageMaker
- ¿Cómo conseguir un empleo en Ciencia de Datos? [Decodificado en 8 sencillos pasos]