Red de conocimiento de divisas - Preguntas y respuestas sobre contabilidad - Red neuronal: red neuronal convolucional (CNN)

Red neuronal: red neuronal convolucional (CNN)

Las redes neuronales fueron propuestas originalmente por psicólogos y neurocientíficos para desarrollar y probar simulaciones computacionales de nervios.

A grandes rasgos, una red neuronal es un conjunto de unidades de entrada/salida conectadas, donde cada conexión está asociada a un peso. En la fase de aprendizaje, la precisión de la predicción de la red neuronal se mejora gradualmente ajustando los pesos. El aprendizaje de redes neuronales también se denomina aprendizaje de conectores debido a las conexiones entre unidades.

La red neuronal se construye a partir de la simulación del modelo matemático de las neuronas del cerebro humano. Está formado por una serie de neuronas, células conectadas entre sí. Desde una perspectiva de procesamiento de información, una neurona puede verse como una unidad de procesamiento de información de múltiples entradas y una sola salida. Según las características y funciones de las neuronas, las neuronas se pueden resumir en un modelo matemático simple.

La red neuronal tiene tres elementos: topología, método de conexión y reglas de aprendizaje.

Estructura topológica de la red neuronal: Las unidades de la red neuronal suelen estar ordenadas jerárquicamente. Según el número de capas de la red, las redes neuronales se pueden dividir en redes neuronales de una sola capa, redes neuronales de dos capas y redes neuronales de tres capas. El aprendizaje de redes neuronales con una estructura simple converge rápidamente pero tiene poca precisión.

El número de capas y unidades en cada capa de la red neuronal depende de la complejidad del problema. Cuanto más complejo es el problema, más capas tiene la red neuronal. Por ejemplo, las redes neuronales de dos capas se utilizan a menudo para resolver problemas lineales, mientras que las redes multicapa pueden resolver problemas no lineales multivariados.

Conexiones de redes neuronales: incluye conexiones entre capas y conexiones dentro de cada capa. La fuerza de la conexión se expresa en peso.

Según el modo de conexión entre niveles, se puede dividir en:

1) Red feedforward: la conexión es unidireccional, la salida de la unidad de capa superior es la entrada de la unidad de capa inferior, como la red de propagación Xiang de retroalimentación, la red Kohonen, etc.

2) Red de retroalimentación: además de la conexión única, la salida de la última unidad de capa se utiliza como entrada de la primera unidad de capa, como la red Hopfield.

Según el rango de conexiones, se divide en:

1) Red neuronal completamente conectada: cada unidad está conectada a todas las unidades en capas adyacentes.

2) Red conectada localmente: Cada unidad solo está conectada a algunas unidades en capas adyacentes.

Aprendizaje de redes neuronales

Según el método de aprendizaje:

Perceptrón: método de aprendizaje supervisado, se conoce la categoría de la muestra de entrenamiento, es Guía Entrenamiento del modelo durante el proceso de aprendizaje.

Dispositivo cognitivo: método de aprendizaje no supervisado, se desconoce la categoría de las muestras de entrenamiento y cada unidad aprende mediante competencia.

Basado en el tiempo de aprendizaje:

Red fuera de línea: el proceso de aprendizaje y el proceso de uso son independientes.

Red online: el proceso de aprendizaje y el proceso de uso se realizan simultáneamente.

Según reglas de aprendizaje:

Red de aprendizaje asociativo: Cambia el coeficiente de peso según la actividad entre conexiones.

Red de aprendizaje de corrección de errores: cambia el coeficiente de peso según la retroalimentación externa de la unidad de salida.

Redes de aprendizaje autoorganizadas: aprenda de forma adaptativa.

Observe la popularidad de las redes neuronales artificiales desde la perspectiva de la belleza matemática:

Existen muchos tipos de redes neuronales y las cuatro siguientes se utilizan comúnmente:

p>1) Red de Hopfield, típica La red de retroalimentación tiene una estructura de una sola capa y la misma composición de unidades.

2) La red de retropropagación, la red de alimentación directa, la estructura multicapa y la regla de aprendizaje de corrección de errores cuadráticos medios mínimos se utilizan a menudo para el reconocimiento y clasificación de idiomas.

3) Red Kohonen: una típica red autoorganizada, formada por una capa de entrada y una capa de salida, totalmente conectadas.

4) Art Network: Red autoorganizada

Red neuronal profunda:

Red neuronal convolucional (CNN)

Red neuronal recurrente (RNN) Red neuronal recurrente

Red de creencia profunda (DBN) Red de creencia profunda

El aprendizaje profundo se refiere al uso de varios algoritmos de aprendizaje automático en redes neuronales multicapa para resolver imágenes, texto, etc. Una colección de algoritmos para diversos problemas. El aprendizaje profundo generalmente se puede clasificar como redes neuronales, pero existen muchas variaciones en su implementación.

El núcleo del aprendizaje profundo es el aprendizaje de características, cuyo objetivo es obtener información de características jerárquicas a través de redes jerárquicas, resolviendo así el importante problema del diseño manual de características en el pasado.

¿Aprendizaje automático versus aprendizaje profundo?

Para la clasificación se suelen utilizar redes neuronales (principalmente perceptrones).

El conocimiento de clasificación de la red neuronal se refleja en las conexiones de la red y se almacena implícitamente en los pesos de las conexiones.

El aprendizaje de redes neuronales es un proceso de optimización que corrige gradualmente los pesos mediante algoritmos iterativos. El objetivo del aprendizaje es clasificar correctamente las muestras en el conjunto de entrenamiento cambiando los pesos.

Las redes neuronales son particularmente adecuadas para la clasificación en las siguientes situaciones:

1) Hay relativamente pocos datos y no hay suficientes muestras para construir un modelo.

2) La estructura de los datos es difícil de describir utilizando métodos estadísticos tradicionales.

3) Los modelos de clasificación son difíciles de expresar como modelos estadísticos tradicionales.

Desventajas:

1) Requiere un largo tiempo de formación, por lo que es más adecuado para aplicaciones con suficiente tiempo de formación.

2)? Requiere una gran cantidad de parámetros, que suelen estar determinados principalmente por la experiencia, como la topología o la "estructura" de la red.

3)?Mala interpretabilidad. Esta característica hizo que las redes neuronales no fueran prometedoras en los primeros días de la minería de datos.

Ventajas:

1) Alta precisión de clasificación.

2) Potentes capacidades de procesamiento distribuido paralelo.

3) Capacidades de aprendizaje y almacenamiento altamente distribuidas.

4) Tiene una gran robustez y tolerancia a fallos ante datos ruidosos.

El algoritmo de clasificación más popular basado en redes neuronales es el algoritmo de retropropagación propuesto en los años 80. Aprendizaje del algoritmo de retropropagación en redes neuronales feedforward multicanal. ?

Definir la topología de la red

Antes de comenzar el entrenamiento, el usuario debe especificar el número de unidades en la capa de entrada, el número de capas ocultas (si hay varias capas) y el número de unidades en cada capa oculta y el número de unidades en la capa de salida para determinar la topología de la red.

Normalizar el valor de cada atributo en las muestras de entrenamiento ayudará a acelerar el proceso de aprendizaje. En términos generales, los valores de entrada se normalizan para que estén entre 0,0 y 1,0.

Los atributos de valor discreto se pueden recodificar para que cada campo tenga una celda de entrada. Por ejemplo, si el dominio del atributo A es (a0, a1, a2), se pueden asignar tres unidades de entrada para representar A. Es decir, podemos usar I0, I1, I2 como unidades de entrada. Cada unidad se inicializa a 0. Si A = a0, I0 se establece en 1; si A = a1, I1 se establece en 1;

Se puede utilizar una unidad de salida para representar dos clases (un valor de 1 representa una clase y un valor de 0 representa la otra clase). Si hay más de dos clases, utilice una unidad de salida por clase.

No existe una regla clara sobre cuántas unidades de capa oculta "óptimas" configurar.

El diseño de redes es un proceso experimental que puede afectar la precisión. El valor inicial de los pesos también afecta la precisión. Si la precisión de la red entrenada es demasiado baja, generalmente es necesario repetir el entrenamiento usando una topología de red diferente o usando pesos iniciales diferentes.

El proceso de aprendizaje del algoritmo de retropropagación:

Procesa iterativamente un conjunto de muestras de entrenamiento y compara la predicción de la red para cada muestra con la etiqueta de clase real.

Después de cada iteración, los pesos se modifican para minimizar el error cuadrático medio entre las predicciones de la red y las clases reales.

Esta modificación se realiza "al revés". Es decir, desde la capa de salida, pasando por cada capa oculta, hasta la primera capa oculta (de ahí el nombre de retropropagación). Aunque no hay garantías, en general los derechos eventualmente convergerán y el proceso de aprendizaje cesará.

La condición de terminación del algoritmo: el número de muestras clasificadas correctamente en el conjunto de entrenamiento alcanza una cierta proporción, o el coeficiente de peso se acerca a la estabilidad.

El algoritmo de retropropagación se divide en los siguientes pasos:

1) Pesos de inicialización

Los pesos de la red generalmente se inicializan en un pequeño número aleatorio (por Por ejemplo, el rango es de -1,0 a 1,0 o de -0,5 a 0,5).

A cada unidad se le asigna un sesgo, que también se inicializa con un pequeño número aleatorio.

2) Propagar la entrada hacia adelante

Para cada muestra x, repita los dos pasos siguientes:

Propagar la entrada hacia adelante y propagar el error hacia atrás.

Calcula la entrada y salida de cada unidad en cada capa. Capa de entrada: salida = entrada = atributos de la muestra X, es decir, para la unidad j, Oj = Ij = Xj. Capa oculta y capa de salida: entrada = combinación lineal de la salida de la capa anterior, es decir, para la unidad j, Ij =wij Oi θj, salida =

3) Error de retropropagación

Cálculo El error de cada unidad en cada capa.

Unidad de capa de salida j, error:

Oj es la salida real de la unidad J, t J es la salida real de J

Unidad de capa oculta j, error:

Wjk es el peso de la conexión de j a la celda k en la siguiente capa, y Errk es el error en la celda k.

Actualice ponderaciones y sesgos para reflejar los errores de propagación.

Los derechos se actualizan mediante la siguiente fórmula:

? donde △wij es el cambio de peso wij. l es la tasa de aprendizaje, que normalmente toma un valor entre 0 y 1.

? El desplazamiento se actualiza mediante:

? Entre ellos, △θj es el cambio de desequilibrio θj.

Ejemplo

Principios de la visión humana:

Muchos resultados de investigación sobre aprendizaje profundo son inseparables del cerebro. cognición El estudio de los principios, especialmente el estudio de los principios visuales. El Premio Nobel de Medicina de 1981 fue otorgado a los neurobiólogos estadounidenses nacidos en Canadá David Hubel, Torsten Wiesel y Roger Sperry. La principal aportación de los dos primeros es “el descubrimiento del procesamiento de la información en el sistema visual” y de que la corteza visual es jerárquica.

El principio de la visión humana es el siguiente: partir de la recepción de la señal original (los píxeles son absorbidos por la pupila), luego realizar un procesamiento preliminar (algunas células de la corteza cerebral encuentran bordes y direcciones) y luego abstraer (el cerebro determina la imagen frente a nosotros) La forma del objeto es redonda), y luego una mayor abstracción (el cerebro determina además que el objeto es un globo).

La visión humana también identifica diferentes objetos a través de esta clasificación jerárquica:

Las características del nivel más bajo son básicamente similares, es decir, cuanto más alto es el borde, más características (ruedas, ojos, torso, etc. ) tales objetos. En el nivel superior, finalmente se combinan diferentes características de alto nivel en imágenes correspondientes, lo que permite a las personas distinguir con precisión diferentes objetos.

La gente naturalmente se pregunta: ¿podemos imitar esta característica del cerebro humano, construir una red neuronal de múltiples capas, identificar las características primarias de la imagen en el nivel inferior y luego usar varias características subyacentes para formar una de nivel superior? ¿Característica de imagen? ¿Las características de alto nivel finalmente se clasifican en el nivel superior mediante una combinación de varios niveles? La respuesta es sí, que también es la inspiración para muchos algoritmos de aprendizaje profundo (incluida CNN).

La red neuronal convolucional es una red neuronal multicapa que es buena para manejar problemas de aprendizaje automático relacionados con imágenes, especialmente imágenes grandes. A través de una serie de métodos, las redes convolucionales reducen con éxito la dimensionalidad de los problemas de reconocimiento de imágenes con grandes cantidades de datos, lo que en última instancia permite entrenarlos.

CNN fue propuesto por primera vez por Yann LeCun y aplicado al reconocimiento de fuentes escritas a mano. La red propuesta por LeCun se llama LeNet y su estructura de red es la siguiente:

Esta es una red convolucional típica, que consta de una capa convolucional, una capa de agrupación y una capa completamente conectada. La capa convolucional y la capa de agrupación cooperan para formar múltiples grupos convolucionales, extraer características capa por capa y finalmente completar la clasificación a través de varias capas completamente conectadas.

CNN simula la diferenciación de características a través de convolución, reduce el orden de magnitud de los parámetros de la red mediante el uso compartido y la agrupación de pesos de convolución y, finalmente, completa tareas como la clasificación a través de redes neuronales tradicionales.

Reducir el orden de los parámetros: si se utiliza una red neuronal tradicional para clasificar una imagen, entonces cada píxel de la imagen se conecta a un nodo de capa oculta.

Para una imagen de 1000x1000 píxeles, si hay 1 millón de unidades de capa oculta, hay 10 12 parámetros, es decir,

Pero en CNN, según las dos suposiciones siguientes, la cantidad de parámetros se puede reducir considerablemente:

1) Las características de nivel más bajo son todas locales, lo que significa que un filtro de tamaño 10x10 puede representar características de bajo nivel, como bordes.

2) Las características de diferentes fragmentos pequeños en la imagen y los pequeños fragmentos en diferentes imágenes son similares, es decir, se puede usar el mismo conjunto de clasificadores para describir varias imágenes diferentes.

Con base en los dos supuestos anteriores, la estructura de la red de primera capa se puede simplificar.

Utilizando 100 pequeños filtros de 10x10, puedes representar las características subyacentes en toda la pantalla.

La definición de la operación de convolución se muestra en la siguiente figura:

Como se muestra arriba, la imagen de 5x5 utiliza un núcleo de convolución de 3x3:

? 1 0 1

? 0 1 0

? 1 0 1

Convoluciona la imagen (puede entenderse como tener una ventana deslizante, multiplicar el núcleo de convolución por los píxeles de la imagen correspondientes y luego sumar) para obtener un resultado de convolución de 3 × 3.

Este proceso puede entenderse como el uso de un filtro (núcleo de convolución) para filtrar áreas pequeñas de la imagen y obtener los valores característicos de estas áreas pequeñas. En el proceso de entrenamiento real, el valor del núcleo de convolución se aprende durante el proceso de aprendizaje.

En aplicaciones específicas, a menudo hay varios núcleos de convolución. Se puede considerar que cada núcleo de convolución representa un patrón de imagen. Si el valor del bloque de imagen convolucionado con el núcleo de convolución es grande, se considera que el bloque de imagen está muy cerca del núcleo de convolución. Si se diseñan seis núcleos de convolución, se puede entender que hay seis patrones de textura subyacentes en esta imagen, es decir, se puede dibujar una imagen con seis patrones básicos. Los siguientes son ejemplos de 24 núcleos de convolución diferentes:

El proceso de fusión se muestra en la siguiente figura:

Puede ver que la imagen original es 20x20, la ventana de muestreo es 10x10, y el muestreo final es un mapa de características de 2x2.

Esto se hace porque incluso después de la convolución, la imagen sigue siendo grande (porque el núcleo de convolución es relativamente pequeño), por lo que para reducir la dimensión de los datos, se realiza un muestreo.

Incluso si se reduce una gran cantidad de datos, las propiedades estadísticas de las características aún pueden describir la imagen y, debido a la dimensión de datos reducida, se evita de manera efectiva el sobreajuste.

En aplicaciones prácticas, se puede dividir en el método de agrupación máxima y el método de agrupación media.

Estructura de red LeNet:

Tenga en cuenta que el modo de conexión de S2 y C3 en la figura anterior no es una conexión completa, sino una conexión parcial. Finalmente, se obtienen 10 salidas a través de las capas C5 y F6 completamente conectadas, correspondientes a las probabilidades de 10 números.

El proceso de entrenamiento de una red neuronal convolucional es similar al de una red neuronal tradicional y también hace referencia al algoritmo de retropropagación.

La primera etapa, etapa de propagación hacia adelante:

a) Tome una muestra (X, Yp) del conjunto de muestras e ingrese X en la red

; b) Calcule la correspondiente salida real Op

Segunda etapa, etapa de retropropagación

a) Calcule la diferencia entre la salida real Op y la correspondiente salida ideal Yp;

b) Ajuste la matriz de peso minimizando la retropropagación del error.

上篇: ¿Puedo hacer el check out de un hotel reservado online y salir directamente? 下篇: ¿Qué debo hacer si mi préstamo en línea está vencido?
Artículos populares