Está en la página 1de 17

Cómo

funcionan las
redes neuronales y
cómo se pueden aplicar a situaciones de riesgo.

¿Pueden realmente ayudar a la sociedad?

18/11/2021

Las redes neuronales són básicamente como las neuronas de nuestro cerebro. Ya que trabajan en
conjunto para aprender una acción determinada.

Índice:
1º- Introducción.

2º- Ejemplo.

3º- Neuronas en conjunto.

4º- Ejemplo.

5º- Cómo aprenden las redes neuronales.

6º- Ejemplo.
7º- El por qué de la existencia de este informe.

8º- Bibliografía.

9º- Apéndices.

Introducción:

El tema del cual se va a hablar son las redes neuronales. Estas existen desde mediados del siglo
pasado. El problema es que en esos tiempos la tecnología no era lo suficientemente potente como para
procesar estos tipos de cálculos. Al pasar de los años, o de los siglos, la tecnología ha ido cogiendo
más eficiencia y por ende mayor potencia de cálculo para poder soportar esta tecnología basada en
inteligencia artificial.

Estas pueden ser usadas en muchos sitios como: reconocimiento de caracteres, de imágenes, de
voz,predicción bursátil, generación de texto, traducción de idiomas, prevención de fraude, conducción
autónoma, análisis genético, pronóstico de enfermedades, y mucho más.

Las redes neuronales como todo sistema complejo siempre van a emerger de un conjunto de
elementos simples. Así que ahora mismo vamos a explicar cómo es que funciona una sola neurona
para luego ir a mayor amplitud.

Una neurona por sí sola tiene conexiones de entrada, las cuales pueden ser unas cuantas, o muchas.
Luego estas pasan al “centro de la neurona” y se hace un cálculo interno para luego sacar un valor de
salida. Básicamente esto se puede interpretar como una función matemática. El cálculo interno que
hace la neurona es una suma ponderada de los valores iniciales asignándoles otro valor, Esto para
ponerle un peso y afectar, dependiendo de la combinación de pesos, el valor final. En resumen, es
como modificar palancas, ya que dependiendo de cómo estas estén configuradas, el valor será
diferente.

Esto también se puede identificar como una regresión lineal ya que, en estas operaciones, hay un
término independiente que sirve para mover verticalmente la recta, y en este caso en las redes
neuronales se le llama sesgo, término de sesgo, o BIAS, por sus siglas en inglés.

Y en una red neuronal siempre se va a representar como B su valor inicial y su valor predeterminado
va a ser uno.

Ejemplo:

Ahora un ejemplo de la fuente para entender mejor lo que es una red neuronal. Imaginemos que
nosotros queremos tener una noche perfecta y nuestros factores para tener una noche satisfactoria son:
tener realidad virtual y nachos. Vamos a ejemplificar con una neurona. En este caso ambas variables
(La realidad virtual y los nachos) serán variables binarias es decir su valor sólo puede ser 0 ó 1 y esto
indicará si hay nachos o realidad virtual, de manera similar, va a representar si nuestra noche ha sido
satisfactoria o no. Pero la neurona tal y como funciona ahora mismo, actúa como un modelo de
regresión lineal y si uno sabe cómo funciona este modelo nos da un resultado numérico continuo y no
una variable binaria. La solución más constante es evaluar el resultado de la regresión lineal, y si éste
supera un cierto umbral asignado, entonces el resultado de la regresión lineal va a terminar siendo
cero o uno. Como en la neurona contamos con el término de sesgo podemos asignarle un valor
equivalente a lo opuesto del umbral y así podemos escribir estas fórmulas de manera más sencilla.
Gracias a lo planteado anteriormente, el valor de salida dependerá si el resultado del cálculo es mayor
o menor que cero.

Hemos dicho que para que nuestra noche sea totalmente satisfactoria, o sea que la variable de salida
equivalga a uno, debemos tener las dos variables activadas. O sea que haya nachos y realidad virtual.
Cualquier otra combinación hará que la noche imaginaria no sea tan interesante. Con esta información
formaremos una tabla para posicionar los datos de manera más organizada.

Entonces, lo que tenemos que hacer ahora es ir variando los factores de nuestros parámetros para ver
cuál combinación nos favorece para completar la gráfica. Al final encontraremos una combinación
para que nuestra tabla quede bien.

Esta misma tabla, se puede representar de manera visual

Y al mismo tiempo de manera más técnica, representando una puerta lógica and.

Una vez acabado el ejemplo, procedo a explicar cómo es que una sola neurona interactúa con las
demás neuronas para hacer procesos complejos.

Hay un tipo de puerta lógica llamada, XOR, que luce algo así.

La cuestión es que para hacer una modelación de una puerta XOR, se necesita más de una neurona, ya
que esta solo puede dibujar una recta en el plano, pero con dos se puede hacer la correcta modelación.
Neuronas en conjunto:

Una forma de organizar a las neuronas sería ponerlas en una misma columna, o, mejor dicho, una
misma capa. Las neuronas que están en la misma capa recibirán la misma información de entrada de
la anterior capa. Si logramos hacer tres capas con más neuronas, distribuidas de manera equitativa o
ordenada, les podemos asignar nombres. La primera capa de todas se llama capa de entrada, la
segunda capa oculta y la tercera, capa de salida.

Al mismo tiempo, cuando en vez de colocar dos neuronas en la misma capa, ponemos a dos neuronas
en diferentes capas, reciben la información de manera secuencial, además una neurona recibe la
información procesada por la neurona anterior. Unas ventajas de hacerlo de esta manera, es que la red
pueda aprender de manera jerarquizada.

Si recordamos el ejemplo anterior, la neurona recibe dos variables que dependiendo de cómo
estuvieran organizadas podían formar una noche perfecta. Las variables eran nachos y Realidad
virtual. Pero este ejemplo se puede transformar en algo más complejo. Tal vez lo que realmente
queremos saber es si sacaremos buena nota en el próximo examen. Para esto podemos agregar una
neurona más y dos variables que sean, si estamos motivados para el examen, y la dificultad de este.
Entonces tenemos dos neuronas, Neurona “a” y neurona “e” en una capa con dos funciones asignadas.
La neurona “a” determina si nos ha sido satisfactoria la noche, y la otra neurona, si estamos motivados
para el examen. Al final empezamos con cuatro variables, Nachos y realidad virtual para la neurona
“a” y estar motivados para el examen y complejidad de este para la neurona “e”. Al ser procesadas,
terminan siendo dos. Si nos hemos entretenido, y si estamos motivados. Ahora vamos a agregar una
tercera neurona en la segunda capa. Y a esta le asignamos el rol de saber si sacamos buena nota en el
examen. Para esto tendrá que ver que las dos variables sean mayor a cero.

En el párrafo anterior se ve que solo hay dos capas y por lo aprendido anteriormente, podemos
identificar que la primera capa es la capa de entrada, y la segunda es la capa de salida.

Cuantas más capas agreguemos, más complejo va a ser el aprendizaje, y esto se llama “deep
learning”. Pero hay un problema y es que no nos debemos olvidar de que las redes neuronales son
regresiones lineales, y por ende lo que estamos haciendo es concatenar diferentes operaciones del
estilo, pero matemáticamente al sumar muchas líneas rectas, equivale a hacer solo una operación.
Entonces toda la red compleja de neuronas se colapsa para convertirse en solo una. Pero
evidentemente hay una solución a este problema.

Lo que uno necesita hacer para arreglar el colapso es que la suma de todas las regresiones lineales, no
de una línea, y la forma de hacer esto es deformandola. Entonces es cuando podemos hablar de la
función de activación. Que participa en el “centro” de la neurona, o sea, en el cálculo de la regresión.
Si recordamos la explicación de páginas anteriores, lo que hace la neurona es hacer una suma
ponderada de las variables de entrada, pero ahora, en vez de usar ese valor inmediatamente, hay que
“pasarlo” por la función de activación, que se representa de la siguiente manera: f(x). Entonces lo que
hace la esta función, es distorsionar el valor de salida.

Existen varias funciones de activación, de hecho, el umbral que aplicamos a las regresiones lineales
en el primer ejemplo, para que se convirtieran en valores binarios, és una función de activación. El
nombre de esta función es la función escalonada, y se representa de la siguiente manera.
Como se puede ver, lo que nos cuenta esta función es que para un valor de entrada mayor al umbral el
output es 1 y si es inferior es igual a 0. Se llama escalonada, porque el cambio de valor se produce de
manera instantánea.

Otra función que de la cual puedo hablar es la Sigmoide:

Como vemos la distorsión que produce hace que los valores muy grandes se saturan en uno y los
valores muy pequeños se saturan en cero. Por tanto, con esta función sigmoidea no sólo conseguimos
añadir la deformación que estamos buscando sino que también nos sirve para representar
probabilidades que siempre vienen en el rango de 0 a 1. Esta función también nos permite representar
probabilidades.

Similar a la anterior tenemos también la función tangente hiperbólica.


Tiene una forma similar a la sigmoides, pero cuyo rango varía de menos uno a uno.

Y finalmente otro tipo de función de activación muy utilizada es la unidad rectificada lineal.

Básicamente, se comporta como una función lineal cuando es positiva y constante a cero cuando el
valor de entrada es negativo.

Ejemplo:

Antes que nada, todo esto lo pudimos ver al principio, cuando mostramos de manera más intuitiva la
tabla de variables y sus salidas. En el primer ejemplo podíamos ver a una neurona intentando
clasificar dos grupos a partir de las variables, y en ese momento es cuando usamos una función de
activación escalonada, y una forma de ver geométricamente esta función es la siguiente.
Lo que podemos ver es un plano generado por una neurona, pero que está distorsionado por la función
de activación escalonada. Lo que estamos viendo es la función escalonada en un plano tridimensional.
Al final, todo lo que esté encima del plano, es un grupo, y lo que esté debajo del plano, es otro.

En la siguiente imagen podremos ver cómo es que se ven las otras funciones.

Ahora sí, podemos dar un ejemplo.

Imaginemos que tenemos un cúmulo de células, y que en el medio hay una célula cancerígena, o sea
las células sanas están rodeando a la célula cancerígena. Para hacer que la neurona module el plano,
tenemos que seguir los pasos. Cuando lleguemos al último, tendríamos que aplicar la función de
activación para distorsionar al plano. Pero hay un problema, y es que hasta ahora, lo que vemos sigue
siendo una línea recta que separa los dos grupos. Lo que nosotros buscamos es separar los grupos de
manera que se pueda representar a la célula cancerígena en un grupo específico y a las células sanas
en otro. La forma de buscar una línea curvada que forme un círculo o grupo en el medio, sería formar
capas en una red neuronal. Como tenemos las funciones lineales, ya podemos hacer redes más
complejas de neuronas sin hacer que colapsen. En la capa oculta tendríamos que poner cuatro
neuronas. Y el rol que debe tener cada una es cambiar el plano, evidentemente, todas las neuronas
tendrían un plano diferente asignado. Al final dependiendo de los datos que se pongan al principio, se
lograran formas diferentes. Pero al hacer la combinación correcta, lo que las neuronas habrán logrado
es acoplar todas las orientaciones de planos que las neuronas hicieron y sumarlas. Quedando en esta
forma.
Este plano nos sirve, ya que representa de manera correcta nuestra situación, que sería modular la
célula cancerígena, y las células sanas en diferentes grupos.

Cómo aprenden las redes neuronales:

El ejemplo de la neurona del principio de este informe, es un ejemplo muy simple de una red
neuronal, y es la precursora de las redes neuronales actuales. En 1950 esta mini red neuronal era
llamada Perceptrón. Y antes, se creía que esta red neuronal primitiva era la solución a muchos
problemas, pero como nosotros ya mencionamos, este tipo de red neuronal precursora tiene muchas
limitaciones Una de las limitaciones ya dichas, es que esta neurona solo trabaja con problemas
lineales siendo necesario crear más neuronas para abarcar problemas no lineales y más complejos.
Pero este es el problema. El método que se utilizaba para hacer que el Perceptrón aprendiera de
manera automática, no era extensible a redes más complejas. O sea, existían redes neuronales, pero las
personas en esa época no sabían cómo entrenarlas. Por esta causa, hubo un tiempo de quince años en
los que la tecnología de las redes neuronales no avanzó, y este periodo fue llamado como “El invierno
de la inteligencia artificial”.

Pero en 1986 es cuando Rumelhart, Hinton y Williams decidieron publicar un libro en el que daban a
luz un nuevo método para que las redes neuronales pudieran aprender de manera muchísimo más
efectiva y correcta. Este método se llamó Back-Propagation.

Para abordar este método, primero necesitamos saber lo que es el descenso del gradiente. El método
de descenso por gradiente, gradient descent de ahora en adelante, es uno de los algoritmos de
optimización más populares en aprendizaje automático, particularmente por su uso extensivo en el
campo de las redes neuronales. Gradient descent es un método general de minimización para
cualquier función f.

Un escenario común en aprendizaje automático es el supervisado, en donde se busca aprender una


función que tome como entradas un conjunto de valores y que produzca cierta señal. Por ejemplo:
predecir si una imagen es de una cara o no, o si un audio pertenece a cierto género, o si un tweet es
irónico o no. Para lograr esto en un esquema supervisado tenemos varios ejemplos de cómo lucen
casos en los que la imagen es una cara, el audio es cha-cha-cha y el tweet es irónico. También
tenemos casos cuando no es el caso.

De forma que tenemos:

Conjunto de entrada:

Y las salidas que debería producir

A este conjunto se les conoce como ejemplos de entrenamiento, y por cada xx de entrada se produce
una y. En el caso más sencillo x puede ser de varias dimensiones y y de una sola. yy puede ser
numérica (regresión) o categórica (clasificación), mientras que x de cualquier tipo o una combinación
de estas.

Lo que nosotros buscamos es establecer una relación entre las variables de entrada y de salida, y esto
se puede conseguir con un modelo. El modelo define cómo se relacionan las variables de entrada para
producir la salida. Por ejemplo, en el caso las entradas y salidas fueran uni-dimensionales (una
dimensión), ambas podrían generar un espacio bi-dimensional que podríamos definir a través del
modelo de una línea del tipo: y=mx+by=mx+b (regresión lineal).

Los modelos dependen de parámetros, en este ejemplo mm y bb, que podemos modificar para hacer
que el modelo se aproxime de la mejor forma a la salida. A estos dos parámetros los representamos
usando la notación \thetaθ, de tal forma que buscamos encontrar fθ(X)≈Y. Es decir que la función f
con los parámetros thetaθ de tal forma que para todos los valores X de entrada se aproxime a los
valores de salida YY correspondientes.

A nuestro modelo le podemos asignar diferentes valores a sus parámetros, algunos de estos harán que
fθ(X) aproximen mejor a Y. Para medir que tan bien nuestros parámetros definen a nuestra salida
podemos definir una función de costo J(θ) que mide la diferencia entre las salidas originales y las
salidas producidas por el modelo. Existen varias opciones para J dos de las más comunes:

Mean square error MSE


Mean absolute error MAE

En aprendizaje automático usamos gradient descent para encontrar los parámetros de nuestro modelo
que mejor definen nuestro conjunto de entrenamiento. La forma de lograr eso es minimizar la función
de costo J de la siguiente forma:

Esto quiere decir que queremos encontrar los parámetros θ que minimicen la diferencia entre las
salidas Y y las producidas por el modelo dependiente de θ. Entre menor la diferencia quiere decir que
el modelo θ aproxima mejor a la salida Y. Adaptando esto a gradient descent quiere decir que
iteraremos sobre una secuencia de valores de θ de la siguiente forma:

En dónde θ^ es una nueva posición para los parámetros que se acercan más al mínimo, es decir que
hacen que fθ(X) aproxime mejor a Y . En esta formulación:

● Nosotros escogemos θ y su f
● Nosotros escogemos J(θ)
● Nosotros escogemos k
● Lo único que queda por calcular es el gradiente ∇J(θ).

Antes de continuar, hay que mencionar que toda la información sobre la


gradiente fue sacada de https://turing.iimas.unam.mx/~ivanvladimir/posts/gradient_descent/
#:~:text=El%20método%20de%20descenso%20por,minimización%20para%20cualquier
%20función%20f.

Entonces, en resumen con el descenso de la gradiente conseguimos una estrategia perfecta para ajustar
los parámetros de una regresión lineal.

El truco que se usa es el de evaluar el error del modelo un punto del plano tridimensional y calcular
las derivadas parciales en dicho punto. Con esto teníamos un vector de direcciones que nos indicaba la
pendiente de la función, hacia donde el error incrementa, que se llama el gradiente y con eso nos
movíamos en la dirección contraria. Así teníamos una forma por la cual interactivamente podríamos ir
reduciendo el error del modelo como si la altura de una montaña se tratase.

Pero antes de modelar el descenso de la gradiente, necesitamos saber cual es la gradiente. Y para una
regresión lineal es fácil ya que solo se tienen dos parámetros:
Entonces, calcular la gradiente para cada uno de los parámetros es responder a la pregunta ¿cómo
varía el coste ante un cambio del parámetro w? Pregunta que de manera matemática se responde con
las derivadas parciales. Derivada parcialmente de la función de coste con respecto a cada uno de los
parámetros. En cambio, cuando se trabaja con redes neuronales, la situación se torna difícil. Aquí el
gradiente viene a ser el mismo concepto de antes, “¿cómo varía el coste cuando variamos un
parámetro?” Pero claro, aquí la forma en la que varía un parámetro puede afectar al resultado final y
por tanto al coste de la red neuronal así que termina siendo más complejo. Al final podemos decir que
el parámetro de una conexión de neurona entre neurona puede afectar al resultado final por ciertas
conexiones que lleguen al final, pero el mismo parámetro puede llegar al mismo resultado por otra
conexión de neurona entre neurona. Además el resultado también puede variar dependiendo de las
capas posteriores, así que las posibilidades empiezan a ser muchas y todo se complica demasiado con
este método. Entonces, sabemos quién varía el coste con respecto a cómo varía a los parámetros, pero
ver de qué neurona puede ser el error es difícil si revisamos cada conexión que existe entre todas las
neuronas de la red.

Por cierto, para poner contexto de lo difícil e ineficiente que es buscar entre todas las conexiones de
todas las neuronas. adjunto una imagen.

La solución de la ineficiencia la trae el Back-Propagation. Entonces vamos a hacer uso del descenso
de la gradiente para optimizar la función de coste usando el método de Back-Propagation.

Ejemplo:

Imaginemos que tenemos a un agricultor que cosecha granos de café con un proceso que él ha
elegido. Esos granos de café son enviados a una fábrica en la que se hace el café, luego llevan ese café
a una distribuidora, para ponerlos en los puntos de venta y que alguien compre ese café, lo prepare
para tener inspiración para hacer un dibujo, y publicarlo. Este dibujante lamentablemente recibió
bastantes críticas negativas de la gente. Entonces, ¿de quién es la culpa? Puede ser del dibujante, por
dibujar mal, Puede ser también la culpa del café, por no dar la motivación suficiente. O de la
distribuidora por hacer cosas que no debería. O por la fábrica por preparar mal el café. O del
cosechador por hacer mal su trabajo.

Para resolver el problema primero hay que aclarar que lo que hemos creado es una cadena de
responsabilidades. Que la podemos asemejar a una red neuronal donde cada nodo es una neurona que
se especializa en algo. Luego habría que descubrir porque el dibujante ha recibido críticas negativas.
Para eso, una forma de descubrir cual “neurona” de la cadena de responsabilidades ha fallado, es
revisar toda la cadena, y el nodo que se haya equivocado, cargarle responsabilidad con parte de ese
error.

La forma de hacer un análisis eficiente para revisar qué neurona se equivocó, es hacerlo de adelante
hacia atrás, osea al revés. Básicamente revisar desde la última capa hasta la primera. El hacer esto
tiene sentido porque en una red neuronal el error de las capas anteriores depende directamente del
error de las capas posteriores. Es decir, si vemos que el café no ha influido mucho en la opinión de los
críticos, entonces las capas anteriores a estas tampoco tienen mucho que ver. En cambio, si el café es
responsable de la opinión de los críticos, entonces también habría que revisar los nodos anteriores al
del café. Los beneficios de trabajar con este método es que es más eficiente que otros.

Lo que hace el Back-Propagation es escoger una capa que crea que se responsabiliza de la opinión de
los críticos y convertirla en la última capa. Lo que procedería a hacer la red es ver la última capa que
hemos elegido y responsabilizar a las neuronas sobre su error. Si hemos elegido el café “x”, que sería
un parámetro, para motivarnos y resulta que este es el responsable de las críticas, entonces el café “y”
y “h”, que son otros parámetros o variables de entrada, no tienen mucha responsabilidad de haber
hecho que el dibujo tuviera críticas negativas. Ese será el error de la neurona y lo utilizaremos para
ver cuánto hay que modificar en cada parámetro o variable de entrada en dicha neurona.

Este proceso lo podemos volver a repetir, volviendo a asignar una nueva última capa. La cual en este
caso sería la distribuidora, que es la antecesora de la neurona que “prepara el café” para aplicar un
porcentaje de error, por ser la nueva última capa. Todo esto es para que cuando lleguemos a la
primera capa, hayamos movido el error en todas las capas y habremos obtenido cuál es el error de
todas las neuronas y para cada uno de sus parámetros o variables de entrada. Lo ventajosos de este
método es que se hizo en solamente en una pasada.

Este proceso evidentemente se hace de manera automática, y es gracias a este método que las redes
neuronales son capaces de aprender de sus errores.
El por qué de la existencia de este informe:

Al principio de este informe se habló de todas las situaciones que puede resolver una red neuronal,
pero a lo que realmente está enfocado este informe es a lo que es el campo de la medicina. Para no
hacer que el tema se torne muy general, este informe se enfocará en presentar cómo es que pueden ser
aplicadas las redes neuronales en el campo de curar enfermedades ya existentes y crear curas para
enfermedades ya existentes y/o nuevas.

Primero se comentará sobre el hacer operaciones difíciles en humanos, como trasplantes de órganos,
tratamientos específicos, etc.

Es importante considerar que las redes neuronales empiezan a hacer operaciones ya que éstas son
capaces de aprender a hacerlas, no solo más rápido que los humanos, sino que lo saben hacer a la
perfección. Ya que en poco tiempo pueden aprenderse todas las posibilidades que pueda pasar en una
operación y saber qué hacer en esas ocasiones. Además el costo de esta puede ser más barato, ya que a
los trabajadores se les tiene que pagar mucho.

Básicamente si “contratamos” inteligencias artificiales para este campo, estaríamos asegurando la


vida de los pacientes.

Pero un problema es el qué se va a hacer con las personas que vayan a ser despedidas. Pues estas
podrían ser capacitadas para ser científicos, o hacer otros trabajos. Pero es que es elegir entre la vida
de los pacientes, o hacer que las personas tengan un trabajo “asegurado”. Es más correcta la primera
opción, pero para la segunda se pueden buscar soluciones.

En segundo lugar es necesario comentar cómo las redes neuronales pueden ser los principales agentes
para descubrir curas para enfermedades ya existentes. Una máquina a la cual le podemos introducir
todos nuestros conocimientos sobre el mundo, y hacer que esta resuelva la cura del cáncer es mucho
más poderosa que un humano. Es normal que logre alcanzar la cura, ya que a base de simulaciones,
practicará diferentes fórmulas para la cura en el cuerpo humano. Sería difícil hacerlo en estos tiempos,
pero con el avance de la tecnología se puede hacer realidad.

También se puede explicar cómo las redes neuronales podrían descubrir curas contra virus o otras
enfermedades que aún no sabemos que existen, no tendríamos que poner todos los datos del mundo,
sino que solamente habría que estudiar el virus a fondo y poner los datos en la red neuronal. Al final
esta se encargaría de evadir todos los síntomas.

Tomemos como ejemplo al covid, si hubiéramos avanzado más con la tecnología, habríamos tenido
una cura muchísimo más rápido, gracias a las redes neuronales.
Bibliografía:

1º- Dot CSV \ (2018) \ (¿Qué es una Red Neuronal? Parte 1 : La Neurona | DotCSV) \ (Youtube) \
(https://www.youtube.com/watch?v=MRIv2IwFTPg&list=PL-Ogd76BhmcB9OjPucsnc2-
piEE96jJDQ).

2º- Dot CSV \ (2018) \ (¿Qué es una Red Neuronal? Parte 2 : La Red | DotCSV) \ (Youtube) \
(https://www.youtube.com/watch?v=uwbHOpp9xkc&list=PL-Ogd76BhmcB9OjPucsnc2-
piEE96jJDQ&index=2).

3º- Dot CSV \ (2018) \ (Jugando con Redes Neuronales - Parte 2.5 | DotCSV) \ (Youtube) \
(https://www.youtube.com/watch?v=FVozZVUNOOA&list=PL-Ogd76BhmcB9OjPucsnc2-
piEE96jJDQ&index=3).

4º- Dot CSV \ (2018) \ (¿Qué es una Red Neuronal? Parte 3 : Backpropagation | DotCSV) \
(Youtube) \ (https://www.youtube.com/watch?v=eNIqz_noix8&list=PL-
Ogd76BhmcB9OjPucsnc2-piEE96jJDQ&index=4).

5º- Dot CSV \ (2018) \ (¿Qué es el Descenso del Gradiente? Algoritmo de Inteligencia Artificial |
DotCSV) \ (Youtube) \ (https://www.youtube.com/watch?v=A6FiCDoz8_4).

6º- Ivan Vladimir Meza Ruiz \ (2016) \ (Descenso por gradiente (Gradient descent)) \
(https://turing.iimas.unam.mx).

Apéndices:

1º- Back propagation (Red neuronal) \ (2008) \ (Backpropagation) \


(http://redbackpropagation.blogspot.com/2008/07/historia.html) \ (Blogger).
2º- QuantumFracture \ (2017) \ (El Algoritmo de YouTube YA NO EXISTE | Redes Neuronales) \
(Youtube) \ (https://www.youtube.com/watch?v=JBZx03342eM).

También podría gustarte