主要内容

前额una红色神经元旋对regresión

Este ejemplo muestra cómo ajustar un modelo de regresión中间的神经转轮对前任los ángulos de rotación de dígitos手稿。

convolucionales (CNN o ConvNets) son herramientas fundamentales en deep learning y results tan especmentas adecuadas para analizar datos de imágenes。Por ejemplo, puede utilzar las CNN para classification imágenes。Para previous datos continuos, como ángulos y distance, puede incluir una capa de regresión al final de la red。

El ejemplo crea una arquitectura de红神经元旋回,entrena una红y利用la red entrenada para前任ángulos de dígitos手稿旋转ados。预测结果útiles para el concocimiento óptico de caracteres。

Opcionalmente, puede utilitzarimrotate(图像处理工具箱™)para rotar las imágenes y箱线图(统计和机器学习工具箱™)para crear una gráfica de cajas。

Cargar拿督

El conjunto de datos contiene imágenes sintéticas de dígitos手稿junto con los ángulos通讯员(en grados) que se rota cada imagen。

Cargue las imágenes de entrenamiento y validación como arreglos 4D mediantedigitTrain4DArrayDataydigitTest4DArrayData.拉斯维加斯——赛利达YTraineYValidationSon los ángulos de rotación en grados。卡达连体的de datos de entrenamiento y validación contene 5000 imágenes。

[XTrain,~,YTrain] = digitTrain4DArrayData;[XValidation,~,YValidation] = digitTest4DArrayData;

博物馆20 imágenes中间的临时博物馆imshow

numTrainImages =数字(YTrain);figure idx = randperm(numTrainImages,20);i = 1:元素个数(idx)次要情节(4、5、i) imshow (XTrain (:,:,:, idx(我)))结束

图中包含20个轴对象。坐标轴对象1包含一个image类型的对象。坐标轴对象2包含一个image类型的对象。坐标轴对象3包含一个image类型的对象。Axes对象4包含一个image类型的对象。Axes对象5包含一个image类型的对象。Axes对象6包含一个image类型的对象。Axes对象7包含一个image类型的对象。Axes对象8包含一个image类型的对象。Axes对象9包含一个image类型的对象。 Axes object 10 contains an object of type image. Axes object 11 contains an object of type image. Axes object 12 contains an object of type image. Axes object 13 contains an object of type image. Axes object 14 contains an object of type image. Axes object 15 contains an object of type image. Axes object 16 contains an object of type image. Axes object 17 contains an object of type image. Axes object 18 contains an object of type image. Axes object 19 contains an object of type image. Axes object 20 contains an object of type image.

compprobar la normalización de datos

关于神经系统的知识,一个菜单útil关于数据的知识están关于正常的知识和数据的知识。La normalización ayuda a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aSi sus datos se han escalado mal, la pérdida puede convertise enY los parámetros红色的,发散的,持续的,和的。正常化数据的习惯方式,包括重新计算数据的方式,manera que su intervalo sea [0,1] o tenga una media de cero y una desviación estándar de uno。Puede normalizar los siguentes datos:

  • Datos de entrada。红色的预测和介绍的常态。En este ejemplo, las imágenes de entrada ya están normalizadas al intervalo[0,1]。

  • Salidas de capas。在正常的情况下,我们的薪金,我们的总结性,我们的中间,我们的薪金normalización, de lotes。

  • Respuestas。这是我们的命运normalización我们的命运,我们的命运,我们的命运,我们的命运,我们的命运,我们的命运。这是一种不同的预测,这是一种不同的预测,这是一种不同的预测。我在这里,我在这里,我在这里,我在这里,我在这里。在正常的环境下,在正常的环境下,在正常的环境下,在正常的环境下,在正常的环境下,在正常的环境下,在正常的环境下,在正常的环境下。

代表la distribución de la respuesta。La respuesta (el ángulo de rotación en grados) se distribuye proximadamente de forma uniform entre -45 y 45, que es correcto y no requiere normalización。En los problem de clasificación, as salidas son probabilidades de classes, que siempre están normalizadas。

图直方图(YTrain)轴ylabel (“计数”)包含(旋转角度的

图中包含一个轴对象。坐标轴对象包含一个直方图类型的对象。

总而言之,我们没有完全正常化的数据。罪恶的禁运,是前所未有的100 * YTrainoYTrain + 500En lugar deYTrain, la pérdida esY los parámetros红色的分流器。Este resultado se produce incluso aunque la única diferencia entre una red que prediceaY + bY una red que prediceY这是联合国的最后一项决议和最后一项决议。

Si la distribución de la entrada o respuesta es muy不规则o está muy desviada, también puede realizar transformaciones no lineales (por ejemplo, tomando logaritmos)一个los datos antes de entralar la red。

Crear capas de red

Para resolver el problem de regresión, cree las capas de la red e包括una capa de regresión al final de la red。

La primera capa定义el tamaño y el tipo de los datos de entrada。Las imágenes de entrada son de 28 por 28 por 1。在错误的想象中,在错误的想象中,在错误的想象中tamaño在错误的想象中,在错误的想象中tamaño在错误的想象中,在错误的想象中。

Las capas intermedias de la red definen la arquitectura de la red, donde tiene lugar la mayoría de los cálculos y el aprendizaje。

最后的结局定义el tamaño y el tipo de los datos de salida。Para problem de regresión, una capa total conectada debe prior a la capa de regresión al final de la red。Cree una capa de salida total conectada de tamaño 1 y una capa de regresión。

结合todas las capas juntas en un arreglo

图层= [imageInputLayer([28 28 1])卷积2dlayer (3,8,“填充”“相同”(2,)“步”2) convolution2dLayer(16日“填充”“相同”(2,)“步”32岁的,2)convolution2dLayer (3“填充”“相同”卷积2dlayer (3,32,“填充”“相同”) batchNormalizationLayer reluLayer dropoutLayer(0.2) fullyConnectedLayer(1) regressionLayer];

Entrenar la red

Cree las opciones de entrenamiento de la red。Entrene durante 30 épocas。Establezca la tasa de aprendizaje初级en 0.001 y disminuya la tasa de aprendizaje tras 20 épocas。监控precisión红色的持续时间和具体数据validación和一个关系validación。El software entrena la red según los datos de entrenamiento y calcula la precisión de los datos de validación en intervalos regulares durante El entrenento。关于validación的资料,没有什么可利用的,没有什么可实现的,关于红色的比索。积极的la gráfica行动的进步和行动的la salida de la ventana de突击队。

miniBatchSize = 128;validationFrequency = floor(编号(YTrain)/miniBatchSize);选项= trainingOptions(“个”...“MiniBatchSize”miniBatchSize,...“MaxEpochs”30岁的...“InitialLearnRate”1 e - 3,...“LearnRateSchedule”“分段”...“LearnRateDropFactor”, 0.1,...“LearnRateDropPeriod”, 20岁,...“洗牌”“every-epoch”...“ValidationData”{XValidation, YValidation},...“ValidationFrequency”validationFrequency,...“阴谋”“训练进步”...“详细”、假);

Cree la red mediantetrainNetwork.Este comando utilities una GPU兼容si está disponible。utilitzar una GPU requiere并行计算工具箱™y undispositivo GPU兼容。Para obtener información清醒的性格,协商GPU计算要求(并行计算工具箱).相反地,trainNetwork利用CPU。

net = trainNetwork(XTrain,YTrain,图层,选项);

{

检查《建筑的细节》《红色的思想与和谐

网层
ans = 18x1带有图层的图层数组:1' imageinput'图像输入28x28x1图像,'zerocenter'归一化2' conv_1'二维卷积8个3x3x1卷积,stride[1 1],填充'same' 3 'batchnorm_1'批量归一化8通道批量归一化4 'relu_1' ReLU ReLU 5 'avgpool2d_1'二维平均池化2x2平均池化,stride[2 2],填充[0 0 0 0 0]6 'conv_2'二维卷积16个3x3x8卷积,stride[1 1],填充'same' 7 'batchnorm_2'批量归一化16个批量归一化通道8 'relu_2' ReLU ReLU 9 'avgpool2d_2'二维平均池化2x2平均池化与stride[2 2]和填充[0 0 0 0 0]10 'conv_3'二维卷积32 3x3x16卷积与stride[1 1]和填充'same' 11 'batchnorm_3'批归一化与stride[1 1]和填充'same' 14 'batchnorm_4'批归一化与32通道批归一化15 'relu_4' ReLU ReLU 16'dropout' dropout 20% dropout 17 'fc'全连接1全连接层18 'regressionoutput'回归输出均方误差与响应' response '

红Probar la red

Pruebe el rendimiento de la red evaluando la precisión de los datos de validación。

Utilice预测Para bicir los ángulos de rotación de las imágenes de validación。

ypredict = predict(net,XValidation);

评估你的表现

Evalúe数学模型计算:

  1. 可接受的误差边际预测

  2. El error cuadrático medio raíz (RMSE) del ángulo de rotación predicho y del real

计算误差predicción entre el ángulo de rotación predicho y el real。

predictionError = YValidation - yexpected;

计算número可接受的误差边际的预测ángulos现实。十度影影。本影的预测计算。

THR = 10;numCorrect = sum(abs(predictionError) < thr);numValidationImages = nummel (YValidation);accuracy = numCorrect/numValidationImages
准确度= 0.9644

利用误差cuadrático中值raíz (RMSE) para medir las difference entre el ángulo de rotación predicho y el real。

squares = predictionError.^2;Rmse =√(均数(平方))
rmse =4.6253

Visualizar predicciones

展望未来的预测gráfica de dispersión。代表着未来的价值和现实的价值。

图散射(YPredicted YValidation,“+”)包含(“预测价值”) ylabel (“真正的价值”)举行Plot ([-60 60], [-60 60],“r——”

图中包含一个轴对象。坐标轴对象包含2个散点、直线类型的对象。

Corregir rotaciones de dígitos

También puede utilzar funciones de图像处理工具箱para nivelar los dígitos y mostrarlos juntos。死记硬背49 dígitos头脑清醒ángulos rotación中间预言imrotate(图像处理工具箱)。

idx = randperm(numValidationImages,49);i = 1:元素个数(idx)图像= XValidation (:,:,:, idx(我));predictedAngle = yexpected (idx(i));imagesrotate (:,:,:,i) = imrotate(image,predictedAngle,“双三次的”“作物”);结束

dígitos corregidas原产地博物馆。喝水可以utilizar蒙太奇(图像处理工具箱)para mostrar los dígitos juntos en una única imagen。

图subplot(1,2,1)蒙太奇(XValidation(:,:,:,idx))标题(“原始”) subplot(1,2,2)蒙太奇(imagesrotate)“纠正”

图中包含2个轴对象。标题为Original的坐标轴对象1包含一个image类型的对象。标题为Corrected的坐标轴对象2包含一个image类型的对象。

Consulte也

|

特马relacionados