Neuronale Netze und Konfliktforschung
Posted: Mon 1. Mar 2010, 16:34
Hallo,
ich sitze zur Zeit an den methodischen Vorarbeiten für meine Dissertation. Ich bin Politikwissenschaftler, genauer gesagt Konfliktforscher, und interessiere mich für den Bereich der "Social Physics", also für die Übertragung naturwissenschaftlicher Konzepte der Komplexitäts- und Systemtheorie in die Gesellschaftswissenschaften. Konkret möchte ich in meiner Diss unter anderem den empirischen Befund, dass die Häufigkeit der Intensität innerstaatlicher Gewaltkonflikte einem Potenzgesetz folgt, untersuchen. Theoretischer Ansatzpunkt dabei ist die "Self-Organized Criticality". Als Methode möchte ich Neuronale Netze verwenden.
Momentan versuche ich, die Modellierung der empirischen Befunde erstmal ganz abstrakt herzuleiten. Hierzu habe ich ein Netzwerk mit 100 Hidden Units gebaut, die je 30 Schritte einen Impuls von einer Input Unit empfangen. Die Hidden Units sind zufällig untereinander verknüpft. Erreicht eine Hidden Unit einen definierten Lower Fire Threshold, feuert sie, wird aber von einer parallellen "Kontroll"-Unit sofort danach wieder auf Null gesetzt (also 100 weitere, parallelle Hidden Units für diesen Zweck).
Ich lade im Anhang mal zur besseren Veranschaulichung einen Screenshot hoch. Nach jeweils 30 Schritten "reshuffelt" das Muster. Mein Ziel ist es nun, herauszufinden, mit welcher Häufigkeitsverteilung die Aktivierungsmuster auftauchen. Vermutlich sind sie zufällig, aber das möchte ich erstmal herausfinden. In diesem Zusammenhang stellen sich für mich zwei Fragen, bei denen ich nicht weiterkomme:
1. Gibt es in Membrain eine Möglichkeit, die Muster zu "zählen"? So dass ich am Ende sehe: "Okay, das Muster 33 ist bei 5000 Durchgängen 5 Mal aufgetaucht, das Muster 34 ist 50 Mal erschienen" usw.? Vielleicht durch Verknüpfung mit einem anderen Programm?
2. Mir ist bewusst, dass zu diesem Zweck Membrain vermutlich erstmal die jeweiligen Muster erkennen muss. Wahrscheinlich ist hierfür eine Kategorisierung mittels "unsupervised learning" hilfreich. Mein Problem ist jedoch, dass ich für den "Teacher" die Werte von Input Units benötige. Meine Muster liegen aber als Aktivierungen von Hidden Units vor. Wie kann ich die Werte der Hidden Units in Werte von Input Units transformieren? Über eine einfache Vernetzung HU -> IU geht das ja offenbar nicht...
Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt. Als Gesellschaftswissenschaftler muss ich mich noch an die Fachsprache der Informatiker gewöhnen... Danke schon im Voraus für mögliche Hinweise!
Viele Grüße,
Christoph
ich sitze zur Zeit an den methodischen Vorarbeiten für meine Dissertation. Ich bin Politikwissenschaftler, genauer gesagt Konfliktforscher, und interessiere mich für den Bereich der "Social Physics", also für die Übertragung naturwissenschaftlicher Konzepte der Komplexitäts- und Systemtheorie in die Gesellschaftswissenschaften. Konkret möchte ich in meiner Diss unter anderem den empirischen Befund, dass die Häufigkeit der Intensität innerstaatlicher Gewaltkonflikte einem Potenzgesetz folgt, untersuchen. Theoretischer Ansatzpunkt dabei ist die "Self-Organized Criticality". Als Methode möchte ich Neuronale Netze verwenden.
Momentan versuche ich, die Modellierung der empirischen Befunde erstmal ganz abstrakt herzuleiten. Hierzu habe ich ein Netzwerk mit 100 Hidden Units gebaut, die je 30 Schritte einen Impuls von einer Input Unit empfangen. Die Hidden Units sind zufällig untereinander verknüpft. Erreicht eine Hidden Unit einen definierten Lower Fire Threshold, feuert sie, wird aber von einer parallellen "Kontroll"-Unit sofort danach wieder auf Null gesetzt (also 100 weitere, parallelle Hidden Units für diesen Zweck).
Ich lade im Anhang mal zur besseren Veranschaulichung einen Screenshot hoch. Nach jeweils 30 Schritten "reshuffelt" das Muster. Mein Ziel ist es nun, herauszufinden, mit welcher Häufigkeitsverteilung die Aktivierungsmuster auftauchen. Vermutlich sind sie zufällig, aber das möchte ich erstmal herausfinden. In diesem Zusammenhang stellen sich für mich zwei Fragen, bei denen ich nicht weiterkomme:
1. Gibt es in Membrain eine Möglichkeit, die Muster zu "zählen"? So dass ich am Ende sehe: "Okay, das Muster 33 ist bei 5000 Durchgängen 5 Mal aufgetaucht, das Muster 34 ist 50 Mal erschienen" usw.? Vielleicht durch Verknüpfung mit einem anderen Programm?
2. Mir ist bewusst, dass zu diesem Zweck Membrain vermutlich erstmal die jeweiligen Muster erkennen muss. Wahrscheinlich ist hierfür eine Kategorisierung mittels "unsupervised learning" hilfreich. Mein Problem ist jedoch, dass ich für den "Teacher" die Werte von Input Units benötige. Meine Muster liegen aber als Aktivierungen von Hidden Units vor. Wie kann ich die Werte der Hidden Units in Werte von Input Units transformieren? Über eine einfache Vernetzung HU -> IU geht das ja offenbar nicht...
Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt. Als Gesellschaftswissenschaftler muss ich mich noch an die Fachsprache der Informatiker gewöhnen... Danke schon im Voraus für mögliche Hinweise!
Viele Grüße,
Christoph