Giter Site home page Giter Site logo

causal-explanation-generator's Introduction

Causal Explanation Generation

Authors

This project includes a series of implementations that seek to quantify explanations, blame, and responsibility, allowing us to convert these intuitive notions into quantifiable sums via the power of interventions.

We utilize pyro and probabilistic programming in this project, as well as our sampling capability and the power of interventions to determine quantities such as necessity and sufficiency, which lend their way to determining values of explanation, blame, anad responsibility.

The tools that are used in this project are pyro, pytorch, and implemented in python. The methods introduced in the notebook are applicable to a wide variety of DAGs barring they meet certain assumptions, and should be easily modified to fit more complicated DAGs.

We provide a video summary of our project here:

Video summary: https://youtu.be/GRFAWgpX678

Problem

Quantifying philosophical notions such as explanations, blame, and responsibility is a very difficult idea for statisticians. In fact, there is no way to do quantify these values using traditional statistics alone, as traditional statistics has no way to interpret causation from correlation. Yet the ability to be able to extract explanations, blame, and responsibility is a very important one.

Say, for instance, a man who is drunk, lacks winter tires on a snowy day, and has faulty brakes crashes into a tree. The man wants to sue the car manufacturing company, stating that even though he was drunk and did not have winter tires on a snowy day, had his brakes not been faulty, he would not have crashed into a tree. The man would actually have a legal leg to stand on should he be able to prove that his faulty tires were a "but-for" cause of him crashing the car: "But for the faulty tires, the man would not have crashed his car". But-for causality has been such an effective notion of interpreting causation in situations that it is one of the fundamental pillars by which our legal system stands when determining blame, responsibilty, and explanations for situations.

However, there are many examples by which but-for causality still fails. One of these examples is Suzy and Bob throwing rocks at a window. If both Suzy and Bob throw a rock at a window and Suzy's rock happens to hit the window first, clearly she is to blame for the rock breaking the window. However, but-for causality would suggest that Suzy has no blame at all, because if Suzy had not thrown a rock, Bob's rock would have still hit the window and shattered it. This illustrates that although but-for causality is very effective, we sometimes need more delicate tools to quantify these philosophical notions

In this project, we compute the following 3 values

  • Explanations
  • Blame
  • Responsibility

Across these 5 examples that are explained in detail in the Jupyter notebook

  • Television Picture not Showing
  • Victoria going to the beach and getting a tan
  • Electrical Storms causing forest fires
  • Syphillis causing Paresis
  • 2 Arsonists dropping matches in a forest

Deliverables

  1.   Modular methods implementing methods to compute explanations, blame, and responsibility
    
  2.   Computation of each of those values across our 5 exmaples
    
  3.   Interpretation of each of those values across our 5 examples
    

How to run the project

Prerequisites

There are no prerequisities to running our notebook. Simply inserting the notebook into google collab will be sufficient.

Notebooks

There is a single Jupyter Notebook that contains both a walkthrough of the implementation as well as the implementation of the computational methods and the 5 examples here.

References

Joseph Halpern, Judeal Pearl. "Causes and Explanations, A Structural Model Approach. Part II: Explanations"

Joseph Halpern. "Actual Causaity" MIT Press

causal-explanation-generator's People

Contributors

apoorvadorai avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

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.