Hace 3 años | Por IvanIT a juancmejia.com
Publicado hace 3 años por IvanIT a juancmejia.com

En la sociedad hipertecnológica actual, uno de los conceptos que está más en auge es la llamada inteligencia artificial (IA). Este concepto está “de moda” pero es bastante confuso y, para la mayoría de la gente, no es muy fácil separar lo que es ciencia ficción y lo que es realidad. En este artículo se explica de forma bastante divulgativa.

Comentarios

Robus

Esta bastante bien explicado... Visto lo visto actualmente por ahí.

sorrillo

#5 El resultado del aprendizaje es una caja negra en la cual cuando le llegan las entradas ofrece una salida y esa caja negra es lo que denominaba como el cerebro y que está prefijado antes del aprendizaje y no crece.

Los datos de aprendizaje no los cuento, eso sí que tendrá más tamaño conforme más quieras entrenarlo, pero eso no acaba en el entorno de ejecución ya entrenado (un terminal móvil, por ejemplo).

sorrillo

En informática estamos acostumbrados con el modelo clásico que el programa cuantas más cosas sabe hacer más espacio ocupa, más líneas de código. Por contra con la IA, y que alguien me corrija si no es así, el tamaño del "cerebro" de la IA es idéntico cuando no sabe nada que cuando hace la tarea cuasi a la perfección.

El proceso de aprendizaje lo que hace es reorganizar los bits de ese "cerebro" para que el resultado sea el esperado.

Eso provoca que para ejecutar ese cerebro ya entrenado se requiera la misma capacidad de cómputo sea el resultado un desastre o cuasi perfecto.

Entiendo que habrá límites en el sentido que para ciertas tareas habrá que definir un cerebro de un tamaño mínimo pero al igual que con el cerebro humano es interesante que éste no crezca en función de lo que aprende (siendo los taxistas de Londres una excepción).

Fernando_x

#3 muy cierto, pero en principio cuando más complejas sean las tareas que quieres que realice, mayor tamaño tendrá ese cerebro, y mas complejo será el organizarlo.

l

#4 Yo entiendo que cuanto mas compleja sea la tarea mas recursos necesita. De hecho la ventaja del Deep learnig es que las redes tienen mas capas y por eso lo hacen mejor.

Puede que aproveche la maquinaria que hay para la tarea, pero si la tarea es sencilla entiendo que se puede simplificar la maquina.

Acido

#3
"Por contra con la IA, y que alguien me corrija si no es así,"

Venga, va, te corrijo... y de paso corrijo el artículo meneado también.
El título del meneo y del artículo es "Tipos y ejemplos de Inteligencia Artificial".
Bien, pues hay varios tipos como el título sugiere...

Tal como está expuesto el artículo parece sugerir que toda la Inteligencia Artificial es aprendizaje automático (en inglés: "machine learning") pero no es así... El aprendizaje automático es solamente una subárea dentro de la IA. Eso sí, en los últimos años se ha convertido en el área principal, tanto a nivel de interés / dedicación, como a nivel de resultados asombrosos, como a nivel laboral, como a nivel de inversión económica.
Sin embargo, en los inicios no fue así, al principio casi no se usaba el aprendizaje automático porque solía dar malos resultados, entre otras cosas porque solía requerir cantidades ingentes de proceso computacional o de tiempo... pero esto ha mejorado muchísimo, especialmente por el desarrollo y popularización / abaratamiento de las GPU.
Repito, hay otras cosas que se consideran "Inteligencia Artificial" y no son "aprendizaje automático". Por ejemplo, el lenguaje Prolog... se suele considerar como un lenguaje de programación de tipo lógico, donde defines una serie de proposiciones lógicas y puedes preguntar si es cierta o no alguna proposición que no le diste de forma explícita.
En este caso el "tamaño" no está limitado. Puedes añadir al sistema pocos "datos", pocas proposiciones lógicas, mínimo 2, o puedes añadirle 50 000 ... En este caso sería un sistema de IA (Inteligencia Artificial) que no tiene siempre el mismo tamaño, puede tener un tamaño pequeño o grande. Básicamente la estructura o sintaxis es la misma pero va ampliando su conocimiento a base de ir creciendo... cuando amplía su tamaño tiene más datos y es capaz de responder a más preguntas sobre esos datos.
Otro ejemplo sería lo que se llama CBR = Case Based Reasoning (Razonamiento Basado en Casos) o, en general, lo que se llaman Sistemas Expertos. Suele tener una forma de árbol de preguntas y respuestas, habitualmente tipo "test" y según lo que se responda en una pregunta hará otras preguntas hasta dar una solución. Un ejemplo típico sería un sistema de diagnóstico médico... Ej: El sistema ¿tiene fiebre? SI / NO. Si respondes que SI, te hará otras preguntas relacionadas con los casos / enfermedades que sí producen fiebre. Por ejemplo, le puede preguntar si tiene infección en la garganta, que se ve si hay pus ... si hay pus será una bacteria y se curará con antibiótico, pero si no hay pus suele ser un virus... puede ser gripe o COVID-19 o lo que sea. Nótese que este sistema también es "expansible", también puede ir ampliando el número de preguntas, etc...

Generalmente muchos sistemas de aprendizaje automático son como tú dijiste: tienen un tamaño inicial que no cambia. Lógicamente con la palabra "tamaño" no nos referimos a milímetros ni ningún tamaño físico sino un tamaño de memoria, en bits o bytes... y si se quiere un número de operadores o de unidades de proceso (processing units).
El aprendizaje consiste en modificar ciertos estados, ciertas variables de 'memoria', para que el sistema tenga mejor resultado.

Pondré un ejemplo bastante sencillo.
Supongamos que sabemos previamente que un sistema físico tiene un comportamiento lineal, o, al menos, aunque no sepamos que sea así, probamos a aproximar unos datos con una recta.
y = P*x + Yo
Sabemos que una variable dependiente "y" varía en función de una variable independiente "x" y queremos calcular la pendiente P y la constante Yo (la abscisa en el origen, valor de "y" cuando x=0).
Bien.
Pues en este ejemplo el entrenamiento consistiría en obtener la P y la Yo.

Si solamente tenemos dos puntos, habrá una recta que pase exactamente por esos dos puntos. Solamente una, eso sí, pero al menos tenemos una solución perfecta con una recta.
Bueno, lo de "perfecta" es relativo... en el mundo idealizado de las matemáticas los puntos no tienen dimensión y hay números reales que no solamente son infinitos sino con precisión infinita (con infinitos decimales). Pero en el mundo de la realidad, de ordenadores no ideales sino tangibles, existen limitaciones, así que números como la P y la Yo no pueden tener precisión infinita ni infinitas cifras. Y, bueno, esto implica que dentro de este ejemplo supersimple de los dos puntos que nos dan una recta la solución tampoco sería perfecta. Por ejemplo, si solamente tienes 2 decimales para la P entonces esa P puede valer, por ejemplo, 1.23 o bien 1.24 pero no puede valer 1.2378 porque este último tiene 4 decimales y tu modelo numérico no llega a tanta precisión. En este caso el valor más cercano sería 1.24 , que no es el perfecto, pero es el que más se acerca dentro de las limitaciones que tenemos.

Sigo. Si en lugar de solamente 2 puntos tenemos más, por ejemplo, cinco puntos, es decir, cinco pares de valores de "x" y de "y" ... entonces en general no existe ninguna recta que pase por todos esos puntos. Solamente existiría una solución perfecta si diese la casualidad de que los 5 puntos estén justamente alineados, formando una línea recta perfecta.
Pero aunque no exista una solución digamos "perfecta" lo que sí existiría siempre es lo que se llama una "mejor aproximación". Se suele considerar que es la "mejor" cuando tiene el menor "error" y el error se suele entender como una distancia, entre la solución que da la recta y los valores que se intentaban modelar.
Cuando tenemos un conjunto de puntos y buscamos una función sencilla que se acerque a ellos, es lo que se suele llamar "regresión". Este es un término que aunque venga de las matemáticas, de la estadística concretamente, se usa como tal en Inteligencia Artificial...
[Nota: la historia del término "regresión" tiene datos interesantes, pero sería irme mucho por las ramas. Diré solamente que quien lo inventó era pariente de Darwin y que era partidario de la eugenesia... ]
En este ejemplo que puse sería una "regresión lineal", porque se aproxima el conjunto de datos (puntos) con una línea recta, pero también existen de otro tipo, como las polinómicas.
A veces estas regresiones funcionan muy bien y diría que se usan bastante, por ser sencillas y permitir llegar rápido a la mejor solución en cada caso. Si quieres aproximar con una línea, calculas la pendiente P de la mejor recta posible y la Yo de la mejor recta y es un cálculo que es muy concreto, rápido y ya lo tienes.
Los datos medidos (capturados del mundo real) suelen tener "ruido", "errores de muestreo" ... pues no suele tener mucho sentido desde el punto de vista científico y físico buscar una aproximación exacta y la regresión sería la mejor estimación "A Posteriori" (MAP = Maximum A Posteriori Likelihood), es decir, nos dice que valores serían los más probables en caso de que realmente exista una variación en forma lineal pero que nuestros aparatos de medida no nos den los valores exactos sino con un error modelado por una variable aleatoria gaussiana.

Al existir fórmulas tan directas no se suele hablar de "entrenamiento" propiamente dicho... La palabra "entrenamiento" parece referirse a algoritmos iterativos, que a base de entrenar y entrenar, a base de iteraciones, van mejorando poco a poco hasta llegar a un estado suficientemente aceptable.
Si escogí ese ejemplo es porque es sencillo y creo que se entiende que los datos que se buscan tenían un "tamaño" fijo desde el principio: si es una recta en el plano buscamos dos números y ya está. Esos dos números tienen una precisión, y, por tanto cada número ocupa una cantidad de memoria fija, que es la misma cantidad de memoria, sea cual sea el número de puntos que queramos aproximar y sean cuales sean las posiciones que ocupen esos puntos.
También se observa que a nivel de procesamiento tenemos siempre lo mismo:
y = P*x + Yo
La "y" se calcula siempre multiplicando la P por el valor de "x" que nos den y a eso le sumamos un desplazamiento Yo y ya está, no hay que hacer más cálculos: una multiplicación y una suma. Fin.

En cuanto al cerebro humano, se suele decir que tiene un número de neuronas, un número que se suele decir que no cambia. La realidad por lo que yo leí es un poquito diferente... ya que dicen que sí pueden crearse neuronas nuevas, aunque sean pocas. Y también en parte algunas pueden morir, así que la realidad no sería como el modelo simplificado ese de la "tabula rasa", como un cuaderno en blanco donde el tamaño del cuaderno no cambiase y que se fuesen "escribiendo" datos en él, o impregnándolo y modificándolo con experiencias sensoriales.

Y sí, también hay sistemas de aprendizaje automático que son ampliables o expansibles, que pueden ir creciendo en "capacidad", en "número de estados" ... típicamente cuando con una determinada capacidad no le llega pues se amplía... así que aunque sea aprendizaje automático tampoco tiene que ser necesariamente como has dicho.


Ahora he visto que algunas cosas ya las dijo #11

cc #0 #4

llorencs

#3 Mmm, no tengo ni idea. Es una tárea pendiente, pero las matemáticas de la IA me superan. Cuando empiezo a hacer cursos de IA y veo todas esas formulitas me pierdo... Entiendo que le tienes que proporcionar datos, que formarían parte del cerebro. Así, que para que adquiera el conocimiento, le tienes que pasar muchísima información. Eso sí, el código más o menos será el mismo. Lo que no sé, es que una vez ha aprendido, digamos que te peudes olvidar de esa información o aún necesita seguir accediendo a ella y para que obtenga mejores resultados hay que seguir alimentándola.

squanchy

#3 El sistema que describes es una red neuronal. Cada neurona inicialmente tiene un peso, y conforme se va entrenando a la red, su peso va variando. Una vez conseguido el objetivo, se deja de entrenar y los pesos quedan fijados para siempre. En esos casos, efectivamente, el tamaño que ocupa la IA es el mismo antes de entrenar, que después.

Pero hay otros tipos de sistemas de inteligencia artificial. Sistemas que se basan en reglas y en datos. Por ponerte un ejemplo, yo construí una a la que le indicabas qué ingredientes tenías en la alacena, qué ingredientes te apetecía comer y cuáles no, y si querías una dieta normal, hipercalórica o hipocaloríca. A partir de esos datos, buscaba en una base de datos de recetas y te daba el menú para hoy.
En esa IA, cuantos más recetas tuviera, mejor afinaba el resultado. Así que lo normal hubiese sido seguir alimentándola de recetas. Dicho de otra forma, esta IA no era nada sin sus datos, y cuantos más, mejor.

Otro ejemplo son las IA basadas en búsqueda de estados. El famoso algoritmo A*, y sistemas mixtos de reglas y datos. P.e. un programa de ajedrez que además de sus heurísticos también consulta bases de datos de partidas.

Ζ

#3 el caso es que el tamaño de los "cerebros" aumenta exponencialmente y sus capacidades apenas lo hacen. aun recuerdo cuando openai decia no querer liberar su gpt-2 por ser demasiado "poderoso".

Mariele

#3 Muy cierto y la asociacion esa de "lineas de codigo = sofisticacion" es un lastre de antes del boom de la IA. Recuerdo una charla de Boston Dynamics en que unos individuos del publico insistian en preguntar cuantas lineas codigo tenia el controlador del big dog, a lo que el que presentaba se quedo a cuadros y respondio "bien pocas" o algo por el estilo. La sofisticacion esta en la estructura del controlador y los valores de las constantes y los pesos.

k

Acostumbrado a los típicos artículos chorra de redactores de Xataka que lo unico que hacen es resumir un dossier de prensa, muy acertado el artículo

F

Algo escueto, ni siquiera menciona el aprendizaje por refuerzo.

Mariele

Me chiflan los halagos a este articulo. Supongo que esta bien no tirar mierda aunque sea solo para romper la rutina pero es que son 4 parrafos chimpon que cuentan bien poco, eh?

Para una introduccion decente a la inteligencia articial, que se puede esperar, consecuencias, cuestiones filosoficas y demas, recomiendo ver la serie de videos sobre el tema de Computerphile:

s

#14 y un libro interesante (Y que te da un poco de yuyu) sobre el futuro de IA en las próximas décadas. "Vida 3.0" de Max Tegmark

Rocio_Siri

Todos vamos a ser reemplazados. No se van a librar ni los "creativos".

jorgemf

#6 y en cuanto pase eso aparecerá el coronavirus informático