La idea de este artículo es ir comentando como hago el curso de “Tensorflow Crash Course” de 7h de duración.

Part 1: Introduction to ML

Machine learning fundamentals

AI vs Neural Networks vs Machine learning.

AI vs Neural Networks vs Machine learning.

 

Artificial Intelligence: The effort to automate intellectual tasks normally perfomed by humans. Al principio no eran más que muchos if/else que conseguían emular al ser humano. A día de hoy ha evolucionado mucho. Puede ser simple o complicado. Ejemplos: Tic-tac, pacman.. en definitiva cualquier cosa que emule algún comportamiento inteligente del ser humano.

 

 Machine learning: En base a la data que se le pasa, es capaz de sacar sus propias reglas en vez de una persona programando el algoritmo. En vez del programador, lo hace la maquina solo. Requiere mucha información para funcionar bien

Deep learning (Neural networks): Es un tipo de machine learning que utiliza una representación por capas de la información.

 

Teaching Artificial Intelligence in the Primary Classroom - - Unit ...

Labels vs Features

The importance of Data

Una de las cosas más importantes a la hora de aplicar cualquier tipo de ai es tener un buen dataset, limpio, ordenado y lo suficientemente grande como para poder sacar features. Hay dos tipos:

  • Features: Input information que le das para que consigan sacar el output.
  • Label: Lo que estamos buscnado. Es el output de nuestro modelo.

 

 

 

Different types of Machine Learning

  • Unsupervised LearniWhat are the types of machine learning? - Towards Data Scienceng:
    • Input: Features & Labels
    • Output: Labels
    • Notes: Es el más común en machine learning.
  • Supervised Learning
    • Input: Features
    • Output: Que el modelo sea capaz de sacar labels de nuestros features sin que nosotros le digamos cuales. Grupos etc…
  • Reinforcement Learning:
    • Input: Enviroment & Reward (no data)
    • Output: El modelo trata de conseguir un resultado con el mayor número de rewards.
    • Notes: Aplicado normalmente a juegos. Suele necesitar muchas iteraciones para conseguir cosas con sentido

 

 

Part 2: Introduction to Tensorflow

TensorFlow es una biblioteca de software de código abierto para computación numérica, que utiliza gráficos de flujo de datos. Los nodos en las gráficas representan operaciones matemáticas, mientras que los bordes de las gráficas representan las matrices de datos multidimensionales (tensores) comunicadas entre ellos.

Main components

Tensorflow tiene dos componentes básicos:

  • Graphs: Es un graph de computaciones parciales (no se ejecutan, por lo que no se guarda su valor). Tienen relaciones entre los nodos . Luego se ejecutan en la sesiones.
  • Sessions: Ejecutar una parte y/o el graph entero. En este caso si que necesita memoria o poder computacional ya que es cuando realmente se ejecuta todo.

 

Importing Tensorflow

Utilizamos Google Colabs para ejecutar todo en la nube.

 

# Elegir versión de tensorflow 
%tensorflow_version 2.x 
# Importat Tensorflow 
import tensorflow as tf 
print(tf.version)

 

Tensors

“A tensor is a generalization of vectors and matrices to potentially higher dimensions. Internally, TensorFlow represents tensors as n-dimensional arrays of base datatypes.”

Each tensor has a data type and a shape.

  • Data Types Include: float32, int32, string and others.
  • Shape: Represents the dimension of data.
  • Degrees/Ranks: The number of dimensions.

 

string = tf.Variable("This is a string", tf.string) 
number = tf.Variable(324,tf.int16) 
floating = tf.Variable(3.547,tf.float64)
rank1_tensor = tf.Variable(["test"],tf.string)  #Rank = 1 = Multiple 1 depth array.
rank2_tensor = tf.Variable([["hola","adios"],["jaja","pepe"]],tf.string) # Rank = 2 = Matrix

tf.rank(rank2_tensor) # numpy = 2
tf.shape(rank2_tensor) # [2,2] (2 elementos por cada dimensión


Types of tensors:

  • Variable
  • Constant
  • Placeholder
  • SparseTensor

Todos ellos menos variable son constantes y no pueden cambiar su contenido.

Evalaute tensions

with tf.Session() as sess:

tensor.eval()

 

Part 3: Core Learning Algorithms

In this notebook we will walk through 4 fundemental machine learning algorithms. We will apply each of these algorithms to unique problems and datasets before highlighting the use cases of each.

The algorithms we will focus on include:

  • Linear Regression: Sacar un modelo para tratar de adivinar valores.
  • Classification
  • Clustering
  • Hidden Markov Models

It is worth noting that there are many tools within TensorFlow that could be used to solve the problems we will see below. I have chosen the tools that I belive give the most variety and are easiest to use.