Este artículo fue publicado como parte del Blogatón de ciencia de datos
Introducción
Una red neuronalLas redes neuronales son modelos computacionales inspirados en el funcionamiento del cerebro humano. Utilizan estructuras conocidas como neuronas artificiales para procesar y aprender de los datos. Estas redes son fundamentales en el campo de la inteligencia artificial, permitiendo avances significativos en tareas como el reconocimiento de imágenes, el procesamiento del lenguaje natural y la predicción de series temporales, entre otros. Su capacidad para aprender patrones complejos las hace herramientas poderosas... artificial es un subcampo de la inteligencia artificial compilado bajo las redes neuronales de aprendizaje profundoEl aprendizaje profundo, una subdisciplina de la inteligencia artificial, se basa en redes neuronales artificiales para analizar y procesar grandes volúmenes de datos. Esta técnica permite a las máquinas aprender patrones y realizar tareas complejas, como el reconocimiento de voz y la visión por computadora. Su capacidad para mejorar continuamente a medida que se le proporcionan más datos la convierte en una herramienta clave en diversas industrias, desde la salud... que intenta imitar la red de neuronas que hace el cerebro humano, lo que les permite comprender y responder como un humano.
Tabla de contenido
- Descripción general de la red neuronal
- Introducción a Keras
- Implementación paso a paso de su primer modelo de Keras
- Combinando todo el código
- EndNote
Breve descripción de la red neuronal
La red neuronal consta de un conjunto más grande de neuronas, que se denominan unidades dispuestas en capas. En palabras simples, Neural Network está diseñado para realizar una tarea más compleja donde los algoritmos de Machine Learning no encuentran su uso y no logran el rendimiento requerido.
Las redes neuronales se utilizan para realizar muchas tareas complejas, incluida la clasificación de imágenes, la detección de objetos, la identificación de rostros, el resumen de texto, el reconocimiento de voz y la lista es interminable.
¿Cómo aprenden las redes neuronales características complejas? Una red neuronal tiene muchas capas y cada capa realiza una función específica y compleja la red. Cuanto más capas son, más rendimiento se recibe. Es por eso que la red neuronal también se llama perceptrón multicapa.
Introducción a la biblioteca de Kears
Keras es una biblioteca de redes neuronales rápida, de código abierto y fácil de usar escrita en Python que se ejecuta en la parte superior de Theano o Tensorflow. Tensorflow proporciona API tanto de bajo nivel como de alto nivel; de hecho, Keras solo proporciona API de alto nivel.
Como principiante, se recomienda trabajar primero con Keras y luego pasar a TensorFlow. La razón es que usar las funciones de Tensorflow como principiante es un poco complejo de entender e interpretar, pero la funcionalidad de Keras es simple.
Cree su primer modelo de red neuronal con Keras
Construiremos una red neuronal artificial simple usando Keras paso a paso que lo ayudará a crear su propio modelo en el futuro.
Paso 1) Cargar datos
Vamos a utilizar los datos de diabetes de los indios Pima que puede descargar de aquí. Es un conjunto de datos simple proporcionado por el conjunto de datos de UCI Machine Learning, que contiene un registro médico de pacientes indios. Tenemos que predecir si el paciente tiene una aparición de diabetes dentro de los 5 años.
import pandas as pd data = pd.read_csv('diabetes.csv') x = data.drop("Outcome", axis=1) y = data["Outcome"]
Es un problema de clasificación binaria donde tenemos que decir si su inicio de diabetes es 1 o no como 0. Todas las columnas son numéricas, lo que facilita la creación directa de una red neuronal sobre ella. Por lo tanto, hemos separado los datos independientes y dependientes.
Paso 2) Definir el modelo de Keras
El modelo en Keras siempre se define como una secuencia de capas. Significa que inicializamos el modelo de secuencia y agregamos las capas una tras otra que se ejecuta como la secuencia de la lista. Prácticamente tenemos que intentar experimentar con el proceso de agregar y quitar las capas hasta que estemos contentos con nuestra arquitectura.
Lo que debe cuidar es que la primera capa tiene el número correcto de características de entrada que se especifica usando el input_dim parámetro. podemos especificar el número de neuronas como primer argumento de una capa. para definir la función de activaciónLa función de activación es un componente clave en las redes neuronales, ya que determina la salida de una neurona en función de su entrada. Su propósito principal es introducir no linealidades en el modelo, permitiendo que aprenda patrones complejos en los datos. Existen diversas funciones de activación, como la sigmoide, ReLU y tanh, cada una con características particulares que afectan el rendimiento del modelo en diferentes aplicaciones.... utilice el argumento de activación.
En este ejemplo, definiremos una red completamente conectada con tres capas. Para definir la capa completamente conectada, use la clase Densa de Keras.
- La primera capa tiene 12 neuronas y función de activación como reluLa función de activación ReLU (Rectified Linear Unit) es ampliamente utilizada en redes neuronales debido a su simplicidad y eficacia. Definida como ( f(x) = max(0, x) ), ReLU permite que las neuronas se activen solo cuando la entrada es positiva, lo que contribuye a mitigar el problema del desvanecimiento del gradiente. Su uso ha demostrado mejorar el rendimiento en diversas tareas de aprendizaje profundo, haciendo de ReLU una opción...
- La segunda capa oculta tiene 8 neuronas y la función de activación como relu
- Finalmente, en la capa de salidaLa "capa de salida" es un concepto utilizado en el ámbito de la tecnología de la información y el diseño de sistemas. Se refiere a la última capa de un modelo de software o arquitectura que se encarga de presentar los resultados al usuario final. Esta capa es crucial para la experiencia del usuario, ya que permite la interacción directa con el sistema y la visualización de datos procesados...., usamos 1 unidad y activación como sigmoide porque es un problema de clasificación binaria.
from keras.models import Sequential from keras.layers import Dense model = Sequential() model.add(Dense(12, input_dim=8, activation="relu")) model.add(Dense(12, activation="relu")) model.add(Dense(1, activation="sigmoid"))
Recuerde especificar la forma correcta de los datos en la primera capa conocida como capa de entradaLa "capa de entrada" se refiere al nivel inicial en un proceso de análisis de datos o en arquitecturas de redes neuronales. Su función principal es recibir y procesar la información bruta antes de que esta sea transformada por capas posteriores. En el contexto de machine learning, una adecuada configuración de la capa de entrada es crucial para garantizar la efectividad del modelo y optimizar su rendimiento en tareas específicas.....
Paso 3) Compilar el modelo de Keras
Cuando compilamos el modelo de Keras, utiliza las bibliotecas numéricas de backend como TensorFlow o Theano. Cualquiera que sea el backend que esté utilizando, elige automáticamente la mejor manera de representar la red en su hardware, como CPU, GPU o TPU.
Cuando compilamos el modelo, debemos especificar algunos parámetrosLos "parámetros" son variables o criterios que se utilizan para definir, medir o evaluar un fenómeno o sistema. En diversos campos como la estadística, la informática y la investigación científica, los parámetros son fundamentales para establecer normas y estándares que guían el análisis y la interpretación de datos. Su adecuada selección y manejo son cruciales para obtener resultados precisos y relevantes en cualquier estudio o proyecto.... adicionales para evaluar mejor el modelo y encontrar el mejor conjunto de ponderaciones para asignar entradas a salidas.
- Función de pérdidaLa función de pérdida es una herramienta fundamental en el aprendizaje automático que cuantifica la discrepancia entre las predicciones del modelo y los valores reales. Su objetivo es guiar el proceso de entrenamiento al minimizar esta diferencia, permitiendo así que el modelo aprenda de manera más efectiva. Existen diferentes tipos de funciones de pérdida, como el error cuadrático medio y la entropía cruzada, cada una adecuada para distintas tareas y...: se debe especificar la función de pérdida para evaluar el conjunto de pesos en el que se mapeará el modelo. Usaremos la entropía cruzada como una función de pérdida que en realidad se conoce como entropía cruzada binaria utilizada para la clasificación binaria.
- Optimizador: el segundo es el optimizador para optimizar la pérdida. Usaremos adam, que es una versión popular del descenso de gradientes y da el mejor resultado en la mayoría de los problemas.
model.compile(loss="binary_crossentropy", optimizer="adam", metrics=["accuracy"])
Paso 4) Comience a entrenar (ajuste el modelo)
Después de la compilación exitosa del modelo, estamos listos para ajustar los datos al modelo y comenzar a entrenar la red neuronal. Además de proporcionar datos para modelar, necesitamos definir una cantidad de épocas y un tamaño de lote en el que se produce el entrenamientoEl entrenamiento es un proceso sistemático diseñado para mejorar habilidades, conocimientos o capacidades físicas. Se aplica en diversas áreas, como el deporte, la educación y el desarrollo profesional. Un programa de entrenamiento efectivo incluye la planificación de objetivos, la práctica regular y la evaluación del progreso. La adaptación a las necesidades individuales y la motivación son factores clave para lograr resultados exitosos y sostenibles en cualquier disciplina.....
- EpochEpoch es una plataforma que ofrece herramientas para la creación y gestión de contenido digital. Su enfoque se centra en facilitar la producción de multimedia, permitiendo a los usuarios colaborar y compartir información de manera eficiente. Con una interfaz intuitiva, Epoch se ha convertido en una opción popular entre profesionales y empresas que buscan optimizar su flujo de trabajo en la era digital. Su versatilidad la hace adecuada para diversas...: una sola pasada a través de todas las filas del conjunto de datos de entrenamiento
- Tamaño de lote: número de muestras consideradas por el modelo antes de actualizar los pesos.
model.fit(x,y, epochs=150, batch_size=10)
Una época puede estar compuesta por más de un lote. Estos parámetros se deciden finalmente después del método de prueba y calor.
Paso 5) Evaluar el modelo
Después de entrenar el modelo, conozcamos el rendimiento de una red neuronal. El modelo siempre se evalúa en un conjunto de prueba. En este ejemplo, por simplicidad, hemos entrenado en un conjunto de datos completo, pero mientras trabaja en cualquier proyecto, básicamente divide los datos y entrena la red.
_, accuracy = model.evaluate(x, y) print("Model accuracy: %.2f"% (accuracy*100))
Para evaluar el modelo, utilice el método de evaluación y pase la entrada y la salida al modelo y verifique el rendimiento.
Paso 6) Hacer predicciones
predecir la salida de nuevos datos simplemente usando el método de predicción. tenemos una declaración de problema de clasificación binaria, por lo que la salida será simplemente 0 o 1.
predictions = model.predict(x) print([round(x[0]) for x in predictions])
Alternativamente, también puede utilizar el predecir_clases función para predecir directamente las clases.
Eso está resuelto, hemos creado fácilmente una red neuronal con 3 capas usando solo unas pocas líneas de código con Keras.
Compilar todo el código junto
model = Sequential() #define model model.add(Dense(12, input_dim=8, activation="relu")) model.add(Dense(8, activation="relu")) model.add(Dense(1, activation="sigmoid")) model.compile(loss="binary_crossentropy", optimizer="adam", metrics=["accuracy"]) #compile model model.fit(x,y, epochs=150, batch_size=10) #training _, accuracy = model.evaluate(x,y) #testing print("Model accuracy: %.2f"% (accuracy*100)) predictions = model.predict(x) #make predictions #round the prediction rounded = [round(x[0]) for x in predictions]
EndNote
Una red neuronal construye una red de capas conectadas con múltiples neuronas en cada capa. A medidaLa "medida" es un concepto fundamental en diversas disciplinas, que se refiere al proceso de cuantificar características o magnitudes de objetos, fenómenos o situaciones. En matemáticas, se utiliza para determinar longitudes, áreas y volúmenes, mientras que en ciencias sociales puede referirse a la evaluación de variables cualitativas y cuantitativas. La precisión en la medición es crucial para obtener resultados confiables y válidos en cualquier investigación o aplicación práctica.... que aumentamos el número de capas, la red es capaz de aprender características más complejas.
Ha creado fácilmente su primer modelo de red neuronal con Keras. Espero que haya sido fácil de captar todas las cosas. Si tiene alguna pregunta, por favor coméntela. Estaré encantado de ayudarte.
Si te gusta el artículo, echa un vistazo a mis otros artículos. Enlace