¡Permíteme darte un ejemplo sin código de cómo funciona la IA y cómo puedes jugar contigo mismo!
En primer lugar, es importante comprender que la IA puede ser muchas cosas. Sin embargo, en los últimos tiempos, uno probablemente se referiría a una IA más avanzada, como las redes neuronales . También es importante tener en cuenta que las redes neuronales pueden ser muchas cosas, y la red proporcionada aquí es simplemente una red simplemente entrenada que le dará una idea de cómo funciona todo.
A continuación, verá una imagen de Excel que intenta predecir un dígito escrito a mano en una cuadrícula de 28 × 28. Todas las celdas se convierten en un rango entre 0 y 1 que indica la escala de grises del dígito. Verá que tiene una confianza del 96% de que este número es un 8.
Entonces, ¿cómo podría dejar que Excel adivine cuál es este número? Podría haber varios métodos. Tal vez use la función = SUMA () para tomar la suma de todas las celdas y decirle que la probabilidad de que sea un 8 es mayor a medida que se colorean más píxeles, ya que el 8 generalmente cubre muchos píxeles. Quizás usaría una combinación de funciones = IF (), para decirle que si ciertas áreas contienen valores, adivinaremos x número.
Tal vez juegues con él lo suficiente y obtengas una precisión bastante alta (las conjeturas aleatorias son del 10%). Sin embargo, obtener una precisión superior al 90% requiere métodos avanzados, y uno de ellos podría ser una red neuronal .
Si ya está familiarizado con las redes neuronales , es posible que haya visto esta ilustración antes (NB: el siguiente ejemplo usa n = 30 en la capa oculta) [1]:
Lo que vemos es que simplemente se inicializan algunos parámetros y al final proporciona una salida basada en la entrada dada. ¡Esto es exactamente lo que hace nuestro archivo Excel!
El archivo Excel contiene 3 hojas: ‘Modelo’, ‘Parámetros’, ‘Números’.
Echemos un vistazo a ‘Parámetros’.
Lo que vemos son matrices de pesos (que van desde peso_1_1 hasta peso_1_30 ) con dimensiones 28 × 28. Entonces, ¿para qué se usan todos estos números? Se utiliza para nuestras fórmulas en las células Sigmoid1 . Entonces, si nos referimos de nuevo a nuestra ilustración anterior de la red neuronal , vemos que cada entrada tiene un peso que pasa a una nueva neurona en la capa oculta . ¡Esto es básicamente lo que está pasando aquí!
La primera neurona oculta ubicada en la celda AD2 simplemente tiene los píxeles de entrada 28 × 28 multiplicados por cada peso en la primera matriz de peso_1_1 , y luego se agrega un ‘sesgo’ (los sesgos se encuentran más abajo en la hoja de Parámetros) . Todo esto se exprime en la función Sigmoide.
Así que revisemos rápidamente la fórmula en la celda AD2 :
[matemáticas] z = X \ cdot W + b [/ matemáticas]
[matemáticas] AD2 = \ dfrac {1} {1 + e ^ {- z}} [/ matemáticas]
Donde X es la matriz de los píxeles de entrada y W es la matriz del peso_1_1 . Es decir, el píxel superior izquierdo se multiplica por el peso superior izquierdo. Esto se hace para todos los 784 pesos y píxeles, y la suma de esto más un sesgo al final llamamos z . Esto se pone en la función sigmoide y obtenemos nuestra salida en la celda AD2.
Lo mismo es cierto para nuestra gama Sigmoid2 . Si piensa en la ilustración de la red, recordará que hay menos pesos conectando la segunda capa a la capa de salida.
Como puede ver, lo hacemos de nuevo para nuestra capa de salida, solo con menos pesos, y esta vez tratando todos los resultados que obtuvimos de Sigmoid1 como nuestra nueva [matemática] X [/ matemática]. Como habrás notado, el segundo último valor tiene la activación más alta, lo que indica que este número debería ser el número 8.
Echemos un vistazo a la última hoja llamada números. Solo para mostrar que los valores correctos de los números aún no se han dado a la red.
Como puede ver, esta es solo una hoja que contiene muchos dígitos escritos a mano convertidos en rangos de 28 × 28 con números que van del 0 al 1.
Ahora puede preguntarse: “¿pero cómo conseguimos todos estos pesos y prejuicios en primer lugar?”. Ese es un muy buen punto. Y para responder a esta pregunta, tendríamos que saber un poco sobre cómo optimizar los parámetros. Para esto, utilizamos un algoritmo llamado descenso de gradiente.
Pero por ahora, creo que deberíamos detenernos aquí, ¡y solo enfocarnos en que realmente entiendes la estructura de una red neuronal ahora!
Espero que este pequeño ejemplo te haya mostrado cuánto dependen realmente las redes neuronales de las matemáticas y los parámetros, y no es ningún tipo de magia vudú, como comentó uno de mis lectores en otra de mis publicaciones.
Actualización: logré eliminar el código VBA para generar números, así que podría subir para que ustedes puedan jugar. Para ver un nuevo número, simplemente haga doble clic en el número a la derecha o ingrese manualmente algo entre 0 y 999.
Aquí hay un enlace: MNIST_Neural_Network – Quora.xlsx
Notas al pie
[1] Redes neuronales y aprendizaje profundo