«Estos métodos de inteligencia artificial pueden determinar qué células de pacientes tienen en común que de otro modo no serían observables», dijo Samuel J. Yang, científico investigador de Google Research. «Lo que también es importante es que los algoritmos son imparciales: no se basan en ningún conocimiento previo o ideas preconcebidas sobre la enfermedad de Parkinson, por lo que podemos descubrir señales completamente nuevas de la enfermedad»
Original:
www.nature.com/articles/s41467-022-28423-4
Y por lo tanto, está sujeta a caer en los mismos errores que los humanos: que los datos de partida tienen que ser buenos y no tener sesgos para empezar, y que la correlación no implica causalidad...
"Lo que también es importante es que los algoritmos son imparciales: no se basan en ningún conocimiento previo o ideas preconcebidas sobre la enfermedad de Parkinson, por lo que podemos descubrir señales completamente nuevas de la enfermedad»"
No estoy de acuerdo. Los algoritmos los codifican los humanos, hay parcialidad en tanto en cuanto no se sea lo suficientemente cuidadoso a la hora de la programación. Igualmente, las IAs no funcionan como un algoritmo. No se puede preveer qué caminos tomarán, no son auditables o revisables, una vez entrenada sólo puedes validarla o rechazarla y sólo la rechazarás cuando se comporte de manera erronea en algún caso no del todo bien cubierto o analizado (en este caso se comportaría como un algoritmo, pero el algoritmo puedes modificarlo sobre la marcha; una IA tienes que rehacer los datos de entrada y definir correctamente el entrenamiento para cubrir ese nuevo caso, tienes que empezar prácticamente de cero).
El blockchain igualmente es otra herramienta que tiene sus usos y es perfectamente válida para ellos.
#3 El problema es el del que tiene un martillo y todo lo que ve alrededor son clavos. Ni la IA ni el blockchain son la mejor herramienta para todo como nos quieren vender. Y tomárselo a cachondeo y ver las cosas superficialmente sólo sirve para negar los hechos y quedarse con una visión distorsionada de la realidad.
#4 Las IAs funcionan como una caja negra, no como un algoritmo. Sabes qué hace en general, pero no puedes describir y reproducir cada paso que da hasta llegar a una solución, no puedes modificarlos, no puedes depurarlos... así que no, no funciona como un algoritmo. A mi también me encanta la gente que va de expertos, con su palillo en la boca y no aporta ni siquiera un argumento para apoyar lo que dice de manera tajante y elocuente.
Primero, las redes neuronales son algoritmos, te pongas como te pongas. De hecho, cualquier cosa que estés ejecutando en el PC es un algoritmo, que como bien has dicho, es una receta, una serie de instrucciones. Que luego de un resultado que para un humano no sea interpretable no lo convierte en algo que no es un algoritmo.
Luego, no se trata de ir neurona por neurona u operación por operación para entender como funciona por ejemplo una red neuronal. Si nos vamos a la convolucionales, con cada capa de profundida vas viendo que en cada paso va pasando de los objectos abstractos de la imagen a los detalles más finos. Con esto te puede valer o hacerte una idea de como trabaja la red y poder cambiar la arquitectura. Los "recientes" transformers, puedes ir viendo como cada "head" se va centrando en verbos, pronombres, etc... y como en una frase se le va dando más o menos valor a una palabra u otra dependiendo del contexto.
Aparte, esta frase "pero la complejidad es tal que ni vas a ver los errores, ni vas a saber cómo corregirlos una vez los encuentres" vuelve a carecer de sentido en el contexto de una red neuronal. La red o hace lo que quieres o no lo hace, no por eso es un error. Simplemente o te faltan datos, o entrenas de forma que no toca u otra de las mil cosas posibles, pero no es un error entendido como error de programación.
A ver, si ya lo se, pero meterles a todo IA o blockchain porque es la moda es ridículo.
Ya sabemos como acaba la cosa
Prever es ver con antelación.
Proveer es abastecer.
Preveer no es nada.
aquí unos ejemplos
www.eldiario.es/tecnologia/sesgos-genero-algoritmos-circulo-perverso-d
www.elmundo.es/tecnologia/2016/03/28/56f95c2146163fdd268b45d2.html
www.lavanguardia.com/tecnologia/20211114/7856262/inteligencia-artifici
Y por lo tanto, está sujeta a caer en los mismos errores que los humanos
Los humanos, para lo bueno y para lo malo, analizamos siempre a través de la emoción,
Un árbol de decisión complejo, una red neuronal multicapa de cientos de neuronas, etc. NO son depurables. Los huamnos no tenemos capacidad de proceso para esas complejidades o si prefieres verlo así, es nada práctico siquiera ponerse a intentarlo. Sabemos cómo funcionan, si, podemos hacer una traza si queremos, pero la complejidad es tal que ni vas a ver los errores, ni vas a saber cómo corregirlos una vez los encuentres. Son cosas no lineales, con múltiples interdependencias, escalan muy mal... ¿dices que es como un algoritmo, cuando se comportan como sistemas complejos, como putas cajas negras? suerte con eso, chaval.
Un algoritmo es una receta. Basta seguir los pasos y ver cuándo falla más pronto o más tarde. Es lineal, no tiene dependencias, encuentras el punto exacto donde las cosas van mal y sabes por qué de manera lógica y directa.
Como dato nada más, he sido analista de datos unos cuantos años y soy informático especializado en IA
¿Qué es interpretar? interpretar no es más que aplicar sesgos adquiridos a tus datos para darles un sentido, es usar tu experiencia para sacar conclusiones de los datos. Eso, si lo tomas con cuidado, es lo que hace una IA (la experiencia es la nuestra, que se la damos como conjunto de datos de entrenamiento)
Pero no has sido filósofo de pacotilla
Lo de filósofo de pacotilla... ILLA, ILLA ILLA
Todo depende de los humanos y de la visión que los humanos queramos obtener de esas IAs. Incluso si ponemos IAs a autoentrenarse (en sistemas de aprendizaje competitivo o autoaprendizaje), marcamos cláramente las reglas, las delimitamos o sesgamos. ¿Tienen emociones las IAs? no. ¿Interpretan cosas? claro, tienen que sacar conclusiones de los datos que les pasamos de entrada, unas conclusiones que nos satisfagan o cumplan una serie de reglas dadas. Los humanos nos saltamos las reglas, llegamos a conclusiones válidas a partir de conjuntos de datos con los que a priori y por simple lógica no debería poderse llegar a ellas. ¿Por qué? porque tenemos más datos, datos externos, experiencia, que extrapolamos a los nuevos problemas que vamos encontrando (a veces nos ayuda, a veces son un sesgo que no nos permite evaluar o interpretar correctamente las cosas). Lo que nos diferencia de las máquinas es que a nosotros se nos permite errar, almacenar nuestros errores como información valiosa y a partir de ellos, poder llegar a solucionar problemas posteriormente.
Sin embargo, los sesgos incorrectos, adquiridos involuntariamente o no permitidos que tome una IA la hacen defectuosa, inadecuada, funciona coja y mal. Tampoco podría sacar conclusiones de los mismos ni hacer nada a partir de ello. ¿Es eso lo que llamamos consciencia? ¿ser capaces de ver nuestras limitaciones y potencialidades y ser capaces de construír cosas sobre ellas, aunque estén sesgadas?
Insisto, las maquinas no sacan ninguna conclusión, precisamente porque carecen de consciencia
¿He negado yo la mayor? hablamos de dos cosas distintas, me temo. Tú de la arquitectura, yo de la red entrenada o camino de ser entrenada para corregir un problema o sesgo en los resultados. Modificar los pesos, no las relaciones.
He dicho: depura una red neuronal de una neurona. Como algoritmo que es, podrás. Ahora, depura una complicada, con varias capas y muchas neuronas por capa. Agárrate los machos. ¿Tiene sentido siquiera intentarlo? ¿qué pretendes conseguir? ¿vas a ver un desequilibrio en alguno de los pesos? ¿alguna de las interconexiones te sobra? ¿cómo coño depuras una red neuronal? ¿tiene sentido siquiera intentarlo?.
En resumen: una red neuronal se comporta como una puta caja negra. NO se puede depurar porque es IMPRACTICABLE. Y el que te confundes eres tú. La teoría es muy bonita, pero la práctica es la que dicta, y lo que dicta es que lo que tú dices es modificar la arquitectura, no cambiar la red neuronal una vez entrenada. Así que no, no se comporta como un algoritmo (donde puedes cambiarlo y ver y prever los resultados, incluso sobre la marcha si el lenguaje de programación de turno es dinámico e interpretado), tú realizas el proceso de entrenamiento de nuevo completo.
"Con esto te puede valer o hacerte una idea de como trabaja la red y poder cambiar la arquitectura."
Tenemos conocimientos generales de qué hace mejores unas arquitecturas de redes de otras, cuales se adaptan mejor a ciertas cosas que otras. Pero que me digas que por la cara puedes coger una red neuronal y mejorar su arquitectura así al vuelo sin un análisis exahustivo es una afirmación cuanto menos muy valiente. Y eso no es depurar, no es corregir un problema para un caso que te ha salido, es modelar un sistema completo que se adapte mejor a unos requisitos dados. Seguramente lo haces todos los días...
"Aparte, esta frase "pero la complejidad es tal que ni vas a ver los errores, ni vas a saber cómo corregirlos una vez los encuentres" vuelve a carecer de sentido en el contexto de una red neuronal. La red o hace lo que quieres o no lo hace, no por eso es un error"
Me das la razón sin darte cuenta. Aquí la única forma de mejorar una red neuronal es cambiarla y volver a entrenar todo de nuevo. No puedes modificar algo entrenado sobre la marcha, no puedes depurarlo, sólo puedes hacer cambios a la arquitectura y comprobar si es mejor o peor que la anterior.
" Simplemente o te faltan datos, o entrenas de forma que no toca u otra de las mil cosas posibles, pero no es un error entendido como error de programación."
Ahora resulta que NO es como un algoritmo ¿eh? quién lo iba a decir...
Pues igual iberdrola también se equivoca...
" Insisto, las maquinas no sacan ninguna conclusión, precisamente porque carecen de consciencia "
¿Qué tiene que ver la consciencia con hacer elecciones sobre unos datos de entrada basándote en una serie de reglas o requisitos, que es a lo que se llama conclusión?
7. m. Estad. Error sistemático en el que se puede incurrir cuando al hacer muestreos o ensayos se seleccionan o favorecen unas respuestas frente a otras.
Básicamente lo que hace cualquier algoritmo de clasificación es sesgar los datos... quieres quedarte con unos resultados frente a todos los demás. No lo llames error sistemático, que parece que es algo no buscado o incorrecto.
"El rendimiento del modelo lo medimos con una métrica objetiva, como pueda ser la tasa de acierto. Ahí no buscamos confirmar nuestras asunciones a priori. "
¿Tú haces una red neuronal que filtre personas de animales y no buscas asunciones a priori? ¿cuando quieres detectar si una célula es cancerosa o no, no haces asunciones a priori? ¿cuando quieres generar una imagen artificial de flores no haces asunciones a priori? TODO necesita unos datos de entrada y unas reglas, límites o filtros, a priori estás buscando algo, a priori remarcas una serie de características clave que distinga unas cosas de otra...
"El rendimiento del modelo lo medimos con una métrica objetiva, como pueda ser la tasa de acierto."
Define tasa de acierto... ¿no es eso "número de veces donde el algoritmo resuelve según lo que queremos"? ¿eso no es "sesgar el algoritmo" para que de preferencia a unas características frente a otras a la hora de valorar los datos de entrada?
"Si tus variables son malas, el modelo no aprende nada, por mucho que tú le intentes convencer de lo contrario."
Lo que vengo afirmando desde el primer comentario. La acción humana a la hora de definir un problema es primordial y principal en el éxito de cualquier algoritmo, modelado, sistema de control, etc.
Si buscas pandas rojos, le pones imágenes de pandas rojos y otras imágenes de otras cosas, pero le indicas claramente que lo que tú necesitas son pandas rojos. Cada vez que pasas un ciclo de entrenamiento, las neuronas se retroalimentan con qué cosas o patrones de los pandas rojos se repiten y cuáles no lo hacen porque se corresponden con otras cosas. Pero sin indicarle qué ha hecho correctamente y qué no, una IA no sabe. O sea, si que tienes que hacer asunciones a priori, y tienes que indicárselas a la IA, para que esta funcione y se entrene correctamente... ¿cómo vas a disminuír el error si no tienes una referencia, unas asunciones previas de qué es lo que quieres y qué no?
"Nosotros sólo queremos que sea capaz de predecir la etiqueta de un nuevo dato. "
Y la red lo adivina mediante... ¿magia?. No, lo hace porque le damos referencias de qué es lo que queremos y qué no.
"Pero el objetivo es incrementar la tasa de acierto general, no la de unos casos particulares."
Sobreentrena una red y comprueba qué pasa...
" Claro que es primordial, y tienes que hacer tú de forma manual la tarea de crear variables que aporten información a partir de los datos en bruto. ¿Qué puedes meter sesgos ahí? Por supuesto. "
Pues eso último que te preguntas es justamente de dónde ha venido todo este debate. Y me estás dando la razón.
"¿El modelo está sesgado? Para mi en este caso no está sesgado si lo que pretendes es hacer la predicción frente a datos nuevos. "
El modelo está sesgado desde el momento en que no tiene en cuenta ciertas cosas... humanas y a veces difíciles de medir y representar, no todas las variables necesarias pueden ser parte de unos datos de entrada o se pueden modelar con igual facilidad. Deducir salarios sobre datos sin contexto no tiene sentido. Da igual la ciudad que sea, si eres negro, mujer, inmigrante, tienes algún defecto congénito, eres feo o alguna cosa similar, en general vas a cobrar menos que si eres blanco, hombre, local, sano y guapo. Luego resulta que en general, en una ciudad un carpintero cobra más que en otra porque resulta que es una ciudad que tiene un aserradero. O es una ciudad portuaria. O todo lo contrairo porque está en medio de un desierto. Incluso dos ciudades exactamente iguales con las mismas condiciones socioeconómicas y geográficas cambian drásticamente por su condición política (de países diferentes, con condiciones políticas diferentes, con vecinos diferentes, etc). Es imposible modelar todas las variables posibles que tienen algo que ver con una cosa aparentemente tan tonta como es un sueldo. Y cualquier variable que te dejes en el tintero, sesga en cierta medida tus datos (quizá no en proporciones significativas y puedes asumir ese error, pero ese ya es otro tema distinto).
Del lat. praevidēre.
Conjug. c. ver; part. irreg. previsto.
1. tr. Ver con anticipación.
2. tr. Conocer, conjeturar por algunas señales o indicios lo que ha de suceder.
3. tr. Disponer o preparar medios contra futuras contingencias.
Pero la gente se cree estas monsergas. Mira casado que decia que esto de la IA se puede enseñar a buscar canceres en radiografias y el blockhain se le podia poner hasta el microondas. No se sabe para que, pero ponselo.
Marca menéame.
#5 Es que si a un algoritmo sólo le muestras una parte de la realidad, sólo será capaz de intentar predecir esa realidad. Los algoritmos basados en aprendizaje por refuerzo precisamente buscan que el sesgo no venga dado por los datos, aunque puede venir por cómo has generado el entorno donde aprende y las acciones que puede llevar a cabo. Pero sí, es complicado no introducir sesgos de forma no consciente.
Error. En general los algoritmos de aprendizaje automático no buscan eso sino, si nos centramos en clasificadores, intentar predecir una variable objetivo (target, etiqueta, variable dependiente... como lo quieras llamar). Con ese algoritmo construimos un modelo que es entrenado con una serie de ejemplos e intentamos hacer esa predicción con datos nuevos. El rendimiento del modelo lo medimos con una métrica objetiva, como pueda ser la tasa de acierto. Ahí no buscamos confirmar nuestras asunciones a priori. Si tus variables son malas, el modelo no aprende nada, por mucho que tú le intentes convencer de lo contrario. Y muchas veces las variables son malas porque contienen una información pobre o porque las has construido mal (porque reflejes un sesgo tuyo o por otros motivos).
1. No no haces asunciones a priori. Las imágenes las tendrás etiquetadas como animales y personas y la red buscará las características que le permitan distinguir una de otra. Precisamente lo bueno de las redes es que no le tienes que decir qué características tiene que buscar, sólo definir la tipología de la red para que sea capaz de hacer reconocimiento de imágenes.
2. Tampoco. Nosotros sólo queremos que sea capaz de predecir la etiqueta de un nuevo dato. Si le estás pasando al modelo la imagen de una persona, si no la etiqueta como tal es un error. Si son datos tabulares, puedes usar otras variables para que mejore la tasa de acierto. Pero el objetivo es incrementar la tasa de acierto general, no la de unos casos particulares.
3. Claro que es primordial, y tienes que hacer tú de forma manual la tarea de crear variables que aporten información a partir de los datos en bruto. ¿Qué puedes meter sesgos ahí? Por supuesto.
Creo que al final la discusión es un tema de enfoque. Es decir, tienes parte de razón pero no en todos los contextos de una IA. Por ejemplo, si quieres predecir el salario de una persona a partir de datos como ciudad, puesto de trabajo, experiencia, etc. y metes el género, esa variable te va a permitir aumentar el rendimiento de tu modelo porque es capaz de reflejar esa discriminación que existe en el mercado laboral. ¿El modelo está sesgado? Para mi en este caso no está sesgado si lo que pretendes es hacer la predicción frente a datos nuevos. Ahora bien, si lo vas a usar para hacer inferencia, para estimar el salario que le correspondería a una persona entra en tu empresa, meter el género es la peor de las ideas, porque el modelo va a hacer muy bien su trabajo en replicar o predecir la realidad existente y va a replicar el sesgo que ya había en los datos. Entonces, tienes razón para este caso. Pero si hablamos de cosas tan asépticas como reconocimiento de imagen, si no has hecho el cafre etiquetando gatos y perros, ahí no hay sesgo que valga porque lo único que tiene como entrenamiento es una imagen donde la información que le pasas al modelo es la que es. Es más, en cuanto intentes sesgarlo lo más mínimo, tu métrica va a caer por la propia naturaleza del problema.
En el mismo que tu.