Iniciación a Computer Vision con Machine/Deep Learning en R
4.6 (92 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
717 students enrolled

Iniciación a Computer Vision con Machine/Deep Learning en R

Entra en el mundo de la Visión por Computador reconociendo números manuscritos usando Machine y Deep Learning
4.6 (92 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
717 students enrolled
Created by David Manero
Last updated 9/2018
Spanish
Spanish [Auto]
Current price: $69.99 Original price: $99.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 18 hours on-demand video
  • 17 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • El curso se centra en el reconocimiento automático de números en la escritura manual. A través de este tipo de imágenes (números escritos a mano), vamos a ver diversas operaciones, métodos y algoritmos para clasificar los números manuscritos y predecir e interpretar nuevas imágenes. Además, aprenderás a utilizar R y plataformas de Deep Learning como H2O o TensoFlow.
Course content
Expand all 69 lectures 17:53:42
+ INTRODUCCIÓN
3 lectures 12:43

Introducción al curso Computer Vision con Machine y Deep Learning programando en R. En este curso trabajaremos estos conceptos desde R, con la ayuda del paquete Caret y otras librerías de Aprendizaje Automático y Profundo. Analizaremos el famoso fichero MNIST con decenas de miles de números manuscritos y etiquetados. A disfrutarlo!

Preview 04:53

Mi nombre es David Manero, Ingeniero de Telecomunicaciones, Data Scientist, Data Manager y Lindy Hopper. Aquí están mis 2 centavos.

Preview 01:51
+ ¿DE QUÉ HABLAMOS?
4 lectures 51:30

¿Qué es la Visión por Computador? Uno de los primeros puntos obligados en "¿De qué estamos hablando?" es tratar de tener una visión clara de lo que es la Visión por Computador. En este vídeo lo comentamos, lo definimos y veremos unos cuantos ejemplos muy interesantes.

Preview 14:33
+ PREPARACIÓN
7 lectures 56:21

¿Qué es R? Una descripción de qué es el lenguaje de programación R y su principales características, así como la presentación de RStudio, el IDE principal de este lenguaje.

¿Qué es R? ¿Y RStudio?
04:02

Video explicativo de como instalar R y RStudio en Mac, aunque es extensible a Linux y Windows.

Instalación de R y RStudio en Mac
02:48

El paquete caret, Classification And REgression Training, es un paquete muy utilizado para realizar modelos de clasificación y clusterización en Machine Learning en R.

En esta lección veremos sus principales características.

Paquete Caret
04:49

H2O y TensorFlow son sendas aplicaciones a las que denominaremos Plataformas de Aprendizaje y que nos permiten, con una instalación en nuestros equipos, acceder a un entorno de desarrollo de Data Science y Machine Learning profesional, incluso a través de un interfaz con R.

¿Qué es H20? ¿Y TensorFlow?
16:01

Instalación del entorno de H2O desde un dispositivo Mac. Será necesario instalar también un entorno Java SDK.

Instalación H2O
07:17

Instalación de TensorFlow en Mac. Será necesario también instalar un entorno Python.

Instalación Tensor Flow
11:25

En esta clase vamos a aprender a instalar librerías en RStudio, y a utilizar el comando source() para ejecutar código de R. Y, de paso, instalamos todas las librerías o paquetes que necesitamos en el curso.

Instalación de librerías necesarias
09:59
+ FUNDAMENTOS DE R
17 lectures 02:37:55

Aviso para los que han hecho otros cursos del instructor

Aviso
00:40

Comenzamos a familiarizarnos con RStudio y las primeras nociones de R. Donde están las cosas, para qué sirven los botones, etc...

Comenzamos también a manejarnos con las variables y su asignación en R.

Conociendo a R parte 1
10:50

Seguimos familiarizándonos con R y RStudio. 

Las operaciones más básicas con las variables numéricas y las alfanuméricas. 

También veremos las diferencias entre introducir comandos por consola, por fichero y ejecutándolo desde el editor de RStudio.

Conociendo a R parte 2
06:53

Comenzamos a realizar operaciones con variables en R.

Operaciones aritméticas y también operaciones lógicas, así como comandos condicionales para comprobar el uso de las operaciones lógicas.

Operadores
07:58

El primer objeto que veremos en esta sección son los vectores.

Veremos cómo asignarlos, y aprenderemos a operar con ellos. Operaciones aritméticas sobre vectores y cómo actúa R con vectores de distintos tamaños.

Objetos: vectores parte 1
07:03

Seguimos operando con vectores, comandos especiales para ellos, como sum, max, min, prod, etc...

Objetos: vectores parte 2
09:48

El objeto más importa para un científico de datos es el dataframe, que es la forma que tendrán nuestros datasets. 

Un dataframe es una matriz en la que las filas son las distintas observaciones y las columnas son las variables que hay de cada observación.

En esta primera parte generamos un dataframe con el que operaremos.

Objetos: dataframe parte 1
07:46

El objeto más importa para un científico de datos es el dataframe, que es la forma que tendrán nuestros datasets. 

Un dataframe es una matriz en la que las filas son las distintas observaciones y las columnas son las variables que hay de cada observación.

En la segunda parte vemos cómo hacer subsets del dataframe original y aprenderemos a acceder a cada uno de los datos.

Objetos: dataframe parte 2
07:05

El objeto más importa para un científico de datos es el dataframe, que es la forma que tendrán nuestros datasets. 

Un dataframe es una matriz en la que las filas son las distintas observaciones y las columnas son las variables que hay de cada observación.

En la tercera parte veremos la operaciones principales que podemos realizar con nuestros dataframes.

Objetos: dataframe parte 3
08:53

Las listas son un tipo especial de objeto que tiene una mejor performance en el uso dentro de R.

Permite guardar los datos de una forma más ordenada, y nos recuerda a formatos como JSON.

En la lección aprenderemos a generarlas en R y a operar con ellas.

Objetos: listas
09:30

El último objeto que veremos en este curso son las Series de Tiempo. Aunque no las utilicemos más adelante, conviene conocerlas, ya que son muy importantes para análisis de datos, por ejemplo, en el mundo del e-commerce, o para procesos en los que el tiempo es un factor muy importante.

Objetos: series de tiempo
06:32

Un poco de "teoría" de cómo funcionan los bucles en R

Bucles Explicación
07:24

Comenzamos a ver los bucles en acción en R. FOR y FOR anidados y WHILE.

Bucles parte I
16:25

Toca el turno del bucle REPEAT y los comandos BREAK y NEXT. Y también alguna consideración sobre cuando conviene hacer bucles y cuando no.

Bucles parte II
18:57

En este apartado vamos a ver cómo se utilizan las funciones en R y aprenderemos a hacer algunas.

Funciones
16:14

En este capítulo veremos algunos comandos para hacer visualización de datos.

Visualización Básica
11:14
Ejemplo uso de paquete Caret: SPAM
04:43
+ LOS DATOS: MNIST
3 lectures 41:37

Conoce el dataset MNIST, el fichero de dígitos manuscritos del Instituto de Estadística de U.S.

¿Qué es MNIST?
08:02

Empezamos a explorar el fichero MNIST haciendo una representación gráfica de los trazos de los distintos números. Veremos las tendencias al escribir los distintos dígitos del 0 al 9 y veremos, también, la representación del set de training (42.000 observaciones) que imprimiremos en un pdf.

Explorando los datos MNIST parte 1
16:59

Seguimos explorando los ficheros de MNIST, observaremos diversas características de los datos y haremos una comparación, por cada dígito, de la representación de escritura manual con la que se escriben.

Explorando los datos MNIST parte 2
16:36
+ MÉTODOS MACHINE LEARNING
15 lectures 04:59:55

Ya sabemos lo que es Machine Learning, pero vamos a ver cómo lo utilizaremos para tratar el fichero MNIST.

Machine Learning para clasificar los dígitos MNIST
13:10

Naïve Bayes es el método más ampliamente utilizado para hacer clasificaciones. Es un método sencillo y rápido.

Preview 20:28

Utilizamos Naïve Bayes para clasificar las observaciones del fichero MNIST y desarrollamos un modelo. Probaremos dos paquetes, el e1071, especializado en probabilidad y estadística, y que implementa un Naïve Bayes muy eficiente. Y el caret, que, como sabemos, contiene muchas implementaciones de algoritmos.

Preview 22:43

Near Zero Value y Principal Component Analysis son 2 métodos para reducir la dimensionalidad de un set de predictores. Se explican en esta clase.

¿Qué es NZV (Near-Zero Value)? ¿Y PCA (Principal Component Analysis)?
21:16

¿Cómo funciona el algoritmo Random Forest? Conoceremos este algoritmo, un poco de su historia y, sobretodo, cómo funciona y cómo se utiliza.

¿Cómo funciona Random Forest?
25:04

Utilizamos los dos métodos de reducción de dimensionalidad, así como el algoritmo Random Forest para su uso con el set de datos MNIST.

Método Random Forest sobre MNIST
21:42
Vamos a tratar de mejorar el resultado obtenido por Naïve Bayes.
Práctica con Naïve Bayes
3 questions
Vamos a probar distintas parametrizaciones para el algoritmo Random Forest
Práctica con Random Forest
2 questions

El algoritmo Support Vector Machine es uno algoritmo bastante joven, pero que se ha puesto muy de moda por sus buenos resultados.

¿Cómo funciona SVM (Support Vector Machine)?
09:46

Usamos SVM para clasificar los dígitos de MNIST y comprobaremos su eficacia.

Método SVM sobre MNIST
17:41

Las redes neuronales son fáciles de entender, pero es complicado controlarlas. Con esta clase trataremos de conocerlas y empezar a desentrañar sus misterios.

¿Cómo funcionan las Redes Neuronales?
19:53

Usamos Redes Neuronales para clasificar MNIST. La delgada línea que separa las Redes Neuronales del Deep Learning se hace todavía más difusa cuando observamos los resultados.

Método Neuranet sobre MNIST
29:24
Vamos a modificar varios parámetros del comando neuralnet para comprobar su afectación a la precisión.
Práctica Redes Neuronales
8 questions

Singular Value Decomposition es un nuevo método para factorizar y, por lo tanto, reducir la dimensionalidad de los predictores de un modelo.

¿Qué es SVD (Singular Value Decomposition)?
10:32

El K vecino más cercano es el algoritmo de distancias más conocido, juntamente con el K-means. El segundo no lo estudiaremos en este curso, ya que se usa generalmente para clusterizar, pero para clasificar, el K-NN es muy útil y eficaz.

¿Cómo funciona KNN (K-Nearest Neighbours)?
14:29

Veamos qué tal funciona el método SVD en conjunción con el K-NN cuando tratamos de clasificar dígitos manuscritos.

Método SVD-KNN sobre MNIST
32:12
En este ejercicio usaremos SVM con otra aproximación.
Práctica con SVM
1 question

Una novedad en este curso, usaremos un método distinto para, a partir de la información en píxeles que tenemos de MNIST, obtendremos una nueva representación de la información, esta vez mediante histogramas de gradientes orientados, en vez de por intensidad de píxeles. No reducimos dimensionalidad, sino que utilizamos una información totalmente nueva para utilizar como predictor.

¿Qué es HOG (Histogram of Oriented Gradients)?
24:33

Probamos el funcionamiento de HOG como origen de los predictores para un K-NN. ¿Funcionará mejor que otros métodos?

Método HOG-KNN sobre MNIST
17:02
Probaremos nuevas parametrizaciones de K-NN y también en el método HOG.
Práctica con K-NN
5 questions
+ PLATAFORMAS DEEP LEARNING
7 lectures 02:29:47

Conocido lo que es Deep Learning, vamos a ponerlo a trabajar con los ficheros de MNIST. Para ello utilizaremos las 2 plataformas de aprendizaje que hemos visto al principio del curso: H2O y TensorFlow.

Deep Learning para clasificar los dígitos de MNIST
11:43

Vamos a ejecutar una demo incluida en la librería de H2O que hemos cargado en nuestro RStudio. El ejemplo es de un algoritmo k-means que clusteriza datos de enfermos de próstata. No se pretende ver como funciona el algoritmo, sino como interactuamos con el H2O instalado en nuestro sistema.

¿Cómo funciona H2O?
18:08

Usaremos H2O para crear un modelo de Deep Learning para clasificar dígitos de MNIST.

Método en H2O sobre MNIST
17:36
Probaremos diferentes parámetros en la red regular en H2O
Práctica Regular DNN
7 questions

Varios conceptos utilizaremos en el siguiente modelo. Vamos a ver cómo funciona el Aprendizaje No Supervisado y utilizaremos Deep Learning para estructurar una Deep Neural Network en un modo de encoder cuello de botella (bottleneck)

¿Qué es Unsupervised Bottle-Neck?
09:25

Aprovechamos la capacidad de H2O para montar una red de aprendizaje no supervisado profundo con una estrategia bottleneck. Al usar no supervisado, más que un estupendo algoritmo de clasificación, veremos como todos los predictores se condensan en 2 variables (neuronas) que podemos estudiar para tratar de determinar ciertas características de los datos.

Método no supervisado en H2O sobre MNIST
23:42
Utilizaremos distintas parametrizaciones para observar su influencia en la precisión.
Práctica DNN-Encoder
7 questions

Softmax Regression es un método que viene del cálculo y que se utiliza para transformar la salida de una red nueronal (o una profunda) de valores en probabilidades. Veremos en esta clase éste y otros conceptos.

¿Cómo funciona Softmax Regression?
22:03

Utilizamos TensorFlow para probar este método del cálculo. A diferencia de H2O, TensorFlow es un poco más opaco a la hora de ver cómo interacciona a través de RStudio con el entorno TensorFlow en local.

Método TensorFlow sobre MNIST
47:10
+ RESULTADOS
2 lectures 35:49

Una revisión de todos los modelos y métodos que hemos utilizado, y una valoración comparativa de los distintos métodos. ¿Cuál es el mejor?

Comparativa de los resultados
25:18

El set de datos de MNIST es ampliamente utilizado para practicar y para estudiar Machine Learning. Veremos el trabajo de Yann Lecun y su equipo con MNIST y conoceremos Kaggle, la plataforma de Data Science y Machine Learning con gran cantidad de datasets, concursos y artículos para aprender y practicar.

Kaggle y MNIST
10:31
+ BONUS - Aplicación Reconocimiento de Números
8 lectures 04:11:53

Presentación de la sección y de la App MNIST

Presentación App MNIST
12:24

Mostramos los archivos proporcionados para la sección, así como la instalación de las librerías necesarias.

En este enlace encontrás todos los archivos necesarios para el desarrollo de la aplicación:

https://www.dropbox.com/sh/nyve76amvncmr52/AADyV4lxJRBJ8BWmqUyrzzDna?dl=0

Archivos e instalación de librerías
08:50

En esta primera parte, montamos la estructura de la Aplicación en Shiny, usando también ShinyDashboards, una librería que nos permite montar dashboards de una manera rápida y sencilla.

También realizamos el cuadrado de dibujo donde el usuario podrá escribir el número.

Dibujar el plot
33:44

En este apartado, sustituiremos el dibujo a mano alzada por una representación de la matriz de predictores que terminaremos utilizando en los diferentes modelos.

Dibujar la matriz
58:06

En esta clase guardaremos los 4 modelos calculados durante el curso y los cargaremos en la aplicación.

También transformaremos la matriz en un vector de predictores como los objetos de MNIST.

Guardar modelos y convertir matriz
51:00

Ya tenemos los modelos cargados y los datos están en la forma que necesitan los modelos para hacer la predicción.

Con todo esto, preparamos los lugares en la Interfaz de Usuario donde colocar las predicciones y programamos en el servidor éste cálculo.

Calcular predicciones
39:26

Utilizando la eficiencia calculada para cada uno de los métodos, vamos a crear un algoritmo que genere una predicción general basada en la poderación de los diferentes modelos. Básicamente sumaremos las eficiencias de las distintas posibles predicciones de cada modelo, y seleccionaremos aquella que tenga mayor valor. También calcularemos la fiabilidad que le proporcionamos a este resultado.

Predicción total
34:45

Por último, arreglamos un par de aspectos menores, y generamos el botón de limpiar que nos permitirá reiniciar el proceso para predecir nuevos números.

Mejoras de la app
13:38
+ CONCLUSIONES
3 lectures 16:12

Hacemos un repaso por todas las lecciones que hemos ido completando durante el curso.

Resumen del curso
10:10
Próximos pasos
03:36
Despedida
02:26
Requirements
  • Aunque se proporcionan unas bases de R, es recomendable conocerlo un poco. Los conceptos Matemáticos y Estadísticos utilizados se explicarán, pero conviene tener alguna base.
Description

La Visión por Computador o Computer Vision (en inglés) es uno de los primeros objetivos que tuvo la programación desde sus inicios y, sobre todo, desde que se planteó la utilización del procesado automático en las cadenas de montaje.

Desde discriminar la madurez de las frutas por su color, hasta reconocer patrones biométricos, pasando por los pulsómetros ópticos, o el reconocimiento de matrículas. Las utilidades de la Visión por Computador están sólo limitadas por la imaginación humana.

En los últimos años, con el aumento del conocimiento en la denominada Ciencia de los Datos, se han desarrollados nuevos (y no tan nuevos) métodos de Aprendizaje para que sean las máquinas las que puedan tomar decisiones en base al procesado de la imagen que sus ojos tecnológicos les proporciona.

El Machine Learning y, el siguiente paso, el Deep Learning ha supuesto una ventaja mayor si cabe en la autonomía de las máquinas.

Trabajaremos con un famoso set de datos denominado MNIST, y que contiene 60.000 ejemplos de números manuscritos con su correspondiente etiqueta del número que representan. Cada número esta formado por una matriz de píxeles de 28x28 con valores entre 0 y 255 para la intensidad del trazo.

En el curso vamos a analizar una buena cantidad de métodos y algoritmos de Machine Learning, como Naïve Bayes, Random Forest, Support Vector Machine, K Nearest Neighbours o Redes Neuronales y sistemas de pre-procesado de la información, como PCA, SVD o HOG.

También trabajaremos algunos sistemas de Deep Learning, como H2O o Tensor Flow (de Google) para el tratamiento de esta información de imágenes.

Espero que os guste el curso y que disfrutéis aprendiendo los entresijos de la Visión por Computador y el Aprendizaje Profundo y Automático.

Who this course is for:
  • Si te interesa la Ciencia de los Datos, la Visión por Computador, el Machine Learning o Aprendizaje Automático y el Deep Learning o Aprendizaje Profundo, ¡¡¡éste es tu curso!!!