Skip to content

Hola Mundo Machine Learning

febrero 4, 2024
5/5 - (1 voto)

 

hola mundo machine learning

En este artículo te muestro como hacer tu primera red neuronal, sin tener conocimientos previos de Inteligencia Artificial, y sin necesidad de instalar nada en tu equipo. «Tu primer Hola Mundo Machine Learning».

Los requisitos son:

  • Un editor de texto
  • Un Navegador (Firefox, Chrome, Edge, etc.)
  • Conexión a internet.

Vamos alla:

Vamos a crear un fichero html con nuestro editor favorito por ejemplo notepad.

El fichero lo vamos a denominar «hola mundo machine learning.html»

Este fichero una vez completado lo vamos a abrir con nuestro navegador favorito: Firefox, Chrome, Edge, etc.

El objetivo es mostrar un formulario y usar una red neuronal para sumar dos números.

No suena muy emocionante, pero esta aplicación es un «Hola Mundo» lo de menos es la funcionalidad, lo importante es que vamos a usar nuestra primera red neruronal para resolver el problema.

La red neuronal la vamos a entrenar con cinco sumas ( 1 + 0 = 1, 2 + 1 = 3, 1 + 4 = 5, 6 + 1 = 7, 4 + 4 = 8) y tendrá que inferir nuevas sumas por ejemplo 2 + 5, 3 + 4, que le podremos preguntar mediante un formulario.

El fichero está escrito en html y javascript, y la librería de machine learning que utiliza es brain.js

<!DOCTYPE html>
<html>
<head>
    <title>Hola Mundo Machine Learning</title>
    <style type="text/css">
        #cuadro {
            padding: 2rem;
            font-size: 4rem;
            margin-left: 15rem;
        }
    </style>
    <style type="text/css">
        #cuadro2 {
            padding: 2rem;
            font-size: 1rem;
            margin-left: 15rem;
        }
    </style>
</head>
<body>
  
    
    <div id="cuadro">
        Hola Mundo Machine Learning
    </div>

    <div id="cuadro2">    
    <p>Vamos a sumar dos números menores que 10:</p>  
    <input id="numero1"><br>  
    <input id="numero2">  
    <button type="button" onclick="miFuncionSuma()">Sumar</button> 
    <p id="resultado"></p>    
    </div>
  
    
    <script src="https://unpkg.com/brain.js"></script>
    
    <script type="text/javascript">

 
    function miFuncionSuma() 
    {  
        var x,y,suma,text;  
        x = document.getElementById("numero1").value;  
        y = document.getElementById("numero2").value;  
        if (isNaN(x) || isNaN(y)) 
        {  
            text = "Es necesarios introducir dos números válidos";  
        } 
        else 
        { 

            if (x > 9 || y > 9)
            {
                text = "Los números deben de ser menores que 10";
            }
            else
            {
        
                suma=sumaMachineLearning(x,y)
                text= suma;
            }
        }  
        document.getElementById("resultado").innerHTML = text;  
    }  


    function sumaMachineLearning(x,y)
    {

        //Inicializar red neuronal
        var redneuronal = new brain.NeuralNetwork();

        // Entrenar la red neuronal 
    
        redneuronal.train
            ([
            
                {input: {cifra1: .1, cifra2: 0}, output: {suma: .1}},
                {input: {cifra1: .2, cifra2: .1, }, output: {suma: .3}},
                {input: {cifra1: .1, cifra2: .4}, output: {suma: .5}},
                {input: {cifra1: .6, cifra2: .1}, output: {suma: .7}},
                {input: {cifra1: .4, cifra2: .4}, output: {suma: .8}},
               
            ]);

        console.log(x);
        console.log(y);

        e1 = x/10;
        e2 = y/10;

        console.log(e1);
        console.log(e2);
        
       
        var entrada = 
        {
                cifra1: e1,
                cifra2: e2,
        };

            //Obtener la prediccion de la red
        var r = redneuronal.run(entrada);
        
        console.log(r);
        // redondear el resultado
        resultado = Math.round(r.suma*10);
            
        console.log(resultado);
            
        salida = resultado;
        return salida;
    }
 
    </script>
    
    
    
</body>
</html>

 

 

Esta es la pantalla de la aplicación:

hola mundo redes neuronales

Si queremos sumar 2 + 3, que es un valor que no está en los datos de entrenamiento.

hola mundo machine learning

¡¡¡Da 5!!!, veamos como lo hace la red neuronal.

El código contiene la definición del formulario y el código javascript para filtrar los parámetros, pero nos vamos a centrar en la función sumaMachineLearning(x,y) que es donde se emplea la red neuronal.

function sumaMachineLearning(x,y)
    {

        //Inicializar red neuronal
        var redneuronal = new brain.NeuralNetwork();

        // Entrenar la red neuronal con cinco sumas
    
        redneuronal.train
            ([
            
                {input: {cifra1: .1, cifra2: 0}, output: {suma: .1}},
                {input: {cifra1: .2, cifra2: .1, }, output: {suma: .3}},
                {input: {cifra1: .1, cifra2: .4}, output: {suma: .5}},
                {input: {cifra1: .6, cifra2: .1}, output: {suma: .7}},
                {input: {cifra1: .4, cifra2: .4}, output: {suma: .8}},
               
            ]);

        console.log(x);
        console.log(y);

        e1 = x/10;
        e2 = y/10;

        console.log(e1);
        console.log(e2);
        
       
        var entrada = 
        {
                cifra1: e1,
                cifra2: e2,
        };

            //Obtener la prediccion de la red
        var r = redneuronal.run(entrada);
        
        console.log(r);
        // redondear el resultado
        resultado = Math.round(r.suma*10);
            
        console.log(resultado);
            
        salida = resultado;
        return salida;
    }