Showing posts with label aprendizaje de maquina. Show all posts
Showing posts with label aprendizaje de maquina. Show all posts

Sunday, December 11, 2022

Human Centered AI Live Stream: Sota Researcher!

The research engineer Phil Butler from our lab is starting a new live stream on Human Centered AI. Through his live stream he will help you design and implement AI for people.
  • In each live stream you will learn how to design and create AI for people from start to finish. He will teach you how to use different design methologies such as mockups,storyboards, service design; as well as different AI models and recent state of the art techniques. In each live stream you will have code that will help you to have a complete AI for people project.
  • Some of the topics he will cover in his live stream include: Understanding and Detecting Bias in AI; Design principles for Designing Fair and Just AI; How to Create Explainable AI.
  • The streams will benefit anyone who wants to learn how to create AI on their own, while also respecting human values.
  • The stream will help people to learn about how to implement AI using state of the art techniques (which is key for getting top industry jobs), while also being ethical and just about the AI that is created.


Join us! https://www.youtube.com/@sotasearcher

Monday, May 16, 2011

LDA is not Ladies Ditching Apes

I have recently been working on Topic Modelling and thought I'd do a brief tutorial on how to automatically divide a text into a series of relevant topics.

Before we dive into our coding, let's give a brief overview of the topic so we are all on the same page:

Topic Modelling is all about automatically finding the thematic structure of a document or a series of documents.

Topic modelling specifies a probabilistic method through which documents can be created. Initially a distribution over topics is selected. For example, the topics of Love and Mexico could be chosen, but each assigned a certain weight or probability. If it was sought for the article to have a greater political inclination, Mexico would be assigned a greater weight than Love. Whereas if the purpose was to write a romantic novel, Love would have a much higher weight or probability assigned than Mexico. Once the topics along with their corresponding probabilities have been assigned, a topic is chosen randomly according to the distribution, and a word from that topic is drawn. This process of randomly choosing a word from a topic is done iteratively until the system has finished "writing" the article.

Besides creating documents automatically ( Hasta la vista estudiantes de Literatura :P) Topic Modelling can also infer the set of topics responsible for generating a collection of documents.
We care about Topic Modelling because it can enhance search in large archives of texts, it also permits for better similarity measures: given two documents exactly how similar are they?

Different algorithms exist for finding the thematic structure of a document. Today we will focus on one particular algorithm called Latent Dirichlet Allocation (LDA). Which is a "...generative probabilistic model for text corpora...".
The intuition behind LDA is that a document is conformed of a series of different topics, and each topic is a probability distribution over words. Each document is a random mixture of corpus-wide topics, where each word of a document is drawn from one of these topics. LDA intents to infer how the documents are divided according to these topics, and what the topics are. The only information LDA has, are the documents.

In the following, we will use THE FORMAL notation of LDA, (mathematical style!) to make things a bit more clearer:
P(z) denotes the topic distribution z of a particular document. P( w | z ) is the probability distribution of words w given topic z. LDA assumes each word wi in a document (where the index refers to the ith word token) is generated by first sampling a topic from the topic distribution, then choosing a word from the topic-word distribution. We write P( zi = j ) as the probability that the jth topic was sampled for the ith word token and P( wi | zi = j ) as the probability of word wi under topic j.

LDA assumes that the topics present a Dirichlet distribuition, i.e. the mixture weights θ are generated by a Dirichlet prior on θ. Each topic is modelled as a multinomial distribution
over words.
Hopefully this brief overview will allow us to have some Python coding fun for our next post!

Monday, February 02, 2009

¿Cómo aprendería una máquina un concepto?

Cuando hablamos de aprendizaje, nos referimos al hecho de mejorar alguna tarea usando la experiencia .
Esto es:
  • Mejorar en la tarea T
  • Con respecto a la medida de rendimiento P
  • basándose en la experiencia E.

    Por ejemplo, aprender a jugar ajedrez:

  • *T:Jugar ajedrez
  • *P: % de juegos ganados en torneos.
  • *E:Opportunidad de jugar contra uno mismo.

Es fácil de entender esto, ya que en la vida cotidiana cuando un individuo aprenda un concepto nuevo, es muy común que utilice una serie de ejemplos específicos que le sirven de entrenamiento. Si el individuo está aprendiendo lo que es una vaca, los ejemplos de entrenamiento que podría tener son fotos diversas de vacas, donde se le indique que esas fotos son efectivamente de vacas, también se podría tener como entrenamiento fotos de otros animales, y se le podría indicar que esas fotos NO representan una vaca.
Con esto podemos observar, que se puede definir que un concepto es una función booleana valuada sobre un conjunto mayor. Es decir, es una función definida sobre TODOS los animales, cuyo valor será verdadero para las vacas y falso para cualquier otro tipo de animal.
Un problema interesante que existe, es obtener un método mediante el cual se pueda inferir de manera automática la definición general de un concepto, dados unos ejemplos que muestran miembros o no-miembros del concepto. Este tipo de tarea se suele llamar Aprendizaje de conceptos o Concept Learning.
Aprendizaje de Conceptos
El Aprendizaje de Conceptos se refiere al hecho de inferir una función booleana apartir de ejemplos que muestran sus entradas y salidas .
Para entender mejor, todo esto, empezaré por definir unas cosas:
El conjunto de elementos o instancias sobre el cual un concepto es definido se llama el conjunto de instancias, el cual será denotado por la letra X.
El concepto ó función a ser aprendido se llama el concepto meta,el cual será denotado por una c.
En general, la c puede ser cualquier función booleana definida sobre las instancias X.
Esto es c: X ->{0,1}
Ahora bien, como se mencionó antes usualmente cuando una persona aprende un concepto se le presentan una serie de ejemplos que facilitan el aprendizaje. Cada ejemplo consiste en una instancia de x que pertenece a X, así como su concepto objetivo valuado,c(x) Ya que se presentaron estos ejemplos, el individuo debe tratar de estimar cual es el concepto meta. Se usará el símbolo H para denotar todas las posibles hipótesis ó estimaciones de c que el aprendiz genere en su búsqueda por definirla.
Con esto, es claro que la tarea del aprendiz, es encontrar una hipótesis h, que sea idéntica al concepto c.
Para aterrizar más esto, considerese el ejemplo de aprender el concepto objetivo de “Días en los que mi amado disfruta besarme bajo la luna”.
La siguiente tabla muestra un conjunto de ejemplos de días, cada uno representado por un conjunto de atributos.

Ejemplo

Cielo

Temperatura

Viento

GustaBesarme

1

Estrellado

Caliente

Fuerte

2

Estrellado

Caliente

Fuerte

3

Nublado

Frío

Fuerte

No

4

Estrellado

Caliente

Fuerte


El atributo de GustaBesarme indica si a mi amante le gusta besarme bajo la luna en ese día. La tarea es aprender a predecir el valor de GustaBesarme para un día arbitrario, basándose en los valores de los otros atributos.

Lo primero que se deberá hacer, es definir como se quiere representar a las hipótesis.
En este caso, podemos definir a h, como una conjuncion de restricciones sobre los atributos.
Cada una de las restricciones puede ser:
  • Un valor especifico. Esto es: Cielo=Estellado
  • Sin importancia . Cualquier valor es aceptado para este atributo. Esto es Cielo=?
  • Un valor no aceptado. Esto es Cielo=0
Por ejemplo, se podría tener:
Cielo Temp Viento
Estrelallado ? Alto

Si una instancia x satisface todas las restricciones de la hipótesis h, entonces la hipótesis h clasifica a x como un ejemplo positivo (h(x)=1)
Por ejemplo, la hipótesis que dice que a mi amante le gusta besarme bajo la luna en días con temperatura alta y cielo estrellado, independientemente de como esté el viento, se representa por la expresión:
(estrellado,alta,?)
En resumen, en la tarea de aprender el concepto de GustaBesarme, se requiere aprender el conjunto de días para los cuales GustaBesarme=sí, este conjunto de días se puede describir mediante una conjunción de restricciones sobre las instancias de atributos. Como por ejemplo, el cielo deberá estar estrellado, y la temperatura deberá ser alta, para que a mi amante le guste besarme bajo la luna.

La hipótesis de aprendizaje inductiva
Es importante notar que aunque la tarea en el aprendizaje es encontrar la hipótesis h que es igual al concepto objetivo c sobre un conjunto de instancias X, la única información disponible sobre c, es el valor que posee dentro de los ejemplos de entrenamiento. Dicho más fácilmente, la única información que se tiene con respecto a los días en que a mi amante no le gusta besarme bajo la luna, está en los ejemplos de entrenamiento.
Ahora bien, debido a que no poseemos más información, se asume que la mejor hipótesis para instancias no vistas, es la hipótesis que mejor le queda a nuestros ejemplos.
Si encontramos con los ejemplos de entrenamiento, que la mejor hipotesis que explica en que días a mi amante le gusta besarme bajo la luna, es cuando la temperatura es alta, ,entonces usaremos esta hipótesis para clasificar instancias de días no vistas en los entrenamientos. Si tuvieramos un día, que fuera estrellado con temperatura baja y viento fuerte , diríamos que en este día a mi amante no le gusta besarme bajo la luna, ya que temperatura=baja.

La hipótesis del aprendizaje inductivo : Cualquier hipótesis que se encuentre que aproxima bien la función ó el concepto objetivo sobre un conjunto suficientemente grande de ejemplos de entrenamiento, también se aproximará bien a la función ó concepto objetivo en ejemplos no vistos durante el entrenamiento.

El Aprendizaje de un concepto como una búsqueda
El aprendizaje de conceptos se puede ver como la tarea de buscar, a través de un espacio grande de hipótesis, a la que mejor representa a los ejemplos de aprendizaje.
Es importante notar que las hipótesis que se encunetran en el espacio, están definidas bajo una cierta representación, que está a manos del diseñador, debido a esto, el diseñador está implicitamente declarando el espacio de todas las hipótesis que el program puede represnetar, y por ende aprender.