Categoría: Inteligencia artificial

  • Los modelos fundacionales: Un nuevo paradigma en la IA

    Los modelos fundacionales: Un nuevo paradigma en la IA

    Los modelos fundacionales, también conocidos como modelos de IA de propósito general o sistemas de inteligencia artificial a gran escala, representan un avance significativo en el campo de la inteligencia artificial. Son modelos de aprendizaje automático entrenados en conjuntos de datos masivos y no etiquetados, lo que les permite realizar una amplia gama de tareas sin necesidad de ser ajustados o entrenados de forma específica para cada una de ellas.

    Los modelos fundacionales aún se encuentran en sus primeras etapas de desarrollo, pero ya tienen un impacto significativo en diversos sectores. Su capacidad para realizar múltiples tareas y adaptarse a diferentes dominios los convierte en una herramienta poderosa con un gran potencial para el futuro de la inteligencia artificial.

    Beneficios y diferencias de los modelos fundacionales frente a los modelos normales de IA

    Beneficios

    • Capacidad multitarea: Los modelos fundacionales pueden realizar diversas tareas, mientras que los modelos normales de IA generalmente están diseñados para una sola tarea específica.
    • Eficiencia: Se entrenan en conjuntos de datos masivos sin necesidad de etiquetarlos manualmente, lo que reduce el tiempo y el esfuerzo necesarios para su desarrollo.
    • Adaptabilidad: Se pueden ajustar a nuevas tareas y dominios específicos con un entrenamiento adicional relativamente ligero.
    • Potencial de innovación: Permiten la creación de nuevos productos y servicios gracias a su capacidad para generar contenido creativo y soluciones innovadoras.

    Diferencias

    • Tamaño y complejidad: Los modelos fundacionales son mucho más grandes y complejos que los modelos normales de IA, lo que requiere mayor potencia computacional para su entrenamiento y ejecución.
    • Interpretabilidad: Es más difícil comprender las decisiones tomadas por los modelos fundacionales debido a su complejidad.
    • Sesgos y riesgos: Los modelos fundacionales pueden heredar sesgos presentes en los datos con los que se entrenan, además de presentar riesgos potenciales de uso indebido o manipulación.
    Característica Modelo fundacional Modelo normal de IA
    Capacidad multitarea Alta Baja
    Eficiencia Alta Baja
    Adaptabilidad Alta Baja
    Tamaño y complejidad Alto Bajo
    Interpretabilidad Baja Alta
    Sesgos y riesgos Alto Bajo

    Pese a todas las ventajas que presentan los modelos fundacionales, un modelo estándar(especializado) es lo mas accesible para las empresas y emprendedores que se introducen a este mundo, además de que da un mejor control sobre el producto que construyen. Sin embargo los modelos fundacionales aportan muchas ideas y características que los hacen muy útiles para el uso diario.

    Algunos ejemplos de modelos fundacionales son:

    Déjanos tus dudas y comentarios. Comparte y nos vemos en el próximo post.


    ¡Conviértete en un experto tecnológico! 🚀 Suscríbete a nuestro newsletter y recibe las últimas noticias, análisis y tendencias directamente en tu bandeja de entrada. No te pierdas las actualizaciones que harán que tu experiencia tecnológica sea aún más emocionante. ¡Únete a nuestra comunidad hoy! 📧✨

  • Big Data e Inteligencia Artificial: ¿Fuentes de Desigualdad? ¿Cómo nos amenaza?

    Big Data e Inteligencia Artificial: ¿Fuentes de Desigualdad? ¿Cómo nos amenaza?

    El Big Data y la Inteligencia Artificial (IA) han emergido como poderosas herramientas que transforman la forma en que vivimos y trabajamos. Sin embargo, detrás de la fachada de la innovación y la eficiencia, se esconde una creciente preocupación: ¿están estas tecnologías contribuyendo a aumentar la desigualdad y representan alguna amenaza para nuestras vidas?

    Desigualdad en la Toma de Decisiones

    La aplicación de algoritmos basados en Big Data para la toma de decisiones en áreas cruciales como préstamos, educación y empleo ha suscitado inquietudes. Las decisiones automatizadas a menudo se basan en patrones históricos, lo que puede perpetuar y amplificar desigualdades existentes. La asignación de recursos, oportunidades y beneficios puede estar sesgada, afectando desproporcionadamente a comunidades marginadas.

    Riesgos de Discriminación

    La opacidad y falta de regulación en torno a estos algoritmos pueden resultar en discriminación inadvertida. Desde la denegación de préstamos hasta la exclusión de oportunidades educativas, las personas pueden enfrentarse a consecuencias negativas simplemente debido a factores como su código postal o historial crediticio. Esto crea una brecha significativa entre los beneficiados y los perjudicados.

    La Amenaza de las “Armas de Destrucción Matemática”

    El término “Weapons of Math Destruction” (Armas de Destrucción Matemática), acuñado por Cathy O’Neil, destaca cómo estos algoritmos, aparentemente objetivos, pueden tener consecuencias devastadoras. La falta de transparencia y la dificultad para impugnar decisiones algorítmicas plantean riesgos significativos para la privacidad y la equidad, erosionando la confianza en estas tecnologías.

    Habla sobre varios casos en donde las personas se han visto perjudicadas por las decisiones de los algoritmos y como la imparcialidad de estos afecta a las personas.

    Te invito a que le eches un vistazo:

    Impacto en la Democracia

    El uso indiscriminado de Big Data y IA también plantea riesgos para la democracia. La manipulación de la información y la segmentación de audiencia en campañas políticas pueden distorsionar la percepción pública y afectar la toma de decisiones informada.

    No olvidemos el caso de Cambridge Analytica, que presumió de poseer 5.000 datos sobre cada votante estadounidense, alegando la capacidad de determinar la personalidad de cada individuo. Utilizando principalmente Facebook como fuente principal de información, la compañía obtuvo de manera indebida datos de hasta 87 millones de perfiles, incluyendo actualizaciones de estado, indicaciones de “me gusta” y mensajes privados. Estos datos fueron utilizados para dirigir mensajes individualizados con el objetivo de influir en el comportamiento de los votantes.

    ¿Cómo Abordamos Estos Desafíos?

    Es crucial abordar estos problemas desde diversas perspectivas. La regulación efectiva, la transparencia en los algoritmos, y la incorporación de ética en el desarrollo de tecnologías son pasos fundamentales. Además, la participación activa de la sociedad civil y la conciencia pública pueden ser catalizadores para un cambio positivo.

    Mientras celebramos los avances tecnológicos, no podemos ignorar las sombras que acompañan al Big Data y la Inteligencia Artificial. Es nuestra responsabilidad colectiva asegurarnos de que estas herramientas se utilicen para construir un futuro más equitativo y sostenible, en lugar de contribuir a la desigualdad y amenazar nuestras vidas.


    ¡Conviértete en un experto tecnológico! 🚀 Suscríbete a nuestro newsletter y recibe las últimas noticias, análisis y tendencias directamente en tu bandeja de entrada. No te pierdas las actualizaciones que harán que tu experiencia tecnológica sea aún más emocionante. ¡Únete a nuestra comunidad hoy! 📧✨

  • Conceptos matemáticos de Deeplearning

    Conceptos matemáticos de Deeplearning

    Como vimos en el anterior post, a medida que vamos agregando complejidad a las operaciones necesitamos agregar capas ocultas, estas capas nos van a permitir detectar patrones y correlaciones; cada neurona se va a especializar en un patrón, es decir, se activara cuando reconozca ese patrón o relación, como una compuerta lógica.

    Pero antes de continuar veamos a pequeña escala en que fundamentos matemáticos se basa para crear estos patrones y en que consiste el entrenamiento, para esto vamos a utilizar la pequeña red que habíamos mostrado para ejemplificar una compuerta de tipo XOR. Otra pequeña aclaración es que solo vamos a ver los aspectos fundamentales del entrenamiento, aclaro esto ya que a medida que avancemos vamos a ir robusteciendo estas bases agregando hiperparámetros y otros procesos a medida que sea necesarios.

    Forward propagation

    La propagación hacia adelante consiste en tomar los valores de entrada para validar que neuronas se activan hasta llegar a la capa de salida. Suena fácil, pero vamos a complicarlo un poquito viendo que pasa en detalle por cada una de estas capas.

    Estamos muy acostumbrados a ver redes neuronales gigantes, con muchos hiperparámetros y entradas, pero claramente para aprender es mas conveniente trabajar con pocas entradas, por lo que vamos a crear nuestra pequeña red neural.

    Tenemos nuestras entradas definidas por la variable x_i, estas van a interactuar con nuestras primeras neuronas, recordemos que el valor que va a llegar a la siguiente neurona esta determinado por \sum w_ix_i+b ¿De donde salen los valores para w y b? Pues en nuestra primera iteración estos valores son generados para toda la red aleatoriamente, es decir que claramente nuestra predicción \hat{y} va ser errónea, pero eso lo iremos ajustando.

    Por ahora sabemos que llega un valor a nuestra neurona y esta debe decidir si se activa o no, es decir que debemos darle un umbral de decisión, aquí es donde nos apoyamos de nuestra función de activación. Una función de activación nos va a servir para determinar si el valor recibido cumple y puede continuar a la siguiente capa, a esto lo consideramos una activación.

    Aquí te dejo una lista de las funciones mas usadas. Actualmente la mas utilizada es la ReLU.

    Este proceso lo vamos a hacer por cada neurona, las salidas activación de nuestras neuronas serán la entrada en nuestra siguiente capa.

    En las capas ocultas lo mas probable es que tengamos funciones de activación ReLU, estas son muy comunes ya que todo lo que sea menor a 0 lo deja como 0 y estandariza el resto de valores entre 0 y 1. Sin embargo, para nuestra neurona de salida utilizamos una función de activación diferente y esto depende del tipo de problema en el que estemos trabajando. Por ejemplo, para una predicción de tipo regresión utilizamos una función linear, para un problema de clasificación usaremos la función softmax para casos de selección múltiple y la función sigmoide para clasificación binaria(una sola neurona a la salida).

    Una vez tenemos nuestra predicción \hat{y} podemos continuar con nuestro siguiente paso.

    Ground truth y cálculo del error

    El Ground truth hace referencia al resultado ideal esperado. Es nuestro punto de referencia para validar que tan precisas son nuestras estimaciones, por lo que inmediatamente la podemos asociar con nuestro set de datos de entrenamiento, es decir, el Ground truth esta formado por todas las mediciones de datos que se han recopilado para el entrenamiento.

    Vamos a empezar por calcular el error E, que en este caso será un medio por la diferencia al cuadrado del Ground truth y menos la predicción \hat{y}. Sin embargo recordar que tenemos diferentes opciones para calcular el error.

    Backpropagation

    Al iniciar el proceso se mencionó que los pesos entre neuronas se da aleatoriamente y es de esperar que el error sea alto; una vez tenemos ese error calculado debemos devolvernos y comunicar el valor del error para ajustar los pesos. El ajuste de pesos lo hacemos calculando la derivada parcial de la función aplicada, analizamos como varia el error en función de los pesos.

    Tenemos que utilizar una medida de learning rate  \eta (taza de aprendizaje), que me va a modular que tanto cambio los pesos, ya que la idea no es cambiarlos bruscamente si no que se dibuje una curva suave en donde se muestre como disminuye el error para alcanzar la convergencia.

    Veamos como seria el calculo del nuevo peso para la primera neurona en retro propagación.

    w_{1,1}^{2}(t+1)=w_{1,1}^{2}(t)-\eta \frac{\partial E}{\partial w_{1,1}^{2}}

    Lo que estamos indicando es que el peso para esa neurona en nuestra siguiente iteración t, es igual peso que tiene actualmente, menos el learning rate   \eta por la variación del peso con respecto al error.

    Este proceso se debe aplicar para cada uno de los pesos de la neurona, sin embargo, no se pueden calcular los pesos individualmente, ya que los pesos de una capa anterior influye en los pesos de la capa actual. Para solventar esto debemos calcular los pesos con la regla de la cadena, quedándonos la derivada de w_{1,1}^{2}(t+1) de la siguiente manera:

    \frac{\partial E}{\partial w_{1,1}^{2}}=\frac{\partial E}{\partial a_{1}^{3}}\cdot \frac{{\partial a_{1}^{3}}}{\partial Z_{1}^{3}}\cdot \frac{{\partial Z_{1}^{3}}}{\partial W_{1,1}^{2}}

    Finalmente podemos aplicar los cambios requeridos para ajustar cada neurona y así se repite este proceso iterativamente hasta hacer que nuestros valores deseados sean lo mas cercanos posible.


    ¡Conviértete en un experto tecnológico! 🚀 Suscríbete a nuestro newsletter y recibe las últimas noticias, análisis y tendencias directamente en tu bandeja de entrada. No te pierdas las actualizaciones que harán que tu experiencia tecnológica sea aún más emocionante. ¡Únete a nuestra comunidad hoy! 📧✨

  • Google Gemini: El nuevo competidor de la Inteligencia Artificial

    Google Gemini: El nuevo competidor de la Inteligencia Artificial

    En el apasionante universo de la inteligencia artificial, Google ha sacado a relucir su as bajo la manga con el lanzamiento de su proyecto más reciente e innovador: ¡Google Gemini! Este flamante modelo de IA tiene como objetivo liderar la competencia y dejar atrás a sus contrincantes, incluyendo al famoso GPT-4 de OpenAI.

    Google Gemini no es solo otra aplicación o chatbot; es un modelo multimodal que va más allá del mero procesamiento de texto. Puede sumergirse en el mundo de las imágenes, el audio y hasta el código de programación. Su enfoque flexible lo convierte en una opción poderosa y versátil en el fascinante paisaje de la inteligencia artificial.

    La magia detrás de Google Gemini reside en su proceso de entrenamiento único. A diferencia de otros modelos, Gemini ha sido creado desde cero como un modelo multimodal, lo que significa que puede comprender y combinar diversas fuentes de información de manera natural. Este enfoque integral le permite hacer malabares con objetos en tiempo real, sugerir canciones e incluso mejorar la generación de código gracias a su innovador sistema AlphaCode2.

    El modelo se presenta en tres versiones: Ultra, Pro y Nano. La Ultra brilla como la más avanzada y multimodal, mientras que la Nano, aparentemente más modesta, revoluciona al integrarse directamente en dispositivos móviles sin necesidad de una conexión constante a un servidor externo.

    Al compararlo con el gigante de OpenAI, GPT, Gemini Ultra emerge como el digno competidor de GPT-4, superándolo en las pruebas actuales. Gemini Pro compite con GPT-3.5, y aunque Gemini Nano aún no tiene su equivalente directo, destaca como una solución especialmente diseñada para dispositivos con restricciones de computación y memoria. Sin embargo no olvidemos que GPT Plus ha decidido elevar su juego con una emocionante actualización. Ahora, este asistente virtual puede ver, escuchar y hablar; sin embargo Gemini, con su diseño multimodal desde cero, puede destacar en su manera de relacionar los diferentes inputs.

    Tanto Google Gemini como ChatGPT adoptan una implementación gradual de sus nuevas funciones. Gemini Pro ya ha hecho su entrada triunfal en Google Bard, con disponibilidad en español. Además, se avecina el lanzamiento de una versión mejorada de Google Bard, llamada Bard Advance, que integrará Gemini Ultra a partir del próximo año.

    OpenAI, por su parte hace las actualizaciones y destaca su compromiso con construir una Inteligencia Artificial General (AGI) segura y útil. Ambos equipos reconocen los desafíos y riesgos adicionales que presentan estas tecnologías emergentes y han tomado medidas para abordarlos.

    Estamos viviendo un emocionante momento en la evolución de la inteligencia artificial, donde Google Gemini y ChatGPT de OpenAI compiten por la vanguardia. ¿Tienes alguna pregunta sobre cómo estas tecnologías están redefiniendo la interacción humano-máquina? ¿Te intriga saber más sobre las capacidades específicas de Gemini o las últimas actualizaciones de ChatGPT? ¡Queremos escucharte! Deja tus comentarios y preguntas a continuación; estamos ansiosos por sumergirnos en una conversación fascinante sobre el futuro de la IA y responder a todas tus inquietudes. ¡La revolución tecnológica está en marcha, y tu participación en esta conversación hace que sea aún más emocionante!


    ¡Conviértete en un experto tecnológico! 🚀 Suscríbete a nuestro newsletter y recibe las últimas noticias, análisis y tendencias directamente en tu bandeja de entrada. No te pierdas las actualizaciones que harán que tu experiencia tecnológica sea aún más emocionante. ¡Únete a nuestra comunidad hoy! 📧✨

  • Explorando el Rabbit R1: Un vistazo a la revolución de la Inteligencia Artificial

    Explorando el Rabbit R1: Un vistazo a la revolución de la Inteligencia Artificial

    En el vasto mundo de la tecnología y la inteligencia artificial, cada día emergen innovaciones que prometen transformar la forma en que interactuamos con el mundo digital. En este emocionante viaje hacia el futuro, una de las joyas más recientes que ha capturado la atención de la comunidad tecnológica es Rabbit R1. En este artículo, exploraremos qué es Rabbit R1, cómo funciona, y me encantaría compartir una pequeña reflexión sobre el dispositivo y el camino de la inteligencia artificial.

    ¿Qué es Rabbit R1?

    Rabbit R1 es un dispositivo compacto con dimensiones de 7,8cm x 7,8cm x 1,3cm y un peso de 115g. Ofrece una vida útil de la batería de al menos 500 ciclos, con una retención del 80%, y se carga con una corriente de 500mA, con una capacidad de carga máxima de 1000mAh.

    En cuanto a la conectividad, el dispositivo es compatible con Bluetooth 5.0, Wi-Fi de 2.4GHz + 5GHz y 4G LTE. Presenta un llamativo color naranja brillante y tiene una salida de altavoz de 2W, así como micrófono.

    El dispositivo cuenta con una pantalla táctil TFT de 2.88 pulgadas y está impulsado por un procesador MediaTek MT6765 Octa-core (Helio P35) con una frecuencia máxima de CPU de 2.3GHz. Ofrece 4GB de memoria RAM y una generosa capacidad de almacenamiento interno de 128GB.

    En términos de localización, el dispositivo incorpora un magnetómetro y GPS, y cuenta con sensores de movimiento como acelerómetro y giroscopio. Puede operar en temperaturas que van desde 0°C a 45°C (32º a 113º F).

    El dispositivo se carga y se expande a través de un conector USB-C, puede tomar fotografías con una resolución de 8MP (3264×2448) y una resolución de video de 24fps a 1080p. También tiene una ranura para tarjeta SIM.

    Si quieres echarle un vistazo al sitio web oficial te dejo el enlace aquí.

    Con un diseño compacto y características robustas, el hardware proporciona la base sólida de nuestro dispositivo, pero es en el reino del software donde su verdadera magia cobra vida. En el corazón de esta innovación se encuentra un modelo de inteligencia artificial bautizado como LAM(Large Action Model), básicamente es el pilar fundamental del sistema operativo Rabbit OS, donde su objetivo es comprender las intenciones humanas en entornos informáticos y llevarlas a cabo.

    Sinceramente yo no tengo el dispositivo, ni he tenido oportunidad de probarlo personalmente, pero e invertido un buen tiempo en ver los reviews y en visitar su sitio web para entender como lo hace. Se ve muy bueno y en los videos aparecen instrucciones sorprendentes, por ejemplo una persona delante del ordenador le dice al dispositivo que replique una serie de cambios de una imagen a las demás, esa instrucción ya implica un montón de procesos que realmente son muy interesantes. ¡Vamos a diseccionarlo!

    ¿Qué hace el Rabbit R1?

    El Rabbit R1 es un computador pequeño accionado por voz, va a responder tus preguntas, leer tus mensajes, agendar tus citas… En pocas palabras es un asistente robot que pretenden que lo lleves a todo lado. La verdadera innovación de este producto es crear un modelo de IA capaz de interpretar las intenciones y poderlas ejecutar en cualquier interfaz, hay que ver si es asi.

    Pero vamos a ir  un paso mas allá y ver que implica poder hacer esto. Lo primero es que al activar el dispositivo por medio de un botón se nos activa la entrada de audio, es decir que el dispositivo entra en modo de escucha a la espera de nuestras instrucciones.

    Aquí empieza la magia del modelo de IA. Lo primero que vemos es que una de las características destacadas de Rabbit R1 es su habilidad para comprender y generar texto de manera natural. A través de técnicas avanzadas de procesamiento del lenguaje natural, Rabbit R1 puede interpretar preguntas, responder de manera coherente y generar contenido humano similar. Es indudable que cuenta con un modelo de procesamiento de Voz y NLP ya sea propio o existente.

    El modelo procesamiento de voz crea las entradas para que el modelo de NLP genere las instrucciones que luego son procesadas por el modelo de acciones LAM, que lo que va a hacer en primera instancia es comprender nuestra intención, y tener en cuenta que podemos tener varias como lo han demostrado en los videos.

    Las intenciones anteriores pueden desencadenar que primero abra la aplicación de Google maps y también Spotify, donde claramente debe saber manejarse por las aplicaciones y mostrarnos la información que es relevante para nosotros. LAM viene preentrenado con las aplicaciones mas usadas, sin embargo tiene un modo de enseñanza, donde se puede activar la cámara del dispositivo e irle mostrando paso a paso una interfaz y proveerle lo necesario para que pueda replicarlo, pero este modo es experimental y yo dudaría un poco de que se adapte tan bien como lo prometieron, sin embargo hay que esperar y ojala me equivoque y funcione de maravilla.

    Rabbit R1 es muy práctico

    Vuelvo a mencionar que todo esto ha sido en base a los videos, así que hay que esperar a que nos llegue el producto final. El producto muestra que se puede simplificar tareas cotidianas y ofrecer soluciones eficientes, además de ofrecernos una interfaz que es mucho mas practica y humana por medio de la interacción con la voz. Además de que si cumple con la interacción con diferentes interfaces y el proceso de enseñanza es cómodo de seguro muchos dispositivos apuntaran hacia este nuevo modelo. Aunque a nivel de Hardware si lo cambiaria a algo mas practico como un reloj o pulsera, así seria mas intuitivo ver nuestra muñeca para ver los datos que necesitemos y no estar sacando el pequeño aparato. Aunque no me quejo, sin duda por el precio y lo que ofrece es un super producto.

    Delegación total a las IA

    No soy un Heater de la IA, al contrario, en este blog comparto lo que voy aprendiendo y me encanta como evoluciona, sin embargo si me parece preocupante que la automatización nos coja desprevenidos, y es que claro estas tecnologías permiten una eficiencia y automatización muy buenas y como lo dije anteriormente muy practicas pero nos acostumbran a consumir sin pensar, a delegar decisiones que pueden ser o no relevantes y nosotros somos los que en realidad tenemos el poder de calificar estas desiciones.

    Imaginemos la siguiente situación,  le pedimos a Rabbit R1 que pida una pizza, al recibirla debo notificarle al dispositivo la recepción para que concluya la transacción. Asumiremos que el dispositivo tenia en cuenta un tiempo promedio de entrega y el repartidor supero ese tiempo debido a un accidente que tuvo pero se disculpó he informo de la situación, sin embargo el dispositivo al no tener este contexto califico negativamente al repartidor y no nos informa de ello ya que no es información relevante para el usuario.

    Claro, es una situación hipotética y se pueden colocar controles para ello, sin embargo algo que nos ha demostrado la IA es que esta sesgada a los parámetros de entrenamiento y que son altamente vulnerables a los cambios y falta de contexto humano.

    Otro punto también es la falta de responsabilidad y transparencia de las empresas frente a sus modelos, ya que ovinamente administran su producto como tal pero se olvidan de las repercusiones sociales de este.

    Y finalmente quisiera también dejar en la mesa una inquietud ¿Cómo podrían las startups o nuevos servicios posicionarse cuando un dispositivo elige en vez de las personas? No hay peligro de crear oligopolios? ¿Qué hay con el tema de seguridad? Ellos mencionan que nada se guarda, pero que pasa con las credenciales, con los datos si mi dispositivo lo extravío… Dudas que supongo se resolverán sobre la marcha.

    En resumen, Rabbit R1 y su innovador Large Action Model (LAM) ofrecen una experiencia revolucionaria al comprender nuestras intenciones y simplificando nuestras interacciones digitales de manera asombrosa.

    Nos encantaría conocer tu opinión sobre esta emocionante convergencia entre hardware y software, y cómo visualizas el futuro de la inteligencia artificial en la vida cotidiana. ¿Qué tareas te gustaría delegar a Rabbit R1? ¿Cuáles son tus expectativas y preocupaciones? ¡Déjanos tus comentarios a continuación! Tu perspectiva es valiosa mientras continuamos explorando las fronteras de la tecnología y la inteligencia artificial. ¡Hasta la próxima interacción!


    ¡Conviértete en un experto tecnológico! 🚀 Suscríbete a nuestro newsletter y recibe las últimas noticias, análisis y tendencias directamente en tu bandeja de entrada. No te pierdas las actualizaciones que harán que tu experiencia tecnológica sea aún más emocionante. ¡Únete a nuestra comunidad hoy! 📧✨

  • Conceptos básicos de Deeplearning

    Conceptos básicos de Deeplearning

    Perceptrón

    Esta definición es clave para entender los conceptos matemáticos de una red neuronal. Fue creada por Frank Rosenblatt en 1957 pero debido a las limitantes técnicas no se pudo avanzar en su desarrollo. Sin embargo sus bases teóricas son las mismas.

    Un perceptrón es la unidad lógica básica de una red neuronal, es decir, es una neurona. Su funcionamiento es muy sencillo.

    Consta de una capa de entrada(inputs) y una neurona, esta neurona procesa una función(f) de activación, donde se transforma el bias(b) + el sumatorio de las entradas-inputs(x) * los pesos(w).

    La función de activación cambia dependiendo del tipo de problema que vayamos a resolver; pero eso lo veremos en otro post.

    El peso se refiere a la estimulación o nivel de interacción que tendrá el input, esto quiere decir cual es la importancia de ese dato de entrada en el calculo final.

    Ahora para entender el bias vamos a hacer unas representaciones de los datos y del funcionamiento del perceptrón.

    Imaginemos que tenemos un sensor que registra dos datos de entrada, los cuales pueden tomar valor 1 o 0, si queremos que nuestra neurona se active con uno de los dos datos de entrada tomaría la funcionalidad de una compuerta lógica OR, si por el contrario queremos que se active cuando ambos valores son 1 funcionaria como una compuerta de tipo AND. También tenemos un caso especial con la puerta lógica XOR, es cuando queremos la activación de la neurona únicamente cuando una de las salidas es 1. Vamos a hacer sus correspondientes tablas de verdad para entender su funcionamiento.

    OR

    X1
    X2 0 1
    1 1 1
    0 0 1

    AND

    X1
    X2 0 1
    1 0 1
    0 0 0

    XOR

    X1
    X2 0 1
    1 1 0
    0 0 1

    Vemos con la tabla de verdad que los datos en las compuertas lógicas OR y AND son linealmente separables, es decir, con una única línea puedo separar el espacio de valores.

    El bias, corresponde justamente al valor donde se intercepta el origen y la línea de división de los datos. Este bias puede variar para restringir alguno de los espacios. Sin embargo esta definición es para una función de activación o separación lineal, estos temas los veremos mas adelante; por ahora nos quedaremos con que este valor nos ayuda a controlar la activación de la neurona.

    El objetivo es ajustar los pesos y el bias para que separen los datos de la mejor manera posible. Esto lo podemos hacer en un proceso iterativo donde nos vamos acercando a los mejores valores.

    En una única neurona tenemos un montón de posibles valores correctos, sin embargo como vimos, ¿que pasa con el caso de la compuerta lógica XOR? Donde necesitamos de dos líneas para separar los datos.

    Perceptrón multicapa

    Para dar solución al problema de XOR se añade una capa oculta, es decir una línea nueva de neuronas antes de la neurona de salida, estas se encargaran de procesar los valores de los inputs para luego ser ponderados y procesados por la neurona de salida. Básicamente esta es la definición de un perceptrón multicapa, es decir le añadimos capas ocultas para aumentar la segmentación de los datos.

    Sin embargo ahora tenemos una cuestión mas importante. Se menciono que tenemos  muchos valores que ajustar, y vemos que a medida que vamos añadiendo capas, estos valores crecen, y se debe encontrar los valores mas óptimos para la solución del problema. Vemos el paso a paso del proceso que conocemos como Entrenamiento.

    Los valores que podemos modificar de manera global durante el proceso de entrenamiento los llamamos Hiperparámetros. Y los valores que modifica la propia red durante este proceso se llaman Parámetros.

    Época

    Anteriormente mencionamos que el proceso de entrenamiento es iterativo, es decir que lo repetimos un numero concreto de veces, que esta determinado por una función o valor de un hiperparámetro; a cada una de estas iteraciones la conocemos cómo época.

    Una época esta formada por los siguientes pasos:

      1. Forward propagation
      2. Comparación con el ground truth
      3. Cálculo del error
      4. Backpropagation

    Para profundizar en este y otros conceptos lo haremos en el siguiente post. Estará la explicación matemática de la selección de estos valores.

  • Introducción lógica borrosa

    Introducción lógica borrosa

    Conceptos básicos

    Dato: Representación parcial o total de algo. Tenemos diferentes tipos de datos. Suelen almacenarse en un datalake(repositorio de datos diversos en bruto) para extraer información.

    Información: conjunto de datos, Aprovechamiento inteligente de datos masivos.

    Conocimiento: Reglas aplicadas a los datos o información. Abstracción o patrones de un algo. Es la base del sistema de inteligencia de negocio.

    • Sistemas de ayuda a la decisión
    • Sistemas de recomendación
    • Análisis de series temporales (predicción(estimación) y pronostico(hecho puntual, sigue una tendencia))

    Tipos básicos de analítica de datos

    • Descriptivo: Describe que ocurrió o esta ocurriendo
    • Diagnostico: Indaga las causas de lo que esta ocurriendo y valida que evidentemente ocurre lo que se afirma que esta sucediendo.
    • Descubrimiento
    • Predictivo: ¿Qué es lo mas probable que ocurre?
    • Prescriptivo ¿Qué es lo mejor que se puede hacer?

    SOFTComputing

    Asociación de diferentes técnicas, donde cada una aporta desde su campo fuerte, los principales componentes son:

    • Lógica borrosa
    • Redes neuronales
    • Razonamiento probabilístico (redes de creencias)
    • Algoritmos genéticos
    • Teoría del caos
    • Teoría de aprendizaje

    Ingeniería del conocimiento

    Se encarga de analizar, pulir y extraer información de los datos por medio de sistemas expertos.

    Abducción: Razonamiento aproximado.

    Deducción: Inducción de los ejemplos a la generalización.

    Correlación a causalidad (Razonamiento por analogía)

    • Una causa tiene una relación con un efecto
    • Una causa puede tener una relación de similitud con otra causa, por ejemplo la gripe SARS tiene una relación de similitud con el Covid, por lo que podemos crear una relación para estimar los efectos.

    Conjunto clásico o CRISP

    Un conjunto es una lista, también lo podemos especificar a través de propiedades o reglas, por ejemplo el conjunto de los números pares.

    La función de característica indica si un elemento hace parte o no de un conjunto.

    El numero de elementos que pertenece a un conjunto A se llama cardinalidad del conjunto |A|

    La familia de conjuntos que incluye todos los subconjuntos de un conjunto se denomina conjunto potencia. El numero de elementos del conjunto potencia será: |P(A)|=2^{|A|}

    Lógica borrosa

    Proporciona bases para el razonamiento aproximado, incluye:

    • Predicados borrosos(caro, alto, raro, peligroso, …)
    • Cuantificadores borrosos (mucho, parecido, casi todo, …)
    • Valores de verdad borrosos (muy cierto, mas o menos cierto, …)
    • Cercas semánticas (muy, algo, …)
    Conjunto CRISP vs conjunto borroso
    Conjunto CRISP vs conjunto borroso

    El soporte de un conjunto borroso A es el conjunto crisp que contiene todos los elementos del domino que tienen un grado de pertenencia no nulo en A.

    Altura de un conjunto borroso es el mayor grado de pertenencia que tiene cualquiera de los elementos del conjunto borroso.

    Núcleo de un conjunto borroso es el conjunto de elementos del soporte que tienen el máximo grado de pertenencia al conjunto borroso.

    Un conjunto borroso es normalizado cuando al menos uno de sus elementos alcanza el grado de pertenencia 1.

    \alpha-corte de un conjunto borroso A es un conjunto crisp que contiene todos los elementos de conjunto universal X que que tienen un grado de pertenencia en A mayor o igual que el valor \alpha.

    Conjunto nivel de un conjunto borroso A es el conjunto de sus distintos \alpha-cortes o niveles \Alpha\in[0,1].

    Cardinalidad escalar de un conjunto borroso A definido en un conjunto de universo finito se define como la suma de los grados de pertenencia de todos los elementos del dominio en A

    \left|A\right|=\sum_{x\in X}\mu_A(x)

    Cardinalidad borrosa es un conjunto borroso cuya función de pertenencia se define como:

     \mu_{\left|{A}' \right|}(\left|A_\alpha\right|)=\sum_{i=1,n}\alpha_i/n_i

    Indica cuantos elementos quedan por encima de un \alpha-corte.

    Un conjunto borroso A es convexo sí y solo sí cada uno de sus \alpha-cortes es un conjunto convexo en sentido crisp.

    Número borroso es un conjunto borroso convexo y normalizado cuya función de pertenencia es continua.

    Ejemplo número borroso 0
    Ejemplo número borroso 0

    Operadores

    Or \vee=\cup Unión

    And \wedge=\cap Intersección

    Implica \to=\subseteq Inclusión

    Negación \lnot A=\tilde{A} Complementario

  • Aprendizaje supervisado – Clasificación

    Aprendizaje supervisado – Clasificación

    Regresión logística

    LOGR o regresión logit, a pesar de su nombre no tiene nada que ver con algoritmos de regresión, si no que es un algoritmo de clasificación. Funciona creando una frontera lineal entre dos clases, es decir que nos da una probabilidad de que la predicción pertenezca a una determinada clase, suele ser P>0.5=1 pero podemos fijar este criterio de decisión dependiendo de nuestra necesidad.

    Una de las métricas mas utilizadas para medir la bondad de los clasificadores es la métrica AUC(área bajo la curva). La curva ROC mide la relación entre las tasas de aciertos y de falsos positivos en función del umbral de clasificación. Cuanto mayor sea el área bajo la curva ROC, mejor será el clasificador. Un clasificador perfecto tendrá un valor de AUC = 1.

    Como mencionamos anteriormente, este algoritmo separa en dos clases, es decir que cuando tenemos un problema multiclase lo que hace es validar una clase frente a todos los demás, si no corresponde toma la siguiente clase y vuelve a comparar, algo como un switch case iterativo, separa todos los items de una clase, luego la siguiente y así sucesivamente hasta que crea una línea de separación por cada clase, lo que significa que tenemos un subproblema por cada clase a predecir; con cada línea(corete de frontera) se calculan las bisectrices.

    Para llevar a cabo el entrenamiento utilizamos una función matemática que permite devolver predicciones a partir de la transformación exponencial de una combinación lineal de los atributos.

    \hat{y}=\frac{1}{1+e^{-W_0-W_1\cdot X_1-\cdots -W_p\cdot X_p}}

    Como mencionamos es un proceso iterativo, en donde cada época los coeficientes se van actualizando para acercarse al resultado deseado(separar la clase de las demás). El valor optimo de estos coeficientes son aquellos que maximizan la siguiente función objetivo(función de verosimilitud):

    f(W_0,\cdots,W_p)=\sum_{i=1}^{n}y_i\cdot ln(\hat{y_i})+(1-y_i)\cdot ln(1-\hat{y_i})

    Ventajas:

    • Simplicidad
    • Fácil de interpretar las predicciones
    • Tiempo de entrenamiento razonable
    • Tiempo de predicción casi instantáneo

    Desventajas:

    • Se asume que los atributos son independientes, no tienen una correlación significativa
    • Modelo muy simple, solo permite crear una línea de decisión entre dos clases

    Árboles de decisión

    Es un modelo de conocimiento que puede generarse a partir de datos y puede usarse tanto para clasificación como regresión. Se divide el conjunto de datos de manera jerárquica en trozos menores hasta lograr llegar a una única clase.

    A Tutorial to Understand Decision Tree ID3 Learning Algorithm

    Antes de ver la implementación vamos a conocer el índice de Gini, veamos un ejemplo.

    En este caso vamos a calcular el índice Gini por género.

    p_g=\frac{9}{16}=0.56

    q_g=1-p_g=0.44

    G_g=p_{g}^2+q_{g}^2=0.50

    p_b=\frac{6}{14}=0.42

    q_b=1-p_b=0.58

    G_b=p_{b}^2+q_{b}^2=0.51

    Tenemos el índice de Gini para las chicas y los chicos, ahora para sacar el ponderado por genero lo que hacemos es sumar ambos índices por la frecuencia de las posibilidades.

    Gini_G=\frac{16}{30}\cdot G_g+\frac{14}{30}\cdot G_b

    Gini_G=\frac{16}{30}\cdot 0.50+\frac{14}{30}\cdot 0.51

    Gini_G=0.50

    En este caso solo lo hicimos con un atributo, pero la idea es hacerlo por todos los atributos, por ejemplo altura, edad, etc. Este valor nos sirve para detectar los atributos mas discriminativos, es decir calculamos el índice Gini para cada condición y la que tenga mas valor es la que tiene mayor rango en la jerarquía.

    Ventajas:

    • Simplicidad
    • Fácil de interpretar las predicciones
    • Tiempo de entrenamiento razonable
    • Tiempo de predicción muy rápido
    • Flexibilidad en la características de los datos

    Desventajas:

    • Riesgo de sobreajuste
    • Sensibilidad al desbalanceo de las clases

    Support Vector Machine(SVN)

    Este algoritmo funciona a partir de funciones discriminales lineales, es decir que se limita a discriminar entre dos clases, sin embargo no significa que debamos huir a problemas multiclase, lo que hacemos es un one vs all para abordar estos problemas.

    Consiste en hallar un hiperplano optimo capaz de separar el espacio muestral en dos regiones de manera que cada región pertenezca a una clase, donde el optimo es el que maximiza el margen.

    A los dos puntos mas cercanos que tocan el limite del margen se les llama vectores de soporte. Definiendo un hiperplano positivo y uno negativo.

    Dada una muestra (x_i,y_i) y un hiperplano denotado por un vector w y un bias b, el objetivo es determinar la distancia de x_i al hiperplano.

    \beta =w\cdot x +b

    D=\{|(x_i,y_i)|x_i\in\mathbb{R}^{n}, y_1\in\{-1,1\}\}_{i=1}^{m}\to \textrm{}_{i=1\cdots m}^{B=\textrm{min}\beta_i}

    Al utilizar esta función nos encontramos con el problema del signo negativo, donde en la anterior imagen al minimizar \beta pareciera que cualquiera de las dos opciones funciona pero solo hay un hiperplano optimo.

    Para solucionar esto se introduce la variable y de manera que:

    • Si el resultado es positivo la clasificación es correcta
    • Si el resultado es negativo la clasificacion es incorrecta

    Ahora el objetivo a minimizar es:

    F=\textrm{}_{i=1\cdots m}^{B=\textrm{min }y_i(w\cdot x_i+b)}

    Tenemos adicionalmente otro problema, por ejemplo, un vector w_1=(2,1) y b_1=5 representa el mismo hiperplano que el vector w_2=(20,10) y b_2=50. Vemos que en el caso de w_2 tenemos una F diez veces mayor. A esto se le conoce como problema de escala. La solucion es dividir el vector w y el bias b, por su norma; por lo que la función objetivo a minimizar seria:

    M=\textrm{}_{i=1\cdots m}^{B=\textrm{min}}y_i(\frac{w}{||w||}\cdot x+\frac{b}{||w||})

    Minimizando:

    \textrm{min}\frac{1}{2}||w||^2 donde y_i(w\cdot x_i)+b\geq 1,i=1,\cdots,m

    Hasta ahora este proceso me genera un hard margin SVN que requiere que mis datos sean linealmente separables y que no haya distorcion en los datos; para solventar esto surge soft margin SVN.

    El soft margin SVN introduce una variable de holgura capaz de minimizar los errores de predicción, permitiendo cometer mas errores de clasificación durante el entrenamiento, su función a minimizar es:

    \textrm{min}\frac{1}{2}||w||^2+C\sum_{i=1}^{m}\zeta_i

    Donde

    y_i(w\cdot x_i+b)\geq 1-\zeta_i
    \zeta_i\geq0 para cualquier i=1,\cdots,m

    C(box constraint) es un parámetro de regularización que controla la compensación entre la penalización de las clasificaciones erróneas(teniendo en cuenta las variables de holgura) y el ancho del margen.

    Usando hard margin SVN podemos generar un problema de overfiting, ya que el hiperplano optimo se ajustara a nuestros datos.

    Usando la librería de SKlearn al colocar la C, entre mas alto menos importancia le damos a los errores y por lo tanto hay mas permisividad pero puedo caer en underfiting.

    Mencionamos que se puede utilizar en datos linealmente separables, pero cuando no lo son podemos aplicar el kernel trick usando una función kernel(cuadrático, gaussiano, etc); esto permite proyectar un espacio muestral D-dimensional a otro espacio M-dimensional, donde M>D

    \varnothing:\mathbb{R}^{D}\to\mathbb{R}^{M}

    Esto permite separar de manera lineal aquellos datos que originalmente no eran separables.

    Cuando trabajamos con kernel otro hiperparámetro que podemos usar es Gamma, se utiliza con la función RBF(radial basiss function) de kernel gaussiano. Este permite definir el grado de curvatura de la frontera de decisión. Normalmente se usan valores de gamma entre 0.01 y 100

    \gamma=\frac{1}{2\sigma^2}

    RBF=e^{-\gamma\cdot||x-x'||}

    menos permisivo –> más importancia a errores de entrenamiento

    más permisivo –> menos importancia a errores de entrenamiento

    Bagging – Bootstrap aggregating

    1. Divide en varios subconjuntos los datos de entrenamiento.
    2. Se crea un modelo(clasificador) por cada subdataset. Se puede utilizar cualquier clasificador pero el mas usado son los arboles de decisión dando el método mas conocido, random forest. Se utilizan también distinto numero de características en cada subdataset. El uso del modelo se basa en  weak learners (clasificadores con al menos un 51% de éxito) para construir el strong learner
    3. La clasificación final se obtiene del promedio de todos los clasificadores. De esta manera este algoritmo reduce la varianza y minimiza el overfitting.

    Ventajas:

    • Eficiente sin ajustar hiperparámetros en problemas de clasificación y regresión
    • Estabilidad y robustez en la predicción, ya que al utilizar muchos árboles prevalece el promedio de las votaciones.
    • Posibilidad de utilizar gran cantidad de características
    • Tiende a reducir el riesgo de overfitting.

    Desventajas:

    • Coste computacional más elevado que construir un solo árbol de decisión.
    • Inconsistencia cuando se utilizan datasets pequeños.

    BOOSTING

    El entrenamiento se realiza creando también varios modelos, pero en esta ocasión lo hace en serie y en cada iteración conserva el error cometido en la anterior iteración para mejorar el modelo actual.

    Aquí también se utiliza mucho los arboles de decisión como método de decisión. Y su método mas conocido es Adaboost.

    1. Adaboost solo se crea árboles compuestos por un solo nodo, es decir evaluá una característica y saca dos posibles predicciones, lo que se denomina stump; de esta manera, se crea lo que se conoce como Forest of StumpsLos stumps no son buenos clasificadores por sí solos, por eso son weak learners. La idea es utilizar el stump que tenga un menor índice Gini.
    2. Adaboost aplica la técnica de majority voting de manera ponderada, por lo que algunos árboles contribuyen más que otros en la decisión final. Esta ponderación se hace con la siguiente ecuación:
      \textrm{Importancia}=\frac{1}{2}log(\frac{1-\textrm{Total Error}}{\textrm{Total Error}})
      *El error es igual al número de fallos cometidos entre el total de los registros

    E_\gamma =\frac{1}{8}=0.125

    \textrm{Importancia}=\frac{1}{2}log(\frac{1-0.125}{0.125})=0.973

    1. En los registros donde se cometen errores otorgamos mayor peso \textrm{weight}_{t+1}=\textrm{weight}_t\cdot e^{\textrm{importancia}}
      Donde no se cometen errores \textrm{weight}_{t+1}=\textrm{weight}_t\cdot e^{-\textrm{importancia}}
      Tomando el ejemplo anterior:
      \textrm{weight}_{2}=\frac{1}{8}\cdot e^{0.97}=0.33 para el caso incorrecto
      \textrm{weight}_{2}=\frac{1}{8}\cdot e^{-0.97}=0.05 para los casos correctos
    2. Se normalizan los pesos dividiendo cada valor entre el sumatorio de los nuevos pesos. Los pesos normalizados constituirán el nuevo sample weight.
    3. Se define un conjunto de datos vacío de las mismas dimensiones que el original.  Después, se selecciona aleatoriamente un valor entre 0 y 1, y se añade el registro correspondiente en función de la suma ponderada de la columna de sample weight.

    Ventajas:

    • Fácil implementación.
    • Permite corregir errores de manera iterativa usando weak classifiers.
    • Mejora el rendimiento combinando weak learners.
    • No produce overfitting.

    Desventajas:

    • Es sensible a datos ruidosos.
    • Es poco robusto frente a outliers
  • TEORÍA DE LA EVIDENCIA

    TEORÍA DE LA EVIDENCIA

    Preliminares

    También llamada teoría de Dempster-Shafer, modela la incertidumbre del conocimiento eliminando algunos puntos débiles del enfoque probabilista bayesiano. Hace principal énfasis en la suma de la creencia en un hecho y en su contrario no tiene por que ser.

    En probabilidad el aumento de la probabilidad en una hipótesis hace disminuir automáticamente su contraria.

    Se considera como punto de partida una serie de entornos(q1,q2,\cdots). Un entorno(H) consta de un conjunto de hipótesis mutuamente exclusivas(una no puede influir una en otra) y exhaustivas(cubren todas las posibles situaciones de dicho entorno). Este conjunto de hipótesis se llama marco de discernimiento.

    H={h1,h2,\cdots,hn}

    Se define conjunto potencia del marco H al formado por todos los subconjuntos de hipótesis.

    P(H)=[\{\varnothing\},\{h1\},\{h2\}\cdots,\{h1,h2\}\cdots\{h1,h2,\cdots,hn\}]

    Para entender como trabajar con esta teoría necesitamos de algunos conceptos clave:

    La función de asignación de probabilidad básica o masa de probabilidad que asigna valores entre 0 y 1 a cada elemento del conjunto potencia. 2^N\in[0,1] definida como:

    m(\varnothing)=0 masa del conjunto vacío es cero

    \sum_{S_i\subseteq H}m(S_i)=1

    Donde:

    0<m(S_i)<1

    S_i cualquier subconjunto del marco de potencia.

    m(S_i) es asignado por el experto según su juicio.

    La creencia(BEL) en un conjunto de hipótesis S es la suma de todas las masas de probabilidad de los subconjuntos.

    BEL(S)=\sum_{X\subset S}m(X)

    El valor de m asignado a S_i indica la creencia en ese conjunto.

    Bel(S_i) indica la creencia en ese conjunto y todos sus subconjuntos.

    Bel(H)=1

    El intervalo de creencia o certidumbre de un conjunto S es:

    [BEL(S),1-BEL(\sim S)]

    \sim S es el conjunto complementario de S respecto al conjunto potencia.

    Plausibilidad es una medida del grado en que la evidencia no puede refutar S:

    PL(S)=1-BEL(\sim S)

     

    Incertidumbre es: PL(S)-BEL(S)

    En el enfoque de Bayes las probabilidades son un número, mientras que en esta teoría las probabilidades se expresan por intervalos de creencia. Sin embargo cuando estos intervalos se estrechan las teorías tienden a coincidir.

    Otra particularidad es que la probabilidad en Bayes de un subconjunto es menor o igual que el conjunto padre, sin embargo en la teoría DS no necesariamente es así.

    Además en Bayes la suma de un conjunto mas su complementario es 1 mientras en DS no esta definido.

    Es muy común que tengamos que añadir o actualizar las funciones de asignación básica de probabilidad sobre el marco de discernimiento, por ejemplo, en un diagnostico medico a medida que avanza un tratamiento o en un proceso en el que vamos recogiendo nueva evidencia. En este caso siendo m1 una función que estime previamente y m2 una función con evidencia añadida, el resultado de combinar ambas funciones es:

    m3(C)=\frac{\sum_{X\cap Y=C}m1(X)\cdot m2(Y)}{1-\sum_{X\cap Y=\varnothing }m1(X)\cdot m2(Y)}

    X,Y,C son subconjuntos del marco de discernimiento.

    En el numerador encontramos el soporte, que entre mas evidencia mas apoya las posibles hipótesis.

    En el denominador tenemos el conflicto entre las hipótesis. Si el conflicto da 1, la función quedaría como 1-1=0 lo que da una probabilidad contradictoria.

    Practica

    Imaginemos el siguiente caso: Cuatro personas, Bob, Jim, Silvia y Tania, se reúnen en una habitación, se va la luz y Tania esta muerta.

    En un principio se puede sacar las siguientes conclusiones:

    • Bob es culpable
    • Jim es culpable
    • Silvia es culpable
    • Alguna combinación de los participantes

    H={B,J,S}

    Conjunto potencia: H=[\{\varnothing\},\{B\},\{J\},\{S\},\{B,J\},\{B,S\},\{J,S\},\{B,J,S\}]

    Ahora, supongamos que después de las investigaciones se asignan las siguientes masas de probabilidad a las diferentes hipótesis:

    m(\{\varnothing\})=0

    m(\{B\})=0.1

    m(\{J\})=0.2

    m(\{S\})=0.1

    m(\{B,J\})=0.1

    m(\{B,S\})=0.1

    m(\{J,S\})=0.3

    m(\{B,J,S\})=0.1

    Creencia:

    BEL
    \{\varnothing\} 0 0
    \{B\} 0.1 0.1
    \{J\} 0.2 0.2
    \{S\} 0.1 0.1
    \{B,J\} 0.1 0.4
    \{B,S\} 0.1 0.3
    \{J,S\} 0.3 0.6
    \{B,J,S\} 0.1 1.0

    La investigación sigue avanzando y se encuentran nuevas pistas, reasignándose una nueva masa de probabilidad ante las nuevas evidencias:

    mr(\{\varnothing\})=0

    mr(\{B\})=0.2

    mr(\{J\})=0.1

    mr(\{S\})=0.05

    mr(\{B,J\})=0.05

    mr(\{B,S\})=0.3

    mr(\{J,S\})=0.1

    mr(\{B,J,S\})=0.2

    Vamos a sacar la nueva masa de probabilidad combinada.

    BJS 0.1
    JS 0.3 C
    BJ 0.1 C
    BS 0.1 C
    S 0.1 C C C
    J 0.2 C C C
    B 0.1 C C C
    B 0.2 J 0.1 S 0.05 BJ 0.05 BS 0.3 JS 0.1 BJS 0.2

    Conflicto:

    C=0.2\cdot 0.2+0.1\cdot 0.2+0.3\cdot 0.2+0.1\cdot 0.1+0.1\cdot 0.1+0.1\cdot 0.1+0.1\cdot 0.05+0.2\cdot 0.05+0.1\cdot 0.05+0.05\cdot 0.1+0.2\cdot 0.3+0.1\cdot 0.1

    C=0.245

    Normalización:

    1-0.245=0.755

    Vamos a sacar la estimación de la nueva masa combinada en base a Bob m3(B)

    BJS 0.1 X
    JS 0.3 C
    BJ 0.1 X C X
    BS 0.1 X C X
    S 0.1 C C C
    J 0.2 C C C
    B 0.1 X C C X X C X
    B 0.2 J 0.1 S 0.05 BJ 0.05 BS 0.3 JS 0.1 BJS 0.2

    Marcamos con X los valores que usaremos para sacar el numerador:

    0.1\cdot 0.2+0.1\cdot 0.2+0.1\cdot 0.2+0.1\cdot 0.2+0.1\cdot 0.05+0.1\cdot 0.05+0.1\cdot 0.3+0.1\cdot 0.3+0.1\cdot 0.2=0.17

    m3(B)=\frac{0.17}{0.755}

    m3(B)=0.225

  • Aprendizaje supervisado – Regresión

    Aprendizaje supervisado – Regresión

    La regresión nos permite predecir uno o varios valores.

    OLS

    Uno de los algoritmos mas simples es el OLS. Sirve tanto para regresión simple como regresión múltiple. Consiste en una función matemática muy sencilla(combinación lineal de los atributos) del siguiente modo:

    \hat{y}=W_0+W_1\cdot X_1+\cdots +W_p\cdot X_p

    \hat{y} es el valor predicho, X hace referencia a los parámetros y W a los coeficientes del modelo; W_0 es el termino independiente de la combinación lineal.

    Este es un proceso iterativo en el que vamos ajustando los coeficientes y por lo tanto requiere una función objetivo(función de bondad o coste)) para evaluar la bondad de una posible solución, en OLS la función se expresa como:

    f(W_0,\cdots,W_p)=\frac{1}{2n}\cdot\sum_{i=1}^{n}((W_0+\sum_{j=1}^{p}W_j\cdot X_{i,j})-y_i)^2

    Básicamente consiste en la suma de las diferencias al cuadrado entre la estimación del modelo(coeficientes) y la clase real. El factor \frac{1}{2n} actúa como corrección al volumen de datos de entrenamiento, con el fin de normalizar la función objetivo.

    Particularidades a tener en cuenta

    • Simplicidad del modelo.
    • El modelo es fácil de interpretar. A mayor valor del coeficiente mas relevancia tiene en el modelo.
    • Gran eficacia en problemas de índole lineal.
    • Tiempo de entrenamiento muy razonable.
    • Tiempo de predicción casi instantáneo debido a que genera una única función matemática.

     

    • Se requiere variables estadísticamente independiente, sin correlación significativa.
    • Los valores se deben aproximar a una distribución normal. Los outliers afectan significativamente al modelo.
    • La homocedasticidad de los datos.

    En el ejemplo a continuación se usa validación cruzada pero es innecesario por que no hay parámetros a optimizar.

    En el anterior ejemplo de OLS introducimos esta métrica, y es que es exclusiva de modelos lineales. R^2 es el coeficiente de determinación y recoge la cantidad de variabilidad de la clase con respecto a su media aritmética.

    R^2=1-\frac{\sum_{i=1}^{n}(y_i-\hat{y_i})^2}{\sum_{i=1}^{n}(y_i-\bar{y})^2}

    \bar{y} es la media aritmética de los valores de una clase. En R^2=1 indica una predicción perfecta.

    KNN (Vecinos más cercanos)

    Este método se basa en la premisa de que ejemplos similares presentan un comportamiento similar en su clase, es decir que podemos agrupar por sus características. Este acercamiento nos sirve tanto para regresión como clasificación y por su algoritmo lo podemos usar tanto en aprendizaje supervisado como no supervisado.

    Básicamente en aprendizaje supervisado consiste en generar como predicción el promedio de los ejemplos de entrenamiento mas parecidos a la entrada. Para encontrar los vecinos mas cercanos la clave esta en definir una distancia:

    • Minkowski(e_i,e_j)=(\sum_{d=1}^{p}|x_{i,d}-x_{j,d}|^q)^{\frac{1}{q}}
    • Euclidea(e_i,e_j)=\sqrt{\sum_{d=1}^{p}|x_{i,d}-x_{j,d}|^2}

    En realidad es la misma distancia y solo vamos variando el valor de la q.

    En la mayoría de los casos la distancia mas usada es la euclídea. Sin embargo independiente de la que queramos usar la distancia debe cumplir con las siguientes propiedades matemáticas:

    • No negatividad: d(e_i,e_j)\geq0
    • Identidad: d(e_i,e_j)=0\Leftrightarrow e_i=e_j
    • Simetría: d(e_i,e_j)=d(e_j,e_i)
    • Desigualdad triangular: d(e_i,e_r)+d(e_r,e_j)\geqd(e_i,e_j)

    Particularidades a tener en cuenta

    • Es fundamental estandarizar los atributos, este algoritmo es muy sensible a la escala en los rangos de valores.
    • Determinar una buena función de distancia.
    • La ponderación de los vecinos, si un vecino mas cercano tiene mas peso.
    • La ponderación de los atributos, si un atributo es mas relevante que otro.
    • Simplicidad.
    • Fácil de interpretar.
    • Tiempo de entrenamiento nulo.

     

    • El tiempo de ejecución se puede ampliar dependiendo de la cantidad de datos.
    • Falta de generalización.
    • Necesidad de tener en la misma escala los datos.

    OLS vs KNN

¡Hola a todos los entusiastas de la tecnología! Quería informarles que en mi blog utilizamos cookies para mejorar la experiencia de usuario. Estas pequeñas herramientas nos ayudan a personalizar el contenido y ofrecer funciones específicas. Al continuar explorando el sitio, aceptas nuestro uso de cookies. Puedes obtener más información sobre cómo las utilizamos en nuestra política de privacidad. ¡Gracias por ser parte de esta comunidad tecnológica! 🍪    Más información
Privacidad