Así que he estado tratando de entender las redes neuronales desde que encontré el blog de Adam Geitgey sobre aprendizaje automático. He leído todo lo que puedo sobre el tema (que puedo comprender) y creo que entiendo todos los conceptos generales y algunos de los trabajos (a pesar de ser muy débil en matemáticas), neuronas, sinapsis, pesos, funciones de costos, propagación hacia atrás Sin embargo, no he podido encontrar la manera de traducir problemas del mundo real en una solución de red neuronal.
Caso en cuestión, Adam Geitgey da como ejemplo de uso, un sistema de predicción del precio de la vivienda donde se le da un conjunto de datos que contiene No. de dormitorios , Sq. pies , Barrio y el precio de venta que puede entrenar una red neuronal para ser capaz de predecir el precio de una casa. Sin embargo, no llega a implementar realmente una posible solución en código. Lo más cerca que se pone, a modo de ejemplo, es una función básica que demuestra cómo implementar los pesos:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# a little pinch of this
price += num_of_bedrooms * 1.0
# and a big pinch of that
price += sqft * 1.0
# maybe a handful of this
price += neighborhood * 1.0
# and finally, just a little extra salt for good measure
price += 1.0
return price
Otros recursos parecen centrarse más en las matemáticas y el único ejemplo de código básico que pude encontrar que entiendo (es decir, que no se trata de una base de código de clasificación de imágenes de canto y baile) es una implementación que entrena una red neuronal para ser un XOR puerta que se ocupa solo en 1's y 0's.
Entonces, hay un vacío en mi conocimiento que parece que no puedo cerrar. Si volvemos al problema de predicción del precio de la vivienda , ¿cómo hace uno para que los datos sean adecuados para alimentar una red neuronal? Por ejemplo:
- No de habitaciones: 3
- Sq. pies: 2000
- Barrio: Normaltown
- Precio de venta: $ 250,000
¿Puedes alimentar 3 y 2000 directamente en la red neuronal porque son números? ¿O necesitas transformarlos en algo más? Del mismo modo, ¿qué pasa con el valor de Normaltown , que es una cadena, cómo se traduce a un valor que una red neuronal puede entender? ¿Puedes elegir un número, como un índice, siempre que sea coherente en todos los datos?
La mayoría de los ejemplos de redes neuronales que he visto pasar entre las capas son 0 a 1 o -1 a 1. Entonces, al final del procesamiento, ¿cómo transforma el valor de salida en algo usable como $ 185,000 ?
Sé que el ejemplo de predicción del precio de la vivienda probablemente no sea un problema particularmente útil dado que se ha simplificado enormemente en solo tres puntos de datos. Pero siento que si pudiera superar este obstáculo y escribir una aplicación extremadamente básica que entrene usando pseudo datos de la vida real y escupe una pseudo respuesta de la vida real, entonces habría roto la parte posterior y podría patear y profundizar en el aprendizaje automático.