Usando redes neuronales para reconocer dígitos escritos a mano - Parte 3  

  RSS
admin
(@admin)
Miembro Admin

Neuronas sigmoideas

Los algoritmos de aprendizaje suenan fenomenal. Pero, ¿cómo podemos idear tales algoritmos para una red neuronal? Supongamos que tenemos una red de perceptrones que nos gustaría usar para aprender a resolver algún problema. Por ejemplo, las entradas a la red podrían ser los datos de píxeles sin procesar de una imagen escaneada y manuscrita de un dígito. Y nos gustaría que la red aprendiera pesos y sesgos para que la salida de la red clasifique correctamente el dígito. Para ver cómo podría funcionar el aprendizaje, supongamos que hacemos un pequeño cambio en algo del peso o el sesgo en la red. Lo que nos gustaría es que esta pequeño modificación de peso cause solo un pequeño cambio correspondiente en la salida de la red. Como veremos en un momento, esta propiedad hará posible el aprendizaje. Esquemáticamente, esto es lo que queremos (¡obviamente esta red es demasiado simple para hacer reconocimiento de escritura a mano!):

Si fuera cierto que una pequeña modificación en un peso o sesgo causa solo un pequeño cambio en la salida, entonces podríamos usar este hecho para modificar los pesos y sesgos para que nuestra red se comporte más de la manera que queremos. Por ejemplo, supongamos que la red estaba clasificando erróneamente una imagen como un "8" cuando debería ser un "9". Podríamos descubrir cómo hacer un pequeño cambio en los pesos y sesgos para que la red se acerque un poco más a la clasificación de la imagen como un "9". Y luego repetiríamos esto, cambiando los pesos y sesgos una y otra vez para producir mejores resultados. La red estaría aprendiendo.

El problema es que esto no es lo que sucede cuando nuestra red contiene perceptrones. De hecho, un pequeño cambio en los pesos o sesgos de cualquier perceptrón individual en la red a veces puede hacer que la salida de ese perceptrón cambie completamente, por ejemplo, de "0" a "1". Ese giro puede hacer que el comportamiento del resto de la red cambie completamente de una manera muy complicada. Por lo tanto, si bien su "9" ahora podría estar clasificado correctamente, es probable que el comportamiento de la red en todas las demás imágenes haya cambiado completamente de alguna manera difícil de controlar. Eso dificulta ver cómo modificar gradualmente los pesos y sesgos para que la red se acerque más al comportamiento deseado. Tal vez haya alguna forma inteligente de solucionar este problema. Pero no es inmediatamente obvio cómo podemos obtener una red de perceptrones para aprender.

Podemos superar este problema introduciendo un nuevo tipo de neurona artificial llamada neurona sigmoidea. Las neuronas sigmoideas son similares a los perceptrones, pero se modifican de modo que pequeños cambios en sus pesos y sesgos causan solo un pequeño cambio en su producción. Ese es el hecho crucial que permitirá que una red de neuronas sigmoides aprendan.

Bien, déjame describir la neurona sigmoidea. Representaremos las neuronas sigmoideas de la misma manera que describimos los perceptrones:

Al igual que un perceptrón, la neurona sigmoide tiene entradas. Pero en lugar de ser solo "0" o "1", estas entradas también pueden tomar cualquier valor entre "0" y "1". Entonces, por ejemplo, 0.638... es una entrada válida para una neurona sigmoide. También, al igual que un perceptrón, la neurona sigmoide tiene pesos para cada entrada, w1, w2,... y un sesgo general, b. Pero la salida no es "0" o "1". En su lugar, es σ(wx+b), donde σ se denomina función sigmoidea. Y se define por:

Para continuar viendo el resto de contenido por favor Regístrate o Inicia Sesión

This topic was modified hace 6 meses 5 times by admin
This topic was modified hace 4 meses by admin
Citar
Respondido : 13/10/2018 7:02 pm
Share:
  
Trabajando

Por favor Iniciar Sesión o Registro