Вы находитесь на странице: 1из 21

SEMANA 3

Descripción de redes neuronales


Bienvenido de nuevo en la semana de aprender a implementar una red neuronal antes del
buceo en los detalles técnicos que quería en este video para darle una visión rápida de lo que
verás en la semana de videos así que si no sigues todo el detalles en este video no se preocupe
lo vamos a profundizar en los detalles técnicos en los próximos videos, pero por ahora vamos a
dar una visión general rápida de cómo implementar en su red la semana pasada había hablado
de regresión logística y vimos cómo este modelo corresponde a la siguiente gráfico de
computación donde no puso las características X y parámetros W MB que le permite calcular Z
que luego se utiliza para calcular una y estábamos usando un intercambiable con esta salida Y
hat y luego puedes calcular la pérdida función la nueva red se ve así y como ya había aludido
anteriormente puedes formar una red neuronal apilando un montón de pequeños unidades
sigmoideas, mientras que anteriormente esto nodo corresponde a dos pasos de cálculos de los
tres primeros calcular el Valor Z segundo es que calcula esto a valor en esta red dual esta pila
de notas corresponderán a una Z como cálculo así, así como una a como un cálculo como ese y
luego ese nodo corresponderá a otra Z y otro 8 como el cálculo por lo que el notación que
debemos usar más tarde se parece a esto primero lo que introduce las características X junto
con algunos parámetros W y B y esto le permitirá calcular z1 por lo nueva notación que uno
debería usar es que usaremos un paréntesis superíndice cuadrado 1 para referirse a
cantidades asociadas con esta pila de nodos llamada guarida y luego usaremos el superíndice
cuadrado paréntesis 2 para referirse a las cantidades asociado con Daniel en realidad eso es
llamado otra capa de la red y los corchetes superíndices como nosotros he aquí no deben
confundirse con los paréntesis superíndices que utilizado para referirse a la capacitación
individual ejemplos así que mientras X soporte de la ronda supersu Me referí a la He
entrenado un ejemplo de superíndice cuadrado el paréntesis 1 y 2 se refiere a estos diferentes
um capas capa 1 y capa 2 en esta red pero continúan después de calcular z1 similar a logístico
regresión habrá un cálculo para calcular un 1 y eso es solo un poco sigmoide de z1 y luego
calcula Z 2 usando otra ecuación lineal y luego calcular un 2 y un 2 es el resultado final de la
red neuronal y también será utilizado de manera intercambiable con Y hat, así que Sé que
había muchos detalles, pero el la intuición clave para llevar es que mientras que para la
regresión logística tuvimos esta Z seguida de un cálculo y esta nueva red aquí solo lo hacemos
varias veces como un CV seguido de un cálculo y una Z seguida de una cálculo y luego
finalmente calcula la pérdida al final y recuerdas eso para la regresión justa que tuvimos en
algún cálculo hacia atrás con el fin de los derivados de cómputo son tan confusos da fácil y así
sucesivamente, de la misma manera en una nueva red terminaremos haciendo una cálculo
hacia atrás que se parece a esto y nosotros saltamos usted termina computando da 2 DZ 2 que
le permite calcular tan DW 2 DB 2 y así sucesivamente en este orden el derecho a menos
cálculo hacia atrás que es denotando con las flechas rojas así que gracias tú visión general
rápida de qué nueva red sitios web basados en tomar una logística regresión y repetirlo dos
veces lo sé había un montón de notación nueva de nuevos detalles no se preocupe por
obtener y sigue todo lo que entraremos en el detalles más lentamente en los próximos videos,
así que vamos al próximo video nos detendremos para hablar sobre el neural representación
de red

Representación de red neuronal


Me ves dibujar algunas imágenes de redes neuronales. En este video, hablaremos sobre
exactamente lo que significan esas imágenes. En otras palabras, exactamente lo que
representan esas redes neuronales que hemos estado dibujando. Y comenzaremos
centrándonos en el caso de las redes neuronales con lo que se llamó una sola capa oculta. Aquí
hay una imagen de una red neuronal. Vamos a darles diferentes nombres a las diferentes
partes de estas imágenes. Tenemos las características de entrada, x1, x2, x3 apiladas
verticalmente. Y esto se llama la capa de entrada de la red neuronal. Entonces, quizás no sea
sorprendente, esto contiene las entradas a la red neuronal. Luego hay otra capa de círculos. Y
esto se llama una capa oculta de la red neuronal. Volveré en un segundo para decir lo que
significa la palabra oculta. Pero la capa final aquí está formada por, en este caso, solo un nodo.
Y esta capa de un solo nodo se llama capa de salida y es responsable de generando el valor
predicho y hat. En una red neuronal, [INAUDIBLE] de aprendizaje supervisado, el conjunto de
entrenamiento contiene valores de las entradas x así como las salidas de destino y. Entonces,
el término capa oculta se refiere al hecho de que en el conjunto de entrenamiento, los valores
verdaderos para este nos en el medio no se observan. Es decir, no ves lo que deberían ser en el
conjunto de entrenamiento. Ya ves cuáles son las entradas. Ya ves cuál debería ser el
resultado. Pero las cosas en la capa oculta no se ven en el conjunto de entrenamiento. Así que
ese tipo de explica el nombre oculto allí solo porque tú no lo veo en el conjunto de
entrenamiento. Preséntenos en la anotación. Donde descanso anteriormente, estábamos
usando el vector X para denotar las características de entrada y notación alternativa para los
valores de las características de entrada serán Un paréntesis cuadrado superíndice 0. Y el
término A también significa activaciones, y se refiere a los valores que las diferentes capas de
la red neuronal están pasando a las capas posteriores. Entonces la capa de entrada pasa el
valor x a la capa oculta, entonces vamos a llamar a esas activaciones de la capa de entrada A
super script 0. La siguiente capa, la capa oculta generará a su vez un conjunto de activaciones,
que voy a escribir como un corchete superíndice 1. Entonces, en particular, esta primera
unidad o este primer nodo, generamos un valor Un paréntesis cuadrado superíndice 1
subíndice 1. Este segundo generamos un valor. Ahora estamos en el subíndice 2 y así
sucesivamente. Y entonces, un soporte cuadrado de superíndice 1, este es un vector de cuatro
dimensiones o quieres en. Python porque la matriz 4.1 del vector común, que se ve así. Y es de
cuatro dimensiones, porque en este caso tenemos cuatro nodos, o cuatro unidades, o cuatro
unidades ocultas en esta capa oculta. Y finalmente, la capa abierta regenera algún valor A2,
que es solo un número real. Y entonces, va a tomar el valor de A2. Así que ahora se trata de
adivinar cómo en la regresión tenemos y hat es igual a a y regresión legislativa que solo
teníamos una capa de salida, por lo no usamos los corchetes superíndices. Pero con nuestra
red más nueva, ahora vamos a usar el cuadrado superíndice corchete para indicar
explícitamente de qué capa proviene. Una cosa graciosa acerca de las convenciones de
notación en las redes neuronales es que esta red que has visto aquí se llama red neuronal de
dos capas. Y la razón es que cuando contamos capas en redes neuronales, no contamos la capa
de entrada. Entonces, la capa oculta es la capa uno y la capa de salida es la capa dos. En
nuestra convención de notación, llamamos a la capa de capa de entrada cero, por lo que
técnicamente, tal vez haya tres capas en esta red neuronal, porque está la capa de entrada, la
capa oculta y la capa de salida. Pero en el uso convencional, si lees trabajos de investigación y
en otros lugares en el curso, ves que las personas se refieren a esta red neuronal en particular
como una capa red neuronal, porque no contamos la capa de entrada como una capa oficial.
Finalmente, algo que veremos más adelante es que la capa oculta y las capas de salida tendrán
parámetros asociados a ellas. Entonces, la capa oculta tendrá asociados sus parámetros w y b.
Y voy a escribir los superíndices corchete cuadrado 1 para indicar que estos son parámetros
asociados con la capa uno con la capa oculta. Veremos más adelante que w será una matriz de
4 por 3 y b será un vector 4 por 1 en este ejemplo. Donde la primera coordenada cuatro
proviene del hecho de que tenemos cuatro nodos de nuestras unidades ocultas y una capa, y
tres proviene del hecho de que tenemos tres funciones de entrada. Hablaremos más tarde
sobre las dimensiones de estas matrices. Y podría tener más sentido en ese momento. Pero en
algunas de las capas de salida asociadas con él, también parámetros w soporte cuadrado
superíndice 2 y b soporte cuadrado superíndice 2. Y resulta que las dimensiones de estos son 1
por 4 y 1 por 1. Y estos 1 por 4 se debe a que la capa oculta tiene cuatro unidades ocultas, la
capa de salida tiene solo una unidad. Pero vamos a repasar la dimensión de estas matrices y
vectores en un video ater. Así que acabas de ver cómo es una red neuronal de dos capas. Esa
es una red neuronal con una capa oculta. En el siguiente video, profundicemos en lo que está
computando esta red neuronal. Así es como esta red neuronal introduce x y va todo el tiempo
hasta computar su producción y hat.

Computar la salida de una red neuronal


en el último video viste un single red neuronal capa oculta se ve como en este video vamos a
ver el detalles de cómo exactamente este neuronal las computadoras en red producen lo que
ves es que es como la regresión logística del repetidor de todas las veces tomemos un mira, así
que esto es lo que es una capa de dos red neuronal profundicemos en exactamente qué esta
red neuronal calcular ahora se dijo antes de eso regresión logística las imágenes del círculo la
regresión realmente representa dos pasos de computación primero calcula Z de la siguiente
manera y en el segundo calcula el activación como una función sigmoidea de Z por lo una red
neuronal solo hace esto mucho más veces comencemos centrándonos en solo uno de los
nodos en el escondido allí y esta mirada al primer nodo en la capa oculta, así que he atenuado
el otros nodos por ahora tan similares a regresión logística a la izquierda esto nodo en una
capa oculta hace dos pasos de cálculo correcto el primer paso y creo que es la mitad izquierda
de este nodo calcula Z es igual a W transpone X plus B y la notación que usaremos es um estos
son todas las cantidades asociadas con el primera capa oculta, por eso tenemos un montón de
corchetes allí y este es el primer nodo en el escondido capa, por eso tenemos el subíndice uno
por allí, así que primero hace eso y luego un segundo paso es calcula un 1 1 es igual a sigmoide
de z11 como para que tanto para Z como para el ay convención de notación es que un Li L aquí
en paréntesis cuadrados superíndices se refiere al número de capa y al I el subíndice aquí se
refiere a los nodos en esa capa entonces mirarán at es la capa 1 que es una capa oculta nodo 1
por lo que el superíndice y subíndice estaban en ambos 1 1 para que pequeño círculo ese
primer nodo en su red representa llevar a cabo estos dos pasos de computación ahora vamos a
ver en el segundo nodo en su red el segundo nodo en la capa oculta de en su red similar a la
logística unidad de regresión a la izquierda este pequeño círculo representa dos pasos de
computación el primer paso es una Z confuso esto todavía es la capa 1 pronunciado el segundo
nodo es igual a W transponer X plus V - y luego 1/2 es igual a Sigma z12 y de nuevo, siéntase
libre de pausar el video si quieres pero puedes verificarlo la notación de superíndice y
subíndice es consistente con lo que hemos escrito aquí arriba en morado así que hablaremos a
través de las primeras dos unidades ocultas en la red neuronal en unidades ocultas tres y
cuatro también representa algunos cálculos así que ahora déjame tomar esto par de
ecuaciones y este par de ecuaciones y copiemoslas al Luna volar así que aquí está nuestra red y
aquí está el primero y hay un segundo ecuaciones en las que fueron trabajados previamente
para el primero y el segundo escondido unidades si luego atraviesas y escribes las ecuaciones
correspondientes para el tercera y cuarta unidades ocultas que obtienes lo siguiente y esos se
aseguran de que esto la notación es clara este es el vector W 1 1 este es un vector transpuesta
x creo entonces eso es lo que el superíndice G hay representa esto es un vector transpuesta
ahora como habrás adivinado si eres realmente implementando en su red haciendo esto con
un bucle for parece realmente ineficiente, entonces lo que vamos a hacer es tomar estas
cuatro ecuaciones y vectorizar así que voy a comenzar mostrando cómo calcular Z como un
vector resulta que podría hacerlo de la siguiente manera déjame tomar estos WS y apilarlos en
una matriz, entonces tiene W 1 1 transpuesta así que eso es un vector de fila de la columna
Vector transpose le da un vector de fila entonces W 1 2 transpuesta W 1 3 transposición de V 1
4 transpone y así esto apilando va desde W vectores juntos terminas con una matriz para otra
forma de pensar de esto es que tenemos para la logística uniones de regresión allí y cada una
de las las uniones de regresión logística tienen un correspondiente parámetro vector W y por
apilando esos cuatro vectores juntos terminar con esta matriz de cuatro por tres, por lo si
tomas esta matriz y multiplícalo por tus características de entrada x1 x2 x3 terminas por
nuestra matriz la multiplicación termina con w1 1 transposición x w1 w2 1 transposición X de U
3 1 transil XW 1 transpone X y luego no lo hacemos olvidar las abejas, así que ahora agregamos
a esto una vector b11 b12 b13 en 1/4 para que vean esto entonces esto es b11 b12 b13 e 1/4 y
entonces ves que cada una de las cuatro filas de este resultado corresponde exactamente a
cada de estas cuatro filas de cada uno estos cuatro cantidades que teníamos arriba así que en
otra palabras que acabamos de mostrar que esto es por lo tanto igual a V 1 1 V 1 a V 1 V V 1 4
derecha como se define aquí y tal vez no es sorprendente que vamos a llamar todo esto el
vector V 1 que es tomado apilando estos um individuos de estos en una columna vector
cuando estamos vectorizando uno de los reglas generales que podrían ayudarte navegar esto
es que cuando tenemos diferentes nodos en una capa o apilarlos verticalmente por eso es por
eso que cuando tienes Z 1 1 2 Z 1 para aquellos corresponden a cuatro diferentes nodos en la
capa oculta y entonces apilamos estos cuatro números verticalmente para formar los vectores
V 1 y reducir una pieza más de notación este 4 por 3 matriz aquí que obtuvimos por apilando la
minúscula sabes W 1 1 W 1 2 y así sucesivamente vamos a llamar esto matriz W capital 1 y de
manera similar esto vector o va a llamar B superíndice 1 corchete cuadrado y este es un 4 por
1 vector así que ahora hemos calculado Z usando esta notación de matriz vectorial la última Lo
que tenemos que hacer es también calcular estos valores de a y tan probablemente no lo
harán sorprenderte de ver que vamos a define un 1 como solo apilar juntos esos valores de
activación a11 a a14 por lo solo tome estos 4 valores y apriételos juntos en un vector llamado
a1 y esto va a ser sigmoide de z1 donde no hay implementación del marido de la función
sigmoidea que toma en los cuatro elementos de Z y aplica el sigmoide función elemento sabio
a él tan solo una En resumen, descubrimos que z1 es igual a W 1 veces el vector X más el
vector B 1 y a 1 es Sigmoid xz 1 vamos a copiar esto a la siguiente diapositiva y lo que vemos es
que para la primera capa de los nervios red dada una entrada X tenemos que z1 es igual a w1
veces X más B1 y un 1 es el punto enfermo de z1 y las dimensiones de esto son 4 por 1 es igual
a esto es un 4 por 3 matrices veces un vector de 3 por 1 más un 4 por 1 vector B y esto es 4 por
1 mismo dimensiones y recuerda que dijimos X es igual a un 0 justo como Y hat también es
igual a un 2 así que si quieres puedes en realidad tomar esta X y reemplazarla con un 0 ya que
es 0 si lo desea como un alias para el vector de entrada de futuros X ahora a través de una
derivación similar que pueda averiguar que la representación de la siguiente capa también se
puede escribir Del mismo modo, ¿cuál es la capa de salida lo hace se ha asociado a él por lo
que el parámetros W 2 y B 2 así W 2 en este caso va a ser una matriz de 1 por 4 y B 2 es solo un
número real como 1 por 1 y entonces V 2 va a ser un número real justo como una matriz 1 por
1 va a ser una cosa 1 por 4 veces era 4 por 1 más B 2 es 1 por 1 y por lo tanto, esto le da solo
una número real y si piensas en esto unidad de salida de pérdida simplemente como análoga a
la regresión logística que tenía los parámetros W y B en W realmente juegan en papel nablus a
W 2 transpuesta o W 2 realmente W transpone y B es igual a B 2 derecho similar a lo que sabes
encubrir el a la izquierda de esta red e ignorar todo eso por ahora, este es solo este último
unidad de salida hay mucho como logística regresión, excepto que en lugar de escribiendo los
parámetros como WMV que estamos escribiéndolos como W 2 y B 2 con dimensiones uno por
cuatro y uno por uno por lo solo un resumen de la regresión logística a implementar la salida o
la influencia la predicción que calcula Z es igual a W transponer X plus B y ay hat es igual a un
es igual a sigmoide de z cuando tienes una nueva red que tiene uno encaja allí lo que necesita
para implementar dos computadoras de salida son solo las cuatro ecuación y se puede pensar
en esto como una implementación vectorizada de informática la salida de primero estos
cuatro unidades logísticas rusas y golpes allí eso es lo que hace esto y luego esto que es
regresión en la salida capa, que es lo que hace Espero que esta descripción tenga sentido, pero
para llevar es calcular la salida de esta red neuronal todo lo que necesitas es esas cuatro líneas
de código, así que ahora has visto cómo se le da una única función de entrada vector en usted
puede con cuatro líneas de codificar las salidas de este visor Red um similar a lo que hicimos
para regresión logística también querrá vectorizar a través de entrenamiento múltiple
ejemplos y veremos que al apilar ejemplos de entrenamiento en diferentes colores en la
matriz o simplemente leve modificación a esto también similar a lo que viste en que es la
regresión capaz de calcular la salida de este red neuronal no solo en un ejemplo a la vez
pertenece su opinión su anti-intercambio establecido a la vez, así que vamos a ver los detalles
de eso en el siguiente video

Vectorizando a través de múltiples ejemplos


En el último video, viste cómo calcular la predicción en una red neuronal, dado un solo
ejemplo de entrenamiento. En este video, verá cómo vectorizar en múltiples ejemplos de
capacitación. Y el resultado será bastante similar a lo que viste para la regresión logística.
Mediante el cual se acumulan diferentes ejemplos de entrenamiento en diferentes columnas
de la matriz, podrías tomar las ecuaciones que tenías del video anterior. Y con muy poca
modificación, cámbielos para hacer que la red neuronal calcule las salidas en todos los
ejemplos en casi todo al mismo tiempo. Entonces, veamos los detalles sobre cómo hacer eso.
Estas fueron las cuatro ecuaciones que tenemos del video anterior de cómo se calcula z1, a1,
z2 y a2. Y te dicen cómo, dada una función de entrada de vuelta a x, puede usarlos para
generar a2 = y hat para un solo ejemplo de entrenamiento.

0:54

Ahora, si tiene m ejemplos de capacitación, necesita repetir este proceso para decir, el primer
ejemplo de entrenamiento. x superíndice (1) para calcular y hat 1 hace una predicción en su
primer ejemplo de entrenamiento. Entonces x (2) usa eso para generar predicción y hat (2). Y
así sucesivamente hasta x (m) para generar una predicción y hat (m). Y así en toda esta
notación de función de activación también, Voy a escribir esto como un [2] (1). Y este es un [2]
(2), y a (2) (m), entonces esta notación a [2] (i). El corchete redondo se refiere al ejemplo de
entrenamiento i, y el corchete 2 se refiere a la capa 2, está bien.

1:58

Así es como funcionan el corchete y los índices de corchetes.

2:04

Y para sugerir que si tiene una implementación no revelada y desea calcular las predicciones
de todos sus ejemplos de entrenamiento, tienes que hacer por i = 1 a m. Entonces,
básicamente, implementa estas cuatro ecuaciones, ¿verdad? Necesita hacer az [1] (i) = W (1) x
(i) + b [1], a [1] (i) = sigma de z [1] (1). de [2] (i) = en [2] y [1] (i) + b [2] yZ2i es igual a w2a1i más
b2 y a [2] (i) = punto sigma de z [2] (i). Así que básicamente son estas cuatro ecuaciones las que
se agregan al superíndice entre corchetes a todas las variables que dependen del ejemplo de
entrenamiento. Entonces, al agregar este paréntesis superíndice i a x, z y a, si desea calcular
todas las salidas en sus ejemplos de m ejemplos de entrenamiento. Lo que nos gusta hacer es
vectorizar todo este cálculo, para deshacernos de esto. Y, por cierto, en caso de que parezca
que estoy obteniendo mucha nitidez álgebra lineal, resulta que ser capaz de implementar esto
correctamente es importante en la era del aprendizaje profundo. Y en realidad elegimos la
notación con mucho cuidado para este curso y hacer estos pasos de vectorización lo más fácil
posible. Así que espero que pasar por este asunto me ayude a más rápidamente obtener
implementaciones correctas de estos algoritmos de trabajo.

3:51

De acuerdo, déjenme copiar todo este bloque de código en la siguiente diapositiva y entonces
veremos cómo vectorizar esto.

3:59

Así que aquí está lo que tenemos de la diapositiva anterior con el de bucle repasando nuestros
m ejemplos de entrenamiento. Así que recordemos que definimos la matriz x como igual a
nuestros ejemplos de capacitación apilados en estas columnas como tal. Por lo tanto, tome los
ejemplos de capacitación y apílelos en columnas. Entonces esto se convierte en un, o quizás nx
por m disminuya la matriz.

4:29
Voy a regalar la línea de golpe y le diré lo que necesita implementar en para tener una
implementación vectorizada de este ciclo for. Resulta que lo que debes hacer es calcular Z [1] =
W [1] X + b [1], A [1] = punto sig de z [1]. Entonces Z [2] = w [2] A [1] + b [2] y luego A [2] =
punto sig de Z [2]. Entonces, si quieres la analogía es que pasamos de minúsculas a vectores xs
para simplemente mayúscula de la mayúscula del caso X apilando las minúsculas xs en
diferentes columnas. Si haces lo mismo para z, entonces por ejemplo, si toma z [1] (i), z [1] (2),
y así on, y estos son todos los vectores de columna, hasta z [1] (m), derecha. Así que esa es la
primera cantidad que todos m de ellos, y los apilan en columnas. Entonces simplemente te da
la matriz z [1]. Y de manera similar miras decir esta cantidad y tomar un [1] (1), un [1] (2) y así
sucesivamente a [1] (m), y los apila en columnas. Entonces esto, al igual que pasamos de
minúsculas x a la mayúscula X, y minúscula z a mayúscula Z. Esto va desde la minúscula a, que
son vectores a esta capital A [1], eso está ahí y de manera similar, para z [2] y a [2]. Correcto,
también se obtienen tomando estos vectores y apilarlos horizontalmente. Y tomando estos
vectores y apilándolos horizontalmente, para obtener Z [2] y E [2]. Una de las propiedades de
esta notación que podría ayudar lo que debes pensar es que esta matriz dice Z y A,
horizontalmente vamos a indexar a través de ejemplos de entrenamiento. Entonces, es por
eso que el índice horizontal corresponde a diferentes ejemplos de entrenamiento, cuando
barre de izquierda a derecha está escaneando las celdas de entrenamiento. Y verticalmente
este índice vertical corresponde a diferentes nodos en la red neuronal. Entonces, por ejemplo,
este nodo, este valor en la parte superior, la esquina superior izquierda de la media
corresponde a la activación de la primera unidad de encabezado en el primer ejemplo de
entrenamiento. Un valor inferior corresponde a la activación en la segunda unidad oculta en el
primer ejemplo de entrenamiento, luego la unidad del tercer encabezado en la primera
muestra de entrenamiento, etc. Entonces, al escanear hacia abajo, esta es su indexación al
número de unidades ocultas.

7:39

Mientras que si te mueves horizontalmente, estás yendo desde la primera unidad oculta. Y el
primer ejemplo de entrenamiento para ahora la primera unidad oculta y la segunda muestra
de entrenamiento, el tercer ejemplo de entrenamiento. Y así sucesivamente hasta que este
nodo aquí corresponde a la activación de la primera unidad oculta en el ejemplo del tren final
y el enésimo ejemplo de entrenamiento.

8:00

De acuerdo, entonces, horizontalmente, la matriz A pasa por diferentes ejemplos de


entrenamiento.

8:10

Y verticalmente los diferentes índices en la matriz A corresponde a diferentes unidades


ocultas.

8:22

Y una intuición similar es válida tanto para la matriz Z como para X donde corresponde
horizontalmente a diferentes ejemplos de entrenamiento. Y verticalmente corresponde a
diferentes funciones de entrada que son realmente diferentes a los de la capa de entrada de la
red neuronal.

8:42

Entonces, de estas ecuaciones, ahora sabe cómo implementarlas en su red con vectorización,
que es vectorización a través de múltiples ejemplos. En el siguiente video, quiero mostrarte un
poco más de justificación sobre por qué esta es una implementación correcta de este tipo de
vectorización. Resulta que la justificación sería similar a lo que has visto [INAUDIBLE]. Pasemos
al siguiente video.

Explicación para la implementación vectorizada


En el video anterior, vimos cómo con tus ejemplos de entrenamiento apilados horizontalmente
en la matriz x, puede derivar una implementación vectorizada para la propagación a través de
su red neuronal. Vamos a dar un poco más de justificación de por qué las ecuaciones que
escribimos hacia abajo es una implementación correcta de la vectorización a través de
múltiples ejemplos. Así que repasemos parte del cálculo de propagación para los pocos
ejemplos. Digamos que para el primer ejemplo de entrenamiento, terminas computando este
x1 más b1 y luego para el segundo ejemplo de entrenamiento, terminas computando este x2
más b1 y luego, para el tercer ejemplo de entrenamiento, terminas computando este 3 más
b1. Entonces, solo para simplificar la explicación en esta diapositiva, voy a ignorar b. Entonces,
digamos, para simplificar esta justificación un poco, que b es igual a cero. Pero el argumento
que vamos a diseñar funcionará con solo un pequeño cambio incluso cuando b no es cero.
Simplemente simplifica la descripción en la diapositiva un poco. Ahora, w1 va a ser algo de
matriz, ¿verdad? Entonces tengo un número de filas en esta matriz. Entonces, si miras este
cálculo x1, lo que tienes es que w1 por x1 le da un vector de columna que debe dibujar así. Y
de manera similar, si miras este vector x2, tienes que w1 veces x2 da algún otro vector de
columna, ¿verdad? Y eso te da este z12. Y finalmente, si miras a x3, tienes w1 veces x3, te da
un tercer vector de columna, eso es este z13. Entonces, si considera que el conjunto de
entrenamiento es capital X, que formamos al juntar todos nuestros ejemplos de
entrenamiento. Entonces, la matriz de capital X se forma tomando el vector x1 y apilarlo
verticalmente con x2 y luego también con x3. Esto es si solo tenemos tres ejemplos de
entrenamiento. Si tienes más, ya sabes, seguirán apilando horizontalmente así. Pero si ahora
tomas esta matriz x y la multiplicas por w, terminas con, si piensas cómo funciona la
multiplicación de matrices, terminas con la primera columna siendo estos mismos valores que
había trazado allí en púrpura. La segunda columna será esos mismos cuatro valores. Y la
tercera columna será esos valores naranja, lo que resultan ser. Pero, por supuesto, esto es
igual a z11 expresado como un vector de columna seguido de z12 expresado como un vector
de columna seguido por z13, también se expresa como un vector de columna. Y esto es si
tienes tres ejemplos de entrenamiento. Obtienes más ejemplos, entonces habría más
columnas. Y entonces, esta es solo nuestra capital matricial Z1. Así que espero que esto dé una
justificación de por qué teníamos anteriormente w1 veces xi es igual z1i cuando estamos
viendo un solo ejemplo de entrenamiento en ese momento. Cuando tomó los diferentes
ejemplos de entrenamiento y los apiló en diferentes columnas, entonces el resultado
correspondiente es que terminas con las z también apiladas en las columnas. Y no apareceré,
pero puedes convencerte a ti mismo si quieres eso con la transmisión de Python, si vuelves a
agregar, estos valores de b a los valores siguen siendo correctos. Y lo que realmente termina
sucediendo es que terminas con la transmisión de Python, terminas teniendo bi
individualmente en cada una de las columnas de esta matriz. Entonces en esta diapositiva, solo
he justificado que z1 sea igual w1x más b1 es una correcta vectorización de el primer paso de
los cuatro pasos que tenemos en la diapositiva anterior, pero resulta que un análisis similar te
permite mostrar que los otros pasos también funcionan en el uso una lógica muy similar donde
si apilas las entradas en columnas y luego después de la ecuación, obtienes las salidas
correspondientes también apiladas en columnas. Finalmente, recapitulamos todo lo que
hablamos en este video. Si esta es tu red neuronal, dijimos que esto es lo que debes hacer si
implementaras para la propagación, un ejemplo de entrenamiento a la vez yendo de i es igual
a 1 a m. Y luego dijimos, apilemos los ejemplos de entrenamiento en columnas como tal y para
cada uno de estos valores z1, a1, z2, a2, apilamos las columnas correspondientes de la
siguiente manera. Así que este es un ejemplo para a1, pero esto es cierto para z1, a1, z2 y a2.
Entonces, lo que mostramos en la diapositiva anterior fue que esta línea le permite vectorizar
esto en todos los m ejemplos al mismo tiempo. Y resulta con el mismo razonamiento, puedes
mostrar que todas las otras líneas son correctas vectorizaciones de las cuatro de estas líneas
de código. Y solo como un recordatorio, porque x también es igual a a0 porque recuerda eso el
vector de características de entrada x era igual a a0, entonces xi es igual a a0i. Entonces, en
realidad hay una cierta simetría para estas ecuaciones donde esta primera ecuación también
puede ser escrito z1 es igual a w1 a0 más b1. Y entonces, ven que este par de ecuaciones y
este par de las ecuaciones en realidad se ven muy similares, pero solo de todos los índices
avanzan en uno. Entonces, este tipo de muestra que las diferentes capas de una red neuronal
son aproximadamente haciendo lo mismo o simplemente haciendo el mismo cálculo una y
otra vez. Y aquí tenemos una red neuronal de dos capas donde vamos a una red neuronal
mucho más profunda en los videos de la próxima semana. Usted ve que incluso las redes
neuronales más profundas están básicamente tomando estos dos pasos y solo hacerlos más
veces de las que estás viendo aquí. Así es como puedes vectorizar tu red neuronal a través de
múltiples ejemplos de entrenamiento. A continuación, hasta ahora hemos estado utilizando las
funciones sigmoideas en todas nuestras redes neuronales. Resulta que esa no es realmente la
mejor opción. En el siguiente video, vamos a bucear un poco más adelante en cómo puede
usar diferente, lo que se llama, funciones de activación de las cuales la función sigmoide es
solo una opción posible.
Funciones de activación
cuando impulsa una red neuronal una de las elecciones que tienes que hacer es lo que las
funciones de activación usan independiente capas, así como en la unidad de salida de su red
neuronal hasta ahora solo hemos estado usando la activación sigmoide función, pero a veces
otras opciones pueden trabajamos mucho mejor echemos un vistazo a algunas de las opciones
en el forward pasos de propagación para la red neuronal tenemos estos dos pasos donde
usamos el función sigmoidea aquí para que sigmoid es llamado una función de activación y G
es la función sigmoidea familiar I es igual a 1 más de 1 más nu a G negativo así que en el caso
más general podemos tener una diferente función G de Z visualmente derecha aquí donde G
podría ser un no lineal función que puede no ser el sigmoide función por lo que, por ejemplo,
el sigmoide la función va entre 0 y 1 an función de activación que casi siempre funciona mejor
que la función sigmoidea es la función 10h o hiperbólica función tangente así que esto es Z
esto es una esto es un igual a 10 H de Z y esto va entre más 1 y menos 1 la fórmula para la
función de 10h es e para la Z menos e a V negativo por allí algunos y es En realidad
matemáticamente un cambio versión de la función sigmoide así como una usted conoce la
función sigmoide al igual que pero cambiarlo para que ahora cruce una cero punto cero y
reescalar para que vaya a G menos uno y más uno y gira que para unidades ocultas si deja que
el la función G de Z sea igual a diez HSV esto casi siempre funciona mejor que la función
sigmoide porque con valores entre más uno y menos uno la media de las activaciones que
vienen fuera de tu cabeza hay más cerca de tener una media cero y tan solo como a veces
cuando entrenas un aprendizaje algoritmo es posible que centre los datos y tenga su los datos
tienen cero significa usar un 10-8 en su lugar de una función sigmoidea tipo de tiene el efecto
de centrar sus datos para que la media de los datos está cerca de la cero en lugar de tal vez un
0.5 y esto en realidad hace aprender para el próximo capa un poco más fácil, diremos más
sobre esto en el segundo curso cuando hablar sobre algoritmos de optimización como bueno,
pero una conclusión es que yo bastante nunca uses la activación sigmoide función más la
función 10-ish es casi siempre estrictamente superior, la única excepción es para la capa de
salida porque si Y es ya sea 0 o 1, entonces tiene sentido para y sombrero para ser un número
que desea salida más entre 0 y 1 en lugar de entre menos 1 y 1 por lo que el excepción donde
usaría el sigmoide función de activación es cuando estás usando clasificación binaria en cuyo
caso podría usar la activación sigmoide función para la capa de salida por lo que G de Z 2 aquí
es igual a Sigma de Z 2 y por lo tanto lo que ves en este ejemplo es donde es posible que
tengas una activación de diez pulgadas función para la capa oculta y sigmoide para la capa de
salida por lo que el las funciones de activación pueden ser diferentes para diferentes capas y, a
veces a denotar que las funciones de activación son diferente para diferentes capas que
podríamos usa estos super guiones de paréntesis cuadrados también para indicar que G de
cuadrado el soporte 1 puede ser diferente al cuadrado G soporte 2 soporte cuadrado mccain
rojo 1 superíndice se refiere a esta capa y el paréntesis superíndice 2 se refiere a la capa alfa
ahora uno de los aspectos negativos tanto de la función sigmoidea y la función 10h es que si Z
es muy grande o muy pequeño entonces el gradiente de la derivada o la pendiente de esta
función se vuelve muy pequeño, por lo Z es muy grande o Z es muy pequeña la pendiente del
función que sabes termina siendo cerca de cero y por lo tanto, esto puede ralentizar gradiente
descenso por lo que uno de los juguetes que es muy popular en el aprendizaje automático es
lo que es llamado la unidad lineal rectificada por lo que el la función de valor se ve así y el
fórmula es un igual a un máximo de 0 coma Z por lo la derivada es 1 siempre que Z sea positivo
y derivado o la pendiente es 0 cuando Z es negativo si eres la implementación de esto
técnicamente el derivada cuando Z es exactamente 0 no es bien definido pero cuando
implemente es en la computadora a menudo obtienes exactamente igual a 0 0 0 0 0 0 0 0 0 0
es muy pequeño, así que no necesita preocuparse por eso en la práctica que podría pretender
una derivada cuando Z es igual a 0 puedes simular que es 1 o 0 y puedes trabajar bien así que
el hecho de no es diferenciable el hecho de que Aquí hay algunas reglas generales para
eligiendo funciones de activación si su salida es 0 1 valor si estás estoy usando clasificación
binaria luego el sigmoide la función de activación es muy natural para la capa superior y luego
para todos los demás unidades en varalu o rectificado rectificado unidad es cada vez más la
opción predeterminada de la función de activación así que si no estás Seguro de qué usar para
la cabeza allí Solo usaría la activación de relu función que es lo que ves la mayoría de las
personas utilizando estos días, aunque a veces las personas también usan la activación de
tannish función una vez que esta ventaja del valor es que la derivada es igual a cero cuando V
es negativo en la práctica esto funciona solo bien, pero hay otra versión de la valor llamado el
menor valor G dará usted la fórmula en la siguiente diapositiva, pero instead of it being zero
when G is negativo solo toma una ligera pendiente como que así que esto se llama Whisky
valor esto generalmente funciona mejor que el función de activación de valor a pesar de que
es simplemente no se usa tanto en la práctica tampoco uno debe estar bien aunque si tuviera
que elegir uno yo Por lo general, solo usa los ingresos y el ventaja de ambos, el valor y la única
clave valor es eso para una gran parte del espacio de Z la derivada de la activación funcionar la
pendiente de la activación la función es muy diferente de cero y entonces en la práctica
usando el función de activación su nueva red a menudo aprenderá mucho más rápido que usar
la edad diez o la activación sigmoide función y la razón principal es que en esto menos de este
efecto de la pendiente de la función va a cero, que se ralentiza aprendiendo y sé que por la
mitad del rango de Z, la pendiente de relu es cero, pero en la práctica suficiente de su las
unidades ocultas tendrán Z mayor que cero por lo que el aprendizaje todavía puede ser
bastante máscara para la mayoría de los ejemplos de entrenamiento así que solo vamos
resumir rápidamente hay pros y contras de diferentes funciones de activación aquí la función
de activación sigmoidea que yo haría digamos nunca use esto excepto por la salida capa si
estás haciendo binario clasificación o tal vez casi nunca use esto y la razón por la que casi
nunca uso esto es porque el 10h es más o menos estrictamente superior por lo que el de 10
pulgadas la función de activación es esto y luego el predeterminado el más comúnmente
utilizado la función de activación es Grandview que es esto, así que no estás seguro de qué
más para usar use este y tal vez sepa sentirse libre también para tratar de puerro realmente sé
dónde um podría estar 0.01 G Komen Z justo por lo que a es el máximo de 0.01 veces Z y Z así
que eso te da esto un poco Bend en la función y usted podría decir que sabes por qué es esa
constante 0.01 bien también puede hacer que otro parámetro del algoritmo de aprendizaje y
algunas personas dicen que funciona aún mejor pero casi no veo que la gente lo haga, pero si
tienes ganas de probarlo en tu aplicación que conoces, por favor siéntete libre de hazlo y
puedes ver cómo funciona y cuánto tiempo funciona y quédate con si te da un buen resultado,
así que espero eso te da una idea de algunos de los elecciones de funciones de activación que
puedas use en su red uno de los temas veremos en el aprendizaje profundo es que usted a
menudo tienen muchas opciones diferentes en cómo codifica su red neuronal que va desde el
número de unidades de crédito hasta el función de activación elegida a la forma en que
neutralizar las olas que veremos más tarde muchas opciones como esa y Resulta que a veces
es difícil obtener buenas pautas para exactamente qué funcionará mejor para su problema tan
tan estas tres causas seguiré dando tienes un sentido de lo que veo en el industria en términos
de lo que es más o menos popular, pero para su aplicación con su síntesis de video de
aplicaciones es realmente muy difícil de saber en avanzar exactamente lo que funcionará
mejor, por lo valores concretos serían si no eres seguro cuál de estas activaciones las funciones
funcionan mejor, ya sabes, pruébalas todo y luego evaluar como un holdout conjunto de
validación o como un conjunto de desarrollo de lo que hablaremos más adelante y ver cuál
funciona mejor y luego ir de eso y creo que al probar estos diferentes opciones para su
aplicación serías mejor en futuras pruebas de tu arquitectura de red neuronal contra el la
distinción ve nuestro problema también evoluciones de los algoritmos en lugar de sabes si te
dijera siempre use una activación aleatoria y no use cualquier otra cosa que solo puede o
puede no aplicar para cualquier problema que termine trabajando en usted sabe ya sea ya sea
en el futuro cercano en el distante futuro bien así que esa era una elección de funciones de
activación que has visto las funciones de activación más populares hay otra pregunta que a
veces es preguntar, ¿cuál es el motivo por el que incluso te necesito función de activación en
absoluto ¿por qué no solo acabar con eso, así que vamos a hablar de ese en el siguiente video
y cuando ves por qué nueva red significa algún tipo de función de activación no lineal

¿Por qué necesita funciones de activación no lineales?

¿Por qué tu nueva red necesita un la función de activación no lineal resulta eso para su nueva
red para calcular funciones interesantes que necesitas para tomar una función de activación
no lineal menos quieres, así que solo para el apoyo ecuaciones para la red neuronal por qué no
nos deshacemos de esto deshacerse de la función G y el conjunto a1 es igual a Z 1 o
alternativamente, podrías decir que G de Z es igual a Z correcto a veces esto es llamada la
función de activación lineal tal vez un mejor nombre para él sería el función de activación de
identidad porque solo son salidas lo que sea que se haya ingresado para el propósito de esto
¿y si a2 fuera igual a z2? si haces esto, entonces este modelo es acaba de calcular Y o sombrero
como un lineal función de sus funciones de entrada toma x2 las primeras dos ecuaciones si
tienes eso a1 es igual a z1 es igual a w1 X más B y si entonces a2 es igual a z2 es igual a W 2 a1
más B luego si toma el definición de a1 y conectarlo allí usted encuentra que a2 es igual a W 2
veces W 1 X más b1 un poco bien, así que esto es um a 1 más B 2 y esto simplifica a W 2 W 1 X
más W 2 b1 más b2 por lo que este es solo vamos a llamar a esto w prime b prime así que es
igual a w prime X más B Prime si tuviera que usar activación lineal funciones o vamos a
llamarlos identidad funciones de activación, entonces el nuevo la red solo está produciendo un
lineal función de la entrada y hablaremos sobre redes profundas más tarde nuevas redes con
muchas capas muchas muchas ocultas capas y resulta que si usa una función de activación
lineal o alternativamente si no tienes un función de activación, entonces no importa cómo
muchas capas su red neuronal tiene Siempre está haciendo solo un cálculo lineal función de
activación por lo que también podría no tiene capas ocultas algunas de las casos que mencionó
brevemente se convierte que si tienes una activación lineal función aquí y una función
sigmoide aquí, entonces este modelo ya no existe expresivo que la logística estándar regresión
sin ninguna capa oculta, así que no se molestará en probarlo pero usted podría intente hacerlo
si lo desea, pero el llevar a casa es que una capa oculta lineal es más o menos inútil porque en
el composición de dos funciones lineales es en sí una función lineal a menos que arrojar una no
linealidad allí entonces no estás computando más interesante funciones incluso a medida que
avanzas más en el red hay solo un lugar donde puedes usar una activación lineal la función G
de Z es igual a Z y eso es si estás haciendo aprendizaje automático en una problema de
regresión por lo que si Y es un verdadero número por lo que, por ejemplo, si estás tratando
para predecir los precios de la vivienda, por lo que Y es un no 0 1 pero es un número real que
sabes en cualquier lugar desde cero dólares es un precio de agujeros hasta sin embargo caro
derecho casa de familia, sin embargo, creo que puede ya sabes potencialmente millones de
dólares, sin embargo, sin embargo, muchas casas costo en su conjunto de datos, pero si Y
asume estos valores reales, entonces podría estar bien para tener una función de activación
lineal aquí para que tu salida Y hat también sea real número yendo a cualquier lugar desde
menos infinito a más infinito, pero luego el las unidades ocultas no deberían usar el nuevo
funciones de activación que podrían usar relu o 10 horas o estas reluces o tal vez algo más así
que el lugar donde podría usar una función de activación lineal otros por lo general en la capa
de salida, pero aparte de eso, usando un lineal función de activación en una capa de ajuste a
excepción de algunos muy especiales circunstancias relacionadas con la compresión que no
querrá hablar sobre el uso de un la función de activación lineal es extremadamente raro oh y,
por supuesto, hoy en realidad predecir los precios de la vivienda como lo vio en el video de la
semana 1 porque los precios de la vivienda son todos no negativos tal vez incluso entonces
puedes usar una función de activación de valores para que tus salidas Y hat sean todas mayor
o igual que 0, así que espero eso te da una idea de por qué tener un la función de activación no
lineal es una parte crítica de las redes neuronales siguiente vamos a comenzar a hablar sobre
pendiente de gradiente y para hacer eso para establecer para discusión sobre el descenso del
gradiente en el siguiente video quiero mostrarte cómo para estimar cómo calcular la
pendiente de la derivada de la activación individual funciones, así que pasemos a la siguiente
vídeo

Derivados de las funciones de activación


cuando implementa back-propagation para su red neuronal que necesita realmente calcular la
pendiente o la derivada de las funciones de activación, así que vamos a tomar una mira
nuestras elecciones de activación funciones y cómo se puede calcular el pendiente de estas
funciones se puede ver función familiar de activación sigmoidea y por lo que para cualquier
valor dado de z tal vez esto valor de z esta función tendrá algunos pendiente o alguna derivada
correspondiente a si dibujas una línea de regla allí saber la altura con no hay triángulo aquí, así
que si G de Z es el función sigmoide luego la pendiente de la función es e VZ G de Z y por lo
que sabemos de las calculadoras que la pendiente disss de G de X y V y si está familiarizado
con cálculo y saber cómo tomar derivados si toma la derivada de la función sigmoidea es
posible para mostrar que es igual a esta fórmula y de nuevo, no voy a hacer pasos de cálculo,
pero si estás familiarizado con cálculo hacer para que pause el video y tratar de demostrarlo
usted y así que esto es igual a solo G de Z por 1 menos G de Z, así que vamos a comprobar la
cordura que esta expresión tiene sentido primero si Z es muy grande, entonces diga Z es igual
a 10, entonces G de Z estará cerca de 1 y así la fórmula que tenemos a la izquierda nos dice
que D DZ G de Z está cerca a G de Z que es igual a 1 por 1 menos 1 que, por lo tanto, está muy
cerca de 0 y esto no es d correcto porque cuando Z es muy grande, la pendiente está cerca de
0 a la inversa de Z es igual a menos 10 por lo no hay forma de salir, entonces G de Z es cerca de
0 por lo que lo siguiente a la izquierda nos dice d DZ G de Z estará cerca de G de Z, que es 0
veces 1 línea es 0 y por lo tanto esto también está muy cerca de 0, que es correcto finalmente
en Z es igual a 0 entonces G de Z es igual a 1/2 eso es un función sigmoidea aquí y así que el
derivada es igual a 1/2 veces 1 menos 1/2, que es igual a 1/4 y que en realidad resulta ser el
correcto valor de la derivada o la pendiente de esta función cuando Z es igual a 0 finalmente
solo para presentar una pieza más de notación a veces en lugar de escribir esto es la
abreviatura de la derivado es G primo de Z así que G primo de Z en cálculo la pequeña carrera
en la parte superior se llama primer, pero por lo que G primo de Z es un taquigrafía para el en
cálculo para el derivada de la función de G con respecto a la variable de entrada Z um y
entonces en una nueva red tenemos un igual G de Z derecha es igual a esto, entonces esta
fórmula también se simplifica a veces 1 menos un modo a veces la implementación que podría
ver algo así como G prime de Z es igual a un veces 1 menos a y que solo se refiere a usted sabe
la observación de que G prime que es derivado usado es igual a esto aquí y la ventaja de esto
fórmula es que si ya has calculado el valor de un luego mediante el uso de esta expresión
puedes muy rápidamente calcular el valor de la pendiente para G prime s bien así que era el
sigmoide función de activación miremos ahora la función de activación 10h similar a lo que
teníamos previamente la definición de d DZ G de Z es la pendiente de G de Z como punto
particular de Z y si nos fijamos en la fórmula para la tangente hiperbólica función y si conoce el
cálculo que puede tomar derivados y mostrar que esto simplifica a esta fórmula y usando la
propia taquigrafía tenemos anteriormente cuando llamamos a este G prima de Z ganas así que
si quieres puedes cordura verificar que esta fórmula tenga sentido por ejemplo, si Z es igual a
10 10 H de Z será muy cercano a 1, esto va desde más 1 a menos 1 y luego G prime de Z de
acuerdo con esta fórmula será sobre 1 menos 1 cuadrado así que durante 3 cierres cero por lo
que era una Z es muy grande la pendiente es cercana a cero a la inversa Z es muy pequeño
decir Z es igual a menos 10 entonces 10 H de Z estará cerca de menos 1 y así G prime de Z
estará cerca de 1 menos negativo 1 cuadrado así que está cerca a 1 menos 1 que también está
cerca de 0 y finalmente es igual a 0 y luego a 10 H de Z es igual a 0 y luego la pendiente es en
realidad igual a 1, que es cuál selección el punto de pendiente en Z es igual a 0, solo para
resumir si a es igual a G de Z así que si a es igual a esto desafío de Z luego la derivada G primo
de Z es igual a 1 menos un cuadrado así que una vez más si ya has calculado el valor de a
puede usar esta fórmula para calcular muy rápidamente la derivada así, finalmente, así es
cómo se calcula los derivados por el valor y funciones de activación looky-loo para el valor g de
z es igual al máximo de 0 coma Z así que la derivada es igual a ti resulta ser 0 si Z es menor que
0 y 1 si Z es mayor que 0 y es en realidad nuestro indefinido técnicamente indefinido, el G es
igual a exactamente 0 pero um si estás implementando esto en el software que podría no ser
un cien por ciento matemáticamente correcto pero el trabajo está bien si tu V es exactamente
muy cero si configura el derivada para ser igual a 1 o esto tenía ser 0 es algo que no importa si
eres un excelente nación técnicamente G prime entonces se convierte lo que se llama un
subgrado de la función de activación G de Z, que es por qué pendiente descendente todavía
funciona, pero usted puede pensar en ello como que la posibilidad de Z siendo que conoces el
punto cero exactamente esos o aquellos de esos o cero es tan pequeño que casi no importa lo
que establecer la derivada para que sea igual a cuando Z es igual a cero, así que en la práctica
esto es lo que las personas implementan para la derivada de Z y, finalmente, si estás
entrenando en su propia red con el que aquí un Lou función de activación luego G de Z va para
ser máximo de, digamos, 0.01 Z coma Z y así G primo de Z es igual a 0.01 que Z es menos de 0 y
1 si Z es mayor que 0 y una vez más, el gradiente es técnicamente no definido cuando Z es
exactamente igual a 0, pero algunos tal vez implementar una pieza de código que establece el
derivada o la evaluación G prime Z ya sea un 0.01 o a 1 en ambos sentidos realmente no
importa cuando Z es exactamente 0 tus compañeros de trabajo así brazos de estos fórmulas
que debe calcular el pendientes o los derivados de su Suposiciones de activación ahora
tenemos esto bloques de construcción que está listo para ver cómo para implementar el
descenso de gradiente para su red neuronal vamos a la siguiente video para ver eso

Descenso de gradiente para Redes Neuronales


Está bien, creo que es un emocionante video en este video ves cómo implementar descenso de
gradiente para su red neuronal con una capa oculta en este video voy a darte las ecuaciones
que necesita implementar en para volver a la propagación del gradiente de descenso
trabajando y luego en el video después de este voy a dar un poco más intuición acerca de por
qué estos particulares las ecuaciones son las ecuaciones precisas o las ecuaciones correctas
para calcular el degradados que necesita para su neuronal red por lo que su red neuronal con
un solo capa campesina por ahora tendrá parámetros W 1 V 1 W 2 y B 2 y así un recordatorio si
tienes alternativa de NX las características de entrada UM n 0 y N 1 oculto unidades y n 2
unidades de salida en nuestro ejemplo hasta el momento todavía no n 2 es igual a 1 entonces
la matriz W 1 será N 1 por n 0 V 1 será un vector N 1 dimensional por lo puedes escribir como
10-1 por 1 matriz dimensional realmente una columna vector las dimensiones de W 2 serán n
2 por N 1 y la dimensión de B 2 será n 2 por 1 justo donde de nuevo hasta ahora hemos solo se
han visto ejemplos donde n 2 es igual a 1 donde tienes solo uno unidad oculta por lo que
también tiene un costo función para una red neuronal y para ahora solo voy a suponer que
eres haciendo una clasificación binaria así que en ese caso el costo de sus parámetros como
sigue va a ser 1 sobre m de la promedio de esa función de pérdida y por lo tanto L aquí está la
pérdida cuando tu nueva red predice y sombrero bien esto es realmente aa 2 cuando el suelo
debería 0 es igual a Y y si estás haciendo binario clasificación de la función de pérdida puede
ser exactamente lo que usas para la logística antes, así que para entrenar los parámetros de su
Algoritmos que necesitas para graduar descenso cuando se entrena una red neuronal es
importante inicializar el parámetros redondeados aleatoriamente en todos ceros veremos más
adelante por qué ese es el caso, pero después de inicializar el parámetro a algo de cada ciclo
de descenso de gradiente calcularía las predicciones así que básicamente computas sabes que
I para I es igual a 1 a m decir y luego necesita calcular la derivada por lo necesita calcular DW 1
y eso es todo ver la derivada de la función de costo con respecto al parámetro W 1 usted
necesidad de calcular otra variable que va a llamar DP 1, que es el derivado o la pendiente de
su costo función con respecto a la variable B 1 y así sucesivamente para el otro parámetros W
2 y B 2 y luego finalmente la actualización del descenso del gradiente sería actualizar W 1
como W 1 menos alfa Tasa de aprendizaje veces d w1 v 1 obtiene actualizado como B 1 menos
la tasa de aprendizaje veces DB 1 como similar para W 2 y B 2 y a veces uso colon igual y a
veces es igual a cualquiera de los dos la notación funciona bien y entonces esto sería una
iteración de descenso de gradiente y entonces tu repites esto un número de veces hasta que
tus parámetros se vean como están convergiendo en videos anteriores hablamos sobre cómo
calcular el predicciones de cómo calcular los resultados y vimos cómo hacer eso en una forma
vectorizada, así que la clave es saber cómo calcular estos parcial términos derivados del DW 1
DB 1 también como los derivados BW 2 y DP 2, entonces qué Me gustaría hacer es solo darte
el ecuaciones que necesita para calcular estos derivados y voy a diferir a la próximo video que
es un video opcional para dale un gran giro a Jeff acerca de cómo llegamos arriba con esas
fórmulas entonces, simplemente resuman nuevamente el ecuaciones para la propagación por
lo que tener Z 1 es igual a W 1 X más B 1 y luego a 1 es igual a la función de activación en esa
capa aplicada diferente a Y desde V 1 y luego Z 2 es igual a W 2 A 1 más B 2 y luego finalmente
diferencia todo vectorizar a través de su conjunto de entrenamiento derecho a 2 es igual a G 2
de V 2 buscando ahora si suponemos que estás haciendo binario clasificación entonces esta
activación la función realmente debe ser el sigmoide funcionar así que solo tiro eso aquí así
que esa es la propagación hacia adelante o el cálculo hacia adelante de izquierda a derecha
para su red neuronal a continuación, vamos a calcular los derivados así que esta es la parte de
atrás paso de propagación luego calcula DZ 2 es igual a 2 menos la verdad del suelo Y y solo
como un recordatorio de todo esto vectorizar a través del ejemplo para que la matriz Y es esta
suma 1 por M matriz que enumera todo de tus M ejemplos horizontalmente, entonces Resulta
que DW 2 es igual a esto, de hecho um estas primeras tres ecuaciones son muy similar al
descenso de gradiente para logística regresión X es igual a 1 coma um mantener DIMMs
iguales cierto y solo un pequeño detalle este NP dot algunos es un Python numpy comandos o
algo a través de una dimensión de una matriz en este caso sumando horizontalmente y lo q
hace DIMM es que previene - a partir de la salida de uno de esos gracioso banco 1 varios rojo
donde las dimensiones sabías n coma así que al tener ellos secuelas verdad esto asegura que
Python genera 4gb en un vector que es sumar y comprar uno técnicamente esto será Supongo
que n comprar uno en este caso es solo un número uno por uno así que tal vez no importa,
pero luego veremos cuando realmente importa hasta ahora qué lo que hemos hecho es muy
similar a la logística regresión, pero ahora a medida que calcula Continuar corriendo hacia
atrás la propagación calcularía esto Z 2 veces G 1 primer de Z 1 por lo que esta cantidad G 1
prima es la derivado de lo que fue el función de activación que utiliza para el capa oculta y
para la capa de salida I asume que estás haciendo binario clasificación con la función
sigmoidea así que eso ya está cocido en eso fórmula para DZ 2 y esta vez es una producto por
elementos así que este año va a haber una matriz N 1 por M y esto aquí este elemento sabio
cosa derivada también va a ser una N 1 por matriz n así que esta vez allí es otro producto sabio
mínimo de dos matrices, finalmente, DW 1 es igual a eso y DV 1 es igual a esto y P dot algunos
DZ 1 X es igual a 1 mantener la de Tim es igual a verdadero, mientras que mientras
anteriormente el negocio barato tal vez importa menos si n2 es igual a 1000 sofá una por una
cosa es que hay un verdadero número aquí P p1 será un 1 por 1 vector y entonces quieres
Python que quieras n P dot algunos resultados algo de esto dimensión en lugar de una familia
Matic uno matriz de esa dimensión que podría terminar estropeando algo de tu tarde los
cálculos de la otra manera sería no tiene que mantenerlos parámetros sino para llamar
explícitamente a una remodelación para remodelar la salida de NP salpique un poco en esto
dimensión que le gustaría DB así que ¿cómo así que eso fue para propagación en supongo
cuatro ecuaciones y retro-propagación en I adivinar seis ecuaciones que sé que acabo de
escribir abajo de estas ecuaciones, pero en el próximo video opcional repasemos algunos
intuiciones de cómo las seis ecuaciones para el algoritmo de propagación de retorno fueron
derivados, siéntete libre de mirar eso o no, pero de cualquier manera si implementa estos
algoritmos tendrá una correcta implementación de fondo con fines de lucro y podrás calcular
el derivados que necesita para aplicar pendiente de gradiente para aprender los parámetros
de su red neuronal es posible implementar sala de diseño y hacer que funcione sin entender
profundamente el Cálculo de muchas personas exitosas profesionales de la ganancia lo hacen,
pero si quiero que también puedas ver el siguiente video solo para obtener un poco más de
intuición sobre la derivación de estos de estos ecuaciones

Intuición de backpropagation (opcional)


En el último video, Viste las ecuaciones para la propagación de la espalda. En este video,
repasemos algunas intuiciones usando el gráfico de cálculo de cómo se derivaron esas
ecuaciones. Este video es completamente opcional. Entonces, siéntete libre de mirar o no.
Deberías poder hacer todo el trabajo de cualquier manera. Entonces, recordemos que cuando
hablamos de regresión logística, tuvimos este pase hacia adelante donde calculamos Z, luego A
y luego la pérdida. Y luego tomar los derivados, tuvimos este pase hacia atrás donde primero
pudimos calcular DA, y luego continuar para calcular DZ, y luego continúe para calcular DW y
DB. Entonces, la definición de la pérdida fue L de A, Y es igual a Y negativo A menos uno,
menos Y veces registra uno menos A. Entonces, si estás familiarizado con cálculo y tomas la
derivada de esto con respecto a A, eso te daría la fórmula para DA. Entonces, DA es igual a eso.
Y si realmente descubrimos el cálculo podría mostrar que esto es Y negativo sobre A más uno
menos Y sobre uno menos A. Simplemente divides eso del cálculo tomando derivados de esto.
Resulta que das otro paso hacia atrás para calcular DZ, funcionamos que DZ es igual a A menos
Y. Expliqué por qué anteriormente, pero resulta que desde la cámara de cálculo DZ es igual a
DA veces G prime de Z. Donde aquí G de Z es igual a sigmoide de Z es nuestra función de
activación para esta unidad de salida en regresión logística, ¿verdad? Entonces, recuerda que
esto sigue siendo una regresión logística en la que tenemos X1, X2, X3 y luego solo una unidad
sigmoidea y eso nos da A, nos dará Y final. Entonces, aquí está la función de activación era una
función sigmoidea. Y como un lado, solo para aquellos que estén familiarizados con la cámara
de cálculo la razón de esto es porque A es igual a sigmoide de Z. Y entonces, parcial de L con
respecto a Z es igual a parcial de L con respecto a A veces DA, DZ. Este es A es igual a sigmoide
de Z, esto es igual a DDZ, G de Z, que es igual a G primo de Z. Entonces, es por eso que esta
expresión que es DZ en nuestro código es igual a esta expresión que es DA en nuestro código
multiplicado por G prima de Z. Y entonces esto es solo eso. Entonces, esa última derivación
tendría sentido solo si estás familiarizado con el cálculo y específicamente con la cámara del
cálculo. Pero si no, no te preocupes por eso. Trataré de explicar la intuición donde sea que se
necesite. Y finalmente, habiendo calculado DZ para esta regresión, vamos a calcular DW, que
resultó ser DZ veces X y DB que es solo DZ cuando tiene un solo ejemplo de entrenamiento.
Entonces, eso fue una regresión logística. Entonces, qué vamos a hacer cuando computemos la
propagación de una red neuronal es un cálculo muy parecido esto, pero solo lo haremos dos
veces porque ahora no tenemos X yendo a una unidad de salida, pero X va a una capa oculta y
luego va a una unidad de salida. Y entonces, en lugar de que este cálculo sea algo así como el
que tenemos aquí, Te daremos dos pasos aquí en este tipo de red neuronal con dos capas.
Entonces, en esta red neuronal de dos capas, tenemos la capa de entrada, una capa oculta y
luego la capa de salida. Recuerde los pasos de un cálculo. Primero calcula Z1 usando esta
ecuación, y luego calcule A1 y luego calcula Z2. Y observe que Z2 también depende de los
parámetros W2 y B2. Y luego, basado en Z2, calcule A2 y finalmente eso le da la pérdida. Lo
que hace la propagación inversa es ir hacia atrás para calcular DA2 y luego DZ2, y luego vuelves
a calcular DW2 y DP2, ir hacia atrás para calcular DA1, DZ1 y así sucesivamente. No
necesitamos tomar el remachador con respecto a la entrada X desde la entrada X para el sufijo
de aprendizaje supervisado. No estamos tratando de optimizar X así que no nos molestaremos
en tomar los remachadores. Al menos, para el aprendizaje supervisado, respetamos X. Voy a
omitir el cálculo explícito de DA2. Si lo desea, puede calcular DA2 y luego usar eso para calcular
DZ2 pero, en la práctica, podrías colapsar ambos pasos en un solo paso para que termines en
DZ2 = A2-Y, igual que antes. Y tú también has Voy a escribir DW2 y DB2 aquí abajo. Tienes ese
DW2 = DZ2 * A1, transponer, y DB2 = DZ2. Este paso es bastante similar para la regresión
logística donde tuvimos ese DW = DZ * X excepto que ahora, A1 juega el papel de X y hay una
transposición adicional allí porque el relación entre la matriz de capital W y nuestros
parámetros individuales W, hay una transposición allí, ¿verdad? Porque W = [---] en el caso de
la regresión logística con un único resultado. DW2 es así, mientras que, W aquí era un vector
de columna, por eso tiene una transposición adicional para A1, mientras que no lo hicimos
aquí para la regresión logística. Esto completa la mitad de la retropropagación. Entonces, de
nuevo, puede calcular DA1 si lo desea. Aunque, en la práctica, el cálculo para DA1 y el DZ1
usualmente se colapsa en un solo paso y así lo que realmente implementará es que DZ1 = W2,
transponer * DZ2, y luego multiplicar por un elemento Producto de Y de G1 prime de Z1. Y,
solo para verificar las dimensiones, ¿verdad? Si tiene una nueva red que se ve así, Voy a poner
Y si es así. Si tiene N0, NX = N0 características de entrada, N1 cabeza en unidades, y N2 hasta el
momento. N2, en nuestro caso, solo una unidad de salida, entonces la matriz W2 es (N2, N1)
dimensional, Z2 y por lo tanto DZ2 van a ser (N2, N1) en una dimensión. Esto realmente va a
ser uno por uno cuando estamos haciendo una clasificación binaria, y Z1 y por lo tanto
también DZ1 van a ser N1 por una dimensión, ¿verdad? Tenga en cuenta que para cualquier
variable foo y D foo siempre tienen la misma dimensión. Es por eso que W y DW siempre
tienen la misma dimensión y de manera similar, para B y DB y Z y DZ, y así sucesivamente. Para
asegurarse de que las dimensiones de este todo coinciden, tenemos que DZ1 = W2 tiempos de
transposición DZ2 y luego este es un producto del elemento Y veces G1 primo de Z1.
Emparejando las dimensiones desde arriba, esto va a ser N1 por uno = W2 transpuesta,
Transponemos esto así que habrá N1 por N2 dimensional. DZ2 va a ser N2 por una dimensión y
luego esto, esta es la misma dimensión que Z1. Esto también es N1 por una dimensión, por lo
que el producto del elemento Y. Las dimensiones tienen sentido, ¿verdad? N1 por un vector
dimensional se puede obtener N1 por matriz dimensional N2 multiplicado por N2 por N1
porque el producto de estas dos cosas te dan una matriz N1 por una dimensión y entonces
esto se convierte el producto del elemento Y de dos vectores N1 por uno dimensional, y
entonces las dimensiones hacen juego. Un consejo al implementar un accesorio trasero. Si solo
te aseguras de que las dimensiones de tus matrices coinciden, entonces piensas a través de
cuáles son las dimensiones de las diversas matrices incluyendo W1, W2, Z1, Z2, A1, A2, etc. y
solo asegúrate de que las dimensiones de estas operaciones matriciales coinciden, a veces eso
ya eliminará muchos errores en el back prop. Todo bien. Esto nos da el DZ1 y finalmente, solo
para concluir DW1 y DB1, deberíamos escribirlos aquí, supongo, pero dado que estoy
ejecutando el espacio justo a la derecha del ligero, DW1 y DB1 están dados por las siguientes
fórmulas. Esto va a ser igual a DZ1 multiplicado por X y esto va a ser igual a DZ. Puede notar
una similitud entre estas ecuaciones y estas ecuaciones, que en realidad no es una
coincidencia porque X juega el papel de A0, por lo que X transpone es A0 transpuesta. Esas
ecuaciones son en realidad muy similares. Eso da una idea de cómo se deriva la
retropropagación. Aquí tenemos seis ecuaciones clave para DZ2, DW2, DB2, DZ1, DW1 y D1.
Permítanme tomar estas seis ecuaciones y copiarlas a la siguiente diapositiva. Aquí están.
Hasta ahora, tenemos que volver a escribir la propagación, porque si estás entrenando en un
solo ejemplo de entrenamiento en ese momento, pero no debería sorprender que, en lugar de
trabajar en un solo ejemplo a la vez, nos gustaría vectorizar a través de diferentes ejemplos de
entrenamiento. Recordamos eso para la propagación, cuando estamos operando con un
ejemplo a la vez, teníamos ecuaciones como esta, como dijimos A1 = G1 de Z1. Para vectorizar,
tomamos decir Z y los apilamos en columnas como esta en Z1M y llaman a esta capital Z.
Luego encontramos que al apilar cosas en columnas y definiendo la mayúscula de capital de
esta, acabamos de tener Z1 = W1 X + B y A1 = G1 de Z1, ¿verdad? Definimos la notación con
mucho cuidado en este curso para asegurarnos de que apilando ejemplos en diferentes
columnas de una matriz hace que todo esto funcione. Resulta que si pasas por las matemáticas
cuidadosamente, el mismo truco también funciona para la retropropagación, por lo que las
ecuaciones de vectorización son las siguientes. En primer lugar, si toma estos DZ para
diferentes ejemplos de entrenamiento y pila ellos como las diferentes columnas de una matriz
y lo mismo para esto y lo mismo para esto, entonces esta es la implementación de vectores y
luego aquí está la definición de, o así es cómo puedes calcular DW2. Hay este extra 1 / M
porque la función de costo J es este 1 / M de suma para Y = uno a M de las pérdidas. Al calcular
los remachadores, tenemos ese término adicional 1 / M tal como lo hicimos cuando éramos
computando los días de espera para la regresión logística. Esa es la actualización que obtienes
para DB2. De nuevo, algunos de los DZ y luego con un 1 / M y luego DZ1 se calculan de la
siguiente manera. Una vez más, este es un producto del elemento Y solo mientras que
anteriormente, vimos en la diapositiva anterior que este era un vector de N1 por una
dimensión. Ahora, esta es una matriz N1 por M dimensional. Ambos son también N1 por M
dimensional. Es por eso que ese asterisco es el producto del elemento Y y, finalmente, las dos
actualizaciones restantes. Tal vez no debería parecer demasiado sorprendente. Espero que eso
les dé una intuición de cómo se deriva el algoritmo de propagación inversa. En todo el
aprendizaje automático, Creo que la derivación del algoritmo de backpropagation es en
realidad una de las piezas matemáticas más complicadas que he visto, y requiere saber tanto
álgebra lineal como la derivada de matrices para volver a derivar desde cero desde los
primeros principios. Si eres un experto en cálculo matricial, usando este proceso, puedes
probar el algoritmo derivado tú mismo, pero creo que en realidad hay muchos practicantes de
aprendizaje profundo que han visto la derivación en aproximadamente el nivel que tienes visto
en este video y ya pueden tener todas las intuiciones y ser capaz de implementar este
algoritmo de manera muy efectiva. Si eres un experto en cálculo, ve si puedes derivar todo
desde cero. Es una de las piezas matemáticas más difíciles. Una de las derivaciones más
difíciles que he visto en todo el aprendizaje automático. De cualquier manera, si implementa
esto, esto funcionará y creo que tienes suficientes intuiciones para sintonizar y hacer que
funcione. Solo hay un último detalle que quiero compartir con usted antes de implementar su
red neuronal, que es cómo inicializar los pesos de tu red neuronal. Resulta que inicializar tus
parámetros, no a cero, sino al azar, resulta ser muy importante para entrenar su red neuronal.
En el siguiente video, verás por qué.
Inicialización aleatoria
Cuando cambias tu red neuronal, es importante inicializar los pesos al azar. Para la regresión
logística, estaba bien inicializar los pesos a cero. Pero para una red neuronal de inicializar los
pesos a los parámetros a cero y luego aplica el descenso de gradiente, no funcionará. Veamos
por qué. Entonces tienes aquí dos funciones de entrada, entonces n0 = 2 y dos unidades
ocultas, entonces n1 = 2. Y entonces la matriz asociada con la capa oculta, w 1, va a ser dos por
dos. Digamos que lo inicializas a todos los 0, entonces 0 0 0 0, matriz de dos por dos. Y digamos
que B1 también es igual a 0 0. Resulta que inicializar los términos de sesgo b a 0 está
realmente bien, pero inicializar w a todos los 0 es un problema. Entonces el problema con esta
formalización es que para cualquier ejemplo que le dé, tendrá que a1, 1 y a1,2, será igual,
¿verdad? Entonces esta activación y esta activación serán las mismas, porque estas dos
unidades ocultas están computando exactamente la misma función. Y luego, cuando calcula la
propagación inversa, resulta que dz11 y dz12 también será del mismo color por simetría,
¿verdad? Ambas unidades ocultas se inicializarán de la misma manera. Técnicamente, por lo
que estoy diciendo, Estoy asumiendo que los pesos salientes o también idénticos. Entonces
eso es w2 es igual a 0 0. Pero si inicializas la red neuronal de esta manera, entonces esta
unidad oculta y esta unidad oculta son completamente idénticas. A veces dices que son
completamente simétricos, lo que significa que están completando exactamente la misma
función. Y por tipo de una prueba por inducción, resulta que después de cada iteración de
entrenamiento, sus dos ocultos las unidades todavía están computando exactamente la misma
función. Dado que [INAUDIBLE] muestra que dw será una matriz que se ve así. Donde cada fila
toma el mismo valor. Entonces, realizamos una actualización de peso. Por lo tanto, cuando
realiza una actualización de peso, w1 se actualiza como w1-alfa multiplicado por dw.
Encuentra que w1, después de cada iteración, tendrá la primera fila igual a la segunda fila.
Entonces, es posible construir una prueba por inducción de que si inicialice todas las formas,
todos los valores de w a 0, luego porque ambas unidades ocultas comienzan a computar la
misma función. Y ambas unidades escondidas tienen la misma influencia en la unidad de
salida, luego, después de una iteración, esa misma afirmación sigue siendo verdadera, las dos
unidades ocultas son simétricas. Y por lo tanto, por inducción, después de dos iteraciones, tres
iteraciones, etc. no importa cuánto tiempo entrenes tu red neuronal, Ambas unidades ocultas
todavía están computando exactamente la misma función. Entonces, en este caso, no tiene
sentido tener más de una unidad oculta. Porque todos están computando lo mismo. Y, por
supuesto, para redes neuronales más grandes, digamos de tres características y tal vez una
gran cantidad de unidades ocultas, un argumento similar funciona para mostrar que con una
red neuronal como esta. [INAUDIBLE] dibujando todos los bordes, si inicializa los pesos a cero,
entonces todas tus unidades ocultas son simétricas. Y no importa cuánto tiempo estés
actualizando el centro, todos continúan calculando exactamente la misma función. Entonces
eso no es útil, porque quieres lo diferente unidades ocultas para calcular diferentes funciones.
La solución a esto es inicializar sus parámetros al azar. Así que esto es lo que haces. Puede
establecer w1 = np.random.randn. Esto genera una variable aleatoria gaussiana (2,2). Y
generalmente, multiplicas esto por un número muy pequeño, como 0.01. Entonces lo
inicializas a valores aleatorios muy pequeños. Y luego b, resulta que b no tiene el problema de
simetría, lo que se llama el problema de ruptura de la simetría. Entonces está bien inicializar b
a solo ceros. Porque siempre que w se inicialice al azar, comienzas con las diferentes unidades
ocultas que computan cosas diferentes. Y entonces ya no tienes este problema de ruptura de
la simetría. Y de manera similar, para w2, vas a inicializar eso aleatoriamente. Y b2, puedes
inicializar eso en 0. Entonces, quizás se pregunte, ¿de dónde vino esta constante y por qué es
0.01? ¿Por qué no poner el número 100 o 1000? Resulta que generalmente preferimos
inicializar los pesos a valores aleatorios muy pequeños. Porque si está utilizando una función
de activación tanh o sigmoidea, o el otro sigmoide, incluso solo en la capa de salida. Si los
pesos son demasiado grandes, luego, cuando calcules los valores de activación, recuerda que z
[1] = w1 x + b. Y luego a1 es la función de activación aplicada a z1. Entonces, si w es muy
grande, z será muy, o al menos algo los valores de z serán muy grandes o muy pequeños. Y
entonces, en ese caso, es más probable que termines en estas partes grasas del tanh función o
la función sigmoidea, donde la pendiente o el gradiente es muy pequeño. Lo que significa que
el descenso del gradiente será muy lento. Entonces el aprendizaje fue muy lento. Así que solo
un resumen, si w es demasiado grande, es más probable que termines incluso al comienzo del
entrenamiento, con valores muy grandes de z. Que causa que su tanh o su función de
activación sigmoidea se sature, por lo tanto, ralentizando el aprendizaje. Si no tiene ningún
sigmoide o Las funciones de activación de tanh en toda su red neuronal, este es un problema
menor. Pero si estás haciendo una clasificación binaria, y tu unidad de salida es sigmoidea
función, entonces simplemente no desea que los parámetros iniciales sean demasiado
grandes. Entonces, es por eso que multiplicar por 0.01 sería algo razonable de probar, o
cualquier otro pequeño número. Y lo mismo para w2, ¿verdad? Esto puede ser aleatorio.
Aleatorio. Supongo que esto sería 1 por 2 en este ejemplo, multiplicado por 0.01. Falta una s
allí. Finalmente, resulta que a veces pueden ser mejores constantes que 0.01. Cuando estás
entrenando una red neuronal con solo una capa oculta, es una red neuronal relativamente
poco profunda, sin demasiadas capas ocultas. Establecerlo en 0.01 probablemente funcione
bien. Pero cuando estás entrenando una red neuronal muy profunda, entonces es posible que
desee elegir una constante diferente de 0.01. Y en el material de la próxima semana,
hablaremos un poco sobre cómo y cuando es posible que desee elegir una constante diferente
de 0.01. Pero de cualquier manera, generalmente terminará siendo un número relativamente
pequeño. Entonces eso es todo por los videos de esta semana. Ahora sabe cómo configurar
una red neuronal de una capa oculta, inicialice los parámetros, haga predicciones utilizando.
Además de calcular derivados e implementar el descenso de gradiente, usando backprop.
Entonces, deberías poder hacer los cuestionarios, así como los ejercicios de programación de
esta semana. La mejor de las suertes con eso. Espero que te diviertas con el ejercicio
problemático, y esperamos verte en los materiales de la semana cuatro.

Вам также может понравиться