From 4c614327b11157a14c0eb76b249b0fdfb9dfd6d2 Mon Sep 17 00:00:00 2001 From: Martin Thoma Date: Sun, 14 Jun 2015 11:27:39 +0200 Subject: [PATCH] documents/entropie-distanz: added --- documents/entropie-distanz/Makefile | 7 + .../entropie-distanz/entropie-distanz.tex | 147 ++++++++++++++++++ documents/entropie-distanz/step1.tcl | 6 + 3 files changed, 160 insertions(+) create mode 100644 documents/entropie-distanz/Makefile create mode 100644 documents/entropie-distanz/entropie-distanz.tex create mode 100644 documents/entropie-distanz/step1.tcl diff --git a/documents/entropie-distanz/Makefile b/documents/entropie-distanz/Makefile new file mode 100644 index 0000000..e7285ec --- /dev/null +++ b/documents/entropie-distanz/Makefile @@ -0,0 +1,7 @@ +SOURCE = entropie-distanz +make: + pdflatex -shell-escape $(SOURCE).tex -output-format=pdf + make clean + +clean: + rm -rf $(TARGET) *.class *.html *.log *.aux *.out diff --git a/documents/entropie-distanz/entropie-distanz.tex b/documents/entropie-distanz/entropie-distanz.tex new file mode 100644 index 0000000..9606ef6 --- /dev/null +++ b/documents/entropie-distanz/entropie-distanz.tex @@ -0,0 +1,147 @@ +\documentclass[a5paper,9pt]{scrartcl} +\usepackage{amssymb, amsmath} % needed for math +\usepackage[utf8]{inputenc} % this is needed for umlauts +\usepackage[ngerman]{babel} % this is needed for umlauts +\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf +% \usepackage[margin=2.5cm]{geometry} %layout +\usepackage{hyperref} % links im text +\usepackage{color} +\usepackage{framed} +\usepackage{parskip} +\usepackage{braket} % needed for \Set +\usepackage{enumerate} % for advanced numbering of lists +\usepackage{minted} % needed for the inclusion of source code +\clubpenalty = 10000 % Schusterjungen verhindern +\widowpenalty = 10000 % Hurenkinder verhindern + +\hypersetup{ + pdfauthor = {Martin Thoma}, + pdfkeywords = {ASR}, + pdftitle = {Entropie-Distanz von Martin Thoma} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Custom definition style, by % +% http://mathoverflow.net/questions/46583/what-is-a-satisfactory-way-to-format-definitions-in-latex/58164#58164 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\makeatletter +\newdimen\errorsize \errorsize=0.2pt +% Frame with a label at top +\newcommand\LabFrame[2]{% + \fboxrule=\FrameRule + \fboxsep=-\errorsize + \textcolor{FrameColor}{% + \fbox{% + \vbox{\nobreak + \advance\FrameSep\errorsize + \begingroup + \advance\baselineskip\FrameSep + \hrule height \baselineskip + \nobreak + \vskip-\baselineskip + \endgroup + \vskip 0.5\FrameSep + \hbox{\hskip\FrameSep \strut + \textcolor{TitleColor}{\textbf{#1}}}% + \nobreak \nointerlineskip + \vskip 1.3\FrameSep + \hbox{\hskip\FrameSep + {\normalcolor#2}% + \hskip\FrameSep}% + \vskip\FrameSep + }}% +}} +\definecolor{FrameColor}{rgb}{0.25,0.25,1.0} +\definecolor{TitleColor}{rgb}{1.0,1.0,1.0} + +\newenvironment{contlabelframe}[2][\Frame@Lab\ (cont.)]{% + % Optional continuation label defaults to the first label plus + \def\Frame@Lab{#2}% + \def\FrameCommand{\LabFrame{#2}}% + \def\FirstFrameCommand{\LabFrame{#2}}% + \def\MidFrameCommand{\LabFrame{#1}}% + \def\LastFrameCommand{\LabFrame{#1}}% + \MakeFramed{\advance\hsize-\width \FrameRestore} +}{\endMakeFramed} +\newcounter{definition} +\newenvironment{definition}[1]{% + \par + \refstepcounter{definition}% + \begin{contlabelframe}{Definition \thedefinition:\quad #1} + \noindent\ignorespaces} +{\end{contlabelframe}} +\makeatother +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Begin document % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} +\section{Entropie-Distanz} + +\begin{definition}{Entropie} +Sei $\Omega := \Set{z_1, z_2, \dots, z_n}$ eine endliche Zeichenmenge und +$X: Z \rightarrow \mathbb{R}$ eine Zufallsvariable über dem Wahrscheinlichkeitsraum +$(\Omega, \mathbb{P})$. Dann heißt +\[H_1 = - \sum_{z \in \Omega} \mathbb{P}(z) \log_2 (\mathbb{P}(z))\] +\textbf{Entropie}. +\end{definition} + +Die Entropie wird maximal bei Gleichverteilung, also bei $P(z_i) = \frac{1}{|\Omega|}$. +Dann gilt: $H = \log_2 |\Omega|$. Entsprechend wird die Entropie normiert, +indem durch $\log_2 |\Omega|$ geteilt wird: +\[H_{Norm} = \frac{H}{\log_2 |\Omega|}\] +Der Wertebereich der normierten Entropie $H_{Norm}$ ist $[0, 1]$. + +\begin{definition}{Gewichtete Entropiedistanz} +Seien $d_1, d_2$ disktrete Wahrscheinlichkeitsverteilung über $(\Omega, P)$, +die mit $n_1, n_2 \in \mathbb{N}_0$ Daten geschätzt wurden. + +Dann ist die \textbf{gewichtete Entropiedistanz} von $d_1$ und $d_2$ definiert durch +\[H_{dist}(d_1, d_2) := \left |\frac{n_1}{n_1+n_2} H(d_1) - \frac{n_2}{n_1+n_2} H(d_2) \right|\] +\end{definition} + +Die folgenden Zeilen erstellen folgende Objekte: +\begin{itemize} + \item \verb+FeatureSet+: Das FeatureSet macht die Signalverarbeitung im + Janus Spracherkenner. Das FeatureSet beinhaltet Objekte vom Typ + \verb+SVector+ oder \verb+FMatrix+. + \item \verb+CodebookSet+: Eine Menge von Codebooks. Jedes Codebook stellt + eine Gauß-Verteilung dar. Ein Codebook wird vollständig durch seine + Kovarianzmatrix und den Mittelwertsvektor beschrieben. + \item \verb+DistribSet+: Eine Menge von Gauß-Mixturen. Jede Mixtur verweist + auf eine Menge von $n$ Codebooks (Gauß-Verteilungen) und gewichtet diese + mit reelen Zahlen $c_i \in \mathbb{R}$. Damit dies wiederum eine + Gauß-Verteilung ergibt, muss jedes Gewicht nicht-negativ sein und die + Summe $\sum_{i=1}^n c_i = 1$ ergeben. +\end{itemize} +\inputminted[linenos, numbersep=5pt, tabsize=4]{tcl}{step1.tcl} + +Der Befehl in Zeile~1 erzeugt das \verb+CodebookSet+ und fügt ein Codebook mit +dem Namen \verb+cb+, dem Feature-Space namen \verb+dummy+, 2~Referenzvektoren +in einem 1-dimensionalen Feature-Raum hinzu. + +Die Gauß-Mixtur \verb+ds1+ gewichtet den ersten Referenzvektor mit $c_1 = 0.3$ +und den zweiten mit $c_2 = 0.7$. Für diese Gauß-Mixtur gibt es 2~Trainingsdaten + +Die Entropie der Verteilungen ist:\nobreak +\begin{align*} + H_1(ds1) &= -(0.3 \cdot \log_2 0.3 + 0.7 \cdot \log_2 0.7) \approx 0.88\\ + H_1(ds2) &= -(0.4 \cdot \log_2 0.4 + 0.6 \cdot \log_2 0.6) \approx 0.97\\ + H_1(ds3) &= -(0.8 \cdot \log_2 0.8 + 0.2 \cdot \log_2 0.2) \approx 0.72 +\end{align*} + +Nun gilt: + +\begin{align*} + H_{dist}(ds1, ds2) &\approx |\frac{2}{5} \cdot 0.88 - \frac{3}{5} \cdot 0.97| = 0.23\\ + H_{dist}(ds1, ds3) &\approx |\frac{2}{5} \cdot 0.88 - \frac{3}{5} \cdot 0.72| = 0.08\\ + H_{dist}(ds2, ds3) &\approx |\frac{1}{2} \cdot 0.97 - \frac{1}{2} \cdot 0.72| = 0.125\\ +\end{align*} + +Da \verb+ds1+ und \verb+ds3+ die geringste Distanz haben, sind sie sich nach +dem Entropiedistanzmaß am Ähnlichsten. Die Zusammenlegung dieser beiden +Verteilungen richtet also den geringsten Schaden an. + +\textbf{Antwort für Teilaufgabe c}: Das Modell \verb+E(S|Y)-b+ ist sich selbst +am ähnlichsten. + +\end{document} diff --git a/documents/entropie-distanz/step1.tcl b/documents/entropie-distanz/step1.tcl new file mode 100644 index 0000000..fb44b62 --- /dev/null +++ b/documents/entropie-distanz/step1.tcl @@ -0,0 +1,6 @@ +[CodebookSet cbs [FeatureSet fs]] add cb dummy 2 1 NO +DistribSet dss cbs ; dss add ds1 cb ; dss add ds2 cb ; dss add ds3 cb + +dss:ds1 configure -val {0.3 0.7} -count 2 +dss:ds2 configure -val {0.4 0.6} -count 3 +dss:ds3 configure -val {0.8 0.2} -count 3 \ No newline at end of file