changeset 60:eec0c96f4dfd

add bayesian networks, inference
author Markus Kaiser <markus.kaiser@in.tum.de>
date Sun, 09 Dec 2012 20:35:51 +0100
parents 564988e2790c
children 0c4a2d115131
files bayesian_networks/presentation.tex
diffstat 1 files changed, 281 insertions(+), 63 deletions(-) [+]
line wrap: on
line diff
--- a/bayesian_networks/presentation.tex	Sun Dec 09 00:55:42 2012 +0100
+++ b/bayesian_networks/presentation.tex	Sun Dec 09 20:35:51 2012 +0100
@@ -53,9 +53,11 @@
 \pgfdeclarelayer{midground}
 \pgfsetlayers{background,midground,main}
 \tikzstyle{edge} = [draw,very thick,->,>=latex]
+\tikzstyle{selected edge} = [edge, tumred]
 \tikzstyle{net node} = [ellipse, draw, thick, fill=tumblue!20,
 						minimum width=6em, minimum height=2.5em,
 						node distance=10em, inner sep = 0]
+\tikzstyle{selected net node} = [net node, fill=tumred!20]						
 \def \netvspace {8em}						
 \tikzstyle{net cpt} = [draw, thick, fill = tumgreen!20,
 						font=\scriptsize, node distance=3em,
@@ -135,13 +137,6 @@
 	\end{itemize}
 \end{frame}
 
-\begin{frame}
-	\frametitle{Aussagenlogik}
-	
-	\todo{Erschlagen durch Aussagenlogik}
-	\todo{Klappt nicht mit Unsicherheit}
-\end{frame}
-
 \begin{frame}[c]
 	\frametitle{Wahrscheinlichkeitstheorie}
 	
@@ -213,6 +208,7 @@
 	
 	\vspace{2em}	
 	
+	\begin{center}
 	\begin{tikzpicture}
 		\node [net node] (sport) {Sport};	
 		\node [net cpt] [below of = sport]
@@ -235,11 +231,13 @@
 		$0.2$ \\ 
 		\end{tabu}};	
 	\end{tikzpicture}
+	\end{center}
 \end{frame}
 
 \begin{frame}[t]
 	\frametitle{Nachmittagsplanung}
 	
+	\begin{center}
 	\begin{tikzpicture}
 		\node [net node] (sport) {Sport};	
 		\node [net cpt] [below of = sport]
@@ -262,6 +260,7 @@
 		$0.2$ \\ 
 		\end{tabu}};	
 	\end{tikzpicture}
+	\end{center}	
 
 	\vspace{1em}	
 	\only<1>{
@@ -305,7 +304,7 @@
 	
 	\begin{example}[Erweiterte Nachmittagsplanung]
 	Ich möchte das Haus nicht verlassen müssen, wenn es Regnet. Deshalb halbiere ich bei \alert{Regen} die Wahrscheinlichkeit für Aktivitäten außer Haus.\\
-	Wenn ich weder Sport mache noch lerne bekomme ich ein \alert{schlechtes Gewissen}. Nach meinem Würfelergebnis möchte ich wissen, wie groß die Wahrscheinlichkeit ist am Abend schlecht gelaunt zu sein.
+	Wenn ich weder Sport mache noch lerne bekomme ich ein \alert{schlechtes Gewissen}. Nach meinem Würfelergebnis möchte ich wissen, wie groß die Wahrscheinlichkeit ist, am Abend schlecht gelaunt zu sein.
 	\end{example}
 	
 	\vspace{1em}
@@ -323,7 +322,7 @@
 	Es sind immernoch Unabhängigkeiten vorhanden:
 	\begin{itemize}
 	\item \alert{Regen} beeinflusst das \alert{Lernen} nicht
-	\item \alert{Einkaufen} und \alert{Sport} beeinflussen sich nicht.
+	\item \alert{Einkaufen} und \alert{Sport} beeinflussen sich nicht
 	\end{itemize}
 
 	\vfill
@@ -347,11 +346,22 @@
 		\node [net node] (gewissen) at ($0.5*(sport.center) + 0.5*(lernen.center) - (0,\netvspace)$) {Gewissen};
 		\node [net node] (regen) at ($0.5*(sport.center) + 0.5*(kaufen.center) + (0,\netvspace)$) {Regen};
 		
+		\node<2,4> [selected net node] (sport) {Sport};
+		\node<2> [selected net node] (kaufen) [left of = sport] {Kaufen};				
+		\node<3,4> [selected net node] (lernen) [right of = sport] {Lernen};
+		
+		\node<4> [selected net node] (gewissen) at ($0.5*(sport.center) + 0.5*(lernen.center) - (0,\netvspace)$) {Gewissen};
+		\node<2,3> [selected net node] (regen) at ($0.5*(sport.center) + 0.5*(kaufen.center) + (0,\netvspace)$) {Regen};			
+		
 		\foreach \src/\dest in {regen/kaufen, regen/sport,
 								sport/gewissen, lernen/gewissen}
 			\path [edge] (\src) -- (\dest);
 			
-		\only<2> {
+		\foreach \i/\src/\dest in {2/regen/kaufen, 2/regen/sport,
+								   4/sport/gewissen, 4/lernen/gewissen}
+			\path<\i> [selected edge] (\src) -- (\dest);
+			
+		\only<5> {
 			\node [net cpt] at ($(regen.center)-(5em,0)$)
 			{\begin{tabu}{c}
 			$\Pr[R]$ \\ 	\tabucline{-} 
@@ -378,7 +388,7 @@
 			t & $0.2$ \\
 			\end{tabu}};			
 			
-			\node [net cpt] at ($(gewissen.center)+(7em,0em)$)
+			\node [net cpt] at ($(gewissen.center)+(7em,1.1em)$)
 			{\begin{tabu}{cc|c}
 			S & L & $\Pr[G]$ \\ 	\tabucline{-}
 			f & f & $0.8$ \\ 
@@ -391,42 +401,83 @@
 \end{frame}
 
 \begin{frame}
-	\frametitle{Bayesnetze}
+	\frametitle{Gemeinsame Verteilung}
 	
-	\begin{columns}
-	\begin{column}{.5\textwidth}
-		\todo{Eigenschaften erklären}
-	\end{column}
-	\begin{column}{.5\textwidth}
-	
-	\end{column}	
-	\end{columns}
+	\begin{theorem}[Gemeinsame Verteilung]
+	Für einen Eintrag $\Pr[x_1,\ldots,x_n]$ in der gemeinsamen Verteilung eines Bayesnetzes gilt
+		$$\Pr[x_1,\ldots,x_n] = \prod_{i=1}^n \Pr[x_i \mid \mathrm{parents}(X_i)]$$	
+	\end{theorem}
+
+	Was ist die Wahrscheinlichkeit, dass ich ein \alert{schlechtes Gewissen} bei \alert{schönem Wetter} habe, obwohl ich \alert{sport gemacht} habe nachdem ich \alert{einkaufen} war?
+	\begin{align*}
+	\Pr[G, S, \neg L, K, \neg R] &= \Pr[G \mid S, \neg L, K, \neg R] \cdot \Pr[S \mid \neg L, K, \neg R] \cdot \ldots\\
+	&= \Pr[G \mid S, \neg L] \cdot \Pr[S \mid \neg R] \\&\qquad \cdot Pr[\neg L] \cdot \Pr[K \mid \neg R] \cdot \Pr[\neg R]\\
+	&= 0.5 \cdot 0.8 \cdot 0.4 \cdot 0.5 \cdot 0.9 = 0.072
+	\end{align*}
 \end{frame}
 
-\begin{frame}
-	\frametitle{Gemeinsame Verteilung}
-	
-	\todo{Wie berechnet man den joint?}
-\end{frame}
-
-\begin{frame}
+\begin{frame}[t]
 	\frametitle{Konstruktion}
-	\todo{Expertenwissen}
-	\todo{Reihenfolge}
-	\todo{Strategien: Weglassen, Struktur schaffen}
+	\begin{block}{}
+	Wie konstruiert man zu einer Domäne ein möglichst \alert{kompaktes}, \alert{lokal strukturiertes} und \alert{natürliches} Netz?	
+	\end{block}
+			
+	\begin{itemize}
+	\item \alert{Expertenwissen} notwendig.
+	\vspace{1em}
+	\item Knoten modellieren \alert{quantifizierbare} Ereignisse
+		\begin{itemize}
+		\item Unbekannte Einflüsse in Verteilungen abbilden
+		\item Kompromiss zwischen Einfachheit und Genauigkeit
+		\end{itemize}
+	\item \alert{Lokale Struktur} schaffen
+		\begin{itemize}
+		\item Nur direkte Einflüsse abbilden
+		\item Kleine Einflüsse ignorieren
+		\end{itemize}
+	\item \alert{Kausale Reihenfolge} abbilden
+		\begin{itemize}
+		\item Einfacher zu fassende Verteilungen
+		\item Natürlichere Abbildung der Domäne
+		\end{itemize}
+	\end{itemize}
 \end{frame}
 
 \begin{frame}
 	\frametitle{Knotenrepräsentation}
-	\todo{Diskret vs. Kontinuierlich}
-	\todo{Schnell vs. Genau}
-	\todo{Kanonische Verteilungen}
+	
+	\begin{itemize}
+	\item Grundsätzlich \alert{beliebige} Verteilungen möglich
+	\item Abwägung zwischen \alert{effizient} und \alert{exakt}
+	\vspace{1em}
+	\item Logische Verknüpfungen
+	\item \alert{Kanonische} Verteilungen
+	\end{itemize}
+
+	\uncover<2>{
+	\begin{example}[Noisy Or]
+	Ein Patient hat Fieber, wenn er eine Erkältung oder Grippe hat. Hat er aber eine Krankheit, könnte er auch kein Fieber haben.
+	$$\Pr[\neg F \mid E, \neg G] = 0.6,\quad \Pr[\neg F \mid \neg E, G] = 0.2$$
+	
+	\begin{center}
+	\begin{tabu}{|cc|[2pt]cc||cc|[2pt]cc|}
+	\hline
+	E & G & $\Pr[F]$ & $\Pr[\neg F]$ & E & G & $\Pr[F]$ & $\Pr[\neg F]$ \\
+	\tabucline[2pt]{-}
+	f & f & 0 & 1 & t & f & 0.4 & \alert{0.6} \\  
+	\hline 
+	f & t & 0.8 & \alert{0.2} & t & t & 0.88 & 0.12 \\
+	\hline 
+	\end{tabu} 
+	\end{center}
+	\end{example}
+	}
 \end{frame}
 
 \begin{frame}
 	\frametitle{Hotdogs}
 	\begin{example}[Hotdog zum Mittagessen]
-	Im MI-Gebäude gibt es jeden Dienstag Hotdogs. Um genau 11 Uhr werfe ich einen Blick auf die Länge der \alert{Schlange} und entscheide allein anhand ihrer Länge ob ich auf mein Mittagessen \alert{verzichte}.\\
+	Im MI-Gebäude gibt es jeden Dienstag Hotdogs. Um genau 12 Uhr werfe ich einen Blick auf die Länge der \alert{Schlange} und entscheide allein anhand ihrer Länge ob ich auf mein Mittagessen \alert{verzichte}.\\
 	Die Länge der Schlange ist abhängig davon, ob es in der \alert{Mensa} akzeptables Essen gibt und wieviele Studenten \alert{verschlafen} haben.
 	\end{example}
 	
@@ -467,7 +518,7 @@
 		\end{tabu}};	
 		
 		\node [net cpt] at ($(hotdog.center)-(-1em,2.2em)$)
-		{$\Pr[h | S = s] = \Phi(\frac{-s + \mu}{\sigma})$};
+		{$\Pr[h \mid S = s] = \Phi(\frac{-s + \mu}{\sigma})$};
 		
 		\only<2> {
 		\def\sdiv{3}
@@ -479,7 +530,7 @@
 	    \end{axis}
 	    
 	    \begin{axis}[ticks=none,very thick,
-	    				 width=0.3\textwidth, yshift=-11em, xshift=-8.5em]
+	    				 width=0.3\textwidth, yshift=-10em, xshift=-8.5em]
 	    \addplot[domain=0:10,smooth]
 	    {1/(1+ exp(-2*((-x+5)/1.3)))};
 	    
@@ -490,27 +541,203 @@
 
 \begin{frame}
 	\frametitle{Inferenz}
-	\todo{Problemstellung}
-	\todo{Approximativ, Exakt}
+	
+	\begin{definition}[Inferenz]
+	Für ein Netz mit Knotenmenge $K = \{X\} \cup E \cup Y$ soll die \alert{Wahrscheinlichkeit} ermittelt werden, dass eine \alert{Variable} $X$ einen Wert annimmt, unter der Bedingung, dass für die \alert{Evidenzvariablen} $E$ die Werte $e$ \alert{beobachtet} werden und die \alert{versteckten Variablen} $Y$ unbekannt sind.
+	$$\Pr[X \mid e] = \Pr[X = x \mid E_1 = e_1, \ldots, E_n = e_n] = \;?$$
+	\end{definition}
+	
+	Wenn ich abends ein \alert{schlechtes Gewissen} habe, wie groß ist die Wahrscheinlichkeit, dass ich \alert{nicht gelernt} habe?
+	$$\Pr[\neg L \mid G] \approx 0.936$$
 \end{frame}
 
 \begin{frame}
-	\frametitle{Aufzählen}
-	\todo{Summieren}
-	\todo{Ausklammern}
+	\frametitle{Inferenz durch Aufzählen}
+
+	\only<1>{	
+	\begin{example}[Bekämpfung des schlechten Gewissens]
+	Wenn ich ein \alert{schlechtes Gewissen} habe werde ich unglücklich. Unglück kann man bekämpfen, indem man sich mit einem \alert{Film} ablenkt oder passend zur Jahreszeit Schokolade aus dem \alert{Adventskalender} isst.\\
+	Zur Vereinfachung soll der Einfluss des Regens nun \alert{nicht mehr} beachtet werden.
+	\end{example}
+	}
+	
+	\only<2>{
+	\begin{center}
+	\begin{tikzpicture}
+		\node [net node] (sport) {Sport};
+		\node [net node] (lernen) [right of = sport] {Lernen};
+		
+		\node [net node] (gewissen) at ($0.5*(sport.center) + 0.5*(lernen.center) - (0,\netvspace)$) {Gewissen};
+		\node [net node] (film) at ($(sport.center) - (0,2*\netvspace)$) {Film};
+		\node [net node] (advent) at ($(lernen.center) - (0,2*\netvspace)$) {Advent};
+		
+		\foreach \src/\dest in {sport/gewissen, lernen/gewissen,
+								gewissen/film, gewissen/advent}
+			\path [edge] (\src) -- (\dest);
+			
+		
+			\node [net cpt] at ($(lernen.center)+(6em,0)$)
+			{\begin{tabu}{c}
+			$\Pr[L]$ \\ 	\tabucline{-} 
+			$0.2$ \\ 
+			\end{tabu}};
+							
+			\node [net cpt] at ($(film.center)-(7em,0)$)
+			{\begin{tabu}{c|c}
+			G & $\Pr[F]$ \\ 	\tabucline{-}
+			f & $0.4$ \\ 
+			t & $0.75$ \\
+			\end{tabu}};	
+			
+			\node [net cpt] at ($(advent.center)+(7em,0)$)
+			{\begin{tabu}{c|c}
+			G & $\Pr[A]$ \\ 	\tabucline{-}
+			f & $0.6$ \\ 
+			t & $0.9$ \\
+			\end{tabu}};					
+			
+			\node [net cpt] at ($(sport.center)-(6em,0)$)
+			{\begin{tabu}{c}
+			$\Pr[S]$ \\ 	\tabucline{-} 
+			$0.4$ \\ 
+			\end{tabu}};				
+			
+			\node [net cpt] at ($(gewissen.center)+(7em,0)$)
+			{\begin{tabu}{cc|c}
+			S & L & $\Pr[G]$ \\ 	\tabucline{-}
+			f & f & $0.8$ \\ 
+			f & t & $0.25$ \\
+			t & f & $0.5$ \\
+			t & t & $0.1$ \\
+			\end{tabu}};
+	\end{tikzpicture}	
+	\end{center}	
+	}
 \end{frame}
 
 \begin{frame}
-	\frametitle{Beispiel}
-	\todo{Inferenzbaum}
-	\todo{Mehrfache Arbeit}
+	\frametitle{Inferenz durch Aufzählen}
+	
+	\begin{example}
+	Wie groß ist die Wahrscheinlichkeit, dass ich \alert{ohne Sport} einen \alert{Film} schaue und dabei \alert{Schokolade} esse?
+	\end{example}
+	Aus dem Satz der totalen Wahrscheinlichkeit erhalten wir
+	$$\Pr[X \mid e] = \alpha \Pr[X, e] = \alpha \sum_y \Pr[X, e, y]$$
+	also
+	\begin{align*}
+	\Pr[\neg S \mid F, A] &= \alpha \sum_g \sum_l \Pr[\neg S, F, A, g, l]\\
+	&=\alpha \cdot \Pr[\neg S] \cdot \sum_l \Pr[l]\\
+	&\qquad \cdot \sum_g \Pr[g \mid \neg S, l] \cdot \Pr[F \mid g] \cdot \Pr[A \mid g]\\
+	&\approx 0.585
+	\end{align*}
+\end{frame}
+
+\begin{frame}[t]
+	\frametitle{Berechnungsbaum}
+	\begin{tikzpicture}[grow=down]
+	\tikzstyle{every node} = [font=\scriptsize]
+	\tikzstyle{op} = [circle,thick,draw,fill=tumblue!20,minimum size=12pt,inner sep=0pt, font=\bfseries]
+	\tikzstyle{edge from parent} = [edge]
+	
+	\tikzstyle{level 2} = [sibling distance = 15em]
+	\tikzstyle{level 3} = [sibling distance = 8em]	
+	
+	
+	\node[op] {}
+    child {
+        node[op] {+}
+       	child {
+        		node[op] {+}
+            	child {
+            		node[op] {}
+            		child {
+            			node[op] {}
+            			child {
+            				node [op] {}
+            				edge from parent
+            				node[left] {$\Pr[A \mid g]$}
+            			}
+        				edge from parent
+        				node[left] {$\Pr[F \mid g]$}
+            		}	
+                	edge from parent
+                	node[left] {$\Pr[g \mid \neg S, l]$}
+            }
+            	child {
+            		node[op] {}
+            		child {
+            			node[op] {}
+            			child {
+            				node [op] {}
+            				edge from parent
+            				node[left] {$\Pr[A \mid \neg g]$}
+            			}
+        				edge from parent
+        				node[left] {$\Pr[F \mid \neg g]$}
+            		}	
+                	edge from parent
+                	node[right] {$\Pr[\neg g \mid \neg S, l]$}
+            }            
+            edge from parent
+            node[above] {$\Pr[l]$}
+    		}
+       	child {
+        		node[op] {+}
+            	child {
+            		node[op] {}
+            		child {
+            			node[op] {}
+            			child {
+            				node [op] {}
+            				edge from parent
+            				node[left] {$\Pr[A \mid g]$}
+            			}
+        				edge from parent
+        				node[left] {$\Pr[F \mid g]$}
+            		}	
+                	edge from parent
+                	node[left] {$\Pr[g \mid \neg S, \neg l]$}
+            }
+            	child {
+            		node[op] {}
+            		child {
+            			node[op] {}
+            			child {
+            				node [op] {}
+            				edge from parent
+            				node[left] {$\Pr[A \mid \neg g]$}
+            			}
+        				edge from parent
+        				node[left] {$\Pr[F \mid \neg g]$}
+            		}	
+                	edge from parent
+                	node[right] {$\Pr[\neg g \mid \neg S, \neg l]$}
+            }            
+            edge from parent
+            node[above] {$\Pr[\neg l]$}
+    		}    		
+		edge from parent
+		node[left] {$\Pr[\neg S]$}
+    };	
+	\end{tikzpicture}
 \end{frame}
 
 \begin{frame}
-	\frametitle{Variablenelimination}
-	\todo{Betrachten der Formel, Wegwerfen}
-	\todo{AlgorithmusIdee}
-	\todo{Komplexität}
+	\frametitle{Alternative Algorithmen}
+	
+	\begin{itemize}
+	\item Inferenz durch Aufzählen hat \alert{exponentielle} Laufzeit
+	\item Mit dynamischer Programmierung \alert{linear} auf Polytrees
+	\item Aber: Exakte Interferenz ist \alert{NP-Vollständig}
+	\end{itemize}
+	
+	\vspace{3em}
+	Alternative: \alert{Approximative Algorithmen}
+	\begin{itemize}
+	\item Direct/Rejection Sampling
+	\item Likelihood weighting
+	\item Markov chain Monte Carlo (MCMC)
+	\end{itemize}
 \end{frame}
 
 \begin{frame}
@@ -529,20 +756,11 @@
 	
 	Bayesnetze \ldots
 	\begin{itemize}
-		\item repräsentieren mehrdimensionale Zufallsvariablen
-		\item modellieren Kausalitätszusammenhänge
+		\item repräsentieren \alert{mehrdimensionale Zufallsvariablen}
 		\item haben eine kompakte Darstellung
-		\item benötigen Expertenwissen
-		\item sparen Speicher		
-		\item erlauben nichttriviale Interferenz
+		\item benötigen \alert{Expertenwissen}
+		\item modellieren \alert{Kausalitätszusammenhänge}
+		\item sparen Speicher				
+		\item erlauben Interferenz
 	\end{itemize}
-\end{frame}
-
-\begin{frame}
-	\frametitle{Q \& A}
-
-	\begin{center} \LARGE Danke für die Aufmerksamkeit!\end{center} 	
-	\vspace{1em}	
-	\begin{center} \LARGE Fragen?\end{center} 	
-\end{frame}
-\end{document}
+\end{frame}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              \end{document}