Simulación Matlab del algoritmo de eliminación de imágenes borrosas basado en la tecnología de codificación automática ELM

Tabla de contenido

1. Tecnología de autocodificación ELM

2. Principio del algoritmo de eliminación de imágenes borrosas basado en la tecnología de codificación automática ELM

3. Programa central de MATLAB

4. Resultados de la simulación


       El algoritmo de eliminación de imágenes borrosas basado en la tecnología de codificación automática ELM (Extreme Learning Machine) es un método de eliminación de imágenes borrosas basado en el aprendizaje profundo. Este método utiliza las características del codificador automático ELM para reconstruir imágenes claras codificando y decodificando los datos de entrada.

1. Tecnología de autocodificación ELM

       ELM (Extreme Learning Machine) es un algoritmo de red neuronal feedforward (SLFN) de una sola capa. Fue propuesto por primera vez por el profesor Huang Guangbin de la Universidad Tecnológica de Nanyang en 2004. Su principio es utilizar pesos y umbrales seleccionados aleatoriamente para entrenar el modelo. En comparación con la red neuronal BP tradicional, ELM tiene una velocidad de entrenamiento más rápida y reduce la complejidad del modelo. estructura Complejidad. Se caracteriza por una velocidad de entrenamiento muy rápida y un buen rendimiento de generalización. El codificador automático ELM es una extensión de ELM, que consta de un codificador y un decodificador para codificar y decodificar datos de entrada. El codificador codifica los datos de entrada en la salida de la capa oculta y el decodificador decodifica la salida de la capa oculta en una aproximación de los datos originales. El algoritmo de eliminación de imágenes borrosas basado en la tecnología de codificador automático ELM aprovecha esta característica entrenando un codificador automático ELM para reconstruir las partes claras de la imagen borrosa. El principio de ELM es asignar pesos aleatorios a la capa de entrada de una red neuronal de avance de capa oculta (SLFN) y luego utilizar métodos de regularización para optimizar los pesos de salida para obtener la matriz de pesos óptima. La fórmula matemática se puede expresar como:

Primero, los datos de entrada se normalizan, es decir, cada característica de entrada se normaliza para que tengan media cero y varianza unitaria.

Luego, se realiza una transformación lineal en los datos estandarizados para generar la salida de la capa oculta. Este paso se implementa mediante una función lineal, a saber:

H(x) = (xW+b)

Entre ellos, H es la salida de la capa oculta, x son los datos de entrada, W es la matriz de peso y b es el vector de sesgo.
Finalmente, la salida de la capa oculta se transforma de forma no lineal para generar la salida de la capa de salida. Este paso se implementa a través de una función de activación. Las funciones de activación comúnmente utilizadas incluyen la función sigmoidea, la función ReLU, etc.

  1. Durante el proceso de entrenamiento, algunos pesos y umbrales se seleccionan aleatoriamente como entradas, y los pesos de salida óptimos se calculan mediante múltiples iteraciones, de modo que la salida predicha de la red sea lo más cercana posible al valor real.
  2. Finalmente, cuando utilice el modelo entrenado para hacer predicciones, solo necesita ingresar los datos de entrada en el modelo entrenado para obtener los resultados de la predicción.

       El algoritmo ELM tiene las ventajas de ser rápido, simple y fácil de implementar, y tiene un alto valor de aplicación en el procesamiento de datos a gran escala. En términos de implementación del algoritmo, el algoritmo ELM solo requiere una operación de multiplicación de matrices y una operación de inversión de matrices, por lo que la velocidad de entrenamiento es muy rápida. Al mismo tiempo, debido a que el algoritmo ELM no requiere un preprocesamiento complejo ni extracción de características de datos, también es altamente adaptable.

       Además, otra característica importante del algoritmo ELM es que puede evitar problemas de sobreajuste. Dado que el algoritmo ELM utiliza una estructura de red neuronal de avance de capa oculta única, puede evitar el problema de la capacidad de generalización reducida causada por el sobreajuste. Al mismo tiempo, debido a que el algoritmo ELM utiliza el método de seleccionar aleatoriamente pesos y umbrales para el entrenamiento, también puede evitar problemas de sobreajuste hasta cierto punto.

       En general, el algoritmo ELM es un algoritmo de red neuronal muy prometedor, tiene las ventajas de ser rápido, simple y fácil de implementar, y tiene un alto valor de aplicación en el procesamiento de datos a gran escala. En el futuro campo de la inteligencia artificial, los algoritmos ELM se utilizarán y promoverán cada vez más.

2. Principio del algoritmo de eliminación de imágenes borrosas basado en la tecnología de codificación automática ELM

       El problema de eliminación de imágenes borrosas puede verse como un problema de reconstrucción de imágenes, es decir, recuperar una imagen clara a partir de una imagen borrosa. El algoritmo de eliminación de imágenes borrosas basado en la tecnología del codificador automático ELM toma la imagen borrosa como datos de entrada y la reconstruye en una imagen clara a través del codificador automático ELM.

Los pasos específicos son los siguientes:

  1. Preparación de datos: tome la imagen borrosa como datos de entrada y realice un procesamiento previo en ella, como eliminación de ruido, suavizado, etc., para prepararla para entrenar el codificador automático ELM.
  2. Entrene un codificador automático ELM: utilice los datos de entrada preparados para entrenar un codificador automático ELM, que consta de un codificador y un decodificador. Durante el proceso de entrenamiento, los parámetros de la red se optimizan minimizando el error de reconstrucción.
  3. Eliminación de imagen borrosa: ingrese la imagen borrosa como datos de entrada en el codificador automático ELM entrenado y obtenga la imagen borrosa a través de la salida del decodificador.

La fórmula matemática del algoritmo de eliminación de imágenes borrosas basado en la tecnología de codificación automática ELM se puede expresar en los siguientes pasos:

  1. Defina los datos de entrada: sea X la imagen borrosa de entrada, donde X = {x_1, x_2, ..., x_N} y N es el número de píxeles de la imagen.
  2. Defina el codificador automático ELM: El codificador automático ELM consta de un codificador f(·) y un decodificador g(·), donde f(·) asigna los datos de entrada a la capa oculta y g(·) asigna la capa oculta a la capa de salida.
  3. Defina la función de pérdida: el error de reconstrucción se puede expresar como la función de pérdida L (Y, g (f (X))), donde Y es el resultado de la reconstrucción de los datos de entrada originales X.
  4. Defina el objetivo de optimización: optimice los parámetros del codificador automático ELM minimizando la función de pérdida L (Y, g (f (X))).
  5. Defina el algoritmo de aprendizaje: utilice el algoritmo de descenso de gradiente estocástico (SGD) para optimizar la función de pérdida L (Y, g (f (X))).

El proceso de implementación específico del algoritmo de eliminación de imágenes borrosas basado en la tecnología de codificación automática ELM es el siguiente:

  1. Prepare datos: utilice un conjunto de imágenes borrosas como datos de entrenamiento, procéselas previamente para prepararlas para entrenar el codificador automático ELM.
  2. Inicialización: inicialice las matrices de peso W_h y W_o del codificador y decodificador, y los vectores de polarización b_h y b_o.
  3. Entrenamiento: entrene el codificador automático ELM minimizando el error de reconstrucción. Específicamente, el algoritmo de descenso de gradiente estocástico se utiliza para actualizar la matriz de peso y el vector de sesgo para minimizar la función de pérdida L (Y, g (f (X))).
  4. Desenfoque: ingrese la imagen borrosa como datos de entrada en el codificador automático ELM entrenado y obtenga la imagen desenfocada a través de la salida del decodificador.

3. Programa central de MATLAB

x=imread('70.jpg');
x=rgb2gray(x);
subplot(121)
imshow(x)
xlabel('original image');
x=double(x);
for i=1:200
    number_neurons=i;% number of neurons
    ActivF='sig';% activation function
    %调用ELM自编码模型
    [prefomance,B,Hnew]=ELM_AE(x,ActivF,number_neurons);
    regenerated=Hnew*pinv(B');
    subplot(122)
    imshow(regenerated);
    Tc=num2str(prefomance);
    Tc= ['RMSE = ' Tc];
    xlabel('regenerated')
    title(Tc)
    Tc2(i)=prefomance;
    pause(0.01)
end
up2211

4. Resultados de la simulación

Supongo que te gusta

Origin blog.csdn.net/ccsss22/article/details/133045035
Recomendado
Clasificación