¿Cómo entrenó una red neuronal de Caffe en un conjunto de datos de grano fino como automóviles, pájaros, etc.?

Comienza con una arquitectura de red neuronal que ya ha sido entrenada en un gran conjunto de datos. Ejemplos bastante estándar son la referencia CaffeNet (BVLC / caffe), o la arquitectura VGG más complicada (modelo ILSVRC-2014 (equipo VGG) con 19 capas de peso).

Estos ya se han entrenado en el conjunto de datos de ImageNet, que es un conjunto de datos de clasificación de objetos grandes. Dependiendo del conjunto de datos que desee ajustar, puede elegir un modelo que haya sido entrenado previamente en un conjunto de datos diferente. Por ejemplo, si su producto final es un modelo que puede predecir una escena (a diferencia de un objeto ) a partir de un conjunto de datos de fotografía turística, puede comenzar con un modelo capacitado en el conjunto de datos MIT Places (BVLC / caffe).

En Caffe, los conjuntos de parámetros guardados (pre-entrenados) están disponibles en archivos .caffemodel, y las arquitecturas se especifican en archivos .prototxt. El enfoque general es copiar el archivo .prototxt y preservar los nombres de las capas, excepto las capas que desea reiniciar desde cero. Por lo general, esta es solo la última capa (softmax). Además, generalmente establece en cero (congelar) la velocidad de aprendizaje de las capas anteriores. Luego cambie la fuente de datos del modelo a su nuevo conjunto de datos y comience a entrenar nuevamente, asegurándose de decirle a Caffe que use el .caffemodel pre-entrenado. Cuando intente copiar los parámetros de .caffemodel, si Caffe no encuentra un nombre de capa coincidente, reiniciará la capa (por lo general, solo la última capa).

Por supuesto, es posible que desee ajustar su modelo pre-entrenado. Hay varios botones que puede sintonizar:

1) La tasa de aprendizaje (generalmente menor en un factor de 10)

2) El número de capas que afinas. Si tiene suficientes datos, para las capas anteriores, en lugar de establecer sus tasas de aprendizaje en 0, puede optar por establecer sus tasas de aprendizaje en un número pequeño.

Si ya sabe cómo entrenar redes en caffe, lea este documento
La aplicación de modelos de atención de dos niveles en la red neuronal convolucional profunda para la clasificación de imágenes de grano fino
Este documento aborda particularmente el problema de clasificación de grano fino.
Utiliza dos redes para esta tarea.
La primera red localiza las regiones necesarias para la clasificación de grano fino. y la segunda red intenta hacer la clasificación real de grano fino.
Puede construir el mismo tipo de red utilizado en este documento y puede construirlo en caffe.
Para las tareas de clasificación de grano fino, la localización es bastante útil. Como si quisieras distinguir diferentes tipos de perros, necesitas mirar más específicamente su cara o patas. Entonces, este documento primero se localiza y luego se clasifica.
Si necesita detalles sobre el nivel de implementación, pregunte.

La elección de la arquitectura de red depende de la tarea de aprendizaje supervisada que esté a la mano y, en gran medida, depende del tipo de entradas que está ingresando en la red. ¿La entrada es escasa (texto) o densa (imágenes)?

Suponiendo que los datos de su automóvil / ave son imágenes, lo más probable es que use un ConvNet de algún tipo y siga el tutorial aquí: Caffe | Tutorial de ImageNet

La precisión del conjunto de datos no es importante si puede construir una función de pérdida adecuada para su salida de red (ya sea una regresión, una característica o una clasificación).

0. recopilar los datos de transmisión. Una opción es rastrear imágenes por Google o Bing Image Search.

1. Ajuste la red nueral directamente en los datos de entrenamiento recopilados con alex net, google net, vgg, etc.

2 si la precisión de la predicción no es buena, verifique la calidad de los datos de entrenamiento. Es muy probable que los datos de entrenamiento sean ruidosos.

3. hecho