Neural Networks - Backpropagation

Sdílet
Vložit
  • čas přidán 26. 05. 2020
  • In this video I explain how a neural network is able to learn through the Backpropagation algorithm.
    Previous video about the perceptron:
    • Redes Neuronales: De l...
    Patreon: / bitboss
    Twitter: / bitboss0
  • Věda a technologie

Komentáře • 82

  • @BitBoss
    @BitBoss  Před 2 lety +16

    Una aclaración: En 1:35, 2:35 y 9:11 cuando digo "Error cuadrático medio" quise decir "Error cuadrático". En 9:31 cuando digo "Error cuadrático medio" es correcto porque me refiero al error cometido por el conjunto de entrenamiento, es decir, a la media de las sumas de los errores cuadráticos cometidos por cada neurona de la capa de salida para cada par de datos entrada-salida.

    • @carlosmendez6203
      @carlosmendez6203 Před 2 lety

      Un detalle, creo que la formula del error cuadratico médio tiene un error. No debería de ser E = 1/j ... en lugar de E = 1/2 ...?

    • @BitBoss
      @BitBoss  Před 2 lety

      ​@@carlosmendez6203 Por eso escribí el comentario, en 9:31 es correcto decir el error cuadrático medio porque dividimos entre el número de datos del conjunto de entrenamiento, es un error que nos sirve para medir si está mejorando o no la red. En cambio, en 1:35, 2:35 y 9:11 usamos el error cuadrático que viene dado por E = 1/2(Σ(y-o)^2) para actualizar los pesos y no tenemos por qué dividir entre j. Entiendo tu duda porque me surgió la misma en su día, tras muchas lecturas pude distinguir el uso de ambos errores, el error cuadrático para el entrenamiento y el error cuadrático medio para la medición del error de la red para el conjunto de entrenamiento, hay mucho lío con estos nombres en muchos sitios. Si te interesa, puedes echar un vistazo en la propia Wikipedia: es.wikipedia.org/wiki/Perceptr%C3%B3n_multicapa

  • @pablolinares7471
    @pablolinares7471 Před 3 lety +6

    Lo he visto entero como un película ... enganchado de pe a pá! Enhorabuena y, por favor, no dejes de subir videos ...

    • @BitBoss
      @BitBoss  Před 3 lety

      ¿Cómo voy a dejarlo con comentarios como el tuyo? Muchísimas gracias por tu apoyo ^^

  • @edwin-wt9uc
    @edwin-wt9uc Před 3 lety +15

    Me parece triste que solo tenga 344 visualizaciones, video muy dinámico, sencillo de entender y en poco tiempo, que si se quiere entrar más en detalle yo creo que con este video ya te da toda la base necesario para profundizar más el tema. Gracias :)

    • @BitBoss
      @BitBoss  Před 3 lety

      Gracias a ti por comentar y valorar tan bien el vídeo. La idea era lo que comentas, resumir todo lo posible pero al mismo tiempo no dejarme nada por el camino, muchas gracias por apreciarlo ^^

  • @forifdeflais2051
    @forifdeflais2051 Před 2 měsíci

    Me gustan estos videos. Lo explica muy bien. Gracias

  • @carnerocastro
    @carnerocastro Před 3 měsíci +1

    Me sumo a las felicitaciones @BitBoss. Es la mejor explicación que he visto hasta ahora sobre cómo aprende una red neuronal. Muchas, muchas gracias!!

    • @BitBoss
      @BitBoss  Před 3 měsíci +1

      Muchísimas gracias! Todavía recuerdo el infierno que fue hacerlo pero con comentarios así merece la pena. Tengo ganas de hacer un remake, a ver si llega pronto :)

  • @foobar43
    @foobar43 Před 2 lety +7

    He visto muchos vídeos en inglés y español de este tema. Y este es simplemente el mejor que he encontrado. Las visualizaciones son espectaculares. Pero específicamente cómo haces visual el "qué pasa en la red", "en qué parte específica de la red" y en "qué momento", encima con la ecuación de "cuánto".
    Ejemplo, consumo mucho del canal DotCSV y cuántos videos me recomienda CZcams. Últimamente he vuelto a retomar estos temas con otros cursos de la plataforma Platzi. Y definitivamente este es el que mejor explica estos conceptos en tan poco tiempo.
    Yo con mucho gusto pagaría por un curso completo suyo. Creo que tiene un don para la divulgación. Saludos.

    • @BitBoss
      @BitBoss  Před 2 lety +1

      Llevo un buen rato mirando tus mensajes sin saber qué responderte porque me has dejado sin palabras. Me encanta ver que te hayas fijado en los detalles que hago para evitar que puedas perderte en la explicación, hago todo lo posible para enseñar las cosas como me hubiera gustado que me lo explicasen a mí, para que cada persona de forma autodidacta pueda aprender si se lo propone. Agradezco muchísimo tus palabras, que te digan que eres el mejor y que pagarías por un curso mío me llena de motivación para seguir con esto. Muchas gracias por tu comentario, por tu apoyo y gracias de nuevo por confiar en este proyecto. Un saludo amigo 💚

    • @foobar43
      @foobar43 Před 2 lety +1

      @@BitBoss a ti por hacer estas maravillas, espero que en el futuro puedas tener el tiempo, las energías y la motivación de continuar con la serie de ML. Y lo dicho, si pones contenido exclusivo de pago yo me sumo 💪 y seguro otros también 🤟

    • @BitBoss
      @BitBoss  Před 2 lety

      @@foobar43 Por supuesto 😉 la serie de ML va a continuar 👀 pero para ello hace falta que termine lo poco que me queda sobre las bases de Python para que nadie se pueda perder por el camino en las implementaciones que haga. Sobre lo de pago tengo cosas en mente, lo que no sé cuándo llegarán, depende mucho de cómo evolucione este proyecto y espero con ganas que llegue ese momento 🤟 Muchas gracias de nuevo 😊

  • @AZ-ol5ku
    @AZ-ol5ku Před rokem +3

    Esta parte fue los mas dificil de entender para mi, si hubiera visto primero tu video todo hubiera sido mas facil xd, como dicen otros es el mejor video para aprender backpropagation

    • @BitBoss
      @BitBoss  Před rokem

      Muchas gracias por valorarlo 💚 Ojalá mi vídeo te hubiese ayudado en su momento 😔

  • @danielechavezs7502
    @danielechavezs7502 Před rokem +2

    Amigo es increíble lo bien que explicas a detalle como funciona cada parte del proceso. Y mas sorpréndete aun las visuales, son excelentes complementan la explicación a la perfección.
    Después de leer varios artículos al respecto sobre el tema no había logrado comprender el backpropagation del todo, este video me ayudo muchísimo a entender el proceso de una manera muy clara, es justo como quería que me lo explicaran. Que buen video, gracias por compartir el conocimiento.

    • @BitBoss
      @BitBoss  Před rokem

      Muchas gracias por valorarlo :)))) aunque ahora veo el vídeo y me duele verlo por lo que he mejorado le tengo mucho cariño porque fue uno de los vídeos que más tiempo le di vueltas sobre cómo plantearlo para que se entendiera perfectamente. Además del tiempo que le dediqué confirmando lo que sabía por el caos que existe sobre este tema, por ejemplo definiendo de maneras distintas al error cuadrático medio de diferentes maneras en diferentes artículos, tuve que fijar un comentario a posteriori para dejar claro el concepto después de hacer otra investigación sobre el tema. De verdad, gracias por el comentario, me has animado ^^

  • @jonyosorio4813
    @jonyosorio4813 Před 3 měsíci

    La mejor explicación de todas las que vi. Excelente men, muchas gracias!

  • @deeper_soundfy5528
    @deeper_soundfy5528 Před rokem +1

    No entiendo absolutamente nada de la simbología de esas matemáticas. Y eso me frena en mis intentos de aprender sobre estos temas... No sé por dónde empezar .... En fin.. que gran trabajo y dedicación!!! Gracias loco! Saludos desde Argentina

    • @BitBoss
      @BitBoss  Před rokem +1

      Dime qué parte de la simbología no entiendes a ver si te puedo echar una mano ;) Muchas gracias por valorar el esfuerzo que le dedico! ^^

  • @ezf3087
    @ezf3087 Před 2 lety +1

    Claro y sencillo. Gracias por el vídeo.

    • @BitBoss
      @BitBoss  Před 2 lety

      Gracias a ti por apoyarme comentando ^^

  • @irvingheredia7575
    @irvingheredia7575 Před 8 měsíci +1

    Exelente explicación!

  • @Jaimetu0012
    @Jaimetu0012 Před 4 lety +2

    Maravilloso 👏👏👏

  • @mikec9333
    @mikec9333 Před 2 měsíci

    wow, simplemente una explicación muy buena

  • @stevenriosbonilla547
    @stevenriosbonilla547 Před 4 měsíci

    a día de hoy, eres el mejor explicando y sip, nadie lo explica como tú bro (:

  • @valeriaguerrero6195
    @valeriaguerrero6195 Před 9 měsíci +1

    Min 3:27 momento illuminati. Excelente video, mil, mil gracias.

  • @hevacho
    @hevacho Před rokem +1

    Muchas gracias... estaba mirando el backpropagation y el gradiente y no sabía si se aplicaba por cada entrada o una vez procesada la muestra. Me ha sido de mucha utilidad.

    • @BitBoss
      @BitBoss  Před rokem

      No sabes lo que me alegra leer que mi vídeo te ha ayudado. Muchas gracias por tu comentario me hace sentir que mereció la pena hacer el vídeo 💚

  • @alexanderariaslondono1731

    Excelente Explicación de las Redes Neuronales con Backpropagation

    • @BitBoss
      @BitBoss  Před 3 lety

      Muchísimas gracias, me alegro que te haya gustado ^^

  • @kevian182
    @kevian182 Před rokem +1

    Excelente video!

  • @damianandresuriarte8151
    @damianandresuriarte8151 Před měsícem +1

    En la capa oculta del video esta la didactica, tan importante como el contenido.

  • @taniaelizabethsandovalvale8739
    @taniaelizabethsandovalvale8739 Před 8 měsíci +1

    Me encantan tus videos! tienes una seguidora nueva y te recomiendo que subas cursos en Udemy, con gusto pagaría por tus cursos. Saludos!!!

    • @BitBoss
      @BitBoss  Před 5 měsíci

      Quiero activar la opción de miembros del canal pronto por si quieres apoyar, más adelante cuando termine la tesis si no tengo para comer seguramente acabe en Udemy xD Muchas gracias por valorar mi contenido 💚

  • @Luisenrique0021
    @Luisenrique0021 Před rokem +1

    Excelente material. Nuevo suscriptor !!!

    • @BitBoss
      @BitBoss  Před rokem

      Muchas gracias! Bienvenido! ^^

  • @chicoary
    @chicoary Před rokem +1

    Me han gustado mucho tus explicaciones. Son claras y detalladas de forma sencilla. Me gustaría mucho ver algo sobre Agnostic Weight Neural Network si es posible.

    • @BitBoss
      @BitBoss  Před rokem

      Muchas gracias! Le acabo de echar un vistazo y tiene buena pinta, no sé si le podré dedicar un vídeo entero por todo lo que tengo en mente pero que sepas que no es por falta de ganas jajaja gracias de nuevo 😊

    • @chicoary
      @chicoary Před rokem

      ​@@BitBoss, Lástima que esté muy ocupado. Sería estupendo ver sus dotes explicativas aplicadas al tema de la Weight Agnostic Neural Network (he cambiado el orden en el otro post).

  • @ramasori2604
    @ramasori2604 Před 5 měsíci +2

    Excelente video y explicación. Si se me permite matizar un poco: "Backpropagation" no es un algoritmo de aprendizaje (es del área del aprendizaje de máquina, pero no un algoritmo de aprendizaje). El método que explicaste es "Decenso de Gradiente", que no depende de Backpropagation. Algunos tipos de red incluso no lo necesitarían. Backpropagation es más bien un método de derivación automática; es decir, que mediante el almacenamiento de las derivadas calculadas a partir de la función de coste (en la última capa), las derivadas parciales de cada capa se obtienen "hacia atrás". Es la regla de la cadena; la derivada de la función de coste depende de la salida de la capa anterior (función de activación), que a su vez depende de la suma ponderada de esa capa, ... que a su vez... etc, etc. Entonces para derivar cada capa y darle el gradiente al algoritmo de decenso del gradiente se necesitan derivar funciones que dependen de funciones...
    Aquí el matiz es únicamente que Backpropagation no es el algoritmo mediante el cuál aprenden las redes neuronales, es simplemente un método para optimizar el cálculo de derivadas; que cuando tienes redes de muchas capas, se vuelve muy complejo si no las almacenas en memoria.
    Igualmente muy buen material :3

    • @BitBoss
      @BitBoss  Před 5 měsíci +1

      Antes de nada muchas gracias por tu comentario :3 El tema de las definiciones en este área ya de por sí es confusa y yo encima soy de la vieja escuela donde vemos el algoritmo de backpropagation como la regla delta generalizada. Puedes consultar en Wikipedia donde la definen “La propagación hacia atrás (también conocido como retropropagación del error o regla delta generalizada), es un algoritmo utilizado en el entrenamiento de estas redes, por ello, el perceptrón multicapa también es conocido como red de retropropagación (no confundir con la red de contrapropagación).” (es.wikipedia.org/wiki/Perceptrón_multicapa). En el vídeo explico lo que en su día a mí me enseñaron, backpropagation es un algoritmo que utiliza la regla delta (un algoritmo de descenso de gradiente) usada para una sola capa y la generaliza, al modificar los pesos con el gradiente es un algoritmo de optimización.
      Ahora, entiendo tu punto, porque esto es un problema de definiciones. Si vemos como dices que backpropagation refiere únicamente al cálculo del gradiente y que un algoritmo del descenso de gradiente es quién lo usa, efectivamente no sería un algoritmo de optimización (aunque sí podría seguir definiéndose como el algoritmo que calcula el gradiente). En la propia wikipedia en inglés lo menciona como bien dices pero también añade esto: “Strictly the term backpropagation refers only to the algorithm for computing the gradient, not how the gradient is used; but the term is often used loosely to refer to the entire learning algorithm - including how the gradient is used, such as by stochastic gradient descent.” (en.wikipedia.org/wiki/Backpropagation) de aquí el debate.
      Mientras entiendas cómo pueden aprender la estructura de datos que llamamos redes neuronales, está bien. Esto de las definiciones es más bien un debate sobre cómo se debería llamar a cada cosa. Particularmente, tengo sentimientos encontrados, mientras que entiendo tu punto y lo comparto en parte, no me termina de convencer ya que el descenso de gradiente es el conjunto de algoritmos que utilizan un gradiente para optimizar la solución de un problema pero no es particular de las redes neuronales y por tanto, llamar backpropagation a uno de los usados para las redes me parece también correcto, al igual que es Rprop (Resilient Backpropagation) otro algoritmo de descenso de gradiente para las redes neuronales.

    • @ramasori2604
      @ramasori2604 Před 5 měsíci +1

      @@BitBoss Tienes razón, es una cuestión de definiciones, por ello decía que se le define usualmente como algoritmo parte de aprendizaje, no como tal un algoritmo de aprendizaje, e influye mucho también el cómo te lo enseñan. En lo particular lo aprendí como procesos separados, es decir, "decenso de gradiente" como un método de optimización y "Backpropagation" como método exclusivo de derivación automática y después de eso, el "Método de aprendizaje" como una conjunción de algoritmos como los dos anteriores (y otros para el caso de adaptar el aprendizaje según el tipo de red).
      Está interesante esa nota en inglés de Wikipedia, voy a leer más al respecto. Igualmente muchas gracias por la retropropalimentación y sobre todo por el contenido. La dvd está muy bueno cómo explicas conceptos complejos de manera muy simple.
      Saludos desde la capa oculta no. 38 🤙🏻

    • @BitBoss
      @BitBoss  Před 5 měsíci +1

      @@ramasori2604 Me ha resultado interesante tu planteamiento porque lo considero necesario, en un futuro tengo pensado hacer un remake y para entonces investigaré un poco más sobre esto para mojarme y dar mi conclusión sobre las definiciones como he hecho con otros vídeos.
      Muchas gracias por valorar mi contenido! Me quedo a la espera de tu resultado desde la capa oculta no. 39 🤙

    • @ramasori2604
      @ramasori2604 Před 5 měsíci +2

      @@BitBoss Te paso el resultado, ahí me cuentas cómo me fue *ba dun, tsss* 🥁

  • @cristhian4513
    @cristhian4513 Před 3 lety +1

    perfecto

  • @luisfedericomadrid2678
    @luisfedericomadrid2678 Před 3 lety +1

    muy buena su explicación, gracias por subir este video, ahora si entendi bien como funciona el algoritmo Backpropagation

    • @BitBoss
      @BitBoss  Před 3 lety +1

      Muuuuchas gracias por tu comentario, saber que te ha ayudado me motiva a seguir con el canal :)

  • @bemdemfem
    @bemdemfem Před 4 lety +1

    eres muy bueno hee

    • @BitBoss
      @BitBoss  Před 3 lety

      Muchas gracias ☺️

  • @openjuy
    @openjuy Před rokem +2

    Muchas gracias por compartir tu conocimiento, quisiera saber cual es el criterio para elegir el numero de neuronas internas en el ejemplo de la codificación de números que usaste como ejemplo

    • @BitBoss
      @BitBoss  Před rokem

      Ensayo y error en mi experiencia, ni pocas capas para que tenga suficiente capacidad para detectar bien los patrones, ni muchas para evitar un sobreajuste y memorice el conjunto de entrenamiento, queremos que pueda abstraerse y categorizar posteriores ejemplos. Si te sirve, hace unos años hice un detector de caracteres y me suena que usé 2-3 capas con entre 10-30 neuronas en cada una. Muchas gracias por el comentario y mucho ánimo con lo que estés haciendo ^^

  • @hydemiss7958
    @hydemiss7958 Před 6 měsíci

    Una pregunta 5:03 , cuando pones la ecuación de delta le has introducido el signo negativo del gradiente? Pregunto porque cuando he calculado la derivada de dE/do , es decir la derivada del error respecto a la función de activación obtengo (oi-yi) y el delta me queda ,[oi (1-oi)(oi-yi)]. Ahora si multiplicó por el -1 que había delante de la fórmula que tenías expresada con el gradiente si me queda como muestras. A sido por eso?

    • @BitBoss
      @BitBoss  Před 5 měsíci +1

      Claro, la derivada dE/do es (y - o)(-1), en vez de multiplicarlo y dejarlo como (o - y) o aplicarlo al x_i dejándolo en -x_i como se ve en el vídeo, podemos dejar ese -1 para cambiar el signo de la fórmula y dejarlo todo más "bonito".

  • @angellaguna5374
    @angellaguna5374 Před 2 lety +1

    Muy buen video tendrás la programación?

    • @BitBoss
      @BitBoss  Před 2 lety +1

      Gracias Ángel 😊 En un futuro sí pero tengo algunos vídeos pendientes.

  • @ubarchamorrogallo7821
    @ubarchamorrogallo7821 Před 3 lety +1

    Holaa excelente video, muchas gracias! ocupas algún modulo de python para programar NN?

    • @BitBoss
      @BitBoss  Před 3 lety +1

      Lo que he usado hasta ahora ha sido Keras. Muchas gracias por tu comentario, me alegro que te haya gustado ^^

    • @ubarchamorrogallo7821
      @ubarchamorrogallo7821 Před 3 lety +1

      @@BitBoss Muchas Gracias de verdad 💕, Alguna documentación que recomienden para aprender Keras?

    • @BitBoss
      @BitBoss  Před 3 lety +1

      Acabo de darme cuenta de que no respondí a tu comentario, creo que CZcams Studio no notifica las respuestas a comentarios, lo siento. Sobre la pregunta, yo usé en su día la documentación oficial keras.io/api/

  • @nestedernest
    @nestedernest Před 3 lety +1

    1:16 → /¿Y como se usa una RNA epecificamente con el algoritmo genetico?

    • @BitBoss
      @BitBoss  Před 3 lety

      La red se usa igual, lo que cambia es el método con el que entrenas los pesos. Usando un algoritmo genético, tendrías una población de distintas redes representadas en cromosomas que evolucionarían aplicando distintos operadores en cada generación.

  • @blackhombr7928
    @blackhombr7928 Před rokem +1

    Eres la verga viejo

  • @User0-xv5il
    @User0-xv5il Před 4 měsíci

    he visto este video multiples veces durante varios meses ya que he estado aprendiendo del tema y sin duda es el mejor. sin embargo tengo una duda respecto a la función error cuadratico medio, ya que veo que está expresado como: ECM= 1/2(i = 1 -> n∑ [Y - Y^] )^2, donde y^ sería la función sigmoide, sin embargo no comprendo por que se divide esa sumatoria entre 2, he buscado en otras fuentes y la funcion ECM se expresa como la media del error al cuadrado, y si se tienen "n" neuronas en la capa de salida, debería dividirse entre "n" no?, es decir ECM= 1/n(i = 1 -> n∑ [Y - Y^] )^2, necesito ayuda

    • @erikasdg
      @erikasdg Před 4 měsíci +1

      algunos autores dividen entre dos para que cuando derives quede 1/n. De todos modos funciona igual porque lo que te interesa es la tendencia de que el error disminuya, entonces no importa si estas midiendo la tendencia del error entero o de la mitad del error.

  • @NaNo12Hacov
    @NaNo12Hacov Před 2 lety +1

    no lo tienes con el error cuadratico medio ? Gracias por le video. Salidos!

    • @BitBoss
      @BitBoss  Před 2 lety

      ¿A qué te refieres concretamente? Muchas gracias por tu comentario, saludos! ^^

    • @NaNo12Hacov
      @NaNo12Hacov Před 2 lety

      @@BitBoss pues he visto que este es un caso para clasificación y por eso quisiera para un problema de regresión, dónde la función de costo es calificación multiclase

    • @BitBoss
      @BitBoss  Před 2 lety

      El ejemplo del vídeo es una clasificación multiclase usando el error cuadrático medio como función de coste. Para calcular el error de la red para cada entrada-salida se calcula la suma de los errores cuadráticos de cada neurona de la capa de salida. La suma de estos errores divididos entre el número de entradas-salidas del conjunto de entrenamiento sería el error cuadrático medio.
      Si no lo tienes claro o sigues teniendo dudas te leo por aquí 😉

  • @jesusmanuelnietocarracedo9701

    Por qué la capa oculta tiene 10 y 5? Es aleatorio para explicar el ejemplo?

  • @JL-sg9rb
    @JL-sg9rb Před měsícem

    El primer vídeo en inglés o español que explica en profundidad backpropagation abordando el tema que otros evitan ( incluido 3brown1 blue) de cómo se van ajustando desde la última capa a la primera los pesos para minimizar el error.
    La calidad de tus vídeos no está bien representada por tus carátulas, producen desconfianza respecto a la calidad del contenido. En cualquier caso gracias por tu tiempo y la claridad y rigor de los temas que abordas

  • @victorsoteloherrera3804
    @victorsoteloherrera3804 Před 3 lety +1

    Crack

    • @BitBoss
      @BitBoss  Před 3 lety

      Muchas gracias tío ;)

  • @iizajm
    @iizajm Před 2 lety

    1:35, 3:20, 4:15

    • @BitBoss
      @BitBoss  Před 2 lety

      Hola Isabel, por curiosidad, ¿puedes decirme por qué has puesto estas marcas de tiempo?

  • @susanaacquarone7451
    @susanaacquarone7451 Před 3 lety

    -Demasiado comprimido. GRacis igual sirve como super resumen. No esta accesible las ecuaciones

    • @BitBoss
      @BitBoss  Před 3 lety +2

      Lo siento si está demasiado comprimido, es bastante difícil resumir el cómo funciona el algoritmo Backpropagation en 10 minutos, me alegro de que al menos te sirva de resumen ;)
      No sé a qué te refieres con lo de que no están accesibles, si lo que buscas son las ecuaciones para actualizar los pesos, están en el minuto 6:26.