Wir wollten uns jetzt also in der heutigen Vorlesung mit dem zweiten
Teil von Signalvorverarbeitung beschäftigen.
Also worum es sich jetzt dreht, hier bei dem, was wir tun, ist, wenn
wir intelligente Systeme bauen wollen, dann können die natürlich in
einer künstlichen Welt erstmal laufen, dass man etwas baut für
Spielprobleme, in denen die Umgebung sozusagen bekannt und wohl
definiert ist.
Im kognitiven System haben wir das große Problem und die große
Aufgabe, dass wir wirklich versuchen, das Ganze mit natürlichen
Signalen aus der Umwelt zu tun.
Und daher beschäftigen wir uns in zwei Vorlesungen damit, dieses
Signal zunächst mal erst in einen Rechner reinzubekommen und dieses
Signal dann so zu verarbeiten, dass der Rechner damit überhaupt
erstmal arbeiten kann.
Das heißt, wir müssen das Signal erstmal erfassen, wir müssen es dann
versuchen in digitaler Form darzustellen und es dann umzusetzen in
einen Satz von Merkmalen, mit denen wir dann tatsächlich
Klassifikation oder Erkennung oder Prädiktion durchführen können.
Nun das war im Wesentlichen die Vorrede schon beim letzten Mal, dass
wir sagten, wir müssen zunächst mal dieses Signal in den Rechner
reinbekommen und da hatten wir uns dann mit dem sogenannten Abtasten
beschäftigt.
Abtasten ist nichts anderes, als dass wir Messungen durchführen mit
kurzen Intervallen, dass wir uns alle mit einer gewissen kurzen
Periode das Signal anschauen und dann eine Messung durchführen und das
in den Rechner reinbringen.
Alle Ihren modernen Geräte haben solche sogenannten AD-Wandler schon
drin, das heißt Ihr Handy, Ihr Laptop und so weiter haben alle
eingebaute AD-Wandler, die dieses Signal in dieser Weise abtasten.
Und diese Signale, wenn sie abgetastet sind, müssen dargestellt werden
in einer Bitfolge.
Wir haben also festgestellt, dass wir zunächst mal diese Frage haben,
dass wir bestimmen müssen, wie oft wir abtasten.
Wenn wir das nicht oft genug machen, bekommen wir solche
Schattendarstellungen, die sich Aliasing nennen.
Aliasing führt zu Geräuschen oder Störgeräuschen, die wir uns auch
schon angeschaut haben.
Aber wir müssen auch schauen, dass wir genügend Bits zur Verfügung
stellen, um ein solches Sample, eine solche Messung darzustellen und
das hatten wir uns auch angeschaut mit den Quantisierungsebenen.
Nun das dritte, zweite, was uns wichtig war, ist festzustellen, was
eine Faltung ist.
Eine Faltung ist ein Operator, der zwischen zwei Signalen durchgeführt
wird.
Das heißt, wir können ein Signal mit einem zweiten Signal mit einer
zweiten Funktion jeweils falten.
Wir haben festgestellt auch bestimmt, dass das deshalb so wichtig ist,
weil wir auf diese Weise berechnen können, wie ein Signal, das man in
ein bestimmtes System hineinführt, dann zu einer Ausgabe führt, die
wir durch die Faltung berechnen.
Im dritten Schritt, das dritte, das wir uns angeschaut haben, sind die
sogenannten Fourier-Transformationen oder Fourier-Reihenverlegungen.
Die Fourier-Reihenverlegungen und Transformationen, wie wir schon
sagten, sind für viele Informatiker ein Horror, weil es recht
kompliziert ist und die Elektrotechniker beschäftigen sich da lange
mit, aber es ist im Wesentlichen auch relativ intuitiv verständlich,
was wir hier tun.
Wir versuchen, ein Signal, das in der Zeit bestimmt wird, umzuwandeln
in eine spektrale Form.
Diese spektrale Form kennen Sie alle aus der Musik, aus Ihren
Musikplayern, wie wir schon bestimmt haben.
Und die Frage ist, wie macht man das mathematisch, wie nimmt man eine
Sequenz und wandelt die in eine Sequenz in einer Frequenzdomäne um,
eine Sequenz in eine Frequenzdomäne, und hierfür hatten wir uns die
sogenannte Fourier-Reihenverlegung angeschaut.
Bei der Fourier-Reihenverlegung fange ich mit einer periodischen
Sequenz an oder mit einem periodischen Signal, das zunächst mal
kontinuierlich ist, dieses f von x, könnte eine Zeitfunktion sein, wie
ein Musiksignal oder ein Sprachsignal, und wir führen das in eine
Fourier -Reihenverlegung hinein.
Wir nehmen dabei an, dass dieses Signal unendlich periodisch ist, dass
es also periodisch unendlich so weitergeht, und wenn das der Fall ist,
dann können wir das verlegen in solche Koeffizienten, das heißt wir
verlegen eine Funktion in eine Summe von verschiedenen Funktionen, die
alle trigonometrische Funktionen sind, die wir allerdings durch einen
Parameter ck entsprechend gewichten.
Und dieses ck ist ein komplexer Koeffizient, der Fourier-Koeffizient
einer Fourier-Reihenverlegung, und in der komplexen Schreibweise
können wir den darstellen, sodass wir dann, wenn wir das umwandeln,
eine Amplitude, Phase oder Frequenz nach der Fourier-Reihenverlegung
bekommen.
Wir haben uns verschiedene Beispiele angeschaut.
Eins zum Beispiel ist diese Fourier-Reihenverlegung einer
Rechteckfunktion.
Wir haben gesehen, wie diese zunehmend, wenn ich mehrere solcher Sinus
- und Kosinusfunktionen zusammenführe, in der Tat dann die
Rechteckfunktion darstellen kann, wenn diese Sinus- und
Kosinusfunktionen entsprechend gewichtet und verschoben sind, also mit
Amplitude und Frequenz.
Dann haben wir uns damit beschäftigt, dass Fourier-Reihenverlegung
natürlich nur gilt, wenn wir es mit einem unendlich periodischen
Signal zu tun haben, was in der Praxis natürlich nicht möglich ist.
Das heißt, ein Sprachsignal wird nie unendlich periodisch sein, das
verändert sich ständig.
Das heißt, wir brauchen hier etwas Limitierteres oder etwas, was nicht
unbedingt diese Periodizität annimmt.
Und so kamen wir auf die sogenannte Fourier-Transformation.
Bei der Fourier-Transformation geht man davon aus, dass man ein Signal
hat, das unendlich läuft, aber nicht mehr periodisch ist, daher der
Integral von Minusunendlich bis Plusunendlich.
Und dass wir auf diese Weise dann ein Fourier-Spektrum bestimmen
können, das dann auch nicht mehr diskret ist, sondern kontinuierlich.
Das heißt, wir haben dann die Formel kennengelernt, dass f von Omega,
das Spektrum einer Funktion, definiert ist durch das Integral von
Minusunendlich bis Plusunendlich, über diese Funktion selbst, mal
diesen komplexen Exponenten.
e hoch minus i Omega t, dann dt.
Die inverse Fourier-Transformation sieht ganz ähnlich aus.
Sie hat eigentlich eine ähnliche Form.
Sie sehen, dass wir in diesem Fall das Spektrum da einsetzen und auch
wieder ein komplexes Exponenten haben, in diesem Fall nur mit einem
Plus.
Wir haben noch einen Faktor 1 durch 2 Pi davor.
Und auf diese Weise können wir das ursprüngliche Signal wieder
komplett rekonstruieren.
Das heißt, eine Fourier-Transformation ist invertierbar durch eine
Funktion oder eine Formel, die eigentlich ganz ähnlich aussieht.
Dann haben wir dann auch festgestellt, dass wir in der Praxis diese
komplexen Fourier-Transformationen uns irgendwie vorstellen müssen und
versuchen wollen, die in irgendeiner Weise uns anzuschauen.
Und jetzt gerade bei akustischen Signalen wissen wir, dass unser Ohr
zum Beispiel Phasenverschiebungen der jeweiligen Fourier-Komponenten
gar nicht hören kann.
Das heißt, da interessiert uns besonders das Fourier
-Leistungsspektrum.
Und weil wir es mit komplexen Teilen dieser Fourier-Transformation zu
tun haben, können wir dieses Leistungsspektrum bestimmen, dadurch,
dass wir den Realteil dieses komplexen Spektrums quadrieren, den
Imaginärteil auch quadrieren und die beiden jeweils zusammenzählen und
die Wurzel ziehen.
Das Phasenspektrum können wir auch bestimmen, dadurch, dass wir den
Arctangent zwischen dem Imaginärteil und dem Realteil bestimmen, auf
diese Weise können wir ein Phasenspektrum bestimmen.
Das heißt, wenn wir ein Leistungsspektrum haben und ein Phasenspektrum
für ein beliebiges Signal, können wir es durch die inverse Fourier
-Transformation das ursprüngliche Signal wieder exakt rekonstruieren.
Nun, das ist alles sehr spannend und interessant.
Wir hatten uns dann angeschaut mit verschiedenen Eigenschaften.
Nun, diese Fourier-Transformationen haben Eigenschaften, die
interessant sind, weil wir mit denen rechnen und arbeiten können.
Das erste ist die Linearität, das heißt, wenn wir zwei Signale
zusammen addieren und dann die Fourier-Transformation bilden, dann ist
das gleich der Summe der Fourier-Spektren selbst.
Also, nehmen Sie an, wir nehmen das Signal, multiplizieren es mit C1,
ein zweites Signal mit C2 und wir addieren die zusammen und machen
dann die Fourier-Transformation, dann ist das gleich der
Multiplikation des Fourier-Spektrums des ersten Signals mal C1 und des
zweiten mal C2.
Wir haben diese Linearität in der Fourier-Transformation.
Eigenschaften, die können sich herleiten, eine oder andere machen wir
auch in den Übungen, aber wie gesagt, das sind Eigenschaften von den
Fourier -Transformationen, die man direkt aus der Definition ableiten
kann.
Differentiation, wenn wir versuchen, ein Signal zu differenzieren,
also ente Ableitung von f und dann die Fourier-Transformierte ziehen,
dann ist das gleich das ursprüngliche Spektrums f von ft mal I Omega
hoch n.
Das heißt, wir haben hier eine Umformulierung dadurch, dass wir hier
noch einen Faktor vorne dran bekommen, wenn wir ursprünglich das
Signal differenziert haben.
Verschiebung, das ist in manchen Aufgaben eine etwas wichtigere
Eigenschaft.
Wenn wir ein Signal verschieben um einen bestimmten Wert, also wir
haben das ursprüngliche Signal und verschieben es um eine konstante T,
was passiert dann mit dem Spektrum?
Das Spektrum ist immer noch dasselbe, allerdings haben wir hier jetzt
eine Phasenverschiebung, die man dann wieder in diesem komplexen
Exponenten findet, der jetzt mit diesem Spektrum multipliziert wird.
Das heißt, eine Verschiebung in der Zeitdomäne t minus T ist gleich
dem ursprünglichen Spektrum f, also Fourier-Transformiert eines
Signals, das wir verschoben haben, ist dann die Fourier-Transformierte
des Signals mal e hoch minus i Omega groß T.
Dasselbe passiert, wenn wir im Spektrum eine Verschiebung durchführen,
das heißt, wenn wir im Spektrum in der Frequenz eine Verschiebung
durchführen, also f von Omega minus Omega Null, dann ist das gleich
des Fourier-Spektrums des ursprünglichen Signals mal eines komplexen
Exponenten e hoch minus i Omega Null T.
Das heißt, Verschiebung und Multiplikation mit einem komplexen
Exponenten sind sozusagen die äquivalenten Operatoren in der Frequenz
und in der Zeitdomäne.
Nun, wie ist das mit der Faltung?
Das ist jetzt eine ganz wichtige Eigenschaft, denn die werden wir uns
gleich in mehreren Anwendungen auch anschauen.
Wir haben uns ja die Faltung angeschaut und festgestellt, dass eine
Faltung zweier Signale letztendlich bedeutet, dass ich das eine Signal
spiegle, dann multipliziere ich die beiden, bilde den Integral und
dann verschiebe ich jeweils die eine Funktion immer stückchenweise und
durch jeden Integral bekommen wir dann einen neuen Wert für jeden
Punkt T, auch in der diskreten Definition, die wir hier als zweites
sehen.
Wir müssen uns jetzt anschauen, was bedeutet das im Spektralbereich,
das heißt, Faltung der Zeitfunktion, wenn ich also zwei Zeitfunktionen
habe, die ich miteinander falte, also erste Funktion gefaltet mit der
zweiten und dann die Fourier-transformierte bilde, dann ist das gleich
dem Produkt der Fourier-transformierten des ersten Signals mal der
Fourier -transformierten des zweiten Signals.
Umgekehrt ist das auch so, dass wenn ich zwei Spektren miteinander
falte, dann bedeutet das dasselbe wie die Fourier-transformierte der
Multiplikation der beiden dazugehörigen Signale miteinander.
Das heißt also, auch hier wieder im Spektralbereich, im Zeitbereich,
Faltung und Multiplikation sozusagen äquivalent auf beiden Seiten
jeweils, wenn ich das in der einen Domäne mache, habe ich den anderen
Operator in der anderen.
Und warum ist das nun wichtig?
Das interessiert uns ganz besonders in verschiedenen Weisen, ist für
Sie auch als Informatiker bei dem Bau solcher Systeme relevant und
wichtig, denn das zweite, was wir hier zum Beispiel sehen, F1 von
Omega mal F2 von Omega, ist letztendlich ein Filter.
Wenn ich ein Spektrum habe mit einer charakteristischen Form, das
könnte zum Beispiel ein Filter sein, dann kann ich ja ein
ursprüngliches Signal mit einem Spektrum multiplizieren und dann
bestimmte Teile aus diesem Spektrum sozusagen herausdividieren oder
multiplizieren.
Also stellen Sie sich vor, ich habe einen Tiefpassfilter und ein
Tiefpassfilter ist im Spektrum etwas, was alles durchlässt bis zu
einer bestimmten Frequenz und dann null ist und ich multipliziere das
mit dem eigentlichen Spektrum, das ich versuche zu filtern, dann ist
das ja im Wesentlichen, dass ich das ursprüngliche Spektrum abschneide
durch eine Multiplikation, die ab einer bestimmten Frequenz alles auf
null setzt.
Also Multiplikation ist ja das Richtige.
Und was sehen wir, was das dann äquivalent in der Zeitdomäne ist?
Es ist eine Faltung und auch das macht Sinn.
Wenn wir sagen, im Spektrum ist das eine Multiplikation des Spektrums
des ursprünglichen Signals mit dem Spektrum des Filters, dann bedeutet
das in der Zeitdomäne ein Falten des ursprünglichen Signals mit einer
Funktion, die die Inversforie transformierte dieses Spektrums ist.
Und wir haben ja schon gesehen oder darüber gesprochen, dass für uns
das relevant war, dass wir ausrechnen wollen, was kommt aus einem
System heraus, wenn ich ein Signal in das System reinstecke und es
dann mit einer charakteristischen Funktion falte, kann ich ja die
Ausgabe berechnen.
Das hatten wir das letzte Mal schon besprochen.
Hier sehen wir das auch nochmal anschaulich, weil wenn wir uns das
vorstellen wie ein Filter, dann ist die Multiplikation auf der
spektralen Seite äquivalent zum Falten auf der Eingabeseite.
Okay, also Faltung zweier Funktionen entspricht dem Filtern eines
Signals.
Nun hatten wir auch in diesem Zusammenhang von der sogenannten Impulse
Response oder Impulsantwort eines Systems gesprochen.
Also stellen Sie sich vor, ich habe ein irgend beliebiges System,
möchte feststellen, das hatten wir in der letzten Vorlesung schon
besprochen, möchte ausrechnen, was rauskommt, wenn ich dort ein
bestimmtes Signal reinstecke.
Also Beispiel hier, ich möchte ausrechnen, wie es klingt, wenn ich
hier in das Mikrofon hier vorne reinspreche und Sie ganz hinten in der
letzten Reihe, hallo, haben sozusagen ein Mikrofon dort aufgebaut und
wir wollen feststellen, wie das Signal klingt, wenn das Signal hinten
bei Ihnen ankommt.
Nun aus signaltheoretischer Sicht her gesehen bedeutet das, das
ursprüngliche Signal zu falten mit einer charakteristischen
Transferfunktion des Hörsals.
Und diese charakteristische Transferfunktion des Hörsals, die kennen
wir natürlich nicht.
Und die Art und Weise, wie man den allerdings bestimmen kann, ist die
sogenannte Impulseantwort, denn wir wissen, dass ein Impuls mit einem
beliebigen Signal das beliebige Signal gibt nach der Faltung.
Richtig, das hatten wir das letzte Mal angeschaut.
Also ich falte ein beliebiges Signal mit einem Impuls und dann kommt
das beliebige Signal hinten raus nach der Faltung.
Das hatten wir das letzte Mal gesehen, ja?
Alle, die sich daran erinnern, Hand hoch.
Ah, gut, aufgepasst.
Also das heißt, Impulseantwort, wenn ich einen Impuls in das System
reinschicke, dann bekomme ich automatisch die Impulseantwort raus und
das ist meine charakteristische Funktion dieses Systems.
Das heißt, was ich machen muss, in dieses System einen Impuls
reinschicken, dann bekomme ich die charakteristische Transferfunktion
dieses Systems und dann kann ich ein beliebiges Signal durchschicken.
Das heißt, wenn einer von Ihnen zum Beispiel, wie gesagt, teure
Konferenzanlagen haben sowas, dass Sie erstmal ein Boing produzieren,
die schalten Sie an, also wenn Sie von Polycom oder anderen Firmen so
teure Konferenzmikrofone kaufen, dann schalten die die an und dann
macht das am Anfang erstmal Boing.
Und dieses Boing ist im Wesentlichen ein Impuls, den Sie in den Raum
reinschicken.
Wenn ich sowas mache und dann hinten messe, was hinten ankommt, dann
ist das meine Impulseantwort und mit dieser Impulseantwort kann ich
dann alle zukünftigen Sprachsignale halten und bekomme dann das
ursprüngliche Signal.
Und in der Spektraldomäne bedeutet das dann ein Multiplizieren, wenn
ich also nun diese Impulseantwort, dieses charakteristische
Transfersignal, Fourier transformiere, dann kann ich das ursprüngliche
Signal Fourier transformieren, die Impulseantwort Fourier
transformieren und die beiden jeweils miteinander multiplizieren.
Auch das ist ein enormer Vorteil, schon alleine rechnerisch.
Der eine oder andere wird das vielleicht bei Ihnen schon in
Algorithmen kennengelernt haben, wir wissen, dass wir zum Beispiel
eine Fourier-Transformation, und die werden wir nachher noch sehen,
durch eine sogenannte FFT realisieren, eine Fast Fourier Transform.
Und diese FFT geht in n log n Schritten, das heißt sie läuft schneller
als n², wohingegen die Faltung zweier Signale in Quadrat vielen
Schritten geht, das heißt wir können uns tatsächlich sogar Arbeit
sparen oder schneller rechnen, indem wir zunächst mal beide Signale in
die Fourier-Transformation oder in die Spektralebene transferieren und
dann miteinander multiplizieren.
Also auch rechnerisch macht das Sinn.
Okay, also das halten wir fest, wichtig ist, dass wir wissen, dass ein
Signal, das hinten aus einem System rauskommt, die Faltung ist des
ursprünglichen Signals gefaltet mit einer charakteristischen
Transferfunktion, und dass wir das Ganze ausdrücken können, links in
der Zeitdomäne als Faltung und rechts hier unten auch in der
Spektralform, nämlich dass wir die Spektren der beiden Signale jeweils
miteinander multiplizieren und dann das Spektrum des Ausgabesignals
bekommen.
Das sind also Standard-Filter-Operatoren, wir werden gleich sehen, in
einem anderen Zusammenhang, warum uns das auch in jeder Weise in
anderen Teilen interessiert.
Okay, nun zu diesen Zusammenhängen nochmal die Übersicht.
Wir haben hier gesehen, dass ein Signal zu einer Transformierten
führt, dass wir eine umgekehrte Transformation auch haben, das heißt
wir können die Transformierte ein Signal transformieren und von der
Transformierten wieder zurück in das Signal, das heißt wir können in
beide Richtungen diese Transformation durchführen, Fourier
-Transformierte oder Inverse.
Wir können auch feststellen, dass die Eigenschaften, die wir haben,
auf den beiden Anschauungsweisen, also Zeit- oder Fourier-Spektrum,
Eigenschaften haben, die jeweils korrespondieren.
Das heißt, wir haben zum Beispiel bei der Fourier-Reihenzerlegung
gesehen, dass wenn ich mit einem kontinuierlichen Signal anfange,
dann, umgekehrt, wir hatten mit einem periodischen Signal bei der
Fourier -Reihenzerlegung angefangen und dann festgestellt, dass die
Ausgabe dann diskret ist.
Umgekehrt ist das auch richtig, wenn ich ein diskretes Signal habe und
eine Fourier-Reihenzerlegung oder Fourier-Transformation durchführe,
bekomme ich ein periodisches Signal.
Ähnlich geht das dann auch mit real und gerade, also real und gerade
sind komplementär zueinander und imaginär und ungerade.
Für uns ist besonders wichtig, diese Geschichte mit diskret und
periodisch, weil die interessiert uns natürlich, weil wir es mit
echten Signalen auf einem Rechner zu tun haben.
Also auf einem Rechner haben wir natürlich das Problem, dass bei der
Fourier -Reihenzerlegung, wir sagten, das muss unendlich periodisch
sein.
Und beides ist natürlich nicht realistisch.
Das heißt, wir haben, wenn wir in den Rechner reingehen, kein Signal,
das periodisch unendlich geht.
Das Zweite, das wir auch nicht haben, ist ein kontinuierliches Signal.
Wir haben also immer ein diskretes Signal, das wir da reinstecken
wollen.
Das heißt, auch diese Annahme ist streng genommen falsch.
Das heißt, wir hatten uns in dem Zusammenhang dann auch die Fourier
-Transformation angeschaut, dass wir diese Annahmen lockern können,
aber wir werden schauen, dass das uns natürlich in die Bredouille
bringt, denn wir brauchen eigentlich auf beiden Seiten, auf der
Zeitdomäne als auch auf der Spektraldomäne, Signale, die diskret sind,
weil wir mit einem echten Rechner rechnen, und wir brauchen Signale,
die nicht unbedingt periodisch sind, weil wir es mit echten Signalen
nun tatsächlich zu tun haben.
Und wie lösen wir das?
Denn wir haben gesehen, dass diese Ausdrucksformen uns das natürlich
nicht liefern.
Aber wir wissen von dieser Darstellung, dass wenn ich etwas Diskretes
reinstecke, ich was Periodisches rausbekomme und wenn ich etwas
Periodisches reinstecke, etwas Diskretes rausbekomme und das will ich
natürlich auf beiden Domänen haben.
Nun, wie realisieren wir das?
Das schauen wir uns also gleich an.
Bevor wir das tun, hier noch zwei Beispiele für wie Fourier
-Transformationen nun aussehen, was so typische Fourier
-Transformationen sind.
Die eine ganz typische ist natürlich die Fourier-Transformierte einer
Sinusfunktion oder einer Cosinusfunktion.
Und auch das ist eigentlich relativ intuitiv, Sie können das
durchrechnen anhand der Formeln, die wir kennengelernt haben, aber die
Intuition sollte Ihnen eigentlich schon sagen, was da rauskommt.
Wenn ich eine Sinusfunktion von 100 Hertz habe, welche Frequenz hat
die?
100 Hertz.
Eine Sinusfunktion von 100 Hertz hat eine Frequenz von 100 Hertz.
Also gar keine besondere Fangfrage.
Und wenn wir uns das im Spektrum angucken, wie sollte es dann im
Spektrum aussehen?
In meinem Spektrum hat sie ja daher nur einen Frequenzanteil, eben bei
100 Hertz.
Das heißt, was sollten wir dann im Spektrum sehen?
Ist schon an der Tafel.
Ein Impuls bei 100 Hertz.
Das heißt, wir haben ein Spektrum und das sagt, alles ist null, nur
bei 100 Hertz habe ich dann einen Impuls, der sagt mir, hier habe ich
einen einzigen Frequenzanteil eben bei 100 Hertz, und das sagt mir die
Intuition schon und die Theorie bestätigt das, dass ich nämlich hier
dann Impulse bekomme auf der negativen und auf der positiven Seite
meines Spektrums, das ist periodisch, aber wir sehen, dass wenn ich
eine Sinusfunktion hier reingebe und das Foyer transformiere, dann
bekomme ich einen Impuls in der Frequenzdomäne, bei der
Kosinusfunktion ist das ebenso.
Also Sinus- und Kosinusförmige Signale werden im Frequenzbereich als
zwei Impulse wiedergegeben und das ist das, was wir eigentlich auch
erwarten würden.
Und die zweite typische Foyertransformierung, die Sie immer in der
Literatur wiederfinden, ist die sogenannte Hut-Funktion.
Stellen Sie sich also vor, ein Tiefpassfilter oder ein Hut in der
Zeitdomäne, also etwas ist an und dann aus und Sie produzieren das
Spektrum davon, dann ist das Spektrum diese sogenannte Sinkfunktion,
das ist eine Funktion, die so eine Spitze hat in der Mitte und dann so
abdämpft oder abbringt.
Umgekehrt ist das auch richtig, das heißt, wenn Sie im Spektrum eine
Hutfunktion haben, also einen Tiefpassfilter, dann bekommen Sie in der
Zeitdomäne auch so eine Sinkfunktion.
Auch die sind nützlich und wichtig, wenn wir uns mit sogenannten
Fensterungen des ursprünglichen Signals beschäftigen, das möchte ich
jetzt aber im Moment nicht ver...
Also das zunächst mal nur als eine typische Foyertransformation, die
man sehr häufig sieht.
Zurück also zu unserer Beobachtung, ein endliches Signal kann zu
unendlichen Spektren führen, das haben wir hier gerade gesehen, das
heißt, wir brauchen auch hier Approximation, je stärker die Übergänge
im Signal, desto höher die Frequenz der Komponenten, umso breiter das
Spektrum.
Auch das sollte inzwischen Sinn machen, das heißt, wenn ich etwas im
Signal habe, das schnell wackelt, dann bedeutet das, ich habe
hochfrequente Anteile in meinem Foyerspektrum.
Auch das werden wir sehen.
Okay.
So, nun unser Problem ist, dass wir beide kontinuierlich schwer
digital darstellen können, das heißt, wir brauchen etwas diskret in
der Zeit und diskret in der Foyer-Spektrum, das heißt, wenn unsere
Eingabe diskret aperiodisch ist, dann ist mein Ergebnis periodisch und
kontinuierlich.
Ich brauche also in diskreter Zeit eine Foyertransformation, oder ich
möchte eine diskrete Foyertransformation, bei der die Ausgabe, die
Eingabe und die Ausgabe diskret ist zunächst mal, wir haben es mit
einem echten Rechner zu tun, also wenn Sie auf Ihrem PC eine
Foyertransformation berechnen wollen, dann bedeutet das, dass Sie
diskrete Zahlen eingeben wollen und diskrete Zahlen rausbekommen
wollen.
Das bedeutet aber nach diesen Eigenarten der Foyertransformation, dass
sowohl die Eingabe als auch die Ausgabe periodisch sein müssen.
Das hatten wir ja gerade gesagt, stimmt nicht, ist nicht realistisch.
Und was können wir da machen?
Das ist in der Tat so, wir benutzen daher die sogenannte diskrete
Foyertransformation, die im Wesentlichen das ist, sie nimmt also an,
dass man periodisch diskret als Eingabe hat und diskret und periodisch
als Ausgabe.
Und das ist die Formulierung, die man am meisten benutzt, die Sie
benutzen werden, wenn Sie auf MATLAB oder sonst einem Tool versuchen,
eine Foyertransformation zu berechnen, ist das eine diskrete
Foyertransformation.
Die schnelle Variante davon ist die sogenannte FFT, Fast Fourier
Transform, und die berechnet in eine Fourier-Transformation von einem
Signal.
Das Problem dabei ist, das Gute bei dieser diskreten
Foyertransformation ist, dass Eingabe und Ausgabe diskret sind, aber
wegen der Eigenarten der Foyertransformation bedeutet das aber auch
periodisch eine Unendlichkeit in der Eingabe und in der Ausgabe.
Und das stimmt natürlich nicht, wie wir schon sagten, wir haben es
nicht mit ewig periodischen Signalen zu tun, das heißt wir müssen hier
Annahmen machen oder so ein bisschen uns eine Approximation denken.
Was man hier tut, ist das sogenannte Fenstern eines Signals, das heißt
ich nehme ein Signal her, das natürlich nicht periodisch ist, das
bewegt sich in alle kuriosen Arten und Weisen, und ich schneide mir da
jetzt ein Fenster raus, ich schneide mir also ein Stückchen Signal
raus und ich tue so, als ob dieses Stückchen Signal jetzt periodisch
in aller Unendlichkeit so weitergeht.
Und das ist eine sogenannte Kurzzeitbetrachtung, dass ich für dieses
kurze Stückchen Signal jetzt Periodizität annehme und annehme, dass
dieses Signal ewig so weitergeht.
Wenn ich das tue, dann bekomme ich genau eine sogenannte Short-Time
Foyertransform, das bedeutet also ich mache eine Foyertransformierte
über ein kurzes Stück Signal, bei dem ich angenommen habe, dass es
periodisch so weitergeht, damit es diskret auf der anderen Seite
rauskommt, aber ich habe natürlich jetzt angenommen, dass es
kurzfristig so ist, das heißt ich habe jetzt nicht mehr das Spektrum
für das komplette Signal, sondern nur für so ein Stückchen, das ich
ausgeschnitten habe.
Nun ist das natürlich das, was ich eigentlich auch wirklich haben
will.
Wenn ich also ein Spektrum berechnen möchte für Musik, also Ihren
Music Player, wenn Sie auf Ihrem iPhone oder sonst den Music Player
laufen lassen, dann bekommen Sie ja nicht ein statisches Spektrum,
sondern eins, das sich ständig verändert.
Also diese Bars, die da hoch und runter gehen, bedeuten ja, dass das
Spektrum letztendlich ständig sich verändert, während die Musik
spielt.
Und das ist das, was Sie haben wollen.
Sie wollen eigentlich ein Spektrum für die Kontinuität der Musik, so
wie sich das Spektrum über die Zeit hinweg ändert.
Das heißt, wir schneiden uns dieses Stückchen aus, jedes Stückchen tun
wir so, als ob es periodisch unendlich weitergeht und wir berechnen
dann ein Spektrum, das nur für dieses Stück gilt und das sich dann
über die Zeit hinweg dann auch verändert.
Das ist also dieses Short Time Fourier Spektrum, das man mit einer
sogenannten FFT tatsächlich berechnet.
Nun ein kleiner Hakel an der Sache, den ich parenthetisch dazu sagen
will.
Wenn ich ein Stück rausschneide aus einem Signal, kann ich das einfach
so tun, ohne die Gesetze der Signalverarbeitung zu verletzen?
Was bedeutet denn aus Signalsicht ein Ausschneiden?
Ja, aber warum?
Was bedeutet signaltheoretisch Ausschneiden?
Ja, eigentlich auch gute Betrachtung, weil im Wesentlichen tun wir
das, wir tasten ab für ein bestimmtes Stück, aber ich würde mal sagen,
wir multiplizieren es mit einem Fenster.
Das wäre jetzt mal die Variante, die ich präferieren würde.
Das heißt, wir nehmen ein Signal und wenn wir das rausschneiden,
bedeutet das ja, dass wir das ursprüngliche Signal mit einem
Rechteckfenster multiplizieren, das eine gewisse Länge hat.
Also das Rausschneiden von 10 Millisekunden Sprache, bedeutet
letztendlich, das ursprüngliche Signal hernehmen und das
multiplizieren mit einem Rechteckfenster, das 10 Millisekunden lang
ist.
Das ist also 1 10 Millisekunden lang und 0 sonst überall.
Also Rausschneiden bedeutet dieses Multiplizieren.
Und da haben wir gerade festgestellt, was bedeutet es denn, wenn ich
zwei Signale miteinander multipliziere?
Faltung, genau.
Das Multiplizieren zweier Signale in der Zeitdomäne bedeutet eine
Faltung in der Spektraldomäne und das wiederum bedeutet, dass wenn ich
mein ursprüngliches Signal so ausschneide, ist das nicht kostenfrei,
da mache ich also wirklich eine Approximation, wo ich wirklich an dem
Signal Sachen verändere.
Dadurch, dass ich es rausschneide, multipliziere ich mit einem
Rechteckfunktion und das wiederum bedeutet, dass ich das tatsächliche
Spektrum meines Signals falten werde mit der Fourier-Transformierten
meines Rechteckfensters.
Nun, die Fourier-Transformierte eines Rechteckfensters, die haben wir
schon kennengelernt, das ist diese Sinkfunktion, die wir gesehen
haben.
Das heißt, was wir dann tatsächlich rausbekommen, ist das tatsächliche
Spektrum, das wir versuchen spektral darzustellen, allerdings gefaltet
mit dieser Sinkfunktion.
Nun will ich Sie mit den Details von all dem nicht langweilen, man hat
sich da viel Gedanken darüber gemacht, was ist das ideale Fenster, mit
dem ich jetzt nun ausschneiden soll, damit ich mein Spektrum so wenig
wie möglich verzerre oder zerstöre.
Typischerweise gibt es gewisse runde Fenster, mit denen man
rausschneiden kann, sogenannte Hemming-Fenster und Henning-Fenster,
die letztendlich an den Enden, und daher auch Ihre Intuition mit den
scharfen Kanten, dass die nicht gut sind, weil in der Faltung ich
natürlich das so glatt wie möglich machen möchte, ich möchte
sozusagen, dass am Ende mein Signal so gut wie möglich repräsentiert
wird.
Okay, das ist also nur parenthetisch, dass dieses Ausschneiden und
periodisch so tun, als ob es periodisch weitergeht, man vorsichtig
machen muss mit Filtern, diese Ausschnitt-Fenster und Filter müssen
vorsichtig gewählt werden, damit man da nicht viel zerstört.
Okay, aber gehen wir noch zurück auf einen anderen Punkt, der hierbei
wichtig ist, das Aliasing oder das, was wir uns angeschaut haben mit
dem Abtasten.
Und bei dem Abtasten ist es ja nun so, auch das tun wir einen Operator
ja anwenden, das heißt, wenn wir ein Signal abtasten, dann haben wir
uns das so vorgestellt, dass wir im ursprünglichen Signal Messungen
alle, was weiß ich, alle so und so viele Millisekunden, machen wir
eine Messung der ursprünglichen Wellenform.
Und auch das ist eigentlich mathematisch gesehen ja nun ein Operator,
wenn ich eine Messung durchführe, alle paar Punkte, also ein
kontinuierliches Signal nehme und das jetzt nun messe mit bestimmten
Zeitintervallen, dann bedeutet das ja, dass dasselbe, wie wenn ich das
ursprüngliche Signal mit einem Impulszug multipliziere.
Wir erinnern uns alle, was ein Impulszug ist und Abtasten bedeutet
letztendlich nichts anderes, als das ursprüngliche Signal mit einem
Impulszug zu multiplizieren.
Ich bekomme jetzt also einen Zug von Impulsen, die unterschiedliche
Größe haben, unterschiedliche Gewichtungen.
Das können wir uns also so vorstellen, den Impulszug haben wir ja
kennengelernt, das ist also eine solche Reihe von Impulsen mit einer
bestimmten Periode T.
Und wir haben dann auch festgestellt, dass die Fourier-Transformierte,
dieses Impulszug, auch wieder ein Impulszug ist, das haben wir alles
letztes Mal schon gesehen.
Das heißt, wir haben einen Impulszug mit der Dirac-Funktion x minus µ
T, das ist also der Intervall T, mit dem sich diese Impulse
wiederholen, in aller Unendlichkeit.
Und wenn ich da das Spektrum bilde, die Fourier-Transformierte, dann
bekomme ich auch einen Impulszug, bei dem allerdings die Periode
dieser Impulse nicht sich mit T unterscheidet, sondern mit 1 durch T,
dem Inversen.
Wir sehen das in der Formel, was hier rauskommt, wir haben oben Omega
minus µ 2 Pi geteilt durch T.
Das heißt, wenn dieser Intervall meines Impulszuges größer wird, dann
würden dadurch die Abstände im Spektrum zwischen dieser Impulse
kleiner werden.
Also ich nehme einen Impulszug, der eine bestimmte Periode der Impulse
hat, dann ist die Fourier-Transformierte auch wieder ein Impulszug,
nur dass die Periode inversproportional ist zu der ursprünglichen
Periode der Impulse in der Zeitdomäne.
Und warum ist das interessant?
Weil das erläutert uns letztendlich auch diesen Effekt vom Aliasing.
Denn wenn wir gesagt haben, dass wir beim Samplen, beim Abtasten ein
ursprüngliches Signal hernehmen und es multiplizieren mit einem
Impulszug, was bedeutet multiplizieren in der Zeitdomäne in der
Frequenzdomäne?
Multiplizieren hier bedeutet Faltung auf der anderen Seite.
Das heißt wir sagen, wir haben jetzt das Spektrum des ursprünglichen
Signals, wir haben das Spektrum dieses Impulszuges und falten die
miteinander.
Das ist hier in diesem Bild angezeigt.
Wir haben ein ursprüngliches Signal f von t, dessen Spektrum f von
Omega ist oder wäre, aber jetzt ist das nicht kontinuierlich, sondern
wir tasten das Ganze ab.
Das heißt, wir haben jetzt Abtasten, ein Impulszug s von t, das sind
jetzt Impulse mit einer Periode t und die multipliziere ich jetzt mit
dem ursprünglichen Signal.
Ich bekomme auf der linken Seite dann diese Darstellung hier, dass ich
nämlich das ursprüngliche Signal multipliziere mit meinem Impulszug s
von t.
Ich weiß nicht, ob ich meinen Laserpointer finde.
Das heißt, wir haben hier diesen Impulszug s von t, multipliziere ich
mit dem ursprünglichen Signal und ich bekomme jetzt die Abtastwerte,
die ich gesucht habe, die sind jeweils das Produkt des ursprünglichen
Signals mit den Impulsen dieses Impulszuges.
Das Ganze im Spektrum sieht dann so aus, dass das ursprüngliche
Spektrum, das ich versuchte hier zu repräsentieren, ist mein Spektrum
hier, mein Impulszug wird im Spektrum zu einem neuen Impulszug s von
Omega, dessen Intervalle umgekehrt proportional sind zu den
ursprünglichen Intervallen.
Und so bekomme ich dann als Ergebnis der Faltung die Faltung der
Impulse des Impulszuges mit dem ursprünglichen Spektrum hier,
Entschuldigung, der Impulszug hier, mit dem Spektrum gefaltet, gibt
mir jetzt nun diese ursprünglichen Spektren, außer dass das jetzt nun
Kopien sind, diese periodischen Kopien dieses ursprünglichen
Spektrums.
Und jetzt sehen wir auch den Effekt des Aliasings.
Wenn dieses Spektrum bandbegrenzt ist, wie wir hier sehen, und diese
Impulse weit genug voneinander auseinander liegen, dann wird hier
nichts Schlimmes passieren, wenn ich die beiden jeweils miteinander
falte, denn dann bekomme ich einfach nur Kopien des ursprünglichen
Spektrums und ich kann das ursprüngliche Spektrum dann gut wieder
daraus extrahieren.
Wenn allerdings diese Impulse zu nah beieinander liegen, das heißt,
wenn ich also das ursprüngliche Spektrum nehme, es falte mit dem
Impulszug im Spektralbereich und die Impulse sind weit genug
voneinander entfernt, dann bekomme ich einfach nur Kopien von dem
ursprünglichen Spektrum, die sich hier einfach wiederholen.
Nichts Besonderes dabei.
Das ist, wenn diese Impulse weit genug voneinander sind, das bedeutet
nah genug im Zeitbereich.
Und wenn die Impulse zu nah beieinander im Spektralbereich sind, das
heißt, die Impulse im Zeitbereich zu weit voneinander liegen, dann
bedeutet das, dass sich diese Kopien meines Spektrums anfangen zu
überlappen.
Dann sind diese Impulse näher beieinander, die Faltung bedeutet, dass
die jeweiligen Kopien dieser Spektrum, die Spektren jeweils
übereinander liegen, das heißt, ich bekomme hier ein solches
Verwischen oder Vermischen dieser Kopien der Spektren.
Und das ist genau der Effekt des Aliasings, den wir dann beobachten,
das heißt, ich bekomme so Schatten von den Kopien des Spektrums nach
dem Falten in der Frequenzdomäne.
Nun, was muss passieren, damit das nicht passiert?
Das heißt, dieses Überlappen der Kopien wollen wir natürlich nicht
haben, das heißt, das bedeutet, wir müssen zuschauen, dass diese
Impulse weit genug voneinander entfernt sind, dass wir diese
Überlappungen nicht haben nach der Faltung.
Hier sind sie zum Beispiel zu nah beieinander und wir bekommen dann
diese Vermischung der Kopien, das heißt, wir müssen zuschauen, dass
diese Impulse weit genug voneinander liegen, und wie wir gesehen
haben, das bedeutet in der Zeitdomäne, dass die Impulse nah genug
beieinander liegen, weil die ja sich umgekehrt proportional verhalten,
das heißt, wir müssen diese Intervalle in der Zeitdomäne relativ nah
beieinander liegen, das heißt, wir müssen schnell genug abtasten die
Periode, die Intervalle dieser Impulse müssen klein genug sein, damit
Aliasing nicht passiert.
Das ist genau, was wir das letzte Mal anschaulich schon betrachtet
haben, nämlich, dass ich schnell genug abtasten muss, damit das
Aliasing nicht passiert.
Hier haben wir jetzt die signaltheoretische Anschauung, die uns zeigt,
warum es schnell genug passieren muss, damit wir die Überlappung in
der Spektraldomäne durch die Faltung nicht haben.
Das heißt, wir müssen die Samplingfrequenz groß genug wählen oder die
Intervalle klein genug, damit in der Frequenzdomäne hier keine
Überlappung der Spektren passiert.
Wir müssen eigentlich zwei Sachen festlegen, das eine ist, dass das
Abtasten schnell genug passiert und auf der anderen Seite müssen wir
schauen, dass dieses Signal tatsächlich bandbegrenzt ist.
Wenn dieses Signal nun sehr breit ist im Spektrum, dann haben wir
natürlich auch Probleme, auch wenn das Signal hier schneller abtastet.
Das heißt, wir brauchen wirklich zwei Sachen, wir müssen
sicherstellen, dass wir schnell genug abtasten und dass dieses Signal
bandbegrenzt ist und beides hatten wir das letzte Mal schon mit
anschaulichen Argumenten klargemacht.
Nun, ganz konkret gesagt, wenn wir das genau ausrechnen, dann bedeutet
das, wir müssen die Intervalle in der Zeitdomäne kleiner wählen als 1
durch 2 Omega oder anders ausgedrückt, wir müssen schauen, dass wir
mindestens doppelt so schnell abtasten wie die oberste Frequenz meines
Spektrums.
Das heißt, mein Spektrum muss bandbegrenzt sein und wenn ich Ihnen
sage, mein Spektrum geht von 0 bis 1000 Hertz, muss ich wie schnell
mindestens abtasten?
2000.
Ich muss also mindestens doppelt so schnell abtasten.
Nun, bei Sprache, das was wir hier machen, reichen so in der Regel
8000 Hertz, aber bei 8000 Hertz, um ein Musik- oder Sprachspektrum
darzustellen, das heißt, wir tasten in der Regel für Sprachsignale mit
16.000 Hertz ab, das heißt, in Spracherkenner benutzen wir meistens 16
.000 Hertz als Abtastrate, also 16.000 Zahlen pro Sekunde, die wir bei
so einem Signal tatsächlich abtasten und messen.
Gut, das meiste hier haben wir schon gesagt.
In der Praxis, was wir hier haben, ist Abtasten in endlichen
Intervallen möglich, Spektrum lokal, im kleinen Intervall interessant,
das heißt, wir benutzen dann eine Fensterfunktion, wie ich Ihnen das
gerade erzählt habe, dadurch, dass wir das Signal ausschneiden.
Wir tun so, als ob das unendlich so weitergeht, periodisch, wir machen
dann eine diskrete Fourier-Transformation oder eine FFT, diese FFT
gibt mir dann das Spektrum, ich muss dann aber schauen, dass ich das
Fenster entsprechend wähle, dass das so akkurat wie möglich das
ursprüngliche Signal rekonstruiert oder darstellt.
Okay.
Und das mit dem Alicing haben wir auch erläutert, wir müssen also
mindestens zweimal so schnell abtasten, wie die oberste Frequenz und
das können wir dadurch erreichen, dass wir einfach die Samplefrequenz
erhöhen, also die Abtastfrequenz erhöhen oder die Bandbegrenzung
erniedrigen.
Das heißt, wir müssen das Signal schauen, dass die oberste Frequenz
meines Signals nur halb so groß ist, wie die Abtastrate.
Das heißt, wenn ich eine niedrigere Abtastrate wählen möchte, dann
muss ich sicherstellen, dass die obere Ende des Spektrums begrenzt
ist.
Ich habe Sie nur so halb verstanden, aber ich meine, was Sie sagten,
gibt es eine Begrenzung an der unteren Ende des Spektrums, nein, das
kann also runtergehen bis auf null, Sie müssen nur schauen, dass die
oberste Frequenz, die höchste Frequenz, halb so groß ist, wie die
Abtastrate, um es wieder zu rekonstruieren.
Also ein Tiefpassfilter muss im Wesentlichen gewählt werden, wir
brauchen keine Bandpassfilter und so weiter.
Es ist natürlich so, dass das Telefonsignal zum Beispiel über
klassische Telefone nur so zwischen 3.000 und 4.000 Hertz, das heißt
wir brauchen für klassische Telefonie eigentlich nur bis 8.000 Hertz
zu samplen und an dem unteren Ende fehlen dann zwar Teile, aber die
können wir mitrepräsentieren, die stören nicht.
Okay, das haben wir also alles gesehen.
Okay, nun so ein paar andere Betrachtungen, soweit eigentlich das, was
wir über Vorverarbeitung wissen sollten.
Wir sollten also drei Dinge kennen, das Abtasten, was ich machen muss,
dass es wirklich rekonstruierbar ist, wie ich abtaste, dass ich da
Quantisierungs - und Raster- oder Abtastfrequenz-Schwierigkeiten haben
könnte, die ich im Griff haben muss.
Das Zweite ist, dass ich ein solches Signal in die Spektraldomäne
umwandeln kann und will, dass das praktische Vorteile hat und dass wir
dann ein Leistungsspektrum bestimmen können oder ein Phasenspektrum,
mit dem wir dann später arbeiten können, das können wir uns dann als
Vektoren vorstellen, die dann unsere Merkmalsvektoren für die
tatsächliche Verarbeitung dieser Signale darstellen.
Nun mit diesen Koeffizienten oder Daten oder abgesampleten Daten kann
man nun Verschiedenes tun.
Es gibt sowohl in der Spracherkennung als auch in der Erarbeitung von
akustischen Signalen als auch in den Bildsignalen, auch zusätzlich zur
Faltung, auch Kreuzkorrelationen, wir sehen hier so ein Beispiel einer
Kreuzkorrelation zweier Signale.
Die sehen so ähnlich aus wie die Faltung, nur dass wir hier das
Spiegeln nicht tun, das heißt wir nehmen die Signale, legen die
übereinander, multiplizieren die auf und summieren sie auf und
verschieben sie dann so das eine gegen das andere.
Vorteile oder Möglichkeiten dafür sind eben auch solche Filter oder
Kantendetektoren, die man damit baut, wenn das zweidimensional ist in
der Bildverarbeitung.
Und ein spezieller Fall dieser Kreuzkorrelation ist die sogenannte
Autokorrelation, wo man ein Signal mit sich selbst sozusagen
korreliert, das heißt ich benutze ein Signal, mache zwei Kopien davon
und schiebe diese Kopien jeweils leicht zueinander an sich vorbei und
multipliziere die auf.
Nun, warum ist das interessant?
Es ist eine ganz relativ einfache, primitive Form der Darstellung
eines Signals, die ich benutzen kann, um damit allein auch schon
wieder ein akustisches Signal zum Beispiel darzustellen.
Ein besonders interessanter Aspekt davon ist, dass es natürlich
automatisch periodische und nicht periodische Signale in der Sprache
gut repräsentiert.
Wenn ich zum Beispiel stimmhafte Sprache habe, A, U, I, kommen wir
noch in der Spracherkennung dazu, dann sind die stimmhaft, meine
Stimmbänder vibrieren und dieses stimmhafte A, weil meine Stimmbänder
vibrieren, bedeutet das, dass wir ein periodisches Signal haben, wo
die Schwingungen der Stimmbänder immer wieder auftreten.
Das sind sozusagen Pulse, die durch den Vokaltrack gehen.
Und diese Wiederholungen dieses Signals kann man sehen, das heißt,
unsere Wellenform wird dann so aussehen, nämlich, Ups, die
Autokorrelation, ich weiß nicht, ob ich ein Beispiel habe, leider
nicht, tut mir leid.
Aber, Tafel haben wir auch keine.
Ich muss es also vorstellen, es stellt sich also ein periodisches
stimmhaftes Signal so vor,
das heißt, wir haben da also bestimmte Pulse, die von den Stimmbändern
herkommen und dann schwingt das ab und dann wiederholt sich das Ganze.
Wenn ich nun ein solches Signal kopiere und an sich selber
vorbeiführe, dann wird es sich natürlich dann verstärken, wenn die
zweite Periode wiederkommt, das heißt, dann bekomme ich große
Ausschläge und das sieht man hier in diesem
Autokorrelationskoeffizient, wenn die aneinander vorbeigeführt werden,
aufmultipliziert, bekomme ich den Laserpointer nicht.
Sie sehen, dass also diese Peaks erscheinen, hier, hier und hier.
Das sind sozusagen die Überlappungen dieser Periode, wo sich das Ganze
dann gegenseitig bestärkt.
Das wiederum ist nützlich, wenn wir zum Beispiel die Grundfrequenz
bestimmen wollen, und darüber werde ich vielleicht später noch über
Spracherkennung sprechen.
Also wenn ich zum Beispiel feststellen will, wie ich diese
Grundfrequenz bestimmen will, dann kann ich
Autokorrelationskoeffizienten dazu benutzen, um diese Periodizität des
Signals zu bestimmen.
Und interessanterweise, wenn wir es jetzt mit Reibelauten, da bewegt
sich nichts in den Stimmbändern, wenn wir sowas haben, dann haben wir
natürlich in der Autokorrelation keine Überlappungen, das heißt, wir
sehen diese Peaks dann hier nicht mehr.
Okay, bei Bildverarbeitung macht man so ähnliche Sachen, dass man mit
der Kreuzkorrelation sogenannte Kantendetektoren sich entwickelt.
Diese Kantendetektoren sind kleine Filter, die letztendlich dann auch
durch Korrelation feststellen können, ob da eine bestimmte Kante ist,
eine scharfe Ecke im Bild.
Früher in der Bildverarbeitung hat man Kantendetektoren benutzt, um
zum Beispiel die Konturen von einem Bild zu bestimmen, also
festzustellen, wo ist zum Beispiel der Rand eines Gesichtes oder wo
ist der Straßenverlauf.
Heutzutage benutzt man dafür neuronale Netze, die solche
Kantendetektoren eigentlich automatisch bilden.
Dass das heute tatsächlich durch reines Lernen implizit in einem
neuronalen Netz passiert, ist eines der faszinierenden Aspekte von
neuronalen Netzen und das werden wir uns auch anschauen, wenn wir dann
über neuronale Netze sprechen.
Das ist also eines der schönen Vorteile der ganzen
Verarbeitungsschritte.
Nun sind das eigentlich so die Grundlagen, die ich Ihnen einfach nur
mitteilen wollte, von Signalverarbeitung.
Das heißt, wir müssen Wissen nochmal abtasten, um es in den Rechner
reinzubekommen, falten, um damit rechnen zu können, was passiert, wenn
ich es in ein System reingebe und dann die spektrale Darstellung, weil
sie uns Merkmale gibt, mit denen ich dann tatsächlich Klassifikatoren
bauen kann.
Nun ist die Frage, wir haben das Stichwort gesagt, Klassifikation.
Wenn ich das Signal nun im Rechner drin habe, was mache ich nun?
Jetzt will ich Gesichter erkennen, ich will Sprache erkennen, ich will
Auto fahren, ich will alle möglichen Sachen machen und mein
intelligentes System muss jetzt diese Signale benutzen und sie
verarbeiten, also entweder Funktionsapproximation zu machen,
kontinuierliche Funktionen zu prädizieren oder um ein bestimmtes
Signal zum Beispiel zu klassifizieren.
Habe ich ein A gesagt, habe ich ein U gesagt, ist das ein bestimmtes
Gesicht, ist das ein bestimmtes Objekt?
Und Klassifikation ist kompliziert deshalb, weil wir große
Variabilität haben in den Signalen, die wir sehen.
Das heißt, wir sehen Signale, wir hören Signale und die können
teilweise sehr überlappend, sehr ähnlich sein und aus dem Grunde
müssen wir uns hier mit unterschiedlichen Modellen beschäftigen.
Die einfachste Form eines Klassifikators wäre der sogenannte
Schablonansatz, den hat man in der Spracherkennung tatsächlich zehn
Jahre lang verfolgt.
Das heißt, man versucht für jedes Wort in einem Vokabular zum Beispiel
eine Schablone abzulegen.
Was bedeutet eine Schablone?
Stellen Sie sich vor, ich sage die Zahlenwörter 1 bis 10, 1, 2, 3, 4,
5, 6, 7, 8, 9, 0.
Lese ich einmal vor, ich habe also ein Sprachsignal, das habe ich
vorgelesen für jedes dieses Zahlenwort und dann nehme ich das Signal,
mache eine Fourier-Transformierte, ich bekomme also Spektren für
dieses Zahlenwort und die speichere ich ab.
Ich habe also jetzt für jedes Zahlenwort ein Beispielmuster von
Spektren für diese Zahlenwörter abgespeichert.
Und wenn ich ein neues, ein zukünftiges, ungesehenes neues Wort
spreche und ich sage 4 und ich will jetzt wissen, was habe ich gesagt,
das klassifizieren wollen bedeutet, ich nehme dieses Stück Spektrum,
was ich gerade gesprochen habe und vergleiche das mit allen meinen
Schablonen.
Und dieses Vergleichen kann ich machen durch eine solche
Kreuzkorrelation.
Ich nehme also jetzt mein Spektrum, das ich aufgenommen habe und mache
eine Korrelation mit allen Spektren in meinem Schablonenspeicher und
schaue, welches von diesen Schablonen die kleinste Distanz hat oder
welches am einfachsten ist oder welches am nächsten ist.
Also ich versuche, das neue Signal mit den abgespeicherten Schablonen
zu vergleichen.
Und das ist der erste Ansatz, den man machen kann bei der
Spracherkennung und man hat das ganz am Anfang tatsächlich so getan,
dass ich mir also bestimmte Signale hernehme und die dann vergleiche
mit den Schablonen.
Allerdings hat der Ansatz enorm viele Probleme.
Zunächst mal brauche ich ja dann eine Schablone für jedes Wort in
meinem Vokabular.
Und dann wahrscheinlich nicht nur eine, sondern mehrere, weil ich es
unterschiedlich aussprechen kann und weil es unterschiedliche Sprecher
gibt.
Und für 50.000, 100.000 Wörter jeweils Schablonen abzulegen, ist
mühsam, das wollen wir also gar nicht.
Und dann könnte ich zum Beispiel neue Wörter auch nicht aussprechen
oder erkennen, weil neue Wörter brauchen dann wieder mehr Schablonen.
Das heißt, ein solcher Ansatz ist ineffizient, er ist unpraktisch und
er ist auch in der Performance nicht gut.
Denn viele Symbole oder viele Klassen, die ich habe, sind dann auch
nicht unbedingt konsistent.
Also eine Schablone ist ja nur eine Darstellung meiner Realität.
Diese Realität kann sich durchaus verändern, das heißt, wir haben
teilweise Abstraktionen notwendig, um festzustellen, ob etwas zu einer
bestimmten Klasse gehört.
Wenn ich zum Beispiel bei Mustererkennung von Buchstaben das Wort J
erkennen will, dann kann ich unterschiedliche Fonts haben,
unterschiedliche Größen, unterschiedliche Positionen meines Buchstaben
auf dem Bild und all das möchte ich immer noch als derselben
Buchstaben erkennen können, auch wenn meine Schablone, auf der ich
vielleicht trainiert habe, ganz anders aussieht.
Ich brauche also nicht nur Schablonen, die ich irgendwie einmal
gespeichert habe.
Ich kann natürlich sagen, ich sammle jetzt so viele Schablonen wie
möglich für alle möglichen Fonts, aber das wäre erstens mal wieder
mühsam und die Vollständigkeit sicherzustellen ist immer ein Problem.
Das heißt, was ich eigentlich möchte, ich möchte generalisieren, ich
möchte ein Modell bauen, das allgemein gültig ist für eine bestimmte
Klasse.
Und ein Modell bauen, da sind wir schon wieder in einer ganz anderen
Welt, nämlich wo wir dann sagen wollen, ich möchte einen Klassifikator
bauen, bei dem ich jetzt nicht mehr unbedingt genau sage, dass es ein
bestimmtes Muster ist, sondern ich möchte einen Klassifikator haben,
der über verschiedene Formen dieser Muster entsprechend generalisiert.
Und damit wären wir jetzt also auch bei dem Thema Klassifikation.
Bei der Klassifikation versuchen wir jetzt genau das zu tun, was wir
gerade gesagt haben, aber wir versuchen das möglicherweise durch
Modelle.
Wir wollen also eine Theorie entwickeln, die mir sagt, wie ich ein
Symbol oder ein Muster klassifiziere, auch wenn ich nicht unbedingt
eine Variante habe, sondern viele Varianten.
Das heißt, ich möchte ein Modell bauen, ein Modell für eine Klasse,
die mir sagt, wie diese Klasse jeweils charakterisiert ist.
Und hierfür, das bedeutet also einordnen in die Welt, da gibt es
natürlich jetzt unterschiedliche Arten der Klassifikation, das eine
ist, dass ich gesellschaftlich definierte Konventionen habe, die ich
versuche zu klassifizieren, also ich versuche Buchstaben in Zeitungen
oder auf Plakaten versuche zu erkennen, menschliche Artefakte, also
Objekte, Kredite, das sind abstrakte Muster, ob ich einen Kredit
gewähre oder nicht, kann eine Klasse sein oder auch nicht, die sind
also menschlich definiert, da gibt es meistens Vokabularien oder
Regeln dafür, was wir damit meinen, aber wir wollen das
klassifizieren.
Das zweite wären zum Beispiel Kategorien, die natürlich gegeben sind,
die wir nicht vorgeben, aber die wir in der Natur finden, Katze, Hund,
Tiere, Berge, Bilder, Gesichter und so weiter.
Auch hier, wie klassifiziere ich die?
Die Definition hier ist manchmal nicht ganz so einfach.
Wie tue ich das nun zunächst mal, ist die große Frage und wie baue ich
ein Modell?
Ich könnte auf die Idee kommen, dass ich eine Klasse oder ein Muster
definiere durch bestimmte Regeln.
Die Philosophen im alten Griechenland haben das versucht, die haben
sich gegenseitig versucht auszutricksen, indem sie Puzzle sich
zuwarfen, wie einen Stuhl zu definieren oder eine Katze.
Definieren Sie mal einen Stuhl, dann können Sie fast für jede
Definition immer wieder ein Gegenbeispiel finden, also vier Beine und
dann haben Sie einen Stuhl mit einem Bein oder mit zwei oder sie
sagen, das muss immer nach unten gehen, dann haben Sie so komische
Dinge, die mit Kurven sind und so weiter und so fort.
Es gibt also eine ganze Reihe von unterschiedlichen Möglichkeiten,
einen Stuhl zu entwickeln, der letztendlich auch sich teilweise nur
durch seine Funktion, was er versucht zu tun, definieren lässt und
daher schwierig ist, alleine von der Ansicht her zu definieren.
Ähnlich mit Tieren.
Das Zweite, was daran schwierig ist, ist, dass die Regeln, die Sie
aufstellen würden, wieder abhängig sind von anderen Teilen, wie zum
Beispiel, er hat vier Beine.
Wie klassifizieren Sie denn nun die Beine eines Stuhles?
Das heißt, Sie müssen jetzt nun anhand der Bilder das Bein eines
Stuhles erkennen.
Auch das ist nicht mehr so einfach.
Das heißt, Sie müssen sagen, das ist Holz, rund, quadratisch, was auch
immer.
Das heißt, das Ganze mit Regeln zu definieren ist ausgesprochen
schwer, weil jede dieser Regeln wiederum ein Klassifikationsproblem in
sich selbst ist.
Das heißt, wir verwerfen diese Idee mit regelbasierter Klassifikation,
oder ist zumindest etwas, was Jahre dauerte, bis man das verworfen
hatte, aber der durchweg benutzte Ansatz heutzutage ist, dass man eine
solche Definition oder eine Klassifikation lernt.
Das heißt, wir haben Modelle, die automatisch anhand der Daten erlernt
werden.
Das bedeutet, dass das eine, was wir festhalten müssen, das mit Regeln
zu machen, ist unglaublich komplex und daher unmöglich für alle
Objekte in der Welt.
Das heißt, wir müssen das Ganze erlernen anhand von Daten, mit
automatischen Lernalgorithmen.
Das Zweite, was wir feststellen müssen, ist, dass es mit
hundertprozentiger Genauigkeit auch nie gehen wird.
Das heißt, man kann nie hundertprozentig sagen, das ist Klaus und das
ist Peter, in irgendwelchen bestimmten Positionen und Situationen sind
die Sachen am Bieg.
Mir sagte gestern gerade jemand, dass irgendwer mal auf die schlaue
Idee kam, einen Kopierer zu bauen.
Ist tatsächlich passiert.
Einen Fotokopierer zu bauen, der die Bilder korrigierte, der erkannte
dann, das müsste eigentlich ein O sein und hat das dann korrigiert und
ein O eingesetzt.
Hat zu entsetzlichen Gerichtsverfahren geführt, weil hin und wieder
mal eine Zahl tatsächlich falsch klassifiziert wurde und dann
entsprechend verdreht wurde und daher Zahlen tatsächlich sich
veränderten.
Das heißt, wir können in vielen Situationen, in so einer Situation
muss man mit der Situation leben können, dass wir nicht unbedingt
hundertprozentig wissen können, was es hier eigentlich ist.
Das heißt, wir dürfen bei Klassifikation auch nie von
hundertprozentiger Genauigkeit ausgehen, das heißt, wir müssen immer
mit Wahrscheinlichkeiten arbeiten, das heißt, wir müssen auf einer
bestimmten Klasse jeweils immer nur eine Wahrscheinlichkeit zuordnen
und dann sagen, dass es eine bestimmte Klasse mit einer bestimmten
Wahrscheinlichkeit ist.
Nun, in diesem Zusammenhang werden wir jetzt also mehrere
Klassifikatoren kennenlernen.
Wer von Ihnen hört gerade die Vorlesung Neuronale Netze bei mir?
Okay, ich würde sagen, 20 Prozent von Ihnen hören das gerade.
Was jetzt kommt für die nächsten anderthalb Vorlesungen ist identisch
oder dasselbe, das heißt, wenn der eine oder andere das nicht zum
zweiten Mal hören möchte, ist er hiermit entschuldigt, das heißt, Sie
müssen sich nicht anschauen, aber meine Vorlesungen sind so
fantastisch und interessant, dass Sie es wahrscheinlich ein zweites
Mal hören wollen.
Aber Spaß beiseite, das ist jetzt derselbe klassische Teil dieser
Ansätze, die wir uns anschauen werden.
Nun, bei der klassischen Mustererkennung, was man hier versucht, ist
zunächst mal eine Einordnung von Mustern in Klassen und hier hat man
zunächst mal diese syntaktisch regelbasierten Systeme sich zunächst
mal entwickelt und dann eben auch lernende statistische Systeme,
heutzutage sind alle Systeme eigentlich lernend statistisch, hier
unterscheidet man zwischen überwachten und unüberwachten
Klassifikatoren, was das ist, besprechen wir auch gleich noch, und bei
beiden, überwachten und unüberwachten, reden wir von parametrischen,
nicht -parametrischen und linearen, nicht-linearen Klassifikatoren.
Und was ist überwacht und unüberwacht?
Diese erste Unterscheidung ist zunächst mal, dass wir bei
Klassifikatoren nicht immer die Situation haben, dass wir genau
wissen, von welchen Klassen wir reden.
Wenn wir von Alphabet reden, wissen wir, da gibt es so und so viele
Buchstaben in einer Klasse und unter diesen Buchstaben wollen wir
unterscheiden.
In diesem Falle sind das also überwachte Klassifikatoren, denn wir
können uns eine Trainingsdatenbasis denken, bei der alle Beispiele
schon mal vorklassifiziert worden sind, das heißt wir wissen dort, zu
welcher Klasse jedes Muster gehört, das sind sogenannte Labels und
diese Labels sind mir bekannt für eine bestimmte Trainingsdatenbasis
und daher nennen wir das überwachtes Training.
Beim unüberwachten Training haben wir zwar viele Daten, aber wir
wissen nicht, zu welcher Klasse sie gehören, das heißt die Daten sind
ungelabelt.
Und wann sind Daten ungelabelt?
Wir haben viele Situationen, bei denen entweder das Labeln der Daten
zu teuer ist oder wir haben die Situation, dass wir gar nicht wissen,
von welchen Klassen wir reden, denken Sie an Human Genome oder
astronomische Daten, da sind dann teilweise die Unterklassen zu
ungenau oder unbekannt, sodass wir nicht wissen, von welcher Klasse
wir überhaupt reden.
Das heißt, wenn die Klassen nicht bekannt sind, kann ich natürlich
auch nicht von vornherein diese Daten bestimmten Klassen zuordnen.
Das heißt, beim unüberwachten Training dreht es sich darum, Struktur
zu finden oder Klassen zu finden in den Daten, auch wenn die nicht
vorgegeben sind.
Nun gibt es Mischvarianten, wenn Sie sich vorstellen, Sie arbeiten
irgendwann mal bei großen Firmen, Internetfirmen, Google, Amazon und
so weiter, die haben natürlich jede Menge Daten, die haben viele
Daten, aber Sie können sich nicht vorstellen, dass man alle Daten
einmal gelabelt hat.
Das heißt, es ist einfach zu groß.
Das heißt, was man dort machen wird, natürlich immer, ist, dass man
die Daten zunächst einmal mit gelabelten Daten vorklassifiziert oder
vielleicht teilweise klassifiziert, dann aber versucht, mit
zusätzlichen ungelabelten Daten noch weiter zu trainieren oder
weiterzulernen und die Systeme entsprechend weiter zu verbessern.
Das heißt, das Verarbeiten von unüberwachten Daten ist auch ein großes
Teil dieser Forschung, was man damit tut.
Es gibt andere Mischvarianten, dass man sogenanntes Crowdsourcing
macht oder man benutzt Human Computation, wie man das manchmal auch
nennt, dass man sagt, wir benutzen die Benutzer im Internet dazu, die
Daten zu labeln, ohne dass sie wissen, dass sie labeln.
Also, Sie alle kennen Captcha.
Wer weiß nicht, was Captcha ist?
Also, Sie alle hatten die Situation, Sie kommen auf eine Internetseite
und da ist dann plötzlich ein Bild von einem Straßenzeichen und Sie
müssen eintippen, was auf dem Straßenzeichen steht.
Und meistens sind es zwei Muster.
Und warum zwei Muster?
Weil dem Betreiber das eine Muster bekannt ist, damit entscheidet man,
ob Sie reinkommen oder nicht.
Das zweite Muster, da labeln Sie nur künstlich Daten.
Das heißt, der Betreiber, Google oder wer auch immer, lässt Sie damit
kostenlos Daten labeln für Straßenzeichen.
Das heißt, Google und Amazon, Facebook haben also immer große
Datenmengen an Daten, die von den Benutzern tatsächlich auf diese
Weise gelabelt werden.
Also, wo jemand dann niederschreibt, das war jetzt die folgende
Zeichenfolge.
Mit solchen Daten können Sie dann wieder überwachte Klassifikatoren
trainieren, die Sie dann einsetzen, um, was weiß ich, andere Aufgaben
jeweils zu lösen.
Okay, nun hier also die Unterscheidung zwischen überwacht und
unüberwacht.
Vielleicht noch eine dritte Mischvariante, die ich erwähnen möchte,
das kommt etwas später, das sogenannte Reinforcement Learning, da
dreht es sich um Aufgaben, bei denen wir die Klassifikation von Daten
versuchen durchzuführen, bei denen der Label nur indirekt bekannt ist.
Also stellen Sie sich vor, dass ich Ihnen zwar nicht sage, was jedes
Muster war, aber ich sage Ihnen hinterher, dass das gut war oder
schlecht.
Oder Sie haben einen Roboter, der in einer bestimmten Ecke läuft, und
am Ende, wenn er ans Ziel kommt, dann sagen Sie, ja, das war gut, oder
wenn er gegen die Wand fährt, dann war das schlecht.
Aber unterwegs können Sie nicht entscheiden, ob jeder Schritt ein
guter war oder nicht.
Das sind solche Mischvarianten, die man dann bei Reinforcement
Learning benutzt.
Okay, nun unüberwachte Klassifikation ist dann die Situation hier, wo
wir also Punkte haben, wir wissen aber nicht, zu welcher Klasse die
Punkte gehören, wir haben keine Einteilung der Punkte in Klassen.
Wir wollen aber in diesem Fall trotzdem versuchen, die Daten
strukturell einzuordnen, nämlich dass wir hier in diesem Beispiel zum
Beispiel, dass wir hier die Punkte in diese unterschiedlichen Bereiche
unterteilen und dann also feststellen, ob das zu der einen oder
anderen Klasse jeweils gehört.
Nun kann man sich streiten, ob das eine Klasse sein sollte, dieses
große Ei oder dieser eine Punkt, ob das ein Outlier ist oder so.
Das heißt, wir haben auch da hier immer die Frage, wenn wir Struktur
versuchen wollen, können wir diese Klassen definieren, aber dann ist
die Frage, wie viel davon, wie viele dieser Strukturen oder viele
dieser Klassen gibt es, wie finde ich die, wo sind sie, wie viele
davon soll ich definieren.
Beim Überwachten und Klassifizieren habe ich, wie gesagt, diese
Situation, dass ich also hier zwei Klassen habe, die vordefiniert
sind, also in dieser Situation habe ich die Klassen zugeordnet.
Also hier haben wir die Situation, dass wir Kringel haben und
Kreuzchen und in diesem Fall habe ich eine Datenbasis, die gelabelt
worden ist.
Das heißt, hier habe ich nun Daten, bei denen jemand mal
drübergegangen ist und gesagt hat, das gehört zu der einen oder
anderen Klasse.
Beispiel dafür in diesen Folien ist die Kreditwürdigkeit, dass ich
nämlich eine Klasse von Kunden habe in einer Bank, die kreditwürdig
sind und eine andere Klasse von Kunden, die nicht kreditwürdig sind
und ich habe meinetwegen Merkmale.
Das heißt, in diesem Fall möchte ich entscheiden, wenn ein neuer Punkt
kommt, also jemand Neues kommt in die Bank und sie wollen feststellen,
ist diese neue Person kreditwürdig, ja oder nein.
Das ist meine Klassifikationsaufgabe.
Bei dem neuen Datum, bei dem neuen Punkt, kenne ich natürlich die
Klasse nicht, das ist eine unbekannte.
Bei den Daten, die ich vorher gesehen habe, kenne ich die
Klassifikation, das sind Kunden, die ich schon mal hatte, bei denen
konnte ich später nachweisen, dass die entweder kreditwürdig waren
oder nicht.
Das heißt, hier rüber habe ich dann Labels, diese Daten sind bekannt
aus meiner Historie.
Und wenn ich diese bekannten Daten habe, dann kann ich die alle
beschreiben durch sogenannte Merkmale, das heißt, ich beschreibe jedes
Muster durch einen Merkmalsvektor X.
Der Merkmalsvektor X in unserem Beispiel können wir uns vorstellen als
Einkommen oder Alter und diese beiden Merkmale setze ich in einen
solchen Vektor ein und dann mithilfe dieses Vektors habe ich in der
Trainingsphase alle meine gelabelten Daten und in der Testphase kommt
ein neues rein, bei dem ich den Vektor habe, aber dessen Klasse nicht
kenne und ich versuche jetzt durch mein Modell zu bestimmen, zu
welcher Klasse ein bestimmter Punkt oder ein bestimmtes Muster jeweils
gehört.
Gegeben, dass Joes Einkommen und Alter ein gewisser Wert ist, also
mein Kästelchen ist Joe, der in die Bank reinkommt, und den kann ich
nun fragen, was ist ihr Einkommen, was ist ihr Alter und anhand meines
Modells versuchen zu klassifizieren, ob er in die Klasse der
Kreditwürdigen oder in die Klasse der nichtkreditwürdigen Menschen
gehört.
Um dann zu entscheiden, ob ich einen Kredit gewähre oder jeweils
nicht.
Und viele Klassifikationsprobleme existieren, die ähnlicher Natur
sind, dass ich kann z.B.
Broad Detection, um Missbrauch, Kreditkartenmissbrauch z.B.
zu erkennen, alle Ihre Banken, wer von Ihnen hat eine Kreditkarte?
Oder viele von Ihnen haben eine, es kommt hin und wieder vor, dass
solche Karten gestohlen werden und dann geht jemand irgendwo shoppen.
Und jetzt sind Sie natürlich nicht verantwortlich, wenn Ihre
Kreditkarte gestohlen wurde und Sie melden das der Bank, dann kann das
ja sein, dass dieser Dieb immer noch weiter damit einkaufen geht.
Und diese Rechnungen dafür müssen Sie nicht bezahlen.
Das heißt, die Bank, die Kreditkartenfirma hat dadurch einen Verlust
durch einen Missbrauch.
Und diesen Missbrauch zu klassifizieren als Missbrauch frühzeitig, ist
daher ein enormes Teil des Geschäftes von Kreditkartenfirmen, relativ
schnell Fraud zu erkennen.
Und das tun Kreditkartenfirmen daran, dass sie die Muster der Einkäufe
eben auch als Vektoren definieren.
Das heißt, sie sagen, in welchem Land passiert das.
Was wurde hier gekauft?
Also wenn Sie immer Fußballer sind und Sie kaufen sich neue Fußbälle,
neue Tennisschuhe usw., dann ist das vielleicht normales
Einkaufsverhalten, aber plötzlich irgendwie Fahrräder zu kaufen wäre
nicht typisch für Sie.
Wenn also sowas dann passiert und plötzlich zehn Fahrräder in Holland
gekauft werden oder in Tansania oder sonst irgendwo, dann ist das
nicht Ihr normales Kaufverhalten und man würde dann also sagen, nee,
vielleicht nicht und dann möglicherweise Ihre Kreditkarte sperren.
Das heißt, solche Klassifikationen schnell durchzuführen, bedeutet
viele dieser Verluste zu vermeiden.
Also Fraud Detection, Kunden auswählen, all das ist im Bankgeschäft
ein Riesending und gehört mit zur Klassifikation.
Und wie bauen wir dazu ein Modell?
Das heißt nochmal, wir versuchen anhand der Daten, die wir haben, uns
ein Modell zu entwickeln, denn bei den Daten, die wir haben, wissen
wir, zu welcher Klasse das gehört, wir können also ein Modell
trainieren und anhand dieses Modells versuchen, neue Daten zu
klassifizieren.
Und der statistische Ansatz dazu ist zunächst mal Base-Theorie, die
wir kennenlernen werden und hier gibt es nun zwei unterschiedliche
Verfahren, das eine ist parametrisch, nicht parametrisch.
Beim parametrischen Ansatz versuchen wir, die Datenverteilung
parametrisch zu beschreiben.
Typischer Ansatz ist Gauss-Verteilung.
Wir nehmen also an, dass die Klasse der Kreditwürdigen oder der Klasse
der Nicht-Kreditwürdigen in irgendeiner Weise sich verhalten wie eine
Gauss -Verteilung und nach den Merkmalen, die wir dafür aufgebaut
haben.
Im Fall eines nicht-parametrischen Ansatzes haben wir das nicht, diese
Annahme, und versuchen das direkt an den Daten jeweils zu schätzen.
Wie das aussieht, werden wir nun kennenlernen.
In Base-Entscheidungstheorie geht es so, dass wir das Ganze
probabilistisch oder mit Wahrscheinlichkeiten versuchen auszudrücken,
nämlich, dass wir sagen, wir suchen die Klasse, deren
Wahrscheinlichkeit die größte ist.
Also, wenn Sie in die Türe reinkommen und sagen, mein Alter ist so wie
so, mein Einkommen ist so, dann versuchen Sie zu bestimmen, wie
wahrscheinlich ist es, dass diese Person kreditwürdig ist, wie
wahrscheinlich ist es, dass sie nicht kreditwürdig ist, und Sie suchen
die Klasse nun aus, die die größere ist.
Wenn es also wahrscheinlicher ist, dass sie kreditwürdig sind, als die
Wahrscheinlichkeit der Nichtkreditwürdigkeit, würden Sie sich für den
Kredit dann jeweils entscheiden.
Das heißt, wir beschreiben das Ganze mit einer Wahrscheinlichkeit der
Klasse, also P von Omega-J, wir geben die Beobachtung oder den
Beobachtungsvektor X.
Das heißt, ich habe einen Beobachtungsvektor X und mit diesem
Beobachtungsvektor X versuche ich zu entscheiden, wie wahrscheinlich
es ist, dass jetzt der eine oder der andere Klasse gehören.
Nur nach statistischen Regeln kann man das umschreiben, also die Bayes
-Entscheidungsregel sagt, dass wenn wir P von Omega-J haben gegeben X,
das heißt die Wahrscheinlichkeit einer Klasse gegeben die Beobachtung,
kann ich das umschreiben in die Wahrscheinlichkeitsverteilung der
Daten, also P von der Beobachtung X, gegeben die Klasse Omega-J, mal
der Wahrscheinlichkeit der Klasse Omega-J geteilt durch die
Wahrscheinlichkeitsverteilung der Daten.
Das ist also nur Anwenden der Bayes-Regel, die Sie aus der
Wahrscheinlichkeitstheorie kennen sollten.
Und wenn wir uns diese Werte anschauen, dann sind die insofern
interessant, weil wir feststellen können, dass in dem rechten Ausdruck
wir insbesondere zwei Terme haben, die uns wichtig sind.
Das eine ist dieses P von Omega-J, das ist die sogenannte Apriori
-Wahrscheinlichkeit, das ist die Wahrscheinlichkeit der Klasse selbst.
Nun haben wir hier keine Messung, nichts über X oder sonst irgendwas,
über Merkmalsvektoren, sondern nur die Wahrscheinlichkeit der Klasse
Omega -J.
Wie wahrscheinlich ist es, kreditwürdig zu sein, wie wahrscheinlich
ist es nicht kreditwürdig zu sein, ganz ohne Beobachtung der Person.
Das heißt, das sind die Voreinnahmen, die Apriori-Annahmen einer
Klasse.
Das heißt, wie wahrscheinlich ist es kreditwürdig, wie wahrscheinlich
ist es nicht kreditwürdig.
Also wenn Sie sich vorstellen, in Karlsruhe, über alle Personen in
Karlsruhe, wie viel Prozent der Karlsruher sind kreditwürdig und wie
viele sind es nicht kreditwürdig, das heißt, wir hätten dann eine
Apriori -Wahrscheinlichkeit für Kreditwürdigkeit.
Sagen wir mal, 80% der Karlsruher sind kreditwürdig, das heißt, wir
hätten P von Omega kreditwürdig gleich 0,8.
So weit, so gut, das können wir also bestimmen.
Das zweite, was wir brauchen, ist diese Wahrscheinlichkeitsverteilung
P von X gegeben Omega-J, das ist also meine Verteilung der Daten
gegeben, die Klasse Omega-J.
Wie wahrscheinlich ist es, dass ich einen bestimmten Datenvektor
beobachte, gegeben, dass ich in der Klasse entweder der Kreditwürdige
oder nicht Kreditwürdige bin.
Das heißt, es ist ein generatives Modell, das mir sagt, für jede
Klasse, die ich habe, habe ich eine bestimmte Verteilung der Daten.
Ich brauche also diese beiden Terme, die Verteilung der Daten gegeben,
die Klasse und als zweites die a priori Wahrscheinlichkeit der Klasse
Omega -J selber.
Wenn ich das habe, dann kann ich das oben einsetzen und dann die a
posteriori Wahrscheinlichkeit bestimmen, das ist, was ich eigentlich
suche, nämlich der Wahrscheinlichkeit der Klasse Omega-J gegeben die
Beobachtung X.
Nun, mein Klassifikationsproblem ist dann gelöst, wenn ich das Maximum
über alle Omega bilde.
Das heißt, ich klassifiziere nun dadurch, dass ich sage, ich bestimme
für jede Klasse, ich habe einen Beobachtungsvektor X der Person, die
in die Bank reinkommt und ich bestimme jetzt für diese Beobachtung,
wie wahrscheinlich ist es, dass es kreditwürdig ist oder nicht
kreditwürdig oder sonst irgendwas.
Ich bestimme, ob das ein Ferrari ist oder ein Mercedes oder sonst
irgendwas.
Das heißt, ich versuche jetzt durch Einsetzen in diese Formel zu
bestimmen, wie wahrscheinlich jede dieser Klassen ist und mein
Klassifikationsergebnis ist dann der Argmax, nämlich die Klasse mit
der größten Wahrscheinlichkeit der Klasse.
Also meine Klasse J mit der größten a posteriori Wahrscheinlichkeit P
von Omega gegeben X ist dann mein Ergebnis.
Meine Entscheidungsregel ist dann, ich entscheide mich für die Klasse
Omega 1, wenn die a posteriori Wahrscheinlichkeit P von Omega 1
gegeben die Beobachtung größer ist, als die Wahrscheinlichkeit für
Omega 2 gegeben die Beobachtung und ich entscheide mich für 2, wenn es
andersrum ist.
Durch Einsetzen in die Formel der Bayes-Regel kann ich jetzt die
klassenbedingte und die a priori Wahrscheinlichkeit hier sehen.
Wir sehen, dass sich im Nenner dieses P von X rauskürzt, weil es auf
beiden Seiten der Ungleichung dasselbe ist, das heißt, es verändert
sich über die Klassen nicht.
Das heißt, ich habe dann einen Ausdruck, der nur noch die
klassenbedingte und die a priori Wahrscheinlichkeit enthält.
Für den Multikategorie-Case, also für den Mehrklassenfall, verhält
sich das ganz ähnlich, wenn ich zum Beispiel Autos klassifiziere,
Mercedes, Ferrari, Volkswagen, sonst irgendwas, dann bestimme ich für
jeden dieser Klassen meine Wahrscheinlichkeit von Klasse 1, von Klasse
2, von Klasse 3 und ich entscheide mich dann für die Klasse, deren
Wahrscheinlichkeit die größte ist von all diesen Klassen.
Ich berechne das dann wieder auch dann, wieder durch Einsetzen der
klassenbedingten mal der a priori Wahrscheinlichkeit.
Und hier ist ein Beispiel, wenn wir so klassenbedingte haben von zwei
Klassen, in einem Fall die Verteilung der Daten gegeben, Omega 1, in
einem anderen Fall die Verteilung der Daten gegeben, Omega 2, da habe
ich zusätzlich auch noch die a priori Wahrscheinlichkeit, die von
Omega 1 ist zweimal so groß wie 1, das heißt, das würde dann die erste
Klasse natürlich gewichten und daher meine a priori Wahrscheinlichkeit
verschieben.
Wenn ich das Ganze einsetze und durch die Verteilung der Daten
normiere, dann bekomme ich meine a posteriori Wahrscheinlichkeit, die
sieht dann so aus, durch Verändern der Beobachtung X wird dann meine a
posteriori Wahrscheinlichkeit sich verschieben auf diese Art und Weise
und dann ein Punkt erreicht sein, bei dem die a posteriori
Wahrscheinlichkeit der ersten Klasse am Anfang größer ist als die der
zweiten Klasse und dann später kleiner sein als die der zweiten
Klasse.
Das heißt, das wäre mein Threshold, mein Punkt, an dem ich mich dann
anfange, für die zweite Klasse zu entscheiden.
Das heißt, wenn X kleiner ist als dieser Threshold hier in der Mitte,
wenn mein X kleiner ist als das, entscheide ich mich für Omega 1 und
wenn das größer ist, entscheide ich mich für Omega 2.
Okay, wenn wir mehr Klassen haben als nur zwei, dann ist auch nicht
unbedingt garantiert, dass das ein einfacher Threshold ist.
Das heißt, wir können nicht davon ausgehen, dass wir ein Threshold
wählen und sagen, kleiner ist dann die eine Klasse oder größer die
andere.
Das heißt, ich habe hier unterschiedliche Entscheidungsregionen, in
denen ich mich für die eine oder andere Klasse entscheide.
Hier haben wir zum Beispiel ein Bild von Verteilungen, die nicht mehr
schön gaussglockenförmig sind, sondern eher unterschiedliche Formen
haben.
Insbesondere betrachten Sie zunächst mal hier diese Verteilung der
Klasse Omega 3, dann sehen wir hier recht schön, wie wir uns in der
ersten Intervall hier bis zu diesem ersten Überschneidungspunkt für
die Klasse 1 entscheiden, dann entscheiden wir uns für die Klasse 3,
dann haben wir eine bestimmte Region, bei der wir uns für die Klasse 2
entscheiden und dann entscheiden wir uns wieder für die Klasse 3.
Das heißt, wir haben zwei Intervalle, bei denen wir uns für die Klasse
3 entscheiden.
Das ist also nicht nur an einem Teil der Verteilung, sondern an
mehreren Teilen des Raumes.
Das heißt, auch hier ist es so, dass natürlich die Art der Verteilung
sehr entscheidend darüber ist, in welchen Regionen wir uns für
unterschiedliche Daten, für unterschiedliche Klassen entscheiden.
Okay, wir sind mit der Zeit vorbei, letzte Folie.
Im multidimensionalen Fall ist das natürlich auch der Fall.
Unsere Merkmale sind nicht nur ein Merkmal, sondern mehrere Merkmale
in der Regel.
Das heißt, wir haben es mit Multivariaten-Verteilungen zu tun, die in
mehreren Dimensionen jeweils variieren und wenn das der Fall ist,
bekommen wir natürlich auch hier wieder Entscheidungsregionen, die
dann aber natürlich multidimensional aussehen.
Wir sehen hier zum Beispiel, wie sich eine Entscheidungsregion R2 von
einer Entscheidungsregion R2 unterscheidet durch eine Ellipse, bei der
ich dann sage, wenn ich in diesem Elliptoiden-Teil bin, dann würde ich
mich für Klasse 2 entscheiden und außerhalb dessen für Klasse 1, wobei
das in beiden Fällen eben so zwei Verteilungen sind, die im
Multivariaten -Fall sich gegenseitig durchstechen und ich dann am
Rande dieser Überschneidung meine Entscheidungsregion vorfinde.
Okay, soweit zur allgemeinen Bayes-Theorie.
Nächstes Mal schauen wir uns dann ein paar konkrete Klassifikatoren an
und schauen, wie dann die klassischen und dann auch später die
neuronalen Klassifikatoren funktionieren.
Tschüss.