Gracias por visitar mi web. Espero la hayas disfrutado. Te espero pronto de vuelta!!

Blog / Noticia

Retropropagación en redes neuronales y Machine Learning

En el mundo de la programación, para resolver un determinado problema se codifica un programa que resuelve de la forma más eficiente ese determinado problema y que tenga el menor número de fallos posibles. Si queremos calcular todas las combinaciones posibles de un juego de azar, un programa podría ser creado para esa tarea pero ese mismo programa por muy complejo que sea, será totalmente inútil jugando al ajedrez por ejemplo. Simplemente por que fue diseñado para una sola tarea y el programador ha escrito un modelo para ese caso específico. En ese aspecto, las redes neuronales lo cambian todo ya que un programa de este tipo ya no se basa en la pericia del programador para resolver un problema, sino utiliza la fuerza bruta de computación y por supuesto un buen modelo para resolverlo.

Con la redes neuronales ya que no se programa para resolver un determinado problema, sino que se programa un sistema que es capaz de aprender a resolver un problema a base de entrenamiento basado en un modelo y eso lo cambia todo. Recientemente está el tema muy caliente gracias a Google y su proyecto Deepdream, pero no es algo nuevo sino que este tipo de sistemas fueron creados ya en los años 50 sobre el trabajo de Donald Hebb entre otros.

Estos sistema funcionan de una forma muy similar a las neuronas del cerebro y de hecho las diferentes capas son llamadas neuronas o unidades (units). En su forma más básica, existen capas de entrada, capas intermedia ocultas y capas de salidas. Todas las posibles combinaciones entre las entradas y intermedias y las intermedias a las salidas tiene un valor determinado o peso que al principio no es más que un número aleatorio que se irá ajustando en las siguientes iteraciones. Mediante la retropropagación se ajustan los pesos. Si lo piensas bien, no es más que un calculo estadísticos que devuelve una tasa de error. Por ejemplo, imagínate un simple robot que resuelve laberintos. Teniendo un gran dataset de laberintos, podríamos hacer que nuestro robot procese un laberinto basándose en su experiencia para "predecir" si girar a la izquierda o derecha en un cruce según su modelo. No garantiza que el robot resuelva un laberinto a la primera, sino que tendrá una aproximación estadística basada en probabilidades para resolverlo lo mejor posible.