Skip to content

dayan3847/machine_learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Machine Learning

uady

Universidad Autónoma de Yucatán Facultad de Matemáticas

Teacher: Dr. Victor Uc Cetina <victoruccetina@gmail.com>

Student: Ing. Dayan Bravo Fraga <dayan3847@gmail.com>

Practice 1.1: "Stochastic Gradient Descent"

GitHub

https://github.com/dayan3847/machine_learning/tree/master/dayan3847/dayan3847stochastic_gradient_descent

Readme

https://github.com/dayan3847/machine_learning/blob/master/dayan3847/stochastic_gradient_descent/README.md

Colab

Generate artificial data points

Open In Colab

Implement the Stochastic Gradient Descent algorithm

Open In Colab

Plot Results

Open In Colab

Create Animation

Open In Colab

Practice 1.2: "Binary Classification through Logistic Regression"

GitHub

https://github.com/dayan3847/machine_learning/tree/master/dayan3847/binary_classification

Readme

https://github.com/dayan3847/machine_learning/blob/master/dayan3847/binary_classification/README.md

Colab

Open In Colab

Practice 1.3: "Multi Layer Perceptron"

GitHub

https://github.com/dayan3847/machine_learning/tree/master/dayan3847/multi_layer_perceptron

Colab

Open In Colab

Practice 1.4: "Digit Detection"

Postal code recognition with convolutional network.

GitHub

https://github.com/dayan3847/machine_learning/tree/master/dayan3847/digit_detection

Colab

Open In Colab

Practice 1.5: "Transfer Learning"

Practice Use of previously trained keras convolutional network.

Code:

transfer_learning

Open In Colab

Practice 1.6: "Ada Boost"

GitHub

https://github.com/dayan3847/machine_learning/tree/master/dayan3847/ada_boost

Colab

Open In Colab

Practice 1.7: "Bandit Machine"

GitHub

https://github.com/dayan3847/machine_learning/tree/master/dayan3847/bandit

Experiment 1

Open In Colab

Experiment 2

Open In Colab

Experiment 3

Open In Colab

Practice 2.1: "Gaussian and Sigmoidal Basis Functions"

Implementation of linear regression and logistic regression algorithms with Gaussian and Sigmoidal Basis Functions.

Practice Instructions

  • Implementar los algoritmos de regresión lineal y regresión logística con funciones de base Gaussiana y sigmoidal.
  • Comparar y analizar el desempeño de estos dos algoritmos con respecto al uso de funciones de base polinomial, Gaussiana y sigmoidal.
  • Experimentar con datos artificiales generados con Sin(2 pi x) y Cos(2 pi x).

Basic Function Analysis

Open In Colab

Linear Regression

Generate Data

Open In Colab

sin(2*pi*x)

Open In Colab

cos(2*pi*x)

Open In Colab

Practice 2.2: "Analysis of Weights within a Neural Network"

Analysis of how weights vary within a neural network when it is being trained

Practice Instructions

Implementar una Python Notebook que permita observar el cambio en los pesos de una red MLP conforme se va entrenando.

Hacer experimentos con la base de datos iris, variando:

  • Número de capas: {2,3,4,5,6}
  • Función de activación: {Sigmoid, ReLu, Tanh}
  • Optimizer: {SGD, Adam}

La función de activación de la última capa debe ser Softmax.

Generar gráficas donde se observe como cambian los pesos durante el entrenamiento.

Open In Colab

Practice 2.3: "Multivariate Gaussian"

Linear Regression with two-dimensional Gaussian

Practice Instructions

Implementar un algoritmo de regresión lineal usando funciones de base Gaussianas para d dimensiones.

Practice 2.4: "Q-Learning with Tables"

Implementation of the Q-learning algorithm storing knowledge in tables.

Practice Instructions

Implementar el algoritmo Q-learning para una tarea con estados y acciones discretos.

Code: Notebook

Open In Colab

Preview:

Rewards Average

rewards_average

Best Action

best_action

Practice 2.5: "Q-Learning with Gaussian"

Implementation of the Q-learning algorithm storing knowledge in Gaussian base functions.

Practice Instructions

Implementar el algoritmo Q-learning para estados continuos y acciones discretas, usando un aproximador de funciones de base Gaussiana para almacenar la función Q.

Practice 2.6: "Q-Learning and Sarsa in Deep Mind" Final Project

Implementation of the Q-learning algorithm storing knowledge in a neural network.

Project Instructions

  • Implementar algoritmos de Q-Learning y Sarsa
  • Implementar un agente que use Reinforcement Learning en el entorno de Deep Mind para resolver el problema de “péndulo invertido”
  • Utilizar un modelo gaussiano para almacenar la “policy function” tomando como estado la posición y velocidad.
  • Las acciones serán discretas.
  • Q-learning con entradas contínuas en forma de vector de variables
  • Consideraciones: graficar curvas de recompensas para poder comparar diferentes variantes del algoritmo.

Q-Learning y Sarsa

  • Se realizó la implementación de los algoritmos Q-Learning y Sarsa para el problema "Cliff Walking".
  • Se realizaron experimentos variando los parámetros de los algoritmos (epsilon).
  • Se graficaron las curvas de recompensa para poder comparar diferentes variantes de los algoritmos.
  • Se concluyó un simulador para el problema "Cliff Walking" compatible con Deep Mind para hacer experimentos en segundo plano

Notebook:

Open In Colab

Q-Learning vs Sarsa (epsilon=0.1)

q_learning_vs_sarsa_epsilon_0_1 q_learning_vs_sarsa_epsilon_0_1

Q-Learning vs Sarsa (epsilon=00.1)

q_learning_vs_sarsa_epsilon_0_1 q_learning_vs_sarsa_epsilon_0_1

Péndulo Invertido

pendulum

  • Se realizó la implementación de un agente que usa Reinforcement Learning en el entorno de Deep Mind para resolver el problema de “péndulo invertido”.
  • Se utilizó un agente "Random" para generar datos del "state" y "reward" y asi obtener los minimos y maximos de cada variable.
  • Se creo un mecanismo para discretizar el "state"
  • Se implementó en el entorno de Deep Mind visual un mecanismo para realizar entrenamientos semi-supervisados.
  • Se realizó la implementación y entrenamiento de un modelo de tablas utilizando Q-Learning
  • Se realizaron entrenamientos variando los parámetros de los algoritmos (epsilon).
  • Se realizaron entrenamientos semi-supervisados.
  • Se definieron 5 acciones de forma discreta con los siguientes valores: [-.3, -.1, 0, .1, .3]
  • Se implementó una primera version del modelo "Gaussian" para almacenar la "policy function" tomando como estado la posición y velocidad.

Resultados

  • Los rangos de valores para el estado son los siguientes:
    • [-.5, .63]
    • [.2, 1]
    • [-1, 1]
    • [-1, 1]
    • [-5, 5]
  • Se logró entrenar el modelo de tablas utilizando Q-Learning
    • Inicialmente se utilizó un epsilon de 0.2
  • El la version 1 del modelo "Gaussian" presento problemas de rendimiento y no se pudo entrenar.
    • Se recomienda analizar la cantidad de pesos que contiene el modelo.
    • Analizar la matriz de covarianza para evitar interferencias entre las gausianas.

pendulum

About

Machine Learning Projects

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages