Mostrando las entradas con la etiqueta machine learning. Mostrar todas las entradas
Mostrando las entradas con la etiqueta machine learning. Mostrar todas las entradas

domingo, enero 31, 2010

Resumen MiniBlog Semana 24-31 Enero 2010

Aunque no estoy de acuerdo que una persona haga lo que hizo esta adolecente (manejar alcoholizada, chocar y matar al pasajero, después irse de vacaciones, seguir bebiendo y postear las fotos en Facebook) no se si el uso de las fotos como evidencia para el juez para una segunda sentencia sea legal. No hay detalles, así que es posible que alguién (autorizado para acceder el perfil de la susodicha) haya “pasado” las fotos a la autoridad.

Y tomando en cuenta los otros ejemplos (empleados despedidos, seguros negados, etc.) creo que es mejor pensar dos veces en postear cosas que no sean las adecuadas (o hacerlas, no vaya a ser que un “amigo” envíe esas fotos comprometedoras de tí por tí).


Ayer Google público un draft promoviendo extensiones en el protocolo de DNS. Básicamente como dice el artículo quieren que los usuarios contacten al DNS autoritativo del dominio. La razón es para que la dirección de IP que se resuelva sea la más cercana al usuario. Sin embargo al saber la dirección de IP origen una gran cantidad de información de inteligencia estará disponible.

Anycast resuelve algunas cosas de las que propone Google, aunque no todas. Sin embargo creo que estas extensiones son un reto para que no se abuse con la privacidad del usuario.



Seguridad es un hot-topic

Cloud Computing es hot-topic

Inteligencia Artificial está empezando a ser un hot topic

Cloud Computing + Seguridad Muy hot topic (John Chambers de Cisco lo describe como la pesadilla de la seguidad)

Cloud Computing + Seguridad + IA es aún más hot topic



Lo cual coincide con el reporte de seguidad de Cisco y Symantec (no liga disponible) que un gran porcentaje de los problemas de seguridad en el 2010 serán las vulnerabilidades en el software de usuario final (Adobe Acrobat, Office, IE, Firefox, Flash). Esto con el objetivo de infiltrar malware en el usuario con el propósito de robar información como cuentas bancarias.


Chromium mejora el manejo de contenido en el más reciente build.


Interesante artículo sobre la implementación de DPI (Deep Packet Inspection) y las dudas que tiene la Unión Europea si esto es o no una buena idea. Artículo en inglés.

lunes, julio 27, 2009

Librerías "Machine Learning"

He estado haciendo algunos experimentos usando "machine learning" en varios proyectos y me gustaría comentar un poco sobre las librerías que he estado usando y de las que he leído un poco (aunque no las haya usado). Por el momento todas las que he usando están escritas en Python pero también comentaré algunas en Java y en C++.

Una muy sencilla de usar es FANN (Fast Artificial Neural Network), también tiene ports a Python y a otros lenguajes (PHP, Java, Perl, etc. Aunque la versión de Python no me funcionó por alguna razón).

Para Support Vector Machines usé LIBSVM (A Library for Support Vector Machines). En el website incluso pueden encontrar una serie de recomendaciones para usar SVMs. Otras librerías que también soportan SVM son PyML y MLPy (pero por alguna razón la compilación no funcionó en mi máquina y use LIBSVM).

Una utilería que se ve muy interesante para implementar un Naive Bayes Classifier es Orange . Aún no la prueba pero se ve bien, además que tiene buena documentación y links a varios datasets.

Si están interesados en Reinforcement Learning, Tiles es una librearía en Python (también en C++ y Lisp) que permite "transformar" las entradas a una función de valor representada por un vector de "tiles". En general, la representación en tiles dará una mayor resolución que simplemente discretizar a estados.

Si quieren un "decision tree" simple pueden usar éste que esta incluido y explicado en el libro. Está explicado en el libro de "Collective Intelligence". Si bien recuerdo, el algoritmo utilizado esta basado en ID3.

Y finalmente, esta mahout. Este proyecto de la Fundación Apache por lo pronto esta fuera de mis posibiliades de prueba, además de que no tengo la infraestructura ni la necesidad de usarlo. Esta basado en Hadoop y en los conceptos de mapreduce. Muy interesante.


P.D. Si quieren más recursos pueden visitar mis bookmarks en delicious de machine learning.


viernes, enero 23, 2009

Practical Artificial Intelligence and Machine Learning

Esta es la presentacion que di ayer en Ignite UK North. Hable un poco (muy poco, solo 5 minutos) sobre Machine Learning, un poco de teoría, un poco de ejemplos prácticos y algunos recursos interesantes. No detalle mucho pero espero que la presentación sirva un poco para explicar algunas cosas básicas de ML.

jueves, enero 22, 2009

Machine Learning en Ignite UK North

Una de las razones por las cuales no he posteado mucho es que hoy daré una presentación en Ignite UK North en Leeds. En Ignite tienes 5 minutos y 20 filminas para hablar de un tema, así que tienes 15 segundos para hablar sobre cada filmina. Los eventos de Ignite empezaron en Seatle en el 2006 y este es el primer Ignite organizado en el UK. En esta ocasión habra 18 presentaciones y cerca de 100 asistentes.

La presentación que daré es "Practical Artificial Intelligence and Machine Learning" en la cual hablaré un poco de teoría, daré algunos pequeños ejemplos de como usar ML y finalmente algunos recursos que pueden ser útiles para hacer cosas más complejas. No creo que pueda ahondar mucho en los temas por la restricción de tiempo pero trataré de que los conceptos y los ejemplos se entiendan lo mejor posible.

Aquí dejo algunos de los recursos que usé para hacer mi presentación y crear los ejemplos:

Libros:
Practical Artificial Intelligence Programming in Java, Mark Watson (e-Book gratutito, también hay uno de Ruby)
Programming Collective Intelligence, Toby Segaran; O'Reilly
Artificial Intelligence: A Modern Approach, S. Russell, P. Norvig, J. Canny; Prentice Hall,
Machine Learning, Tom Mitchell; MIT Press

Recursos en Línea
Curso de ML en Stanford
Statistical ML

Código
Fast Artificial Neural Networks FANN (C++, Python y PHP)
OpenNLP
C4.5 (Decision Trees)
ML and Java

Training Data
UC Irvine Machine Learning Repository
Amazon Public Datasets





viernes, noviembre 28, 2008

Notas cortas en Intelligencia Artificial (and ML): Google muestra anuncios pro-terrorismo Google Ads <2>

   Cuando la Inteligencia Artificial resulta ser poco inteligente nos puede meter en problemas. Y esto es lo que le pasó a Google (y no es la primera vez) cuando su algoritmo de Google Ads decidió mostrar anuncios pro-terrorismo en los sitios que reportaban los atentados en Bombay.  Las imágenes de la captura de pantalla las pueden ver en Mashable aquí. El anuncio dice:

Terrorism: Pursue a certificate in terrorism 100% online. Enroll today

Terrorismo: Consiga un certificado en terrorismo 100% en línea. Inscríbase ahora.

Esto nos recuerda que la IA a veces no es tan inteligente, vamos al final es programada por humanos. Y aunque creo Google a invertido mucho esfuerzo para eliminar spammers, phishers y ahora terroristas aún veremos este tipo de cosas durante algún tiempo. ¿Quién dijo que los anuncios en línea era negocio fácil?




lunes, noviembre 24, 2008

Notas cortas en Intelligencia Artificial (and Machine Learning): Learning (Aprender) <1>

¿Realmente existe la Inteligencia Artificial?

¿Son las máquinas inteligentes?

¿Las máquinas aprenden?

Bueno, estas son algunas preguntas que nos hemos hecho durante los últimos quizá 60 años y aún seguimos sin responderlas. Ni siquiera mentes tan brillantes como Alan Turing fueron capaces de definir como identificar a una máquina inteligente. Así que sería inútil tratar de hacerlo aquí en un simple post de un humilde blog acerca de muchas cosas.

Sin embargo para ponernos en contexto empezaremos por definir que significa aprender desde el punto de vista maquinal. De acuerdo a Tom Mitchel [1] podemos de decir que un programa aprende cuando ejecuta una tarea T y adquiere una experience E y el desempeño medido P (Performance) de T aumenta con la experiencia E. Estando de acuerdo con el término aprender podemos definir algunos formas en que las máquinas aprenden (Machine Learning).

En general el aprendizaje maquinal puede ser dividido en Aprendizaje Supervisado (Supervised Learning), Aprendizaje No-Supervisado (Unsupervised Learning) y Aprendizaje Reforzado (Reinforcement Learning). En aprendizaje supervisado el programa intenta aprender un concepto o hipótesis a partir de ejemplos etiquetados. Para aprender el concepto, el programa genera una función a partir de los ejemplos dados. Redes Neuronales, Arboles de Decisión y Redes de Bayes son ejemplos de este tipo de aprendizaje máquina.

Contrario a aprendizaje supervisado, el aprendizaje no-supervisado usa ejemplos no etiquetados o categorizados. El objetivo es encontrar las relaciones entre los ejemplos para generar categorías. Ejemplos de este tipo de aprendizaje son Factorización de Matrices no negativas y Mapas auto-organizados. Finalmente en aprendizaje reforzado (RL) el agente aprende interactuando con el ambiente. En RL el agente sensa el ambiente y ejecuta acciones. A través de refuerzos positivos o negativos el agente aprende que acciones llevan a mejores refuerzos (rewards) a largo plazo en determinados estados del medio ambiente [2]. Algoritmos basados en RL son Q-Learning [3] y SARSA.

Por lo pronto esta fue una pequeña introducción a Aprendizaje Maquinal. En otros posts iré ahondando en cada uno de los temas.


miércoles, noviembre 12, 2008

Notas cortas en Intelligencia Artificial (and Machine Learning): Introducción <0>


   Desde hace tiempo tengo deseos de escribir algunas notas cortas sobre temas en Inteligencia Artificial (AI) y Machine Learning (ML). De alguna manera trateré de explicar algunos temas sobre estas áreas y en lo posible incluso pondré algunos ejemplos de apliaciones en web que pueden usar estas técnicas.

    Mi primera impresión de AI y ML es que eran complicadas, que usaban muchas matemáticas y que nunca se usaban para aplicaciones reales. Bueno, la realidad es que sin son algo complicadas en un principio pero después terminas por entender de que se trata el asunto, si usan muchas matemáticas y si, se usan mucho para aplicaciones reales. Es más, muchas aplicaciones están ahí en nuestra vida diaria cuando navegamos en la Web. Solo piensen por ejemplo como indexa y rankea sus páginas Google, como Picasa reconoce las caras que etiquetas en tus fotos, como delicious encuentra bookmarks que pueden interesarte y como Amazon lo hace con sus productos y como Last.fm sabe que una canción esta relacionada con otra. Si bien "el fine tunning" de los algoritmos que mueven estas aplicaciones son secretos, hasta cierto punto podemos replicarlos y explicarlos en algunas líneas. Y bueno, ese será el objetivo de mis posts futuros en el tema.

Por lo pronto los dejo con unas fotos de unos robots y un video de RAVON (Robust Autonomous Vehicle for Offroad Navigation) que tomé en la Conferencia Alemana de Inteligencia Artificial. Algunas especificaciones de RAVON.








jueves, mayo 24, 2007

Gadgets Voladores

Leo en el blog de Bruce Schneier y la nota original de la BBC acerca de un "Spy Drone". El aparato es un mini helicoptero de 1 m de diámetro con una cámara de CCTV y controlado remotamente. El operador tiene unos gogles que le permiten ver lo que la cámara a bordo del aparato esta filmando (Wooow!!). El aparato aparentemente es usado en la milicia del Reino Unido y ahora hara su aparicón en la policia para perseguir "anti-social behaviour and public disorder" o sea, vandalismo.

Hace un par de meses estaba volando un papalote con mi hija y se me ocurrio ponerle una cámara para ver "como se vería" desde las alturas. Aún no consigo una cámara lo suficientemente ligera y barata para ponersela. Seguro como yo debe de haber muchos que quieren tener la sensación de manejar un avión o volar de alguna forma (sin los riesgos que esto implica). Asi que pronostico que en unos años veremos "juguetitos" como estos accesibles para el público en general.

También sería interesante si estos aparatitos aprendieran como volar. Igual cuando tenga tiempo sera uno de mis proyectos de "machine learning".