Creando una red neuronal artificial básica en python usando keras

creating-a-basic-artificial-neural-network-on-python-using-keras

Con la popularidad que el aprendizaje profundo ha adquirido recientemente, las redes neuronales artificiales se han vuelto muy relevantes en el mundo de la Inteligencia Artificial.

Las redes neuronales artificiales no son un concepto nuevo, han sufrido durante mucho tiempo antes de ser reconocidas como una herramienta poderosa. Si revisa la historia de las redes neuronales artificiales, encontrará que ha habido varios desafíos importantes que la tecnología tuvo que superar para existir tal como la conocemos hoy.

Tan poderosas como son, la implementación puede ser bastante simple debido a los keras. Esta biblioteca nos permite crear fácilmente una red neuronal artificial completamente funcional con la arquitectura que necesitamos, para entrenar esta red y usarla.

No explicaré cada pieza o concepto relacionado con las redes neuronales artificiales. En cambio, me centraré en mostrar cómo trabajar con keras.

Simplemente comienza creando un modelo. En este caso usaremos un modelo secuencial, lo que significa que vamos a apilar las capas una tras otra:

from keras.models import Sequential
model = Sequential()

Después de eso, podemos agregar las capas. Solo usaremos capas Dense, lo que significa que nuestras capas estarán completamente interconectadas. Siempre puede especificar diferentes estructuras si desea algo diferente, pero Dense es suficiente para este ejemplo:

from keras.layers import Dense
model.add(Dense(units=64, activation='relu', input_dim=100))
model.add(Dense(units=10, activation='softmax'))

Hay una amplia gama de funciones de activación que puede probar. Si ninguno de ellos funciona para usted, siempre puede proporcionar el suyo.

Una vez que tengamos nuestra arquitectura lista, debemos configurar cómo aprenderá la red. Haremos esto «compilando» el modelo y pasando información como la función de pérdida y la función optimizadora:

model.compile(loss='categorical_crossentropy',
              optimizer='sgd')

Y eso es todo. Tenemos una red neuronal artificial lista para ser entrenada. Si tenemos nuestros datos listos para esto, podemos entrenarlos así:

model.fit(features, target)

El entrenamiento es el proceso más costoso cuando se trabaja con redes neuronales artificiales, por lo que no queremos hacerlo siempre. Para guardar su red entrenada, puede hacerlo así:

model.save(filepath)

Un archivo hdf5 se generará que contendrá toda la información requerida para recargar su red más adelante:

from keras.models import load_model
model = load_model(filepath)

Keras proporciona una interfaz de alto nivel para interactuar con su red neuronal artificial, y está bien documentada. Si está utilizando otra biblioteca para trabajar con sus redes, pruebe keras y compare las API.