[PYTHON] [Kausalsuche / Kausalinferenz] Führen Sie mit Deep Learning eine Kausalsuche (SAM) durch

Kürzlich habe ich ** kausales Denken / kausale Suche ** studiert, also Beschrieb ein Python-Implementierungsbeispiel für SAM (Structural Agnostic Modeling) [2018], bei dem es sich um eine ** kausale Suchmethode ** mit DeepLearning / GAN handelt. Ich werde. Ich möchte zu einem späteren Zeitpunkt ein Implementierungsbeispiel des bekanntesten Basin-Netzwerks in einem separaten Artikel veröffentlichen.

Dieser Artikel ist nur für SAM. Die verwendeten Daten waren Titanic-Daten.

Inhaltsverzeichnis

  1. [Zweck](# 1-Zweck)
  2. [Was ist ein Kausalzusammenhang](# 2-Was ist ein Kausalzusammenhang)
  3. [Was ist SAM](Was ist # 3-sam)
  4. [Implementierungsbeispiel](# 4-Implementierungsbeispiel)
  5. [Code und Daten herunterladen](# 4-1-Code und Daten herunterladen)
  6. [Umweltvorbereitung](# 4-2-Umweltvorbereitung)
  7. [Codeausführung](# 4-3-Codeausführung)
  8. [Endlich](# 5 - Endlich)

1. Zweck

Der Zweck besteht darin, anhand der in der folgenden Abbildung gezeigten Daten nach Existenz und Richtung von Kausalzusammenhängen zu suchen. Dies nennt man ** kausale Suche **. 因果探索.png

Andererseits wird die Schätzung der Größe dieser Kausalzusammenhänge (Pfeile) als ** Kausalinferenz ** bezeichnet.

2. Was ist ein Kausalzusammenhang?

Zunächst werde ich kurz erklären, was ein ** Kausalzusammenhang ** ist. Wenn die Tendenz besteht, dass "je größer die Variable X, desto größer die Variable Y" ** Angenommen, es gibt einen Kausalzusammenhang zwischen Variable X und Variable Y **.

Was ist der Unterschied zum Korrelationskoeffizienten, wenn Sie dieses Wort hören? Ich werde den Unterschied erklären, weil einige Leute die Frage haben können. Sie haben vielleicht die berühmte Geschichte gehört ** "Je mehr Schokolade die Menschen konsumieren, desto mehr Nobelpreisträger" **. 図1.png In der Abbildung scheint es eine Korrelation zwischen diesen beiden Variablen zu geben. Es ist jedoch eine andere Frage, ob zwischen diesen beiden Variablen ein ** Kausalzusammenhang ** besteht oder nicht.

Im Allgemeinen ist Schokolade ein Luxusartikel, und wohlhabende Länder konsumieren wahrscheinlich mehr. Je reicher das Land ist, desto mehr Geld wird es für Bildung ausgeben und desto wahrscheinlicher ist es, dass es Nobelpreisträger hervorbringt. Wie in der folgenden Abbildung dargestellt, wird daher davon ausgegangen, dass Variablen wie das "Pro-Kopf-BIP", ein Index, der den Wohlstand anzeigt, miteinander zusammenhängen.

図2.png Eine solche gefälschte Korrelation wird als ** Pseudokorrelation ** bezeichnet, und die Variable, die die Pseudokorrelation erzeugt, wird als ** Verschränkungsfaktor ** bezeichnet. Pseudokorrelierte Variablen haben ** keinen Kausalzusammenhang **. Wenn Sie jedoch den Korrelationskoeffizienten berechnen, ist dieser ein ziemlich großer positiver Wert, sodass eine ** Korrelation ** vorliegt.

Hier werde ich die Begriffe noch einmal zusammenfassen.

In Bezug auf die Kausalität ist der Punkt, dass je größer X ** ist, desto größer ** Y ist. Außerdem nimmt in jeder Beziehung der Absolutwert des Korrelationskoeffizienten einen großen Wert an, also Diese können nicht nur durch den Korrelationskoeffizienten unterschieden werden.

Referenz: Steigt die Zahl der Nobelpreisträger mit zunehmendem Schokoladenkonsum?

3. Was ist SAM?

Anhand der bisherigen Inhalte werde ich die Methode zur Suche nach Existenz und Richtung des ** Kausalzusammenhangs ** erläutern. In diesem Artikel werde ich sehr kurz auf SAM (Structural Agnostic Modeling) [2018] eingehen, eine kausale Suchmethode mit Deep Learning / GAN. Ich möchte das berühmteste basianische Netzwerk in einem anderen Artikel erläutern.

3-1. Übersicht

SAM ist eine Methode, die die kausale Suche mithilfe der GAN-Technologie (Generative Adversarial Network) von Deep Learning realisiert. Im Allgemeinen besteht GAN grob aus einem Generator und einem Klassifikator und hat jeweils die folgenden Rollen. --Generator: Gibt Rauschen ein und generiert gefälschte Daten, die nahe an den trainierten Daten liegen. --Identifier: Gibt an, ob die Eingabedaten echt oder falsch sind

In SAM wird ** eine Matrix, die die Ursache und Wirkung der Anzahl der erklärenden Variablen x die Anzahl der erklärenden Variablen ** darstellt, an die Vorwärtsfunktion des Generators gegeben, und diese Matrix wird auch gelernt, wenn der Generator trainiert wird. Die Matrix hat einen Wert von 0 bis 1, und der Teil mit einem Wert über dem Schwellenwert wird als kausal beurteilt. Das Bild sieht wie folgt aus. (Schwellenwert ist 0,9) 因果探索2.png

Dies ist eine ziemlich grobe Erklärung. Wenn Sie jedoch weitere Einzelheiten erfahren möchten, lesen Sie bitte die folgenden Dokumente.

4. Implementierungsbeispiel

SAM (Structural Agnostic Modeling) [2018] Ein Beispiel für die Python-Implementierung wird beschrieben.

4-1. Code und Daten herunterladen

Laden Sie ** SAM_titanic.ipynb ** und ** titanic.csv ** vom GitHub unten herunter. https://github.com/yuomori0127/SAM_titanic

Wenn Sie den Code in Google Colab sehen möchten, klicken Sie hier [https://colab.research.google.com/drive/1eZmDN48eTV69CZmHzQt_T7KoT_IVj7bC?authuser=2#scrollTo=LdgNruwmJkxj/)

4-2. Vorbereitung der Umwelt

Die verwendete Umgebung ** Google Colab **. Informationen zur Verwendung finden Sie im folgenden Artikel. Die Servergebühr ist kostenlos. Zusammenfassung der Verwendung von Google Colab

Legen Sie die beiden zuvor heruntergeladenen Dateien in einem beliebigen Ordner von ** GooleDrive ** ab.

4-3. Codeausführung

Öffnen Sie ** SAM_titanic.ipynb ** von ** Goole Drive ** in ** Google Colab **.

Zunächst benötigen Sie eine GPU-Ähnlichkeit. Führen Sie oben ! Nvidia-smi aus (Umschalt + Eingabetaste) und ähneln Sie, bis Sie Tesla P100 sehen. Sie können innerhalb von 5 Mal schließen. nvideasmi.png

Sie können es wie folgt zurücksetzen. リセマラ.png

Bitte ändern Sie den Ordnernamen (causal_book-Teil) des folgenden Codes in den Ordnernamen, in dem sich .ipynb und csv auf Google Drive befinden.

import os
os.chdir("./drive/My Drive/causal_book/")

Wenn Sie "Laufzeit" ausführen -> "Alle Verarbeitung ausführen", werden alle ausgeführt.

Das Folgende ist eine Zusammenfassung der Ausführungsergebnisse. (Schwellenwert 0,6) 因果探索3.png

Das Ergebnis war, dass die Zielvariable Survived schwebte (keine erklärende Variable hat Ursache und Wirkung).

5. Schließlich

Ich konnte mit Deep Learning / GAN eine kausale Suche durchführen, aber es gibt verschiedene Probleme. ・ ** SAM hat eine sehr hohe Zufälligkeit und das Lernergebnis ist überhaupt nicht stabil ** Das Ausführungsbeispiel verwendet den Durchschnittswert der Ergebnisse der fünfmaligen Ausführung. Das Papier war durchschnittlich 16 Mal. ・ ** Ausgabeergebnis kann nicht ausgewertet werden ** In der Arbeit wurde die Bewertung unter Verwendung von AP und Brummdistanz unter der Voraussetzung vorgenommen, dass eine korrekte Antwort vorliegt, dies ist jedoch im tatsächlichen Betrieb nicht möglich. Ich wünschte, es gäbe so etwas wie Perprexität. ・ ** Diskrete Werte können nicht so verwendet werden, wie sie sind, daher haben die erklärenden Variablen nach get_dummies einen kausalen Effekt ** Dies kann mein Mangel an Studium sein. In Anbetracht des tatsächlichen Betriebs wie diesem gibt es viele schwierige Punkte. Es könnte ein Bereich sein, der sich in Zukunft weiterentwickeln wird.

Verweise

Recommended Posts

[Kausalsuche / Kausalinferenz] Führen Sie mit Deep Learning eine Kausalsuche (SAM) durch
Kausales Denken mit maschinellem Lernen (Organisation von Methoden des kausalen Denkens)
Ich habe versucht, mit Theano tief zu lernen
Bilderkennungsmodell mit Deep Learning im Jahr 2016
Aktienkursprognose mit Deep Learning (TensorFlow)
Tiefes Lernen
Ein Amateur versuchte Deep Learning mit Caffe (Einführung)
Kausales Denken und kausale Suche von Python (für Anfänger)
Ein Amateur versuchte Deep Learning mit Caffe (Übung)
Aktienkursprognose mit Deep Learning (TensorFlow) -Teil 2-
Ein Amateur hat Deep Learning mit Caffe ausprobiert (Übersicht)
Aktienkursprognose mit Deep Learning [Datenerfassung]
Deep Learning Memorandum
Starten Sie Deep Learning
Deep Learning × Python
Denken Sie über Party-Attack-ähnliche Wachstumstaktiken mit Deep Learning nach
[Deep Learning] Führen Sie die neuronale SONY-Netzwerkkonsole über CUI aus
[Maschinelles Lernen] Versuchen Sie, Objekte mithilfe der selektiven Suche zu erkennen
Sammlung und Automatisierung erotischer Bilder durch Deep Learning