machine-learning - tipos - redes neuronales ejemplos
¿Cómo construir una red neuronal de convolución en Azure Machine Learning? (1)
La definición de red correcta para la entrada de 35 columnas de longitud con kernels y zancadas dados sería la siguiente:
const { T = true; F = false; }
input Data [35];
hidden C1 [7, 15]
from Data convolve {
InputShape = [35];
KernelShape = [7];
Stride = [2];
MapCount = 7;
}
hidden C2 [14, 7, 5]
from C1 convolve {
InputShape = [ 7, 15];
KernelShape = [ 1, 7];
Stride = [ 1, 2];
Sharing = [ F, T];
MapCount = 14;
}
hidden H3 [100]
from C2 all;
output Result [1] linear
from H3 all;
Primero, el C1 = [7,15]. La primera dimensión es simplemente el MapCount. Para la segunda dimensión, la forma del kernel define la longitud de la "ventana" que se utiliza para escanear las columnas de entrada, y la zancada define cuánto se mueve en cada paso. De modo que las ventanas del kernel cubrirían las columnas 1-7, 3-9, 5-11, ..., 29-35, produciendo la segunda dimensión de 15 cuando cuentas las ventanas.
Luego, el C2 = [14,7,5]. La primera dimensión es nuevamente el MapCount. Para la segunda y tercera dimensión, la "ventana" del kernel de 1 por 7 tiene que cubrir el tamaño de entrada de 7 por 15, usando los pasos de 1 y 2 a lo largo de las dimensiones correspondientes.
Tenga en cuenta que puede especificar la forma de la capa oculta C2 de [98,5] o incluso [490], si desea aplanar las salidas.
Alguien debería agregar "net #" como una etiqueta. Estoy tratando de mejorar mi red neuronal en Azure Machine Learning Studio convirtiéndola en una red neuronal de convolución usando este tutorial:
https://gallery.cortanaintelligence.com/Experiment/Neural-Network-Convolution-and-pooling-deep-net-2
Las diferencias entre la mía y el tutorial es que estoy haciendo una regresión con 35 funciones y 1 etiqueta y están haciendo una clasificación con características de 28x28 y 10 etiquetas.
Comienzo con el segundo y segundo ejemplo y hago que trabajen con:
input Data [35];
hidden H1 [100]
from Data all;
hidden H2 [100]
from H1 all;
output Result [1] linear
from H2 all;
Ahora la transformación a la convolución no entiendo bien. En el tutorial y la documentación aquí: https://docs.microsoft.com/en-us/azure/machine-learning/machine-learning-azure-ml-netsharp-reference-guide no menciona cómo los valores de tupla del nodo se calculan para las capas ocultas. El tutorial dice:
hidden C1 [5, 12, 12]
from Picture convolve {
InputShape = [28, 28];
KernelShape = [ 5, 5];
Stride = [ 2, 2];
MapCount = 5;
}
hidden C2 [50, 4, 4]
from C1 convolve {
InputShape = [ 5, 12, 12];
KernelShape = [ 1, 5, 5];
Stride = [ 1, 2, 2];
Sharing = [ F, T, T];
MapCount = 10;
}
Parece que [5, 12, 12] y [50,4,4] salieron de ninguna parte junto con KernalShape, Stride y MapCount. ¿Cómo sé qué valores son válidos para mi ejemplo? Intenté usar los mismos valores, pero no funcionó y tengo una sensación ya que tiene una entrada [28,28] y tengo un [35], necesito tuplas con 2 enteros y no 3.
Acabo de probar con valores aleatorios que parecen correlacionarse con el tutorial:
const { T = true; F = false; }
input Data [35];
hidden C1 [7, 23]
from Data convolve {
InputShape = [35];
KernelShape = [7];
Stride = [2];
MapCount = 7;
}
hidden C2 [200, 6]
from C1 convolve {
InputShape = [ 7, 23];
KernelShape = [ 1, 7];
Stride = [ 1, 2];
Sharing = [ F, T];
MapCount = 14;
}
hidden H3 [100]
from C2 all;
output Result [1] linear
from H3 all;
En este momento, parece imposible depurar porque el único código de error que Azure Machine Learning Studio ofrece es:
Exception":{"ErrorId":"LibraryException","ErrorCode":"1000","ExceptionType":"ModuleException","Message":"Error 1000: TLC library exception: Exception of type ''Microsoft.Numerics.AFxLibraryException'' was thrown.","Exception":{"Library":"TLC","ExceptionType":"LibraryException","Message":"Exception of type ''Microsoft.Numerics.AFxLibraryException'' was thrown."}}}Error: Error 1000: TLC library exception: Exception of type ''Microsoft.Numerics.AFxLibraryException'' was thrown. Process exited with error code -2
Por último, mi configuración es
¡Gracias por la ayuda!