Redes neuronales profundas  

  RSS
admin
(@admin)
Miembro Admin

Una red neuronal profunda (DNN) es una Red Neuronal Artificial (ANN) con múltiples capas ocultas entre las capas de entrada y salida. De forma similar a las Redes Neuronales superficiales, la DNN pueden modelar relaciones complejas no lineales.

El objetivo principal de una red neuronal es recibir un conjunto de entradas, realizar cálculos progresivamente complejos sobre ellas y dar salida para resolver problemas del mundo real como la clasificación. Nos restringimos a alimentar redes neuronales avanzadas.

Tenemos una entrada, una salida y un flujo de datos secuenciales en una red profunda.

Las redes neuronales se utilizan ampliamente en aprendizaje supervisado y problemas de aprendizaje de refuerzo. Estas redes se basan en un conjunto de capas conectadas entre sí.

En aprendizaje profundo, la cantidad de capas ocultas, en su mayoría no lineales, puede ser grandes; de alrededor de 1000 capas.

Los modelos de aprendizaje profundo producen resultados mucho mejores que las redes de Machine Learning normales.

Utilizamos principalmente el método de descenso de gradiente para optimizar la red y minimizar la función de pérdida.

Podemos usar Imagenet, un repositorio de millones de imágenes digitales para clasificar un conjunto de datos en categorías como gatos y perros. Las redes de aprendizaje profundo se usan cada vez más para imágenes dinámicas además de estáticas y para series de tiempo y análisis de texto.

El entrenamiento de los conjuntos de datos forma una parte importante de los modelos de aprendizaje profundo. Además, Backpropagation es el algoritmo principal en el entrenamiento de modelos de aprendizaje profundo.

El aprendizaje profundo se ocupa de la formación de redes neuronales grandes con transformaciones de salida de entrada complejas.

Un ejemplo de una red de aprendizaje profundo es el mapeo de una foto con el nombre de la/s persona/s en la foto como lo hacen en las redes sociales.

Las redes neuronales son funciones que tienen entradas como x1, x2, x3... que se transforman en salidas como z1, z2, z3... y demás en dos (redes poco profundas) o varias operaciones intermedias también llamadas capas (redes profundas).

Los pesos y los sesgos cambian de una capa a otra. 'w' y 'v' son los pesos o sinapsis de las capas de las redes neuronales.

El mejor caso de uso del aprendizaje profundo es el problema de aprendizaje supervisado. Aquí, tenemos un gran conjunto de entradas de datos con un conjunto deseado de resultados.

Aquí aplicamos el algoritmo de propagación hacia atrás para obtener la predicción de salida correcta.

El conjunto de datos más básico de aprendizaje profundo es el MNIST, un conjunto de datos de dígitos escritos a mano.

Podemos entrenar a fondo una red neuronal convolucional con Keras para clasificar imágenes de dígitos manuscritos de este conjunto de datos.

El disparo o la activación de un clasificador de red neuronal produce una puntuación. Por ejemplo, para clasificar a los pacientes como enfermos y sanos, consideramos parámetros como la altura, el peso y la temperatura corporal, la presión arterial, etc.

Un puntaje alto significa que el paciente está enfermo y un puntaje bajo significa que está sano.

Cada nodo en salida y capas ocultas tiene sus propios clasificadores. La capa de entrada toma entradas y pasa sus puntajes a la siguiente capa oculta para una activación posterior y esto continúa hasta que se alcanza la salida.

Este progreso desde la entrada hacia la salida de izquierda a derecha en la dirección hacia adelante se denomina propagación hacia adelante.

La ruta de asignación de créditos (RAC) en una red neuronal es la serie de transformaciones que comienza desde la entrada hasta la salida. Los RAC elaboran conexiones causales probables entre la entrada y la salida.

La profundidad de RAC para una red neuronal de reenvío dada o la profundidad de RAC es el número de capas ocultas más uno a medida que se incluye la capa de salida. Para las redes neuronales recurrentes, donde una señal puede propagarse a través de una capa varias veces, la profundidad de RAC puede ser potencialmente ilimitada.

Redes profundas y redes poco profundas

No existe un umbral claro de profundidad que divida el aprendizaje superficial del aprendizaje profundo; pero en general se acepta que para el aprendizaje profundo que tiene múltiples capas no lineales, RAC debe ser mayor que dos.

El nodo básico en una red neuronal es una percepción que imita a una neurona en una red neuronal biológica. Entonces tenemos El Perception de varias capas. Cada conjunto de entradas se modifica por un conjunto de pesos y sesgos; cada borde tiene un peso único y cada nodo tiene un sesgo único.

La precisión de predicción de una red neuronal depende de sus ponderaciones y sesgos.

El proceso de mejorar la precisión de la red neuronal se llama entrenamiento. La salida de una red de apuntalamiento hacia delante se compara con el valor que se sabe que es correcto.

La función de costo o la función de pérdida es la diferencia entre la salida generada y la salida real.

El objetivo del entrenamiento es hacer que el costo sea lo más pequeño posible en millones de ejemplos. Para ello, la red ajusta los pesos y los sesgos hasta que la predicción coincida con la salida correcta.

Una vez entrenado bien, una red neuronal tiene el potencial de hacer una predicción precisa cada vez.

Cuando el patrón se vuelve complejo y desea que su computadora los reconozca, debe recurrir a las redes neuronales. En tales escenarios de patrones complejos, la red neuronal supera a todos los demás algoritmos de la competencia.

Ahora hay GPUs que pueden entrenarlos más rápido que nunca. Las redes neuronales profundas ya están revolucionando el campo de la IA.

Las computadoras han demostrado ser buenas para realizar cálculos repetitivos y seguir instrucciones detalladas, pero no han sido tan buenas para reconocer patrones complejos.

Si existe el problema del reconocimiento de patrones simples, una máquina de vectores de soporte (mvs) o un clasificador de regresión logística puede hacer bien el trabajo, pero a medida que aumenta la complejidad del patrón, no hay más remedio que buscar redes neuronales profundas.

Por lo tanto, para patrones complejos como un rostro humano, las redes neuronales superficiales fallan y no tienen más alternativa que buscar redes neuronales profundas con más capas. Las redes profundas pueden hacer su trabajo al descomponer los patrones complejos en otros más simples. Por ejemplo, rostro humano; usaría los bordes para detectar partes como labios, nariz, ojos, oídos, etc. y luego volvería a combinarlas para formar un rostro humano.

La precisión de la predicción correcta se ha vuelto tan precisa que, recientemente, en Google Pattern Recognition Challenge, una red profunda venció a un humano.

Esta idea de una red de perceptrones en capas ha existido por algún tiempo; en esta área, las redes profundas imitan el cerebro humano. Pero una desventaja de esto es que tardan mucho tiempo en entrenar, una restricción de hardware.

Sin embargo, las GPUs recientes de alto rendimiento han podido entrenar redes tan profundas en menos de una semana; mientras que una CPU convencional podría haber llevado semanas o quizás meses para hacer lo mismo.

Elegir una red profunda

¿Cómo elegir una red profunda? Tenemos que decidir si estamos construyendo un clasificador o si estamos tratando de encontrar patrones en los datos y si vamos a utilizar el aprendizaje no supervisado. Para extraer patrones de un conjunto de datos no etiquetados, usamos una máquina Restricted Boltzman o un codificador automático.

Considere los siguientes puntos al elegir una red profunda:

  • Para el procesamiento de texto, análisis de sentimiento, análisis sintáctico y reconocimiento de entidad de nombre, utilizamos una red de tensor neuronal recursiva o neta recurrente o RNTN.
  • Para cualquier modelo de lenguaje que opere a nivel de personaje, usamos la red recurrente.
  • Para el reconocimiento de imágenes, utilizamos una red de creencias profunda DBN o una red convolucional.
  • Para el reconocimiento de objetos, usamos una RNTN o una red convolucional.
  • Para el reconocimiento de voz, utilizamos la red recurrente.

En general, las redes de creencias profundas y los perceptrones multicapa con unidades lineales rectificadas o RELU son buenas elecciones para la clasificación.

Para el análisis de series de tiempo, siempre se recomienda usar redes recurrentes.

Las redes neuronales han existido por más de 50 años; pero solo ahora se han elevado a la prominencia. La razón es que son difíciles de entrenar; Cuando tratamos de entrenarlos con un método llamado propagación de retorno, nos topamos con un problema llamado gradientes de desvanecimiento o explosión. Cuando eso sucede, el entrenamiento toma más tiempo y la precisión se queda atrás. El programa entrena un conjunto de datos, calculamos constantemente la función de costo, que es la diferencia entre el resultado previsto y el resultado real de un conjunto de datos de entrenamiento etiquetados. La función de costo se minimiza ajustando los valores de ponderación y sesgo hasta que el valor más bajo es obtenido. El proceso de entrenamiento utiliza un gradiente, que es la velocidad a la que cambiará el costo con respecto al cambio en el peso o los valores de sesgo.

Para continuar viendo el resto de contenido por favor Regístrate o Inicia Sesión

This topic was modified hace 9 meses by admin
This topic was modified hace 6 meses 2 times by admin
Citar
Respondido : 30/09/2018 6:04 pm
noe
 noe
(@noe)
Active Member

Hay algún tutorial para crear una red neuronal con JavaScript?

ResponderCitar
Respondido : 13/05/2019 9:19 pm
1x10ala100
(@1x10ala100)
New Member

Noe visita: https://scrimba.com/g/gneuralnetworks

ResponderCitar
Respondido : 11/06/2019 2:15 am
admin
(@admin)
Miembro Admin
Respondido por: 1x10ala100

Noe visita: https://scrimba.com/g/gneuralnetworks

Gracias por el dato @1x10ala100.

ResponderCitar
Respondido : 17/06/2019 10:53 pm
Share:
  
Trabajando

Por favor Iniciar Sesión o Registro