10 votos

Deserción escolar, lo que si se eliminan todos los nodos

Al aplicar el abandono (o dropconnect) - ¿necesita para tener en cuenta para el caso que se caiga cada nodo en una capa?

Aunque esta es una muy pequeña posibilidad, ¿cuál es el enfoque correcto en este escenario? ¿Escoger a un nuevo conjunto al azar para abandonar o establecer todas las entradas a la siguiente capa a ser cero?

¿Alguien sabe las bibliotecas populares (tensorflow, keras etcetera) ¿en esta situación?

7voto

Amir Eldor Puntos 48

Esta es una preocupación que muy rara vez todos se dieron cuenta. Para un tamaño moderado de la red neuronal cuya capas ocultas cada uno tiene $1000$ unidades, si la probabilidad de deserción escolar es el conjunto de a $p=0.5$ (el extremo más alto de lo que normalmente se usa), entonces la probabilidad de que todos los $1000$ unidades cero es $0.5^{1000} = 9.3\times10^{-302}$ que es una mente-bogglingly pequeño valor. Incluso para una pequeña red neuronal con sólo $50$ unidades en la capa oculta, la probabilidad de que todas las unidades es cero es $.5^{50}=8.9\times10^{-16}$ o menos de $\frac{1}{1\ \text{thousand trillion}}$

Así que, en resumen, esto no es algo que usted nunca necesita preocuparse de que en la mayoría de las situaciones del mundo real, y en las raras ocasiones en que esto sucede, usted podría simplemente vuelva a ejecutar el abandono paso para obtener un nuevo conjunto de caer pesos.

ACTUALIZACIÓN:

Cavar a través del código fuente para TensorFlow, me encontré con la implementación de la deserción aquí. TensorFlow no molesta incluso de contabilidad para el caso especial en el que todas las unidades son iguales a cero. Si esto llegara a ocurrir, la salida de la capa que va a ser simplemente cero. Las unidades no "desaparecen" cuando se caen, que acaba de tomar el valor de cero, lo que desde la perspectiva de las otras capas en la red está perfectamente bien. Pueden realizar sus operaciones posteriores en un vector de ceros tan bien como en un vector de valores distintos de cero.

1voto

Buomsoo Kim Puntos 312

Esa situación debe ser evitada. Si todas las neuronas en una de las capas ocultas se quitan, las señales de no proceder a la neurona de salida, y su red de los nervios no funcionan como quería. Como se puede ver en la siguiente imagen, sólo una parte de sus neuronas de una capa se cayó.

enter image description here

Lo normal es establecer las tasas de abandono escolar de cada capa oculta. Por lo tanto, si usted establece las tasas de abandono escolar por debajo de 1, ese tipo de situación en la que se evita.

A continuación es cómo el abandono de la capa se implementa en Tensorflow y Keras. Que en general las tasas de abandono escolar para todas las capas ocultas como el mismo número (0.x), es conveniente ajustar el hyperparameter.

# set the dropout rate as any number between 0 and 1
dropout_rate = 0.4

# tensorflow implementation
dropout = tf.nn.dropout(x, keep_prob = dropout_rate)

# keras implementation
dropout = keras.layers.Dropout(dropout_rate)

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