Machine learning y escuelas de negocios

IMAGE: XKCD

Mañana, en la ML School for Business Schools organizada por BigML, estaré hablando sobre la importancia de enseñar machine learning en escuelas de negocio con una perspectiva horizontal en lugar de vertical, introduciendo la herramienta en cada una de las áreas en lugar de ubicarla dentro de un curso específico, y de cómo el modelo educativo adoptado puede llegar a influenciar la adopción del machine learning a nivel corporativo.

El machine learning es, en muchos sentidos, una tecnología con una importantísima capacidad para la disrupción. La idea de construir algoritmos capaces de mejorar automáticamente a través de la experiencia no es algo nuevo como disciplina, de hecho, se remonta a la década de los ’60, pero experimentó un largo invierno y un fuerte desinterés debido, fundamentalmente, a la falta de recursos que posibilitasen los niveles de procesamiento de datos que la disciplina precisaba. En muchos sentidos, desde un punto de vista académico me recuerda a lo ocurrido, obviamente a otros niveles, con dos de las asignaturas más representativas de mi experiencia como profesor: las hojas de cálculo e internet: un cierto tiempo de uso prácticamente exclusivo por parte de colectivos especializados y mediante modelos de uso poco amigables que impedían una difusión de la innovación como tal, seguido de un período en el que el desarrollo de interfaces y herramientas progresivamente más sencillas acercan su uso a un público cada vez más amplio.

Si algo tengo claro, es el carácter horizontal del machine learning: en las empresas, encontramos casos de uso en la práctica totalidad de las áreas funcionales, sea en operaciones, en logística, en marketing, en finanzas, en tecnología y sistemas de información, etc. En su momento, tuve claro también ese carácter horizontal de las hojas de cálculo o de internet: su uso debía ser privativo, respectivamente, de áreas como las finanzas o la tecnología, sino que estaba absolutamente claro que se extendería a la totalidad de las áreas funcionales. En mi institución, IE Business School, se utilizan aún versiones – muy modificadas, por supuesto – de algunos de los casos que escribí en su momento para hoja de cálculo, y que tenían que ver con procesos de todo tipo, desde cálculos financieros relativamente complejos hasta automatizaciones de procesos en marketing o en atención al cliente. Un carácter horizontal que desde hace mucho tiempo, no deja lugar a dudas: la hoja de cálculo es, desde hace mucho tiempo, una herramienta universal y una auténtica lingua franca en los negocios.

Con internet viví una experiencia similar: se introdujo en las escuelas de negocios dentro del área de sistemas y tecnologías de información, y durante varias años, todo lo que tenía que ver con la red caía en ese área. Daba igual que el caso fuera de estrategia, de marketing o de operaciones: si la compañía tenía un .com en su nombre o sus operaciones tenían lugar dentro de la red, nos tocaba a los profesores de ese área – hablamos de finales de los ’90 o principios de los ’00, cuando aquella frase de Andy Grove que decía que «todas las empresas serán empresas de internet» aún levantaba sonrisas entre los escépticos.

Ese enfoque vertical, desde mi punto de vista, ha generado un gran retraso en la adopción de esas tecnologías a nivel corporativo. Durante bastantes años, muchas compañías no fueron capaces de extraer todo el valor a herramientas como las hojas de cálculo o como la red, debido simplemente a que erróneamente asignaban su uso a áreas funcionales específicas, fuese a finanzas o a tecnología. Muchos años después, cuando la curva de adopción ya alcanzaba a segmentos mucho más significativos de la sociedad, entendimos que en realidad, se trataba de herramientas que podían – y debían – ser utilizadas para absolutamente todo, y que existían muchas ventajas derivadas de su aplicación.

Con machine learning vamos exactamente por el mismo camino. Y es, me temo, igual de erróneo. Machine learning está siendo introducida en las escuelas de negocios o bien como algo que proviene del área de tecnología, o como cursos específicos que suelen aparecer primero como electivos o talleres. Esa aproximación no solo limita su uso y la transferencia de conocimiento a los entornos corporativos, sino que, además, complica su aprendizaje con un problema fundamental: tendemos a pensar que para utilizar machine learning, nuestros alumnos deben aprender a fabricarse las herramientas necesarias para ello.

Es como pedir a alguien que quiera utilizar una hoja de cálculo que aprenda a programarse una, como ocurría en aquellas pesadísimas primeras sesiones en los orígenes de internet en las que dedicábamos la primera media hora a cómo conectarse (aún evoco el sonido chirriante del handshake del módem), o como cuando ahora dedicamos varias carísimas sesiones a enseñar a nuestros alumnos fundamentos de Python o de R para que puedan hacer cosas que, cuando las necesiten, harán simplemente con unos pocos clics en menús y botones. O como muy bien dice Cassie Kozyrkov en uno de los artículos con una perspectiva más madura que he leído en ese ámbito, contratar a ingenieros expertos en electricidad con capacidad para construir hornos, con el fin de montar una panadería.

No, no es eso. Ni debemos enseñar a los alumnos a fabricarse sus herramientas, ni mucho menos debemos restringir machine learning al ámbito de la tecnología, o peor, al suyo propio, a una especie de compartimento estanco. Lo primero, pretender que los alumnos lleguen a las compañías que les contraten y se dediquen a programar algoritmos en Python o en R, es una enorme fuente de frustración cuando, meses después se demuestra que esos algoritmos creados por ellos son prácticamente imposibles de poner en producción. Lo segundo, simplemente, evita que muchos estudiantes que deberían salir sabiendo utilizar y aplicar machine learning a prácticamente cualquier cosa que genere datos y que se mueva, se interesen por ello, porque lo interpretan como algo que es propio de un area funcional determinada.

Curiosamente, el problema viene de un viejo refrán: «en casa del herrero, cuchillo de palo». Las mismas escuelas de negocio que se dedican a diseñar e impartir cursos in-company en empresas de todo tipo, son aparentemente incapaces de diseñar cursos in-company para sí mismas. Si no fuese por eso, podrían solucionar fácilmente el problema: enseñar machine learning a los profesores que imparten operaciones, finanzas, marketing, emprendimiento, o cualquier otro área funcional. Supervisar y diseñar con ellos aplicaciones del machine learning a sus respectivas áreas, de manera que los alumnos pudiesen experimentar el machine learning como lo que es: una tecnología horizontal profundamente disruptiva, susceptible de ser aplicada a problemas de todo tipo, de todo ámbito, por prácticamente cualquiera con unos mínimos conocimientos de estadística.

No, para aprender a utilizar machine learning no hay que ser un data scientist, ni muchísimo menos. Hay que entender un poco las economías específicas que generan los datos, pero poco más. Creerlo así es, de nuevo, una fuente de frustración y de intimidación. Es provocar que nuestros alumnos salgan pensando que el machine learning es cosa de Terminators, en lugar de entender que es algo que va a afectar a la vida cotidiana de sus clientes, o de ellos mismos. Un error que retrasa la llegada de una herramienta con una potencialidad enorme a compañías de todo tipo, de todo tamaño, de todas las industrias. Un error que ya hemos cometido con otras herramientas, muchas veces anteriormente. Pero sobre todo, un error que no resulta complicado pensar en solucionar.


This article is also available in English on my Medium page, «It’s time business schools got to grips with machine learning«


14 comentarios

  • #001
    Javier - 16 febrero 2021 - 21:25

    ¿Habrá streaming abierto? ¿U offline?(…por preguntar, que no quede…)

    • Enrique Dans - 16 febrero 2021 - 23:03

      Requiere registro, pero es gratuito…

      • Javier - 16 febrero 2021 - 23:14

        Gracias!

  • #004
    Jose - 17 febrero 2021 - 10:31

    Hola, trabajo como comercial de exportación. Me gustaría saber cómo podría a mí servirme Machine Learning. ¿cómo podría aplicarlo a mi trabajo? ¿qué debería empezar aprendiendo?

    Saludos y gracias por el contenido, interesante como siempre!

  • #005
    Luis Hernandez - 17 febrero 2021 - 12:33

    Creo que, al igual que sucedió en su día con los ejemplos que comentas (hojas de cáculo e Internet) el Machine Learning necesita de ejemplos claros y compresibles, que ejemplifiquen de principio a fin sus aplicaciones en situaciones cotidianas.

    Enseñar a alguién a utilizar Excel o navegar por Internet en un nivel básico, lleva apenas un rato y a partir de ahí quien aprende puede seguir explorando y aprendiendo más en profundidad por su cuenta.

    Romper esa primera barrera de acceso es mucho más importante que ninguna otra estrategia y sucede exáctamente lo mismo con la programación. Como siempre he comentado en mis clases: «no esperéis a saberlo todo para empezar a hacer algo».

  • #007
    sin censura - 17 febrero 2021 - 13:08

    Igual si os pasáis por kaggle muchas de vuestras preguntas se responden

    Use over 50,000 public datasets and 400,000 public notebooks to conquer any analysis in no time

    https://www.kaggle.com

    Más sencillo que un notebook de jupyter con python y los módulos se sckit-learn, numpy, pandas no hay… es hacer la O con un canuto…

    Y si queréis trabajar con el api de BigML, que lo que realmente aporta es el SAAS si no tienes potencia de máquina y no te importa compartir tus datos de empresa, puedes hacer un binding con python instalando el cliente con un solo comando

    pip install bigml

    https://pypi.org/project/bigml/

    • Juan T. - 17 febrero 2021 - 14:10

      La virgen ¡¡ Como para enterarse los no iniciados….Vaya secta :))

      • sin censura - 17 febrero 2021 - 15:11

        Lo primero que tienes que plantearte es si realmente lo necesitas. Por ejemplo ¿Usas excel a diario preparando hojas con tablas, fórmulas, calculando salidas de ciertos inputs? Si la respuesta es no, entonces la ML con una probabilidad del 95% no la usarás tampoco… Pero si la respuesta es si, me interesa, o me gustan las matemáticas, la estadística, etc entonces si no sabes ni python ni nada de ML hay un cursito de Udemy que está tirado de precio y es estupendo para entretenerse durante unos 15 días para facilitar el acceso.
        No se programan algoritmos, se usan !!!

        # CURSO UDEMY MACHINE LEARNING CON PYTHON

        * Título: Master En Machine Learning con Python
        * 16 secciones
        * 121 videos
        * 17 h 28 m de duración total
        * [Udemy ML](https://www.udemy.com/course/mlmasterclass/)

        ## 01 Charla motivadora (4min)

        * 01-01 Charla motivadora 04:18

        ## 02 Instalando el entorno (21min)

        * 02-01 Por qué Python 04:44
        * 02-02 Instalación en Mac 09:34
        * 02-03 Instalación en Windows 06:19

        * Instalan el entorno de desarrollo [de Anaconda](www.anaconda.com) con la versión de
        Python 3.x
        * No recomiendo el IDE de Pycharm por ser muy pesado. Ni VS Code como editor de código
        * Recomiendo Sublime 3 como IDE que necesita poco recursos y jupyter

        ## 03 Archivos del curso

        * [repositorio](https://drive.google.com/drive/folders/1vQ-pJHIr-1FC3m0I0xvGYDHHIg4xB77Y?usp=sharing)

        * 03-01. Básico de Python
        * 03-02. Basico de Jupiter
        * 03-03. Libreria Numpy
        * 03-04. pandas
        * 03-05. Visualizacion
        * 03-06. Regresión Lineal con sckit
        * 03-07. Clasificación – Árboles
        * 03-08. Agrupación – Clustering con K-means
        * 03-09. Redes Neuronales
        * 03-10. Proyecto Clasificador Radiografías

        ## 04 Jupyter (45min)

        * 04-01 Introducción a Jupyter 12:03
        * 04-02 Ejecutando comandos de terminal 03:09
        * 04-03 Celdas de texto 05:48
        * 04-04 Celdas de código 12:44
        * 04-05 Instalamos una librería 11:03

        * Para lanzar Jupyter sin usar el atajo de Anaconda, tecleamos en un terminal `jupyter notebook`

        ## 05 Python Básico (5h:52min)

        * 05-01 Introducción 01:52
        * 05-02 Hello Python 08:07
        * 05-03 Variables 06:25
        * 05-04 Variables enteras 06:37
        * 05-05 Comentarios en código 04:19
        * 05-06 Más Variables (Bool – Float – String) 04:28
        * 05-07 Ingresando datos desde teclado (Input) 06:44
        * 05-08 Función Type 02:49
        * 05-09 Operadores Aritméticos 09:43
        * 05-10 Casting de variables (Str a int) 09:20
        * 05-11 Seguimos con casting de variables 08:21
        * 05-12 Terminal 01:54
        * 05-13 Comparadores 05:14
        * 05-14 Operadores de Asignación 05:05
        * 05-15 Estructuras de control 13:59
        * 05-16 Estructuras de control (else) 13:59
        * 05-17 Estructuras de control (Práctica) 11:48
        * 05-18 Operadores Lógicos 11:15
        * 05-19 Loops (Bucles) 06:16
        * 05-20 For loop, ejemplo práctico 10:58
        * 05-21 For loop, ejemplo práctico II 16:40
        * 05-22 While loop I 09:36
        * 05-23 While loop II 06:05
        * 05-24 Funciones 06:58
        * 05-25 Funciones que reciben datos 07:36
        * 05-26 Funciones que reciben y devuelven datos 09:20
        * 05-27 Listas 14:10
        * 05-28 Diccionarios 10:37
        * 05-29 Diccionarios con entero en la llave 01:17
        * 05-30 Recorriendo lista, recorriendo diccionario 14:05
        * 05-31 Recorriendo una lista de diccionarios 21:58
        * 05-32 Proyecto: base de datos con pacientes – diagrama 04:16
        * 05-33 Proyecto: Primeros pasos 13:49
        * 05-34 Proyecto: Validando respuesta 06:04
        * 05-35 Proyecto: Validando respuesta con función 14:10
        * 05-36 Proyecto: Buscando usuario 09:49
        * 05-37 Proyecto: Listando pacientes 12:47
        * 05-38 Proyecto: Mejoramos la búsqueda 06:42
        * 05-39 Proyecto: Últimos pasos 16:43

        ## 06 Numpy (1h:54min)

        * 06-01 Introducción a Numpy 01:01
        * 06-02 Ventajas de Numpy 01:39
        * 06-03 Creamos ndarrays 17:23
        * 06-04 Distintas maneras de crear arrays 03:59
        * 06-05 Array de índices e indexado booleano 08:44
        * 06-06 Slices 12:41
        * 06-07 Tipos de datos en ndarray y operaciones 11:16
        * 06-08 Operaciones frecuentes – Speed test 14:21
        * 06-09 Numpy aplicado – Proc. Imágenes I 20:20
        * 06-10 Numpy aplicado – Proc. Imágenes II (máscara circular) 17:19
        * 06-11 Numpy aplicado – Proc. Imágenes III (filtro colores) 04:56

        ## 07 Pandas (1h:51min)

        * 07-01 Introducción a Pandas 01:04
        * 07-02 Series 08:47
        * 07-03 Dataframe 06:37
        * 07-04 Dataframe a partir de diccionario 03:19
        * 07-05 Dataframe operaciones básicas 04:44
        * 07-06 Dataframe resumen 01:18
        * 07-07 ML Pipeline con Pandas 03:02
        * 07-08 Caso de estudio I 07:55
        * 07-09 Caso de estudio II 18:25
        * 07-10 Gráficos con Pandas 14:17
        * 07-11 Seleccionando columnas – Método count 08:25
        * 07-12 Agrupar y agregar 05:33
        * 07-13 Join 07:38
        * 07-14 Unimos agregamos y aplicamos filtros 04:33
        * 07-15 Aplicamos Pandas 14:55

        ## 08 Visualización (24min)

        * 08-01 Visualización 24:00

        ## 09 Introducción a Machine Learning (30min)

        * 09-01 ¿Qué es machine learning? 07:13
        * 09-02 Programación tradicional 01:13
        * 09-03 Tradicional Vs Machine Learning 05:55
        * 09-04 Entonces… ¿Qué es machine learning? 01:25
        * 09-05 ¿Qué es data science? 06:06
        * 09-06 Clasificación de algoritmos según cómo aprenden 07:56

        ## 10 Regresión lineal (1h:2min)

        * 10-01 Introducción a la Regresión lineal 03:50
        * 10-02 Regresión lineal simple 13:24
        * 10-03 Regresión lineal polinomial 11:11
        * 10-04 Regresión lineal en acción con ScikitLearn 33:54

        ## 11 Clasificación (37min)

        * 11-01 El problema de la clasificación 05:15
        * 11-02 Arboles de decisión 07:17
        * 11-03 Clasificación aplicada con árbol de decisión 1 10:47
        * 11-04 Clasificación aplicada con árbol de decisión 2 08:06
        * 11-05 Ajuste 05:15

        ## 12 Agrupación – Clustering (22min)

        * 12-01 Introducción a K-Means 08:58
        * 12-02 K-Means – Práctica 12:51

        ## 13 Redes Neuronales (1h:2min)

        * 13-01 Redes Neuronales 02:44
        * 13-02 Introducción a las redes neuronales 02:30
        * 13-03 Neuronas biológicas 04:28
        * 13-04 El perceptrón 12:47
        * 13-05 Partes del perceptrón en acción 04:20
        * 13-06 Entrenando un perceptrón 09:51
        * 13-07 Introducción al gradiente descendente 05:35
        * 13-08 Gradiente descendente 12:14
        * 13-09 Gradiente descendente estocástico 07:21

        # 14 Redes Neuronales en acción (1h:39min)

        * 14-01 Introducción al módulo tensorflow 06:24
        * 14-02 Tensorflow 2.0 01:37
        * 14-03 Reconocimiento en imágenes (Empezamos la práctica) 10:52
        * 14-04 Pre procesamiento del set de imágenes de entrenamiento 11:56
        * 14-05 Configuramos la red neuronal 10:16
        * 14-06 Compilamos el modelo 07:10
        * 14-07 Entrenamos el modelo 09:09
        * 14-08 Haciendo predicciones 02:25
        * 14-09 Cargamos una imagen desde internet para hacer una predicción 12:19
        * 14-10 Hacemos una predicción con una imagen desconocida para nuestro modelo 05:07
        * 14-11 Salvemos los pesos (Gold rush) 09:12
        * 14-12 Tensorboard 12:54

        ## 15 Redes neuronales convolucionales – CNNs (18min)

        * 15-01 Introducción a las CNN 04:36
        * 15-02 Convolución 08:48
        * 15-03 Pooling 04:43

        ## 16 Proyecto: Clasificar Radiografías (48min)

        * 16-01 Introducción 02:58
        * 16-02 Tomamos contacto con el dataset y librerías 04:32
        * 16-03 Importamos y procesamos el dataset 20:14
        * 16-04 Configuramos la red neuronal y entrenamos el modelo 20:24

        Todo el sw es gratuito y el curso dicen que cuesta unos 15€
        Buscando en internet puedes encontrar libros que explican lo mismo… no hace falta darle muchas vueltas.

        Realmente ML empieza en el capítulo 9, lo anterior es para familiarizarte con python y alguna libreria muy útil (numpy,pandas)

        • Enrique Dans - 17 febrero 2021 - 21:30

          Todo eso es precisamente lo que yo sostengo que no es necesario. Es más, lo que desanima a la gente a meterse en machine learning. Que no digo que no sea bueno saber esas cosas, pero decididamente, para hacer un modelo desde cero hasta ponerlo en producción, no te hace ninguna falta. Simplemente entras en BigML y sigues el procedimiento. No necesitas ni Python, ni TensorFlow, ni nada de lo que ese curso te dice que hagas. Entras, cargas tus datos, los analizas, lanzas un modelo, lo evalúas, y haces predicciones, sin necesidad de tirar ni una sola línea de código. Ese curso me parece completamente intimidatorio.

          • sin censura - 18 febrero 2021 - 13:30

            La «O» con mayúsculas echa más fácil aún. Pon un wizard en tu vida ;-)

  • #012
    Gorki - 17 febrero 2021 - 22:09

    Bien está utilizar la IA, la Big Data, y la Machine Learning, pero no olvideis de utilizar el sentido común.

    • sin censura - 18 febrero 2021 - 15:12

      La verdad es que si…

      Mucha gente se pregunta para que les puede ayudar la ML en su vida… Vamos a poner una historia viejuna

      La primera calculadora que tuve tenía una función que yo aún no había visto en el cole: la raíz cuadrada. Y ese niño que pregunta «¿Para que sirve una raíz cuadrada?» Pues si no te ha hecho falta hacer raíces cuadradas (con o sin wizard) en tu vida profesional, podríamos apostar pincho y caña que la ML te va a hacer falta lo mismo. Pero el sentido común, vaya que te va a hacer falta… y a veces hasta tener el mínimo sentido común para no aplicarlo…. y dar una larga cambiada

  • #014
    JORGE - 16 marzo 2021 - 12:50

    Me parece una perspectiva muy interesante, pero creo que hay demasiado miedo a la programación en general entre los perfiles «business».

    La barrera de entrada para aprender Python o R ahora mismo me parece igual de alta (o baja) que la de aprender a utilizar bien una hoja de cálculo, y sin embargo son herramientas bastantes más potentes.

Dejar un Comentario

Los comentarios están cerrados