[en] Nowadays the technology age that we are living in is generating massive amounts of data which requires automatic processing. Machine learning can help in mitigating this overload by finding patterns or regularities on data which contain relevant information for a specific task. Areas like robotics or medicine are using machine learning algorithms to decide the next move of a robot or to diagnose possible diseases given some symptoms. During the last year, the best Go player has been defeated twice by a Google artificial intelligence based on deep learning and reinforcement learning, their translator is improving every day, and their photo application already detects and identifies your friend's faces and the places where you are doing selfies. All this happens while Amazon decides what products you should buy and Tesla markets its autonomous cars. Probabilistic machine learning is based on the use of the probability theory rules so computers can identify patterns in data. Using probability theory allows these models to deal with uncertainty, a key aspect in decisionmaking. This type of machine learning separates the modeling process of the inference process. In this way, several inference algorithms can be applied in the same probabilistic model. This master thesis gives an overview of probabilistic programming frameworks. It focuses on the analysis in the variational approximation of Bayesian Inference and studies the use of Automatic Differentiation (AD) to automate it. This document has been written in a self-contained way to let the reader know exactly where each formula and each algorithm comes from. For this, a particular probabilistic model was chosen, Gaussian Mixture Model (GMM), with the aim of studying the use of AD in it, with Tensorflow library and using different Variational Inference (VI) methods.

[es] La era tecnológica que se vive actualmente está dando lugar a cantidades ingentes de información que requieren ser analizadas de forma automática. El machine learning puede ayudar a mitigar esta sobrecarga encontrando patrones y regularidades en los datos, los cuales pueden contener información relevante para realizar una determinada tarea. Áreas como la robótica o la medicina utilizan algoritmos de machine learning para decidir el siguiente movimiento que debe hacer un robot o para diagnosticar una posible enfermedad dados unos síntomas. Durante el último año, el mejor jugador de Go ha sido derrotado dos veces por un algoritmo de Google basado en deep learning y reinforcement learning, su traductor está mejorando cada día y su aplicación de fotos ya detecta e identifica las caras de tus amigos y los lugares donde te haces los selfies. Todo esto sucede mientras Amazon te aconseja qué productos deberías comprar y Tesla ya comercializa sus coches autónomos. El probabilistic machine learning se basa en el uso de las reglas de la teoría de la probabilidad para conseguir que las máquinas aprendan a identificar patrones en los datos. La utilización de la teoría de la probabilidad permite a estos métodos modelar la incertidumbre, un aspecto muy importante a la hora de tomar decisiones. Este tipo de machine learning permite separar la parte de modelización de la parte de inferencia. De esta forma, se pueden aplicar diversos algoritmos de inferencia independientemente del modelo probabilístico. Esta tesis de máster da una visión global del estado del arte en los frameworks de probabilistic programming, centra el análisis en torno a la aproximación variacional de Bayesian Inference e investiga el uso de Automatic Differentiation (AD) para automatizar ésta. Este documento se ha escrito de forma autocontenida con el objetivo de que el lector sepa exactamente de dónde provienen cada una de las fórmulas y algoritmos que aquí se explican. Para ello se ha seleccionado un modelo concreto, Gaussian Mixture Model (GMM), y se estudia el uso de la AD, a través de la librería Tensorflow, para su inferencia mediante diferentes métodos de Variational Inference (VI).