Este documento describe el proyecto TETRAD, un software para el descubrimiento causal desarrollado a lo largo de 25 años. Se analiza la versión V del software, incluyendo los algoritmos utilizados como el algoritmo de inferencia causal rápida avanzada y el algoritmo de búsqueda rápida de equivalencia codiciosa. También se genera un diagrama de clases simplificado que muestra las relaciones entre clases como PCStable, GraphSearch y PrintStream. Finalmente, se presentan conclusiones como recomendar el uso de C++ en lugar de Java para mejorar
2. CONTENIDO: ● Introducción
● Analisis historico del proyecto TETRAD
● TETRAD V
○ Introduccion
○ Analisis de los algoritmos usados
○ Identificacion de los conceptos de POO
○ Análisis clase PCStable
● Bibliografía
21/05/2017 Abad F., Cuvi J., Munoz C.
3. INTRODUCCIÓN
TETRAD
• Investigacion de 25 anos
• Los conceptos desarrollados se implementaron en el
software TETRAD (Version I-II-III-IV-V-VI)
• Investigacion centrada en el descubrimiento causal , es
decir aprender acerca de la causalidad a partir de la
evidencia estadística.
31/05/2017 Abad F., Cuvi J., Munoz C.
4. • Software fue el resultado de la colaboración de Clark
Glymour, Richard Scheines, Peter Spirtes, Joseph Ramsey
(Universidad de Carnegie Mellon).
• Realizado para incentivar la construcción e investigación
de la eficacia del software educativo
4
INTRODUCCIÓN
1/05/2017 Abad F., Cuvi J., Munoz C.
5. • TETRAD V (Versión 5.3.0)
• Crea, simula datos de estimaciones, pruebas, y predice o
busca modelos causales y estadísticos.
• Amigable para el usuario poco experimentado en
estadística.
• Es el conjunto de algoritmos de búsqueda de principios con
la capacidad de buscar cuando puede haber confundidores
no observados de variables medidas
5
TETRAD V
1/05/2017 Abad F., Cuvi J., Munoz C.
6. • Busca modelos de estructura latente y
modelos de retroalimentación lineal.
• Calcula predicciones de los efectos de
intervenciones o experimentos basados en un
modelo.
6
TETRAD V
1/05/2017 Abad F., Cuvi J., Munoz C.
7. • Garantiza la convergencia de los procedimientos de
búsqueda.
• Corrige la información sobre la estructura verdadera
en el límite de la muestra grande (la estructura y los
datos de la muestra satisfacen varios supuestos).
7
TETRAD V
1/05/2017 Abad F., Cuvi J., Munoz C.
8. Que modelos trata?
• Modelos de datos categóricos
• Modelos lineales (modelos de ecuaciones estructurales)
Estos modelos tienen una distribución de probabilidad
Normal, debido a que son un tipo de clase muy limitada de
modelos de series temporales
8
TETRAD V - LIMITACIONES
1/05/2017 Abad F., Cuvi J., Munoz C.
9. PROCESAMIENTO DE MODELOS
CAUSALES
Tres etapas distintas:
• Imagen (Representación del grafo dirigido que especifica
hipotéticas relaciones causales entre las variables)
• Especificación de la familia de distribuciones de probabilidad
y tipos de parámetros asociados con el modelo gráfico
• Especificación de los valores numéricos de Parámetros.
91/05/2017 Abad F., Cuvi J., Munoz C.
10. • Implementación de código en IDE (Netbeans & Eclipse).
• Análisis del código (Programación por capas : tetrad-lib, tetrad-gui,
causal-cmd).
• Elaboración de los diagramas de clase mediante EasyUML &
ObjectAid UML.
• Análisis de la clase PC-Stable
• Conclusiones y recomendaciones.
10
PASOS
1/05/2017 Abad F., Cuvi J., Munoz C.
11. • Clonacion de los respositorios de GitHub
• Revision de las dependencias en la clase Tetrad.java
• Palabra reservada “import”
• Dependencias internas y externas (Reutilizacion de
codigo, Implementacion de relaciones de uso,
agregacion, composicion, Polimorfismo, etc).
11
ANALISIS DE CODIGO
1/05/2017 Abad F., Cuvi J., Munoz C.
13. BUENA PRACTICA DE DESARROLLO:
Revisar las dependencias requeridas por el
sistema por analizar.
Dependencias (internas o externas) se
referencian mediante la palabra reservada
“import” (extremada importancia).
13
ANALISIS DE CODIGO
1/05/2017 Abad F., Cuvi J., Munoz C.
14. DEPENDENCIAS INTERNAS
Importantes por la implementación de métodos
mediante relaciones de uso (herencia), agregación o
composición, generando el destacado concepto de la
Programación Orientada a Objetos, el POLIMORFISMO.
Reusando código, nombre de métodos, funciones, etc.
14
ANALISIS DE CODIGO
1/05/2017 Abad F., Cuvi J., Munoz C.
15. Por heurisitica se conoce los errores entre maquina
A y maquina B corriendo la misma aplicacion.
SOLUCION:
Revision de las dependencias (Puede faltar una, por
actualizacion de repositorios)
15
IMPORTANCIA DE DEPENDENCIAS
1/05/2017 Abad F., Cuvi J., Munoz C.
16. 1. Localizacion del main de la capa GUI que hace
corer todo el Proyecto.
2. Uso del plugin EasyUML en Netbeans
3. Migracion al plugin ObjectAISD UML Explorer
en Eclipse
4. Generacion de Diagramas de Clase hasta
entender el comportamiento de la aplicacion.
16
ANALISIS DE CODIGO
1/05/2017 Abad F., Cuvi J., Munoz C.
17. ESTRUCTURA DEL PROYECTO
Tres Capas:
• tetrad-lib
• tetrad-gui
• causal-cmd
171/05/2017 Abad F., Cuvi J., Munoz C.
22. RESUMEN CLASES
ASOCIADAS PC STABLE
PC-STABLE:
• Implementa el algoritmo Peter Clark
• Refleja “Causal Learning”
221/05/2017 Abad F., Cuvi J., Munoz C.
23. RESUMEN CLASES ASOCIADAS PC STABLE
TETRADLOGGER:
• Registro de acontecimientos
(TetradLoggerConfig)
• Detalla la configuración de los modelos
definidos en el archivo configuration.xml
231/05/2017 Abad F., Cuvi J., Munoz C.
24. RESUMEN CLASES ASOCIADAS PC STABLE
PRINTSTREAM:
• Imprime representaciones de varios
valores de datos convenientemente.
• No trata las excepciones con IOException,
las trata con un método propio checkError
24
OBJECT:
• No es súper-clase
• Clase abstracta, referencia objetos
CORBA,
• (Identifica el mismo objeto cada vez
que se utiliza una referencia para
invocar un método en el objeto)
1/05/2017 Abad F., Cuvi J., Munoz C.
25. RESUMEN CLASES ASOCIADAS PC STABLE
SEPSETMAP:
• Almacena un mapa de pares de nodos a
conjuntos de separación
25
GRAPH:
Implementa un gráfico capaz de
almacenar bordes
1/05/2017 Abad F., Cuvi J., Munoz C.
26. RESUMEN INTERFACES ASOCIADAS PC STABL
IKNOWLEDGE:
• Provee el conocimiento de bordes
prohibidos y requeridos
26
INDEPENDENCETEST:
Relacionada con clases que hacen
pruebas de independencia
condicional. Estas clases son capaces
de servir como independencia
condicional "Oracle" para búsquedas
basadas en restricciones.
1/05/2017 Abad F., Cuvi J., Munoz C.
27. PC STABLE
27
TETRADLOG
GER
• GRAPHSEARCH
PCSTABLE • PRINTSTREAM
SEPSETMAP • PCSTABLE (GUI)
GRAPH • INDEPENDENCETEST
OBJECT • IKNOWLEDGE
ALGORITHM • HASKWOLEDGE
INDEPENDE
NCEWRAPP
ER
• TAKESINITIALGRAPH
1/05/2017 Abad F., Cuvi J., Munoz C.
28. APRENDIZAJE CAUSAL
Concepto que ayuda a entender cómo
reaccionan los seres humanos y animales antes
las acciones realizadas, y así implantarlas como
un algoritmo para el desarrollo en la
informática.
281/05/2017 Abad F., Cuvi J., Munoz C.
29. APRENDIZAJE CAUSAL
“Si colocamos una olla de agua en el fuego para cocinar, lo
hacemos con la seguridad de que el fuego hará que el agua se
caliente hasta hervir, aunque no podamos observar directamente
el mecanismo por el que el fuego hace hervir el agua. Cuando un
ratón come un alimento en mal estado y enferma, evitará en el
futuro los alimentos con ese olor, aunque no haya nada en la
sensación olfativa concreta que diga que sea la ingestión de la
comida lo que ha originado el dolor de estómago.”
291/05/2017 Abad F., Cuvi J., Munoz C.
30. APRENDIZAJE CAUSAL
Realizar inferencias causales es muy útil para predecir
y sobrevivir.
En la informática se implementa con la
aplicación de datos estadísticos, que puedan
prever el comportamiento en el futuro, siendo
este mayormente seguro, pero no totalmente
seguro de que suceda.
301/05/2017 Abad F., Cuvi J., Munoz C.
32. ALGORITMOS USADOS
32
Algoritmo de Inferencia Causal Rápida
Avanzada (GFCI)
Algoritmo de búsqueda rápida de equivalencia
codiciosa (FGES) para variables continuas.
Algoritmo de búsqueda rápida de equivalencia
codiciosa (FGES) para variables discretas.
1/05/2017 Abad F., Cuvi J., Munoz C.
33. APRENDIZAJE SUPERVISADO
Crear una función capaz de predecir el valor correspondiente a
cualquier objeto de entrada válida después de analizar una serie
de ejemplos (datos de entrenamiento).
Generalizar a partir de los datos presentados a las situaciones no vistas
previamente.
331/05/2017 Abad F., Cuvi J., Munoz C.
34. APRENDIZAJE SUPERVISADO
Datos de entrenamiento consisten de pares de objetos
(vectores):
• Datos de entrada
• Resultados deseados
La salida de la función puede ser un valor numérico (en
problemas de regresión) o una etiqueta de clase (en problemas
de clasificación).
341/05/2017 Abad F., Cuvi J., Munoz C.
35. METODO DE
RESOLUCION
DE
PROBLEMAS
DE
APRENDIZAJE
SUPERVISADO
35
Determinar el tipo de ejemplos de
entrenamiento.
• Reunir un conjunto de entrenamiento.
Determinar la función de ingreso de la
representación de la función.
• Determinar la estructura de la función para
resolver el problema.
Determinar la técnica de aprendizaje
correspondiente.
• Ejecutar algoritmo diseñado.
1/05/2017 Abad F., Cuvi J., Munoz C.
43. SIMULACIÓN
43
Variación del Modelo de
Instanciación con
respecto al inicial,
mediante los datos de
relación entre los nodos
del grafo:
1/05/2017 Abad F., Cuvi J., Munoz C.
44. SIMULACIÓN
44
Variación del modelo de
Instanciación con respecto al
inicial con números elegidos
apegados a la realidad, para
tener una simulación
apegada a situaciones del
diario vivir.
1/05/2017 Abad F., Cuvi J., Munoz C.
48. CONCLUSIONES & RECOMENDACIONES
• Metodos de documentacion a sido el correcto, a pesar de confusa y engorrosa, fue bien
distribuido, documentado con un rapido entendimiento.
• Buenos metodos de desarrollo de software
• Analisis de TETRAD V, pero ya esta disponible TETRAD VI
• Recomendamos al lector revisar primero la documentacion, para entender los algoritmos
empleados y el porque de cada clase y capa escrita en codigo.
• Recomendación de uso del lenguaje C++, (COMPILADO ), en cambio de Java (compilado
e interpretado), mejores resultados en costes computacionales de tiempo y recursos.
481/05/2017 Abad F., Cuvi J., Munoz C.
49. CONCLUSIONES & RECOMENDACIONES
Recomendamos la revisión de las herramientas utilizadas:
Apache Maven a pesar de ser una herramienta para procesos
de automatización de compilación por excelencia, no es el
único ni el mejor, un ejemplo es la herramienta Gradle.
491/05/2017 Abad F., Cuvi J., Munoz C.
50. CONCLUSIONES & RECOMENDACIONES
Gradle presenta ventajas tales como:
• Adaptar convenciones de estructura de proyecto.
• Los archivos se pueden modularizar, compartir e importar.
• Integración con sistemas de integración continua tales como: Jenkins,
ClinkerHQ, Consola.
• Conjuntamente con la integración con la herramienta Maven, Ant, y demás, la
flexibilidad, la posibilidad de definición de nuevas tareas y el gestor de
dependencias (Ivy), (etc.) … Hacen de Gradle una opción a considerar en el
proceso de desarrollo y documentación de un proyecto de software.
501/05/2017 Abad F., Cuvi J., Munoz C.
51. BIBLIOGRAFÍA
HERRAMIENTAS UTILIZADAS EN EL ANÁLISIS DE LOS ALGORITMOS USADOS EN LA IMPLEMENTACIÓN.
Chickering DM. Identificación óptima de la estructura con búsqueda codiciosa. Journal of Machine Learning Research 3 (2002) 507-554.
Http://www.jmlr.org/papers/volume3/chickering02b/chickering02b.pdf
Heckerman D, Geiger D, Chickering M. Aprendizaje de redes Bayesianas: La combinación de conocimientos y datos estadísticos. Aprendizaje Automático (1995) 197-243.
Http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.222.5090&rep=rep1&type=pdf
Lagani V, Triantafillou S, Bola G, Tegner J, Tsamardinos I. Descubrimiento causal computacional probabilístico para la biología de sistemas. Incertidumbre en Biología 17 (2016) 33-73.
Http://www.mensxmachina.org/files/publications/Probabilistic%20Causal%20Discovery%20for%20Systems%20Biology_prePrint.pdf
Meek C. Inferencia causal y explicación causal con conocimiento de antecedentes. En: Actas de la Conferencia sobre Incertidumbre en la Inteligencia Artificial (1995) 403-410.
Https://arxiv.org/ftp/arxiv/papers/1302/1302.4972.pdf
Meek C. Modelos Gráficos: Selección de Modelos Causales y Estadísticos. Doctor en Filosofía. Tesis, Carnegie Mellon University (1997).
CCD-FGES (2016). Algoritmo de búsqueda rápida codiciosa (FGES) para variables continuas. Disponible en:
http://www.ccd.pitt.edu/wiki/index.php?title=Fast_Greedy_Search_(FGES)_Algorithm_for_Continuous_Variables
Claasen T, Mooij JM, Heskes T (2013). El aprendizaje de modelos causales escasos no es NP-duro. Incertidumbre en la Inteligencia Artificial, 29, 172-181. Colombo D, Maathuis MH, Kalisch M,
Richardson TS (2012). Aprender gráficos acíclicos dirigidos de alta dimensionalidad con variables latentes y de selección. Los Anales de Estadísticas, 40, 294-321. Lagani V, Triantafillou S, Bola G,
Tegner J, Tsamardinos I (2016). El descubrimiento causal computacional probabilístico para la biología de sistemas. Incertidumbre en Biología, 17, 33-73.
Http://www.mensxmachina.org/files/publications/Probabilistic%20Causal%20Discovery%20for%20Systems%20Biology_prePrint.pdf
Pete L. Clark. (2016) Research. Colombo D, Maathuis MH, Kalisch M, Richardson TS (2012)
http://alpha.math.uga.edu/~pete/papers.html
511/05/2017 Abad F., Cuvi J., Munoz C.