Comencemos por el principio y pasemos por el proceso de diseño.
Las redes son un sistema interconectado que funciona en coherencia. Las redes neuronales se refieren a la masa de neuronas encontradas en los organismos vivos que realizan tareas cruciales como la respiración, etc. También pueden verse como un cuadro negro: proporciona una entrada y obtiene una salida muy parecida a los objetos en Java, pero no sabe por qué la salida se produce de la manera en que lo hizo. Artificial es lo que no se encuentra en la naturaleza. Por lo tanto, establezcamos la siguiente definición de Redes Neuronales Artificiales (ANN):
ANN son una forma de imitar el proceso de toma de decisiones en los seres humanos.
- ¿Por qué la optimización convexa es tan importante en el aprendizaje automático?
- ¿Cuáles son las diferencias en las aplicaciones de filtrado colaborativo en los datos de calificación y en los datos de compra?
- ¿Hay alguna manera de hacer una clasificación de múltiples etiquetas en los árboles de decisión usando R / Python?
- ¿Cuál es el valor de un curso de Coursera sobre aprendizaje automático por Andrew Ng para solicitar una maestría en Estados Unidos en las 20 mejores universidades?
- Estoy muy interesado en el aprendizaje automático y quiero trabajar en algunos proyectos de código abierto. ¿Qué proyectos puedes sugerir?
Sin embargo, una réplica exacta es casi imposible de diseñar porque hay miles de millones de neuronas y un número insondable de interconexiones que existen entre ellas.
Si estuvieras diseñando ANN, ¿cómo lo abordarías?
Aplica el clásico: Resumen. Luego divide y vencerás.
Abstracción:
¿Qué es realmente una neurona? Es un objeto que toma un cierto tipo de entrada y produce un cierto tipo de salida, aunque la salida no siempre es agradable o esperada.
¿Cuáles son las propiedades que debería tener este objeto?
Lo más importante sería que debería producir la misma salida dada la misma entrada, siempre. Por ejemplo, si quieres sacar tu mano del fuego, este estímulo debe activarse cada vez que colocas tu mano en el fuego; de lo contrario, estarías muerto. En resumen, queremos que las respuestas sean una relación bien definida entre una entrada y una salida.
¿Necesitamos crear tal objeto o ya existe uno?
Buenas noticias: existe. De hecho, existe en abundancia. Se llaman funciones en matemáticas.
Excelente ! Hemos abstraído el concepto de una neurona, una noción desconocida, a algo que habitualmente manejamos: funciones.
Divide y conquistaras :
Ahora que tenemos una neurona (una función) y sabemos que las neuronas individuales forman el cerebro, también nos gustaría crear un cerebro. Sin embargo, como notamos anteriormente, esto no es del todo posible. ¿Y por qué hay tantas neuronas en primer lugar en el cerebro humano? Esto se debe a que además de tomar una entrada a una salida, el cerebro realiza muchas otras funciones increíblemente complejas, como la risa y la violencia. Seguramente, ¿no queremos que nuestro programa se ría de nosotros cuando proporcionamos una entrada incorrecta o nos mata por no actualizarlo regularmente? Por lo tanto, tomamos solo lo que necesitamos. Tomamos algunas neuronas.
El diseño :
Lo siguiente que debemos cuidar es cuántas capas de neuronas, por lo tanto, cuántas conexiones entre neuronas queremos. Siguiendo el mismo principio que el anterior, decidimos las siguientes capas esenciales:
1. La capa de entrada
2. La capa de computación
3. La capa de salida
Tomemos el modelo más simple posible de lo anterior:
1. Una neurona toma la entrada
2. Una neurona realiza el cálculo necesario y produce la salida.
Un ejemplo está en orden: puede decidir que su función es la función de umbral. Digamos que las personas con x ml de glucosa en la orina son diabéticas. Luego puede clasificar a las personas diabéticas y no diabéticas.
Al principio, esto puede parecer muy simplista. De manera exasperante.
Sin embargo, debe tener en cuenta que el modelo parece simple porque la neurona, la función que eligió, era simple. Necesita la función “mejor” para producir resultados “mejores”.
Esa palabra “mejor” es donde se realiza la investigación.
Por ejemplo, se ha demostrado que existe una función que puede aproximarse a casi todas las demás funciones de buen comportamiento. Esos son términos técnicos y necesita una buena formación matemática para comprenderlo completamente.
La mejor función que tenemos actualmente es la clase de funciones sigmoideas. Son empinados en el medio y planos en la parte superior e inferior. Tienen buenas propiedades. Los ejemplos incluyen la función tanh y la función 1 / (1 + exp (-x)).
Geoffery Hinton es actualmente el más activo en el campo. Él es responsable de trucos como el Hinton Drop, que apaga algunas neuronas al azar para ahorrar energía computacional y demás.
Los teoremas que solicita abundan en forma de trabajos de investigación dispersos en revistas de estadística a lo largo de los años 50 y 60. Hay muchos más por venir y ANN se está integrando en el campo más amplio de Machine Learning (ML), que en sí mismo es un subconjunto de IA.
En caso de que se pregunte cómo se escribe el código: se implementa utilizando matrices, que representan las entradas que se alimentan a funciones específicas. La salida también se saca en forma de matrices. Es una buena idea repasar su Álgebra Lineal, si desea comprender las implementaciones en mayor profundidad. Pueden variar desde muy simples hasta muy complicadas, como las que se usan en el procesamiento de imágenes.
Buena suerte explorando más!