21/09/2021

Agenda


  • Introducción
  • ¿Qué es TensorFlow?
  • Paquete estimtf
  • Casos de uso
  • Conclusiones

Introducción


El paquete estimtf es un paquete de R para hallar los estimadores de máxima verosimilitud de parámetros de múltiples distribuciones de probabilidad y modelos de regresión lineal usando TensorFlow.



¿Qué es TensorFlow?


TensorFlow es una librería de código abierto creada por Google, la cual usa grafos de flujo de datos para llevar a cabo cálculos numéricos.



Grafos de flujo de datos


\[ \Large (5 \times 8) + (8 \times 11) \]

Grafos de flujo de datos


Cuando se trabaja con TensorFlow se construye un grafo de flujo de datos y posteriormente se crea una sesión de TensorFlow que permite ejecutar las operaciones y evaluar los tensores.

¿Qué es un tensor?

Un tensor es un arreglo de n dimensiones


Construcción de un grafo en R

# Importar libreria
library(tensorflow)
tf$compat$v1$disable_eager_execution()

# Construir grafo 
a <- tf$constant(5.0, dtype =  tf$float32)
b <- tf$constant(8.0, dtype =  tf$float32)
c <- tf$constant(11.0, dtype =  tf$float32)
producto <- tf$multiply(a, b) 
suma <- tf$add(b, c) 
resultado <- tf$add(producto, suma)
print(resultado)
## Tensor("Add_1:0", shape=(), dtype=float32)
# Crear una sesion de TF y correr el grafo
sess <- tf$compat$v1$Session()
sess$run(resultado)
## [1] 59

Paquete estimtf

Las principales funciones del paquete estimtf son:


mle_tf( )

Esta función permite hallar los estimadores de máxima verosimilitud de los parámetros de múltiples distribuciones de probabilidad usando los optimizadores de TensorFlow.


mlereg_tf( )

Esta función permite hallar los estimadores de máxima verosimilitud de los parámetros de múltiples modelos de regresión lineal usando los optimizadores de TensorFlow.




GitHub Repository: https://github.com/SaraGarcesCespedes/estimtf

Optimizadores de TensorFlow

Algoritmos que utilizan optimización numérica basada en gradientes para actualizar los parámetros de una función con el objetivo de minimizarla.

\[ \begin{align*} \boldsymbol{\theta}_{t+1} &= \boldsymbol{\theta}_{t} + \bigtriangleup \boldsymbol{\theta}_{t}\\ \bigtriangleup \boldsymbol{\theta}_{t} &= -\alpha \frac{\partial C(\boldsymbol{\theta}_{t})}{\partial\boldsymbol{\theta}_{t}} \end{align*} \]

Casos de uso

Conclusiones

  • El lenguaje de programación R provee una amplia variedad de funciones creadas para estimar parámetros de distribuciones y de modelos de regresión usando diversos métodos de estimación. El paquete estimtf fue diseñado con el objetivo de encontrar los estimadores de máxima verosimilitud de parámetros distribucionales y de regresión usando TensorFlow.
  • A pesar de que la librería TensorFlow y en particular sus optimizadores se utilizan principalmente para entrenar modelos de redes neuronales, con este paquete mostramos que también se pueden implementar para estimar parámetros distribucionales y de regresión.
  • Una de las principales ventajas del paquete estimtf es la posibilidad de estimar parámetros de distribuciones que aún no están implementadas en R. En este caso, el usuario debe proporcionar una función de R que contenga la función de masa/densidad de probabilidad de la distribución de interés.

Trabajo futuro

  • Teniendo en cuenta que el tiempo de ejecución es un factor muy importante al momento de elegir una función para llevar a cabo una tarea específica, es fundamental seguir trabajando para mejorar la eficiencia de las funciones incluidas en el paquete estimtf con el fin de proporcionar a los usuarios de R resultados menos tiempo.
  • Por ahora, el paquete estimtf tiene ocho distribuciones disponibles para las cuales el usuario solo debe proporcionar el nombre de la distribución. Para simplificar la implementación de la función mle_tf( ) y la función mlereg_tf( ), pretendemos seguir aumentando esta lista de distribuciones.
  • Es importante seguir explorando las funcionalidades y ventajas de TensorFlow para encontrar nuevas aplicaciones de esta librería en Estadística e integrarlas al paquete estimtf.










GRACIAS