Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TechTalk: Wie verarbeitet das menschliche Gehirn Informationen? Eine Einfürhung in Cognitive Modeling in Python

nic0lina4
May 24, 2018
66

TechTalk: Wie verarbeitet das menschliche Gehirn Informationen? Eine Einfürhung in Cognitive Modeling in Python

nic0lina4

May 24, 2018
Tweet

Transcript

  1. Was unser Gehirn einfach so kann… Lake, B. M., Salakhutdinov,

    R., & Tenenbaum, J. B. (2015). Human-level concept learning through probabilistic program induction. Science, 350(6266), 1332-1338.
  2. Drei Ebenen der mentalen Repräsentation (Marr, 1982) 1. Computational -

    Was ist die zu lösende Aufgabe bzw. das Problem? 2. Algorithmical - Wie kann das Ziel der ersten Ebene erreicht werden? Wie müssen Eingangs- und Ausgangsdaten verarbeitet werden, damit das Ziel erreicht wird? 3. Implemental - Wie wird das auf der biologischen Ebene realisiert? 
 compositional capture uncertainty
  3. Vorgehen cognitive modeling 1. Fragestellung überlegen: Was möchte ich herausfinden

    2. Model definieren 3. Daten erheben. Sowohl mit einem Computer als auch mit Menschen
  4. Vorgehen cognitive modeling 1. Fragestellung überlegen: Was möchte ich herausfinden

    2. Model definieren 3. Daten erheben. Sowohl Computer als auch Mensch 4. Daten vergleichen
  5. Vorgehen cognitive modeling 1. Fragestellung überlegen: Was möchte ich herausfinden

    2. Model definieren 3. Daten erheben. Sowohl Computer als auch Mensch 4. Daten vergleichen 5. Model anpassen
  6. Vorgehen anhand eines Beispiels Wann werden wir den aktuellen Scope

    umgesetzt haben? 1. Fragestellung überlegen: Was möchte ich herausfinden 2. Model definieren 3. Daten erheben. Sowohl Computer als auch Mensch 4. Daten vergleichen 5. Model anpassen
  7. Vorgehen anhand eines Beispiels Wann werden wir den aktuellen Scope

    umgesetzt haben? Was sind die vermuteten Einflussfaktoren und in welcher Relation stehen sie zueinander? 1. Fragestellung überlegen: Was möchte ich herausfinden 2. Model definieren
 
 3. Daten erheben. Sowohl Computer als auch Mensch 4. Daten vergleichen 5. Model anpassen …
  8. Modell std ~ Categorical(0.25, 0.25, 0.25, 0.25) points = 20

    team_factor = 1.5 po ~ Bernoulli(0.7) sm ~ Bernoulli(0.5) po_factor = 0.8 if po else 1.2 sm_factor = 0.6 if sm else 1 mean = points * team_factor * po_factor * sm_factor days ~ Normal(mean, std)
  9. Vorgehen anhand eines Beispiels Wann werden wir den aktuellen Scope

    umgesetzt haben? Was sind die vermuteten Einflussfaktoren und in welcher Relation stehen sie zueinander? Coding… 1. Fragestellung überlegen: Was möchte ich herausfinden 2. Model definieren
 
 3. Daten erheben. Sowohl Computer als auch Mensch 4. Daten vergleichen 5. Model anpassen …
  10. Modell std ~ Categorical(0.25, 0.25, 0.25, 0.25) points = 20

    team_factor ~ Uniform(1, 2) po ~ Bernoulli(0.7) sm ~ Bernoulli(0.5) po_factor = 0.8 if po else 1.2 sm_factor = 0.6 if sm else 1 mean = points * team_factor * po_factor * sm_factor days ~ Normal(mean, std)
  11. Referenzen • Bishop, C. „Pattern recognition and machine learning“, Springer-Verlag

    New York, 2006 • D. Marr. Vision: a computational investigation into the human representation and processing of visual information. w. h. WH San Francisco: Freeman and Company, 1982.
  12. Nächster Talk … Realtime Error Tracking 
 in Web-Apps <Tobias

    Lehwalder & Mohamad Ramadan/> Juni 2016 > blog.cosee.biz > talks.cosee.biz
  13. Code import torch import pyro import pyro.distributions as dist #

    vacation std = pyro.sample('std', dist.Categorical(torch.Tensor([0.25, 0.25, 0.25, 0.25]))) print("std", std) points = 20 po = pyro.sample('po', dist.Bernoulli(torch.Tensor([0.7]))) sm = pyro.sample('sm', dist.Bernoulli(torch.Tensor([0.5]))) po_factor = 0.8 if po else 1.2 sm_factor = 0.6 if sm else 1 print("po", po_factor) print("sm", sm_factor) for i in range(9): team_factor = pyro.sample('team_factor', dist.Uniform(1, 2)) print("team_factor", team_factor) mean = points * team_factor * po_factor * sm_factor days = pyro.sample('days', dist.Normal(mean, std.float())) print(days)