4 votos

¿Siempre es posible lograr una precisión perfecta en un pequeño conjunto de datos?

He leído muchas veces que una buena depuración de paso, mientras que la construcción de una máquina modelo de aprendizaje es tratar de overfit su modelo para un subconjunto muy pequeño de sus datos. [Aquí es un ejemplo][1].

Siempre que su código es libre de errores, siempre es posible conseguir una perfecta o casi perfecta de rendimiento en el conjunto de entrenamiento cuando usted hace esto? Podría hacerlo incluso en un pequeño conjunto de datos de números aleatorios?

Tengo un modelo que está logrando significativamente mayor precisión en mis datos reales que si me alimento de ti números aleatorios, pero su lejos de ser perfecto, y parece que no importa cuán pequeño me hacen el conjunto de datos, el número de capas que yo uso, o cómo de grande puedo hacer las capas, la precisión de las estancias de la misma. Lo que podría causar esto?

ACTUALIZACIÓN: Gracias a las personas que respondieron, entiendo que debe ser siempre posible para adaptarse a un pequeño subconjunto de los datos, así que eché otro vistazo a mi aplicación.

Resultó que había varios pequeños problemas. Conmutación aleatoria uniforme el peso de inicialización a xavier de inicialización proporcionado un importante bache en mis resultados (supuse que esto sería sólo mejorar la velocidad a la que la formación convergen a la misma mierda de resultado, pero en realidad mejora la exactitud en general). Yo también no tienen totalmente normalizado de datos. Todo estaba en un rango de 0 a ~10, que inicialmente se pensó que debería ser lo suficientemente bueno, pero tengo otro gran golpe en el rendimiento cuando me normalizado a -1 a 1. Un tercer problema que tuve fue con mi conjunto de validación. Mis datos están en varios conjuntos diferentes de diferentes fuentes, y resultó que eran distintos "estilos" o tendencias para cada conjunto. Estaba entrenando en la mayoría de los conjuntos de datos, y la evaluación en un determinado conjunto. Cuando me barajan todos los ejemplos individuales en conjunto de todos los conjuntos, y luego sacó de mi conjunto de validación al azar de la baraja establecer, empecé a ver las precisiones en el medio y superior de los 90!

1voto

Jay Vyas Puntos 16

Creo que la pregunta es difícil de contestar en abstracto, pero para lo que vale aquí están algunas ideas:

Los datos que alimentan al no podría ser el "perfecto" conjunto de datos para el algoritmo. Por ejemplo, yo podría estimar los parámetros de un modelo de regresión lineal (es decir, $Y=X\beta + \epsilon$) con estocástico de gradiente de la pendiente. Si los datos son inconsistentes con mi hipótesis (por ejemplo, los puntos de datos están dispersos al azar a su alrededor, entonces el ajuste es la probabilidad de ser pobre con un pequeño conjunto de datos. En su contexto, es posible que la red neuronal de un enfoque que puede estar recibiendo demasiados 'dispares de datos de puntos que son totalmente diferentes en algún sentido (por ejemplo, si estamos tratando de recuperar manuscrita dígitos a continuación, obtiene imágenes de manuscritos dígitos escritos en diferentes colores, con diferentes instrumentos de escritura etc.). Por lo tanto, con un pequeño conjunto de datos que el ajuste es pobre pero a medida que aumente el tamaño del conjunto de datos, más muestras de formación y que el ajuste mejora a medida que uno podría esperar.

La única circunstancia en que me imagino que el ajuste sería bueno con un pequeño conjunto de datos sería cuando tenemos un buen comportamiento del conjunto de datos en el sentido de que hay un fuerte patrón que puede ser recuperado fácilmente por nuestro modelo. Por ejemplo, nos alimentamos de la red neuronal manuscrita dígitos escrito en negro y con el mismo tamaño de fuente por el mismo tipo de instrumento de escritura y así sucesivamente. En tal situación, me imagino que un pequeño conjunto de datos puede ser suficiente y lo suficientemente compleja red neuronal podrían, en realidad, ajuste los datos a la perfección como el patrón en los datos es demasiado fuerte en relación a la presencia de ruido.

1voto

Mohammadreza Puntos 1964

En teoría, no hay nada de una red neuronal no puede aproximado. De hecho, usted sólo necesita una única capa oculta!

https://en.wikipedia.org/wiki/Universal_approximation_theorem

Así que la respuesta es definitivamente SÍ, siempre es posible conseguir una perfecta o casi perfecta de rendimiento para cualquier conjunto de datos de entrenamiento. No importa cuán pequeño o cuán grande.

Tiene usted:

  • En realidad se veía en los ejemplos de formación de que su red no se pudo? Tal vez hay un patrón?

No es bueno al azar ajustar los parámetros de la red neuronal. Usted dijo que su nuevo conjunto de datos es pequeño, ¿por qué no trabajar un poco más duro, y tire de los conjuntos de entrenamiento que su red no pueden predecir/clasificar? Debe haber una razón, tal vez usted tiene un bug? Tal vez los ejemplos son la falta de sentido o valores atípicos?? Tal vez son sólo ruido aleatorio que su red no debería trabajar en él de todos modos? Tal vez usted sólo necesita más iteraciones?

Por favor, mire los fallado ejemplos, no adivine. La máquina de aprendizaje es más que la simple ejecución de la misma cosa una y otra vez.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X