Este post fue difundido como parte del Blogatón de ciencia de datos
En este post, te explicaré los conceptos básicos de las redes neuronales y su código. En la actualidad, muchos estudiantes simplemente aprenden a codificar redes neuronales sin comprender los conceptos básicos detrás de esto y cómo funciona internamente. Primero, ¿qué son las redes neuronales?
¿Qué es la red neuronal?
Neural Network es una serie de algoritmos que intentan imitar el cerebro humano y hallar la vinculación entre los conjuntos de datos. Se está usando en varios casos de uso como regresión, clasificación, acreditación de imágenes y muchos más.
Como hemos dicho previamente, las redes neuronales intentan imitar el cerebro humano, entonces podría haber diferencias y semejanzas entre ellas. Hablemos brevemente de ello.
Algunas diferencias importantes entre ellos son que la 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... biológica realiza un procesamiento paralelo, mientras que la red neuronal artificial realiza un procesamiento en serie, además en el primero, el procesamiento es más lento (en milisegundos), mientras que en el último el procesamiento es más rápido (en un nanosegundo).
Arquitectura de ANN
Una red neuronal tiene muchas capas y cada capa realiza una función específica, y 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 aumenta la complejidad del modelo, el número de capas además aumenta, es por ello que se lo conoce como perceptrón multicapa.
La forma más pura de una red neuronal tiene tres capas: la 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...., la capa oculta y 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..... La capa de entrada recoge las señales de entrada y las transfiere a la próxima capa y, por último, la capa de salida da el pronóstico final y estas redes neuronales deben entrenarse con algunos datos de 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...., así como con algoritmos de aprendizaje automático antes de proporcionar un obstáculo en particular. Ahora, entendamos más sobre el perceptrón.
Sobre Perceptron
Como se discutió previamente, el perceptrón de múltiples capas son simplemente las capas ocultas o densas. Están formados por muchas neuronas y las neuronas son la unidad principal que trabaja en conjunto para formar el perceptrón. En palabras simples, como puede ver en la imagen de arriba, cada círculo representa neuronas y una combinación vertical de neuronas representa perceptrones que es simplemente una capa densaLa capa densa es una formación geológica que se caracteriza por su alta compacidad y resistencia. Comúnmente se encuentra en el subsuelo, donde actúa como una barrera al flujo de agua y otros fluidos. Su composición varía, pero suele incluir minerales pesados, lo que le confiere propiedades únicas. Esta capa es crucial en estudios de ingeniería geológica y recursos hídricos, ya que influye en la disponibilidad y calidad del agua....
Ahora, en la imagen de arriba, puede ver la vista detallada de cada neurona. Aquí, cada neurona tiene algunos pesos (en la imagen de arriba w1, w2, w3) y sesgos y, en base a estos cálculos, se realizan como, combinación = sesgo + pesos * entrada (F = w1 * x1 + w2 * x2 + w3 * x3) y por último se aplica 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.... salida = activación (combinación) en la imagen de arriba, la activación es sigmoidea representada por 1 / (1 + e-F). Hay algunas otras funciones 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..., Leaky ReLU, tanh y muchas más.
Trabajo de ANN
Al principio, la información se alimenta a la capa de entrada que posteriormente la transfiere a las capas ocultas, y la interconexión entre estas dos capas asigna pesos a cada entrada de forma aleatoria en el punto inicial. y posteriormente se agrega el sesgo a cada neurona de entrada y después de esto, la suma ponderada que es una combinación de pesos y sesgo se pasa por medio de la función de activación. La función de activación tiene la responsabilidad de qué nodoNodo es una plataforma digital que facilita la conexión entre profesionales y empresas en busca de talento. A través de un sistema intuitivo, permite a los usuarios crear perfiles, compartir experiencias y acceder a oportunidades laborales. Su enfoque en la colaboración y el networking hace de Nodo una herramienta valiosa para quienes desean expandir su red profesional y encontrar proyectos que se alineen con sus habilidades y objetivos.... disparar para la extracción de características y por último se calcula la salida. Todo este procedimiento se conoce como Propagación hacia adelante. Después de obtener el modelo de salida para compararlo con la salida original y se conoce el error y por último, los pesos se actualizan en propagación hacia atrás para reducir el error y este procedimiento continúa durante un cierto número de épocas (iteración). En resumen, los pesos del modelo se actualizan y se realiza el pronóstico.
Ventajas
- ANN tiene la capacidad de aprender y modelar relaciones complejas y no lineales, dado que muchas relaciones entre entrada y salida no son lineales.
- Después del entrenamiento, ANN puede inferir relaciones invisibles a partir de datos invisibles y, por eso, se generaliza.
- A diferencia de muchos modelos de aprendizaje automático, ANN no tiene restricciones en los conjuntos de datos, dado que los datos deben tener una distribución gaussiana o no otra distribución.
Aplicaciones
Hay muchas aplicaciones de ANN. Algunos de ellos son :
- Preprocesamiento de imágenes y acreditación de caracteres.
- Pronóstico.
- Calificación crediticia.
- Detección de fraudes.
- Administración de la cartera.
PARTE DE CODIFICACIÓN
Ahora codifiquemos y entendamos los conceptos que lo usan.
1. Comprensión y carga de los conjuntos de datos
Primero importe bibliotecas como NumPy, pandas y además importe clases denominadas secuenciales y densas de la biblioteca de Keras.
import numpy as np import pandas as pd from keras.models import Sequential from keras.layers import Dense
Ahora, aquí voy a utilizar el conjunto de datos de inicio de diabetes de los indios Pima, que es un conjunto de datos de aprendizaje automático estándar del repositorio de aprendizaje automático de UCI y el link se puede hallar a continuación. Este conjunto de datos informa sobre el historial médico del paciente y si tuvo un inicio de diabetes dentro de los cinco años, además es un obstáculo de clasificación binaria.
Puede descargar los conjuntos de datos desde aquí:
Ahora importe el conjunto de datos usando pandas y posteriormente comprendamos más sobre los conjuntos de datos y posteriormente divida los conjuntos de datos en variables dependientes e independientes.
dataset = pd.read_csv('pima-indians-diabetes.csv') X = dataset[:,0:8] y = dataset[:,8]
2. Definición del modelo de Keras
Los modelos en Keras se definen como una secuencia de capas en las que cada capa se agrega una tras otra. La entrada debe contener características de entrada y se especifica al crear la primera capa con input_dims argumento. Aquí input_dims será 8.
Ahora surge la pregunta de cómo podemos elegir el número de capas y el número de neuronas en cada capa.
Es bastante difícil saber cuántas capas debemos utilizar. De forma general para esto Sintonizador Keras se utiliza, que cuenta con una gama de capas, una gama de neuronas y algunas funciones de activación. y posteriormente, a través de permutación y combinación, intenta hallar cuál es la más adecuada. Pero una desventaja de esto es que lleva mucho tiempo. Puedes consultar la documentación del mismo. Sintonizador de Keras para más detalles.
En este ejemplo, se utiliza una red totalmente conectada con tres capas que es definido usando la clase densa. El primer argumento toma el número de neuronas en esa capa y, y la activación El argumento toma la función de activación como entrada. Aquí, ReLU se utiliza como una función de activación en las dos primeras capas y sigmoide en la última capa, dado que es un obstáculo de clasificación binaria.
model = Sequential() model.add(Dense(12, input_dim=8, activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid'))
3. Compilar el modelo de Keras
Durante la compilación, debemos especificar la 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... para calcular los errores, el optimizador para actualizar los pesos y las métricas.
En esta circunstancia, usaremos «binary_crossentropy« como el pérdida argumento dado que es un obstáculo de clasificación binaria.
Aquí tomaremos optimizador como «Adán“Dado que se sintoniza automáticamente y da buenos resultados en una amplia gama de problemas y por último recopilaremos e informaremos la precisión de la clasificación por medio de métrica argumento.
model.compile(loss="binary_crossentropy", optimizer="adam", metrics=['accuracy'])
4. Ajuste del modelo Keras.
Ahora ajustaremos nuestro modelo a los datos cargados llamando al encajar() función en el modelo.
El procedimiento de entrenamiento se ejecutará durante un número fijo de iteraciones a través del conjunto de datos que se especifica a través de el épocas argumento. El número de filas del conjunto de datos debe actualizarse y se actualiza dentro de cada época, y establecerse usando el tamaño del lote argumento.
Aquí, ejecutaremos 150 épocas y un tamaño de lote de 10.
model.fit(X, y, epochs=150, batch_size=10)
5. Examinar el modelo de Keras
La evaluación del modelo en el conjunto de datos se puede realizar usando el examinar() función. Se necesitan dos argumentos, dicho de otra forma, entrada y salida. Generará una predicción para cada par de entrada y salida y recopilará puntajes, incluida la pérdida promedio y cualquier métrica, como la precisión.
los examinar() La función devolverá una lista con dos valores, el primero es la pérdida del modelo y el segundo será la precisión del modelo en el conjunto de datos. Solo nos interesa informar la precisión y, por eso, ignoramos el valor de la pérdida.
_, accuracy = model.evaluate(X, y) print('Accuracy: %.2f' % (accuracy*100))
6.Haga predicciones
El pronóstico se puede hacer llamando al predecir() función en el modelo. Aquí la función de activación sigmoidea se utiliza en la capa de salida, por lo que las predicciones serán una probabilidad en el rango entre 0 y 1.
predictions = model.predict(X) rounded = [round(x[0]) for x in predictions]
Resumen de código final
Aquí hemos aprendido cómo crear su primer modelo de red neuronal usando la poderosa biblioteca Keras Python para el 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....
Hay seis pasos principales en el uso de Keras para crear una red neuronal o un modelo de aprendizaje profundo que cargan los datos, definen la red neuronal en Keras, posteriormente compilan, evalúan y por último hacen las predicciones con el modelo.
CONCLUSIÓN
En este post hemos entendido los conceptos básicos de las redes neuronales artificiales y su código. En la parte de codificación, hemos utilizado el conjunto de datos sobre el inicio de la diabetes de los indios Pima. aquí hemos entendido en detalle los seis pasos principales para crear redes neuronales. Aparte de esto, muchas cosas no se han cubierto en los blogs y, a continuación, he proporcionado los links de otros blogs desde los que puede consultar los temas.
- Diferentes tipos de funciones de costes y sus aplicaciones.
- Acerca de Gradient Descent.
- Documentación de Keras
Los medios que se muestran en este post no son propiedad de DataPeaker y se usan a discreción del autor.