Seguramente te has creído que la inteligencia artificial (AI en inglés) es cosa de supergenios, pero no es así. Si eres emprendedor seguro tendrás el inconveniente administrativo de tomar decisiones, y si eres inversor tendrás el inconveniente de que dejas tu dinero en manos de alguien que toma decisiones con tu dinero que puede tomar malas decisiones con o sin intención. ¿Es posible automatizar altos ejecutivos? Sí.
Te aseguro que con este post podrás hacer inteligencias artificiales sencillas sin ser un experto y lo podrás hacer en Excel.
A como te metas en ello hay un modelo de negocios esperando. El de automatizar altos ejecutivos. Ya sé que dicen que es imposible, pero recuerda que hace 30 años era imposible automatizar a una secretaria. A como leas este artículo te convencerás de que podría haber un potencial de negocios en reemplazar altos ejecutivos con ordenadores.
En este post mostraré primero como construir neuronas de manera sencilla usando Excel, en segundo lugar usaré ejemplos simples y en tercer lugar mostraré la arquitectura general, el esquema conceptual de cómo automatizar la labor de los altos ejecutivos de la empresa. Eso se llama igualdad de automatización, pues si vas a automatizar al trabajador de fábrica, también tendrías que poder automatizar al ejecutivo para eventualmente no necesitarlo. Siendo emprendedor te ahorras contratar un consultor, un ayudante conocedor o servicos de asistencia técnica, y si eres inversor te ahorras tener que contratar un alto ejecutivo.
Conceptos básicos de inteligencia artificial
La red neuronal (neuron network)
Una neurona es una célula que recibe información de otras neuronas, hace un procesamiento simple, y luego envía un resultado a otras neuronas. Podríamos decir que una neurona es una función, y casualmente lo que tu escribes en las celdas de Excel suele ser una función. Y así entre un dato de entrada (input data) y la información de salida o resultados (output data), hay funciones donde las salidas de una función son la entrada de otra función. Como puedes ver las neuronas de agrupan en capas.
Machine learning
Una cosa es el funcionamiento de las neuronas, su capacidad de pensar y entregar resultados, y otra cosa es su capacidad de aprender, que modifica su funcionamiento. El concepto de aprender (machine learning) tiene que ver con ajustar coeficientes de esas funciones.
En este post no entraré en el detalle de la complicación del machine learning, porque este es un campo en empresas y academia están aún aprendiendo, investigando, perfeccionando. En forma muy simplificada podríamos pensar en machine learning como un proceso donde la máquina estará haciéndote la mínima cantidad de preguntas para aprender y ajustar coeficientes para dar los mejores resultados posibles. En lugar de entrar en arquitecturas complicadas, y ajustes de coeficientes a lo largo de toda una red, lo que haré será ofrecer maneras simples (para fines didácticos solamente) en las que tu puedes crear neuronas individuales expertas. Claro, no es lo mismo una neurona experta que una red de neuronas expertas, así como no es lo mismo un músico experto que una orquesta de músicos expertos que no coordinan la sinfonia entre ellos en el concierto. Pero para los casos que veremos esas maneras simples serán trucos suficientes para que tu construyas tus neuronas sin tener que pasar por un machine learning que te quiebre la cabeza.
La estructura de la neurona
Una neurona es una función con una estructura muy particular.
- Los datos de entrada son los valores x. Tenemos x1, x2, x3, etc....
- Para cada x hay un coeficiente w. Tenemos coeficientes w1, w2, w3, etc... y hay un valor b que se conoce como "error". Cada coeficiente w se entiende como "peso" (¿recuerdas cuando te han hablado de un peso ponderado?)
- Tomas cada x y lo multiplicas por el w y lo sumas con el resto de multiplicaciones x por w y finalmente b.
- Si recuerdas en secundaria la funcion lineal f(x) = m * x + b, en una neurona m * x + b se entendería esa operación como x1 * w1 + b.
- Al resultado de la suma de las x por w más b se le aplica una función y finalmente se obtiene el valor y.
- Tu neurona completa se mira así.
y = función (x1 * w1 + x2 * w2 + x3 * w3 +....+ b)
Implementando funciones en Excel
- Acabas de abrir Excel y oprimes Alt-F11 para abrir el editor (conocido como IDE).
- Haces click derecho en la zona en blanco indicada, seleccionas Insert, luego seleccionas Module.
- Luego ingresas el siguiente texto.
- Cierras la ventana del IDE y ya estamos listos para usar las 3 funciones.en celdas de Excel.
- Puedes probar la función Sigmoid en Excel para ver si funciona.
- Recuerda salvar la hoja de Excel con extensión xlsm para que conserve el código de las funciones que insertaste.
Cabe notar que y = función(x1*w1+x2*w2+x3*w3+....+b) en este caso es y = sigmoid(A1) donde la celda A1 es el x1 y w1 tiene valor 1 y b es igual a 0. Si graficamos la función sigmoide se mira lo siguiente:
- Tiene una forma de S.
- Sus valores se encuentran entre 0 y 1
- De un lado es casi 0 y del otro es casi 1.
- La transición del 0 al 1 es suave.
- Si lograras cerrar el intervalo de transición, y aproximar los valores a 0 y a 1 podrías tener una función prácticamente binaria. Muy útil para convertir algo en valores de falso y verdadero.
- Miramos que el 5 y -5 prácticamente es casi cero y en 10 está demasiado cerca de cero.
Las otras funciones se pueden graficar también. La normalizadora permite convertir valores entre 0 y 1 y pasarlos de -1 a 1. La rectificadora tiene valores cero para números negativos y el valor se preserva para números positivos.
Como puedes ver, las conductas de las funciones que intervienen en las AI suelen tener conductas no lineales. Esto hace que el resultado de usarlas sea muy poco intuitivo, pero muy inteligente.
Caso 1: Cálculo del agotamiento de un trabajador
Nos han dado la siguiente caricatura y nos piden que calculemos cuanta energía le queda al trabajador luego de cierta cantidad de horas laborales. Sólo vamos a usar una sola neurona.
- Observamos que a partir de la hora 7 la energía empieza a descender y para la 13ava hora ya está agotado.
- De todas las funciones que vinos la sigmoide parece tener una transición suave, pero tenemos que hacer una conversión. La función sigmoide pide un valor t que es 1 (100%) en 5 y es casi cero en -5. Entonces tenemos que buscar una manera de convertir horas en números de la curva sigmoide.
Hora 7 equivale a t = 5
Hora 13 equivale a t = -5
- Vas a abrir el IDE con Alt F11 y vas a agregar una nueva función, al final de lo que ya habías escrito.
Esa función hace la conversión de horas a valor t.
- Como ves en la función tvalue los valores 7 y 5 indican conversión de 7 a 5, y los valores 13 y -5 indican conversión de 13 a -5, y la x que ingresa a la neurona es el valor de la celda A2.
- Al aplicar la función sigmoid estamos obteniendo la salida de la neurona.
- En este caso la función tvalue nos pide 4 valores para aprender, y un valor x para calcular.
- Las equivalencias necesitaban de un trabajo de ajuste de coeficientes que tvalue ya ha hecho. Cabe notar que en este caso los datos 7,5,13,-15 son los datos reales que tenemos. 7 y 13 son datos tomados en la realidad y 5 y -5 son resultados sirven para ajustar coeficientes por medio de tvalue.
- En este caso la función tvalue hace el trabajo de encontrar una equivalencia lineal.
- Desde un punto de vista hago trampa al usar tvalue como algoritmo de ajuste de coeficientes (machine learning), porque no hay un aprendizaje usando toneladas de datos y usando los algoritmos típicos de machine learning.
- Desde otra perspectiva es lo correcto, porque se trata de hacer que la función aprenda con una cantidad mínima de preguntas, eficiente, que es lo que los académicos buscan al final.
- Esto nos indica que para la hora 8 el trabajador tiene el 96% de la energía para trabajar. Tiene cerca de un 4% de agotamiento. Su trabajo (output) será menor.
Caso 2: Calculando la mejor jornada laboral para trabajadores
Sabemos que aun trabajador le afecta el cansancio, y también sabemos que la calidad del trabajo disminuye con la velocidad. Muchos jefes y gerentes piden cantidad y calidad.
- La ideología dice que más horas al día significa más producción y calidad.
- La ideología dice que más horas al día significa más producción y calidad.
- Entonces la ideología empuja al gerente y jefe a convertirse en capataz de esclavos.
Bajo la ideología, tener a un trabajador desocupado es dinero perdido.
Hay un coste por hora y de allí sólo hay que exigir más producción y más calidad y todo resuelto. El trabajador eficiente termina y se queda sin hacer nada y se le insta a trabajar, a que no sea vago. Esta ideología sólo maximiza la utilización del trabajador. Pero ¿de verdad aumenta la calidad (quality) y cantidad (output) si tratas a los trabajadores com máquinas? Como en este ejemplo somos unosinhumanos, vamos a tratar a los trabajadores como máquinas, y nos vamos a imaginar que son un motor de submarino nuclear. Los sumbarinos tienen "full speed" (a toda máquina) al 50% de la potencia total del motor. A partir de allí empieza "flank speed" (velocidad de flanco) que va de 50% a 100% y si usas esa potencia debes encender los enfriadores de alta velocidad. Esto quiere decir que no existe eso de que el motor de un 110% como a veces le piden a los trabajadores.
- ¿Has notado que a los trabajadores humanos les exigen incremento en su desempeño de 20% años a año? A los ordenadores no se les hace eso. Si quieres hardware y software más rápido, debes pagar por ello.
- El ordenador se enferma de virus y corren a curarle. Al humano le despiden.
- Las empresas contratan soporte 24/7 para las máquinas, pero no para los trabajadores.
Ahora que ya sabemos cómo se porta un motor de submarino digamos que al 50% de potencia del reactor el humano aún da su mejor calidad. A partir de 50% comienza a decaer su calidad. Tenemos la siguiente equivalencia de función sigmoide:
- 50% de potencia del reactor (a toda máquina) equivale a 100% de calidad.
- 100% de potencia del reactor (velocidad de flanco) tenemos 0% de calidad porque para el humano no hay enfriadores de alta velocidad y se funde el motor.
Luego de hacer lo mismo que hicimos antes, calculamos tablas para Output vs horas trabajadas (lo que calculamos en el caso 1) y calidad vs potencia de reactor usando sigmoides.
Luego multiplicamos los valores para ver cómo se comporta el ser humano. Esta es la tercera neurona que no tiene funciones extrañas asociadas. Es una fumción muy entendible.
Multiplicador de productividad = Output x Quality
Cabe notar que el resultado es sólo un multiplicador sin unidades que indica capacidad máxima del ser humano. Veamos como se comporta el multiplicador.
Esta tabla nos dice que no parece bueno forzar al ser humano a muchas horas y a velocidad de flanco. Pero esto es sólo capacidad humana. ¿Qué pasa con la producción? Esta es nuestra cuarta neurona, también muy entendible.
Producción (unidades) = Multiplicador de productividad x Capacidad nominal de producción por hora x Cantidad de horas
Supongamos que en 8 horas sacan 100 unidades. Cabe aclarar que este gráfico muestra lo que ocurre cuando la producción es intensiva en horas máquina, y lo que afecta la calidad viene en la inspección.
¿Qué pasaría si es intensiva en mano de obra? Habría que multiplicar por la potencia del reactor.
Producción (unidades) = Multiplicador de productividad x Capacidad nominal de producción por hora x Cantidad de horas x speed
El desempeño de la producción se muestra así. Ojo que hablamos de unidades que cumplen las especificaciones de calidad, que producir mucho se puede, pero va a terminar en desecho o reproceso.
Parece que el óptimo está en 70% de potencia de reactor, y 8 horas. En Japón hay empresas que practican la ideología del karoshi, que literalmente significa "muerte por exceso de trabajo" donde no hay límite de horas.
18 October 2016. Authorities rule Joey Tocnang’s death was directly related to the long hours of overtime - up to 122.5 hours a month – he was forced to perform - Death from overwork: Japan's 'karoshi' culture blamed for young man's heart failure
En su mundo de fantasía, los ejecutivos del karoshi imaginan que esta gráfica se comporta de esta manera.
Esto nos dice que con una simple AI de 4 neuronas en Excel mejoramos la capacidad de decisión de un alto ejecutivo japonés. ¿Comprendes ahora el poder de la inteligencia artificial? resulta incluso alarmante que la AI entregue un resultado más humanitario que la decisón de altos ejecutivos. ¿Puede la máquina ser más humana que los humanos? En este caso lo es.
- ¿Que necesitas aumentar la producción? Entonces contrata más gente. ¿Qué eso significa entrenar gente? Pues sí. La AI ya nos ha dicho donde es que tenemos la máxima productividad con calidad. Si tratas de bailar con la realidad obtienes desempeño inferior y maltratas a la gente.
- ¿Te imaginas crear una AI y cobrar suscripción por los servicios de la AI a sólo una fracción del precio del salario de un alto ejecutivo? En la próxima entrega hablaré de la estructura dentro de la cual debes montar tus redes neuronales para automatizar a un alto ejecutivo.
- ¿Qué es lo diferente de la AI respecto del software común? Lo distinto es que antes el software era una receta de cocina que entregaba platos, y la AI es un cerebro que aprende y que entrega resultados inteligentes que resultan de operaciones con funciones no lineales.
Lo que hace superior a las AI es que los altos ejecutivos se "enfocan" mientras que la AI lo ve todo. Los ejecutivos siguen ideologías muy definidas:
- La realidad: Una empresa es un grupo de personas que hace cosas.
- Ideología financiera: Una empresa es dinero que hace dinero.
- Ideología automatizadora: Una empresa es un ordenador que hace dinero.
- Ideología política: Un partido es un grupo de ideologías de corto plazo que hace cosas.
El problema de la ideología es que pierde de vista todo lo que se salga del alcance de su ideología. Algo tan simple como la jornada laboral, que cualquiera entiende, no está bajo la cobertura de los ejecutivos. Es que la ideología es simple: "Si A entonces B" una sola neurona lineal sin sigmoides, ni rectificadores, ni nada. Les pagan muchísimo dinero. ¿Cuánto dinero se podría ahorra una empresa si automatiza a los ejecutivos? Esta es una lista de los salarios de ejecutivos en India. Ni siquiera por estar en país barato terminan de ser baratos. ¿Cuánto dinero hay en un modelo de negocios que preste servicios de altos ejecutivos AI?
Infosys ya alega haber destruido 11000 empleos (Infosys releases 11,000 employees due to automation: Key takeaways from board meet). Se podría agregar algunos más entre altos ejecutivos de empresas de países baratos o caros. ¿Hay potencial de negocios en automatizar a los altos ejecutivos y cobrar por ello?
Si eres emprendedor y automatizas, siempre te quedará el lado de inversor, de lograr sueños que los ejecutivos de negocios establecidos no tienen.
Finalmente he de agradecer a J. P. Luna por facilitar este material para su publicación.