Método de gradiente decreciente

Visitas: 106  
Tiempo total: 2 días con 3:5:16 hrs  

Esta publicación explica la implementación mostrando un ejemplo dinámico del algoritmo gradiente decreciente, que consiste en encontrar el mínimo local de una función. Se puede mencionar también, que gradiente decreciente es la base del algoritmo de inteligencia artificial backpropagation para la modificación de sus pesos, a continuación su explicación.

Algoritmo

El algoritmo de gradiente decreciente, se soluciona con la siguiente ecuación:

funcion theta

El objetivo es encontrar los valores correctos para theta sub i con el objetivo de poder aproximar los valores iníciales y así poder encontrar nuevos valores a partir de nuevos datos de entrada. La función de costos, sirve para determinar el costo de los valores theta sub i para la iteración actual, este costo lo podemos llamar tolerancia y entre más se acerca a cero, los valores de theta sub i tendrán una precisión más correcta.

funcion de costos

En cada iteración, para calcular los nuevos valores de theta sub i, se utiliza la siguiente ecuación, se puede observar que se tiene la derivada de la función de costos:

Repetir {

repetir theta sub j

}

En los videos al final de esta publicación se demuestra la derivada, entonces la función es igual a:

Repetir {

repetir theta sub j derivada

}

Como se actualizan los nuevos valores de theta sub i?

En la primera iteración, se tiene los valores iníciales de:

theta sub 0 = 1.2, 7, 6

Estos valores deben de ser seleccionados aleatoriamente (inicialmente), utilizando la funcion anterior se encuentra cada theta sub i, una vez se encuentran todos los valores se actualizan todas las thetas al mismo tiempo. Entonces, en mi ejemplo los nuevos valores serán:

theta sub 1 = 0.8509999999999999, 6.0537, 4.6698

iteraciones

Los siguientes pasos en el algoritmo, es encontrar el costo de theta sub i en cada iteración, hasta llegar a la tolerancia establecida.

Uso

Un ejemplo básico de la utilización de este algoritmo, es la siguiente tabla, en donde cada fila x sup j representa los distintos registros que un hotel ha almacenado, y cada columna x sub j representa diferentes parámetros, por ejemplo x sub 1 representa los días que los clientes se han hospedado en el hotel, x sub 2 representa la cantidad de dinero que gastaron en los distintos servicios que ofrece el hotel, y la función y podría representar la cantidad de recursos que son necesarios para satisfacer su demanda (El algoritmo puede ser utilizado también en el cálculo de los costos de un terreno, de acuerdo a distintos parámetros de entrada). Es necesario recordar que x sub 0 idealmente debe de ser inicializado con 1.

hotel

Para encontrar la solución, se seleccionan valores aleatorios de theta sub i, y si la cantidad de iteraciones excede el límite establecido, cada theta sub i se varía y se deberá de observar el costo final, si decrece o si crece se cambiaran los valores de theta sub i. En el ejemplo se llega a la conclusión que los valores iníciales de theta sub i deben de ser los siguientes (Encontrando la solución con solo 37 iteraciones):

theta sub 0 = 1.2, 7, 6

La solución es la siguiente:

solucion

Grafica de costos contra iteraciones

Al final de esta publicación se puede observar el ejemplo dinámico, la grafica de costos contra iteraciones es la siguiente (funciona correctamente en Google Chrome):

grafica

Significa que, el costo para los valores theta sub i de cada iteración deben de decrecer conforme aumenta la cantidad de iteraciones. Si la función de costos aumenta, el parámetro alfa establecido debe de decrecer.

Ejemplo dinámico

http://www.elconspirador.com/gradiente.html

Videos

Esta publicación fue creada totalmente gracias a la explicación del canal de Cursos de inteligencia artificial de la universidad de Standfort. Resulto bastante fácil de entender.

1. Multiple Features

2. Gradient Descent for Multiple Variables

3. Gradient Descent in Practice I Feature Scaling

4. Gradient Descent in Practice II Learning Rate

Referencias

[https://www.youtube.com/watch?v=FN6qhwU58us]
[https://www.youtube.com/watch?v=kjes46vP5m8]
[https://www.youtube.com/watch?v=7OHg3pF_I5c]
[https://www.youtube.com/watch?v=ezU59VxGTOo]
[http://es.wikipedia.org/wiki/Propagaci%C3%B3n_hacia_atr%C3%A1s]
[http://halweb.uc3m.es/esp/Personal/personas/jmmarin/esp/DM/tema3dm.pdf]
[http://www.tdx.cat/bitstream/handle/10803/9441/tjjmm1de1.pdf;jsessionid=D76193AC3C579C4C1DB8393C715ADD8D.tdx1?sequence=1]


Para recibir boletines de información, por favor escribe tu correo electrónico:

Por favor ingrese un correo electrónico valido.
Registrado correctamente!