Las matemáticas del Machine Learning: Números aleatorios y dónde encontrarlos (II)Fran Ramírez 24 febrero, 2021 En el artículo anterior mencionamos la importancia que tienen en nuestro día a día los números aleatorios, utilizados para realizar cualquier tipo de simulación y fundamentales a la hora de la seguridad en un mundo cada vez más digital. Sabemos que su origen se remonta al principio de los tiempos, y su evolución ha sido constante desde entonces. No obstante para conseguir una secuencia de números aleatorios necesitaremos un determinado algoritmo determinista el cual asemeje su secuencia a una realmente aleatoria. Dichos algoritmos reciben el nombre de generadores de números pseudo-aleatorios. En este artículo nombraremos algunos de ellos y su importancia a lo largo de nuestra historia. Fueron Maurice Kendall y Bernard Babington-Smith a finales de los años 30 quienes nos aportaron nada más y nada menos que 100.000 dígitos completamente aleatorios, una cifra que en aquella época era todo un logro, y que hasta que Rand Corporation en 1955 publicó un millón de dígitos fueron ampliamente utilizados en diferentes campos de investigación. Pero podríamos afirmar que los grandes impulsores de los números aleatorios fueron Von Neumann, Metropolis, Ulam y Lehmer, quienes con sus diferentes métodos revolucionaron el mundo de lo aleatorio. El método MidSquare Durante los años 40, John Von Neumann y Nicholas Metropolis desarrollaron el método de los cuadrados medios, Mid-square Method. Originalmente dicho método era para poder generar números pseudoaleatorios de 4 dígitos, aunque bien es cierto que el algoritmo también funciona si introducimos un valor inicial x0 que tenga 2n cifras. El algoritmo en reglas generales consiste en los siguientes pasos: Coger un valor inicial denominado semilla x0 de 4 dígitos.Elevar dicho número al cuadrado x20 y obtener sus 4 cifras centrales x1.Se genera un número pseudoaleatorio: Figura 1. Fórmula para generar un número pseudoaleatorio 4. Volver al paso 2 y repetir proceso. Continuaremos repitiendo y obteniendo una sucesión hasta obtener un valor repetido, lo que producirá que la secuencia pase a ser cíclica y por tanto predecible completamente. En el siguiente fichero PDF contiene un par de ejemplos obtenidos utilizando este método: method-squareDownload Métodos Congruenciales Hoy en día, los métodos más utilizados para obtener una sucesión de números pseudo-aleatorios son mediante los generadores congruenciales lineales, (GLC), los cuales fueron introducidos en 1951 por Lehmer. Un generador GLC es un algoritmo que obtiene números pseudoaleatorios a través de una función lineal definida a trozos discontinua. La sucesión de números pseudoaleatorios se obtiene mediante la siguiente fórmula de recurrencia: Figura 2. Fórmula de recurrencia. Donde m es un número natural, recibe el nombre de módulo, a es el multiplicador y b el incremento. Además tanto a como b son números naturales menores que el valor m. Diremos que se trata de un generador congruencial lineal multiplicativo (GLMC) cuando b=0. Dicho generador también recibe el nombre de Generador de números pseudoaleatorios de Lehmer. En caso de que b sea no nulo diremos que el generador congruencial es mixto. La secuencia de números generada será el residuo de la operación aXk+b entre m. Eso es lo que significa el operador mod. Por lo tanto los resultados del residuo de la división pueden ir desde 0 hasta m-1. Veamos a continuación un ejemplo: Consideramos x0 = 17, a = 6, b = 5, m = 38 xkabaxk+bmmod mx{k+1}177512436161616 117 999 68 323232 229 131313 96 242424 173 292929 208 282828 201 212121 152 888 61 252525 180 000 5 555 40 444 33 333333 236 202020 145 111 12 121212 89 171717 124 161616 117 99 Los números pseudoaleatorios, los obtenemos: Figura 3. Fórmula para obtener los números pseudoaleatorios. Otros métodos de la actualidad Uno de las variantes de los métodos congruenciales evolucionados de los métodos congruenciales lineales de Lehmer es el conocido como Generador Lagger-Fibonacci. El nombre es por la familiaridad con la famosa serie de Fibonacci. La serie de recurrencia viene dada por la siguiente expresión: Figura 4. Fórmula para la serie de recurrencia. Donde: M = 2m , siendo m cualquier entero positivo.⊗ es cualquier operador binario como + , – , * …0 < J < k < n Entre sus características podemos destacar que el máximo periodo generado puede ser (2k – 1) * 2m-1, y además puede generar hasta 2k-1 * 2m-1 ciclos diferentes con periodo máximo. Otro generador muy utilizado por su alta calidad es el generador Mersenne twister que fue desarrollado por Makoto Matsumoto y Takuji Nishimura en 1997. El nombre proviene de que su longitud del periodo proviene de un número primo de Mersenne. (Mn = 2m-1 – 1). Dicho generador es utilizado a día de hoy en programas como Python, Ruby, Excel, C++, Mathlab entre otros, pues puede generar un periodo de 219937 – 1. Nostalgia retro Para terminar este artículo y como anécdota, durante los años 80 en tiempos del famoso Spectrum y Commodore 64, muchos de nosotros nos quedamos realmente maravillados ante la simpleza y la complejidad de los números aleatorios. En concreto, había una sola línea, en este caso para el BASIC de Commodore 64 que era la siguiente: 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 Esta simple línea de código generaba maravillosos laberintos interminables. Muchos quedamos maravillados con lo que era posible generar simplemente con una sola linea de programación. Este simple programa define, como ningún otro, la maravillosa relación de los números aleatorios con la programación. Por cierto, hay incluso un libro (que podéis descargar desde aquí) hablando del impacto y lo maravilloso de esta simple línea de código. Recuerda que este articulo es uno más de nuestra serie de Matemáticas del Machine Learning: Las Matemáticas del Machine Learning ¿Qué debo saber?Las Matemáticas del Machine Learning: explicando la Regresión Lineal (I)Las Matemáticas del Machine Learning: Ejemplos de Regresión Lineal (II) y Multilineal.Las Matemáticas del Machine Learning: Ejemplos de Regresión Lineal (III) y Multilineal. Contraste y Fiabilidad.Las Matemáticas del Machine Learning: Ejemplos Regresión Lineal (IV y último). Implementación en lenguaje RLas Matemáticas del Machine Learning: Redes Neuronales (Parte I)Las Matemáticas del Machine Learning: Redes Neuronales (Parte II)Las matemáticas del Machine Learning: Funciones de activaciónLas matemáticas del Machine Learning: el mecanismo de BackpropagationLas matemáticas del Machine Learning: Números aleatorios y dónde encontrarlos (Parte I) Escrito para LUCA por el matemático Fran Fenoll (@ffenoll16) y Fran Ramírez (@cyberhadesblog y @cybercaronte) del equipo de Ideas Locas CDCO de Telefónica). La teoría Gestalt en Gobierno del DatoVideo Post #9: Analíticas Big Data, sí, pero ¿Cuáles?
AI of Things Qué es el invierno-IA y cómo evitarlo ¿Estamos al borde de un nuevo invierno-IA? ¿Qué factores podrían propiciarlo? Cómo una legislación restrictiva, la falta de formación y de avances tecnológicos y otras preocupaciones podrían impactar el...
Telefónica Tech El poder de la digitalización sostenible en la lucha contra el cambio climático El cambio climático es considerado el mayor desafío de nuestro tiempo. Sus efectos abarcan desde la desertización y sequías hasta inundaciones y aumento del nivel del mar. Algunas de...
Roberto García Esteban ChatGPT y Cloud Computing: un matrimonio bien avenido ChatGPT (quizá no sepas que son las siglas de Chat Generative Pre-Trained Transformer) está en boca de todos por su impresionante habilidad para generar textos que parecen escritos por...
Olivia Brookhouse ¿Puede la Inteligencia Artificial entender las emociones? Cuando John McCarthy y Marvin Minsky iniciaron la Inteligencia Artificial en 1956, se sorprendieron de cómo una máquina podía resolver rompecabezas increíblemente difíciles en menos tiempo que los humanos. Sin...
Javier Martínez Borreguero Automatización, Conectividad e Inteligencia Aumentada al servicio de una reindustrialización competitiva, disruptiva y sostenible Por segundo año consecutivo vuelvo a participar en el Advanced Factories (AF 2023), la mayor exposición y congreso profesional dedicado a la Industria 4.0 del sur de Europa. Un...
Nacho Palou Medidas para reducir la brecha digital de género sin esperar 32 años El informe Sociedad Digital en España 2023, de Fundación Telefónica, dedica un apartado específico para analizar la brecha de género en el ámbito del talento digital. Destaca que, si bien...