Giter Site home page Giter Site logo

tomcat-coordination's Introduction

Probabilistic Modeling of Interpersonal Coordination Processes

Requirements

To install requirements:

pip install -r requirements.txt

Note: To evaluate multiple experiments in parallel, you must have TMUX and Conda installed in the machine and the dependencies above installed in a conda environment called coordination.

Modules

The project splits the general model definition into several modules that are put together to construct a concrete instance of a model of coordination. For example, to create a model with constant coordination and serialized latent component, one can use the modules: ConstantCoordination, SerialComponent, and SerialObservation. The available list of modules are:

  • ConstantCoordination: Continuous coordination that does not change over time.
  • SigmoidGaussianCoordination: Coordination with transitions defined by a Gaussian random walk.
  • SerialComponent: Serial component with dynamics defined by a Gaussian random walk on blended means (pairwise dependency).
  • NonSerialComponent: Non-serial component with dynamics defined by a Gaussian random walk on blended means (multiple dependencies).
  • SerialObservation: Gaussian distribution centered on SerialComponent values.
  • NonSerialObservation: Gaussian distribution centered on NonSerialComponent values.
  • SpikeObservation: Normal centered at coordination values over time. Used for sparse binary observations (e.g., semantic link) to increase coordination in certain moments.

Vocalic Model

The project contains a vocalic model (with or without semantic links) that can be used generate data and run inference.

The model has a standard interface and parameterization is done via a dataclass to which we call a config bundle. When implementing your own models, we suggest following this approach for compatibility with the webapp where one can trigger new inference runs, monitor their progresses and see different results including plots and histograms of the inferred latent variables.

To reproduce the image below, execute the commands in notebooks/Synthetic Vocalic.

Vocalic Model

Inference

We provide a series of make commands to run inference jobs to reproduce the results in the paper. Comments are included in the Makefile above each target. Optionally, one can trigger the inferences via the webapp we provide and check the results there.

The commands will run inferences in sequence for each experiment in the dataset. If you wish to split inferences in multiple jobs, set the environment variable N_JOBS to the appropriate number. Bear in mind each job spawns 4 others: one for each chain.

Data

All the data used in the experiments are located in the folder data/ in the project's root directory. This directory also contains configurations to:

  1. Override the config bundle with specific parameter values we used during experimentation (data/params/..._params_dict.json).
  2. Map columns in the data to specific fields in the model's config bundle (data/mappings/..._vocalic_data_mapping.json).

Webapp

The project provides a webapp to execute new runs, monitor the progress of such runs and see results of inference jobs (see images below).

To start the app in the port 8080, do:

APP_PORT=8080 make app

It is possible to run it in a remote server and access it locally via port forwarding. By default, inferences will be saved in the directory .run/inferences but one can change that path in the app or via one of the environment variables described below:

  • inferences_dir: directory where inferences must be saved.
  • data_dir: directory where datasets are located.
  • EVAL_DIR: directory where evaluations are located. Every time we run an inference run, it will generate a unique ID (timestamp). Traces will be saved under $inferences_dir/run_id. We can add extra evaluation objects (.csv and png) in another directory with the format $EVAL_DIR/run_id and they will be available in the Evaluations tab in the app.

Main Page Spring Model Spring Model Spring Model

License

MIT License - Copyright (c) 2023

tomcat-coordination's People

Contributors

eduongaz avatar paulosoaresua avatar

Watchers

 avatar

tomcat-coordination's Issues

Fix bug in `VocalicsComponent.sparse_series`

Some subsequent utterances from the same player are not being merged as they should. Also, subsequent measurements of the same series are being detected, which should not be possible since observations have to change from A to B. For instance, trial 745

image

Generate datasets

Generate datasets with vocalic series, user demographics(3D tensor: trial x color x data), individual answers for each survey (3D tensor: trial, color, answers), and team score for each mission and agent condition: No Advisor, ToMCAT and Human Advisor.

Collect answers from surveys

  • Save the answers from the team process (L) and team satisfaction (M) surveys.
  • Save user gender and age from the demographic survey (G)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.