Information

Radiales Basisfunktionsnetz (RBF-Netz)

Radiales Basisfunktionsnetz (RBF-Netz)


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Im Wikipedia-Artikel über das radiale Basisfunktionsnetzwerk habe ich nicht verstanden, was mit "Zentrumsvektor für Neuron i" gemeint ist, also "Zentrum der RBF-Einheiten, auch Prototyp genannt".


In RBF-Netzwerken führt jedes Neuron in der verborgenen Schicht eine Berechnung durch, die sich auf seinen "Mittelvektor" bezieht.

Betrachten Sie zunächst die Menge der Eingabeneuronen als Vektor $mathbf{x}$, und dass jedes Neuron der verborgenen Schicht den vollständigen Eingabevektor als seine eigene Eingabe erhält.

Zweitens wird jedes Hidden-Layer-Neuron $i$ durch einen Vektor (Mittelvektor) $mathbf{c_i}$ mit gleicher Dimension wie $mathbf{x}$ parametrisiert.

Die Berechnung jedes Hidden-Layer-Neurons $i$ besteht aus:

  1. Bewerten Sie den Abstand (gemäß einer Metrik, die euklidisch sein kann oder nicht) zwischen der Eingabe $mathbf{x}$ und dem Mittelpunktsvektor $mathbf{c_i}$. Wenn die Eingabe gleich dem Mittelvektor ist, ist die Ausgabe für dieses Neuron maximal (siehe 2).

  2. Bewerten Sie eine Gaußsche Funktion, die mit zunehmendem Abstand zwischen den Vektoren abklingt. Das ist die Ausgabe jedes Neurons der versteckten Schicht. In der folgenden Gleichung ist $eta$ ein Parameter, der die Abklingrate der Gauß-Verteilung angibt (im Gegensatz zur Standardabweichung in einer regulären Gauß-Verteilung).

egin{equation} ho_i(mathbf{x})=exp{[-etaVertmathbf{x}-mathbf{c_i}Vert^2]} end{equation}

Kombinieren Sie nun die Ausgabe aller Neuronen der versteckten Schicht linear, um die gesamte Ausgabe des neuronalen Netzwerks zu erhalten. Dafür benötigen Sie einen zusätzlichen Satz von Parametern oder Gewichten $a_i$ (ein $a_i$ für jedes Neuron der verborgenen Schicht, aber die $a_i$-Werte sind Skalare, während jedes $mathbf{c_i}$ ein Vektor ist).

Die letzte Gleichung, die die gesamte Netzwerkleistung (einen skalaren Wert) ergibt, lautet:

egin{equation} varphi(mathbf{x}) = sum_{i=1}^N a_i ho(||mathbf{x}-mathbf{c}_i||) end{equation}

Und das ist es.


Radiale Basisfunktionsnetzwerke

Eine radiale Basisfunktion (RBF) ist eine Funktion, die jeder Eingabe aus ihrem Bereich einen reellen Wert zuweist (es ist eine reellwertige Funktion), und der von der RBF erzeugte Wert ist immer ein absoluter Wert, dh er ist ein Maß für die Entfernung und kann nicht negativ sein.

Üblicherweise wird die euklidische Distanz, die geradlinige Distanz zwischen zwei Punkten im euklidischen Raum, verwendet.

Radiale Basisfunktionen werden verwendet, um Funktionen zu approximieren, ähnlich wie neuronale Netze als Funktionsapproximatoren fungieren. Folgende Summe:

stellt ein radiales Basisfunktionsnetzwerk dar. Die radialen Basisfunktionen wirken als Aktivierungsfunktionen.

Der Approximant f(x) ist in Bezug auf die Gewichte W differenzierbar, die unter Verwendung von iterativen Aktualisierungsverfahren gelernt werden, die bei neuronalen Netzen üblich sind.

Weiterführende Literatur

Chris Nicholson

Chris Nicholson ist der CEO von Pathmind. Zuvor leitete er Kommunikation und Recruiting beim von Sequoia unterstützten Robo-Advisor FutureAdvisor, der von BlackRock übernommen wurde. In einem früheren Leben hat Chris ein Jahrzehnt damit verbracht, unter anderem für The New York Times, Businessweek und Bloomberg über Technologie und Finanzen zu berichten.


Radiales Basisfunktionsnetzwerk (RBFN) Tutorial

Ein Radial Basis Function Network (RBFN) ist ein besonderer Typ eines neuronalen Netzes. In diesem Artikel beschreibe ich seine Verwendung als nichtlinearer Klassifikator.

Wenn Leute von neuronalen Netzen oder „künstlichen neuronalen Netzen“ sprechen, beziehen sie sich im Allgemeinen auf das Multilayer Perceptron (MLP). Jedes Neuron in einem MLP nimmt die gewichtete Summe seiner Eingabewerte. Das heißt, jeder Eingabewert wird mit einem Koeffizienten multipliziert und die Ergebnisse werden alle aufsummiert. Ein einzelnes MLP-Neuron ist ein einfacher linearer Klassifikator, aber komplexe nichtlineare Klassifikatoren können aufgebaut werden, indem diese Neuronen zu einem Netzwerk kombiniert werden.

Für mich ist der RBFN-Ansatz intuitiver als der MLP. Ein RBFN führt eine Klassifizierung durch, indem es die Ähnlichkeit der Eingabe mit Beispielen aus dem Trainingssatz misst. Jedes RBFN-Neuron speichert einen „Prototyp“, der nur eines der Beispiele aus dem Trainingsset ist. Wenn wir eine neue Eingabe klassifizieren wollen, berechnet jedes Neuron die euklidische Distanz zwischen der Eingabe und ihrem Prototyp. Grob gesagt, wenn die Eingabe eher den Prototypen der Klasse A ähnelt als den Prototypen der Klasse B, wird sie als Klasse A klassifiziert.

RBF-Netzwerkarchitektur

Die obige Abbildung zeigt die typische Architektur eines RBF-Netzwerks. Es besteht aus einem Eingabevektor, einer Schicht von RBF-Neuronen und einer Ausgabeschicht mit einem Knoten pro Kategorie oder Klasse von Daten.

Der Eingangsvektor

Der Eingabevektor ist der n-dimensionaler Vektor, den Sie klassifizieren möchten. Der gesamte Eingabevektor wird jedem der RBF-Neuronen gezeigt.

Die RBF-Neuronen

Jedes RBF-Neuron speichert einen „Prototyp“-Vektor, der nur einer der Vektoren aus dem Trainingssatz ist. Jedes RBF-Neuron vergleicht den Eingabevektor mit seinem Prototyp und gibt einen Wert zwischen 0 und 1 aus, der ein Ähnlichkeitsmaß ist. Wenn die Eingabe gleich dem Prototyp ist, dann ist die Ausgabe dieses RBF-Neurons 1. Wenn der Abstand zwischen der Eingabe und dem Prototyp wächst, fällt die Antwort exponentiell in Richtung 0 ab. Die Form der Antwort des RBF-Neurons ist eine Glockenkurve, wie im Netzwerkarchitekturdiagramm dargestellt.

Der Reaktionswert des Neurons wird auch als „Aktivierungswert“ bezeichnet.

Der Prototypvektor wird oft auch als „Zentrum“ des Neurons bezeichnet, da es sich um den Wert im Zentrum der Glockenkurve handelt.

Die Ausgabeknoten

Die Ausgabe des Netzwerks besteht aus einer Reihe von Knoten, einer pro Kategorie, die wir zu klassifizieren versuchen. Jeder Ausgabeknoten berechnet eine Art von Punktzahl für die zugeordnete Kategorie. Normalerweise wird eine Klassifizierungsentscheidung getroffen, indem die Eingabe der Kategorie mit der höchsten Punktzahl zugewiesen wird.

Die Bewertung wird berechnet, indem eine gewichtete Summe der Aktivierungswerte von jedem RBF-Neuron genommen wird. Mit gewichteter Summe meinen wir, dass ein Ausgabeknoten jedem der RBF-Neuronen einen Gewichtungswert zuordnet und die Aktivierung des Neurons mit diesem Gewicht multipliziert, bevor er ihn zur Gesamtantwort hinzufügt.

Da jeder Ausgabeknoten die Bewertung für eine andere Kategorie berechnet, hat jeder Ausgabeknoten seinen eigenen Satz von Gewichtungen. Der Ausgangsknoten wird den RBF-Neuronen, die zu seiner Kategorie gehören, typischerweise ein positives Gewicht und den anderen ein negatives Gewicht geben.

RBF-Neuron-Aktivierungsfunktion

Jedes RBF-Neuron berechnet ein Maß für die Ähnlichkeit zwischen der Eingabe und seinem Prototypvektor (aus dem Trainingssatz). Eingabevektoren, die dem Prototyp ähnlicher sind, liefern ein Ergebnis, das näher an 1 liegt. Es gibt verschiedene mögliche Auswahlmöglichkeiten für Ähnlichkeitsfunktionen, aber die beliebteste basiert auf der Gaußschen Funktion. Unten ist die Gleichung für eine Gaussian mit einer eindimensionalen Eingabe.

Dabei ist x die Eingabe, mu der Mittelwert und Sigma die Standardabweichung. Dies erzeugt die unten gezeigte bekannte Glockenkurve, die um den Mittelwert mu zentriert ist (im folgenden Diagramm ist der Mittelwert 5 und Sigma ist 1).

Die RBF-Neuronenaktivierungsfunktion ist etwas anders und wird normalerweise wie folgt geschrieben:

In der Gaußschen Verteilung bezieht sich mu auf den Mittelwert der Verteilung. Hier befindet sich der Prototypvektor im Zentrum der Glockenkurve.

Für die Aktivierungsfunktion phi interessieren wir uns nicht direkt für den Wert der Standardabweichung Sigma, daher nehmen wir ein paar vereinfachende Modifikationen vor.

Die erste Änderung besteht darin, dass wir den äußeren Koeffizienten 1 / (sigma * sqrt(2 * pi)) entfernt haben. Dieser Term steuert normalerweise die Höhe des Gaußschen. Hier ist es jedoch mit den von den Ausgabeknoten angewendeten Gewichtungen überflüssig. Während des Trainings werden die Ausgabeknoten lernen den richtigen Koeffizienten oder „Gewicht“ für die Reaktion des Neurons.

Die zweite Änderung besteht darin, dass wir den inneren Koeffizienten 1 / (2 * Sigma^2) durch einen einzigen Parameter "Beta" ersetzt haben. Dieser Betakoeffizient steuert die Breite der Glockenkurve. Auch in diesem Zusammenhang ist uns der Wert von Sigma egal, wir kümmern uns nur darum, dass es einen Koeffizienten gibt, der die Breite der Glockenkurve steuert. Also vereinfachen wir die Gleichung, indem wir den Term durch eine einzelne Variable ersetzen.

RBF Neuron-Aktivierung für verschiedene Beta-Werte

Auch hier gibt es eine leichte Änderung der Notation, wenn wir die Gleichung auf n-dimensionale Vektoren anwenden. Die Doppelstrichnotation in der Aktivierungsgleichung zeigt an, dass wir den euklidischen Abstand zwischen x und mu nehmen und das Ergebnis quadrieren. Für die 1-dimensionale Gaußfunktion vereinfacht sich dies auf nur (x - mu)^2.

Es ist wichtig zu beachten, dass die zugrunde liegende Metrik hier zur Bewertung der Ähnlichkeit zwischen einem Eingabevektor und einem Prototyp der euklidische Abstand zwischen den beiden Vektoren ist.

Außerdem erzeugt jedes RBF-Neuron seine größte Antwort, wenn die Eingabe gleich dem Prototypvektor ist. Dies ermöglicht es, dies als ein Maß für die Ähnlichkeit zu nehmen und die Ergebnisse aller RBF-Neuronen zu summieren.

Wenn wir uns vom Prototypvektor entfernen, fällt die Antwort exponentiell ab. Erinnern Sie sich an die Abbildung der RBFN-Architektur, dass der Ausgabeknoten für jede Kategorie die gewichtete Summe von jeden RBF-Neuron im Netzwerk – mit anderen Worten, jedes Neuron im Netzwerk hat einen gewissen Einfluss auf die Klassifizierungsentscheidung. Der exponentielle Abfall der Aktivierungsfunktion bedeutet jedoch, dass die Neuronen, deren Prototypen weit vom Eingabevektor entfernt sind, tatsächlich nur sehr wenig zum Ergebnis beitragen.

Wenn Sie daran interessiert sind, ein tieferes Verständnis dafür zu erlangen, wie die Gaußsche Gleichung diese Glockenkurvenform erzeugt, lesen Sie meinen Beitrag zum Gaußschen Kernel.

Beispieldatensatz

Bevor wir auf die Details zum Trainieren eines RBFN eingehen, schauen wir uns ein vollständig trainiertes Beispiel an.

Im folgenden Datensatz haben wir zweidimensionale Datenpunkte, die zu einer von zwei Klassen gehören, die durch die blauen xs und roten Kreise gekennzeichnet sind. Ich habe auf diesem Datensatz ein RBF-Netzwerk mit 20 RBF-Neuronen trainiert. Die ausgewählten Prototypen sind mit schwarzen Sternchen gekennzeichnet.

Wir können auch die Punktzahl der Kategorie 1 (roter Kreis) über dem Eingaberaum visualisieren. Wir könnten dies mit einem 3D-Netz oder einem Konturdiagramm wie dem folgenden tun. Das Höhenliniendiagramm ist wie eine topographische Karte.

Die Bereiche mit der höchsten Punktzahl der Kategorie 1 sind dunkelrot und die Bereiche mit der niedrigsten Punktzahl dunkelblau. Die Werte reichen von -0,2 bis 1,38.

Die Positionen der Prototypen habe ich wieder als schwarze Sternchen eingefügt. Sie können sehen, wie die Hügel in den Ausgabewerten um diese Prototypen herum zentriert sind.

Es ist auch interessant, sich die Gewichtungen anzusehen, die von Ausgabeknoten verwendet werden, um einige der Rätsel zu beseitigen.

Für den Ausgabeknoten der Kategorie 1 sind alle Gewichtungen für die RBF-Neuronen der Kategorie 2 negativ:

Und alle Gewichte für RBF-Neuronen der Kategorie 1 sind positiv:

Schließlich können wir eine Approximation der Entscheidungsgrenze darstellen (die Linie, bei der die Werte der Kategorie 1 und der Kategorie 2 gleich sind).

Um die Entscheidungsgrenze darzustellen, habe ich die Scores über einem endlichen Gitter berechnet. Als Ergebnis ist die Entscheidungsgrenze gezackt. Ich glaube, die wahre Entscheidungsgrenze wäre glatter.

Ausbildung des RBFN

Der Trainingsprozess für ein RBFN besteht darin, drei Parametersätze auszuwählen: die Prototypen (mu) und den Betakoeffizienten für jedes der RBF-Neuronen und die Matrix der Ausgangsgewichte zwischen den RBF-Neuronen und den Ausgangsknoten.

Für die Auswahl der Prototypen und ihrer Varianzen gibt es viele mögliche Ansätze. Das folgende Papier bietet einen Überblick über gängige Ansätze zum Training von RBFNs. Ich las es durch, um mich mit einigen Details des RBF-Trainings vertraut zu machen, und wählte daraus spezifische Ansätze aus, die für mich am sinnvollsten waren.

Es scheint, als gäbe es so gut wie keinen „falschen“ Weg, die Prototypen für die RBF-Neuronen auszuwählen. Tatsächlich bestehen zwei mögliche Ansätze darin, für jedes Trainingsbeispiel ein RBF-Neuron zu erstellen oder einfach k Prototypen aus den Trainingsdaten zufällig auszuwählen. Der Grund dafür, dass die Anforderungen so locker sind, liegt darin, dass ein RBFN bei genügend RBF-Neuronen jede beliebig komplexe Entscheidungsgrenze definieren kann. Mit anderen Worten, Sie können die Genauigkeit jederzeit verbessern, indem Sie mehr RBF-Neuronen verwenden.

Worauf es wirklich ankommt, ist eine Frage der Effizienz – mehr RBF-Neuronen bedeuten mehr Rechenzeit, daher ist es ideal, wenn wir mit so wenigen RBF-Neuronen wie möglich eine gute Genauigkeit erreichen können.

Einer der Ansätze, um eine intelligente Auswahl von Prototypen zu treffen, besteht darin, k-Means-Clustering auf Ihrem Trainingsset durchzuführen und die Clusterzentren als Prototypen zu verwenden. Ich werde das k-Means-Clustering hier nicht im Detail beschreiben, aber es ist ein ziemlich einfacher Algorithmus, für den Sie gute Tutorials finden können.

Bei der Anwendung von k-means möchten wir die Trainingsbeispiele zunächst nach Kategorien trennen – wir möchten nicht, dass die Cluster Datenpunkte aus mehreren Klassen enthalten.

Hier noch einmal der Beispieldatensatz mit den ausgewählten Prototypen. Ich habe k-means Clustering mit einem k von 10 zweimal ausgeführt, einmal für die erste Klasse und noch einmal für die zweite Klasse, was mir insgesamt 20 Cluster gab. Auch hier sind die Clusterzentren mit einem schwarzen Stern „*“ gekennzeichnet.

Ich habe behauptet, dass die Prototypen nur Beispiele aus dem Trainingsset sind – hier sehen Sie, dass das technisch nicht stimmt. Die Clusterzentren werden als Durchschnitt aller Punkte im Cluster berechnet.

Wie viele Cluster pro Klasse gepickt werden sollen, muss „heuristisch“ bestimmt werden. Höhere Werte von k bedeuten mehr Prototypen, was eine komplexere Entscheidungsgrenze ermöglicht, aber auch mehr Berechnungen zur Bewertung des Netzwerks bedeutet.

Beta-Werte auswählen

Wenn Sie k-Means-Clustering verwenden, um Ihre Prototypen auszuwählen, besteht eine einfache Methode zum Festlegen der Beta-Koeffizienten darin, Sigma gleich dem durchschnittlichen Abstand zwischen allen Punkten im Cluster und dem Clusterzentrum zu setzen.

Hier ist mu der Clusterschwerpunkt, m ist die Anzahl der Trainingsproben, die zu diesem Cluster gehören, und x_i ist die i-te Trainingsprobe in dem Cluster.

Sobald wir den Sigma-Wert für den Cluster haben, berechnen wir Beta als:

Ausgangsgewichte

Der letzte zu trainierende Parametersatz sind die Ausgabegewichtungen. Diese können mit Gradientenabstieg (auch bekannt als kleinste mittlere Quadrate) trainiert werden.

Berechnen Sie zunächst für jeden Datenpunkt in Ihrem Trainingssatz die Aktivierungswerte der RBF-Neuronen. Diese Aktivierungswerte werden die Trainingseingaben für den Gradientenabstieg.

Die lineare Gleichung benötigt einen Bias-Term, daher fügen wir immer einen festen Wert von „1“ zum Anfang des Vektors der Aktivierungswerte hinzu.

Der Gradientenabstieg muss für jeden Ausgabeknoten (d. h. für jede Klasse in Ihrem Datensatz) separat ausgeführt werden.

Verwenden Sie für die Ausgabelabels den Wert „1“ für Samples, die derselben Kategorie wie der Ausgabeknoten angehören, und „0“ für alle anderen Samples. Wenn unser Datensatz beispielsweise drei Klassen hat und wir die Gewichte für Ausgabeknoten 3 lernen, sollten alle Beispiele der Kategorie 3 mit „1“ und alle Beispiele der Kategorie 1 und 2 mit 0 gekennzeichnet werden.

RBFN als neuronales Netz

Bisher habe ich es vermieden, einige der typischen neuronalen Netznomenklaturen zur Beschreibung von RBFNs zu verwenden. Da in den meisten Artikeln die Terminologie neuronaler Netze verwendet wird, wenn über RBFNs gesprochen wird, dachte ich, ich würde hier einige Erklärungen dazu geben. Unten ist eine weitere Version des RBFN-Architekturdiagramms.

Hier wird das RBFN als „3-Schichten-Netzwerk“ betrachtet, wobei der Eingangsvektor die erste Schicht ist, die zweite „versteckte“ Schicht die RBF-Neuronen sind und die dritte Schicht die Ausgangsschicht mit Linearkombinationsneuronen ist.

Eine Terminologie, die mich eine Zeit lang wirklich verwirrt hat, ist, dass die von den RBFN-Neuronen verwendeten Prototypvektoren manchmal als „Eingangsgewichte“ bezeichnet werden. Ich betrachte Gewichte im Allgemeinen als Koeffizienten, was bedeutet, dass die Gewichte mit einem Eingabewert multipliziert werden. Hier berechnen wir jedoch den Abstand zwischen dem Eingabevektor und den „Eingabegewichten“ (dem Prototypvektor).


Verweise

Poggio, T. & Girosi, F. (1989), 'A Theory of Networks for Approximation and Learning' (A.I. Memo No.1140, C.B.I.P. Paper No. 31), Technischer Bericht, MIT ARTIFICIAL INTELLIGENCE LABORATORY.

Vogt, M. (1992), 'Implementierung und Anwendung von Generalized Radial Basis Functions in einem Simulator neuronaler Netze', Masterarbeit, IPVR, Universität Stuttgart. (auf Deutsch)

Zell, A. et al. (1998), 'SNNS Stuttgart Neural Network Simulator User Manual, Version 4.2', IPVR, Universität Stuttgart und WSI, Universität T<U+00FC>bingen. http://www.ra.cs.uni-tuebingen.de/SNNS/welcome.html

Zell, A. (1994), Simulation Neuronaler Netze, Addison-Wesley. (auf Deutsch)


Radiale Basisfunktionen, RBF-Kernel und RBF-Netzwerke einfach erklärt

Hier ist ein Satz eindimensionaler Daten: Ihre Aufgabe besteht darin, einen Weg zu finden, die Daten mit einer Zeile perfekt in zwei Klassen zu trennen.

Dies mag auf den ersten Blick als unmöglich erscheinen, ist es aber nur, wenn wir uns auf eine Dimension beschränken.

Lassen Sie uns eine Wellenfunktion einführen F(x) und ordnen Sie jeden Wert von zu x zu seinem entsprechenden Ausgang. Praktischerweise werden dadurch alle blauen Punkte höher und die roten Punkte an genau den richtigen Stellen niedriger. Wir können dann eine horizontale Linie ziehen, die die Klassen sauber in zwei Teile teilt.

Diese Lösung erscheint sehr hinterhältig, aber wir können sie tatsächlich mit Hilfe von radialen Basisfunktionen (RBFs) verallgemeinern. Obwohl sie viele spezielle Anwendungsfälle haben, ist eine RBF von Natur aus einfach eine Funktion, deren Punkte als Entfernungen von einem Zentrum definiert sind. Methoden, die RBFs verwenden, teilen grundsätzlich ein Lernparadigma, das sich vom Standard-Machine-Learning-Tarif unterscheidet, was sie so mächtig macht.

Die Bell-Kurve ist beispielsweise ein Beispiel für einen RBF, da Punkte als Anzahl von Standardabweichungen vom Mittelwert dargestellt werden. Formal können wir eine RBF als Funktion definieren, die wie folgt geschrieben werden kann:

Beachten Sie, dass die Doppelrohre (in diesem Anwendungsfall informell) die Idee von "Abstand" darstellen, unabhängig von der Dimension von x. Zum Beispiel,

  • dies wäre ein absoluter Wert in einer Dimension: f(-3) = f(3) . Der Abstand zum Ursprung (0) beträgt 3 unabhängig vom Vorzeichen.
  • dies wäre der euklidische Abstand in zwei Dimensionen: f([-3,4]) = f([3,-4]) . Die Entfernung zum Ursprung (0, 0) beträgt 5 Einheiten, unabhängig von der Position des jeweiligen Punktes.

Dies ist der ‚Radius‘-Aspekt der ‚radialen Basisfunktion‘. Man kann sagen, dass radiale Basisfunktionen symmetrisch um den Ursprung.

Die oben erwähnte Aufgabe – Punkte magisch durch eine Gerade zu trennen – ist als radiale Basisfunktion bekannt Kernel, mit Anwendungen im leistungsstarken Support Vector Machine (SVM)-Algorithmus. Der Zweck eines „Kernel-Tricks“ besteht darin, die ursprünglichen Punkte in eine neue Dimensionalität zu projizieren, so dass sie durch einfache lineare Methoden leichter getrennt werden können.

Nehmen Sie ein einfacheres Beispiel der Aufgabe mit drei Punkten.

Lassen Sie uns eine Normalverteilung (oder eine andere beliebige RBF-Funktion) zeichnen, die an jedem der Punkte zentriert ist.

Dann können wir alle radialen Basisfunktionen für Datenpunkte einer Klasse umdrehen.

Addieren wir alle Werte der radialen Basisfunktionen an jedem Punkt x, wir eine „globale“ Zwischenfunktion, die etwa so aussieht:

Wir haben unsere wellenförmige globale Funktion erreicht (nennen wir sie g(x) )! Aufgrund der Natur der RBF-Funktion funktioniert es mit allen Arten von Datenlayouts.

Unsere RBF-Funktion der Wahl – die Normalverteilung – ist in einem zentralen Bereich dicht und an allen anderen Stellen weniger dicht. Daher hat es einen großen Einfluss auf den Wert von g(x) wenn Werte von x sich in der Nähe ihres Standorts befinden, wobei die Leistung mit zunehmender Entfernung abnimmt. Diese Eigenschaft macht RBF-Funktionen leistungsfähig.

Wenn wir jeden ursprünglichen Punkt am Standort kartieren x auf den Punkt (x, g(x)) im zweidimensionalen Raum können die Daten immer zuverlässig getrennt werden, sofern sie nicht zu verrauscht sind. Aufgrund überlappender RBF-Funktionen wird es immer in Übereinstimmung mit der richtigen Dichte der Daten abgebildet.

Tatsächlich können Linearkombinationen von – Addieren und Multiplizieren – radialer Basisfunktionen verwendet werden, um fast irgendein gut funktionieren.

Radiale Basisnetzwerke beherzigen diese Idee, indem sie „radiale Basisneuronen“ in ein einfaches zweischichtiges Netzwerk integrieren.

Der Eingabevektor ist der n-dimensionaler Input, an dem eine Klassifikations- oder Regressionsaufgabe (nur ein Ausgabeneuron) ausgeführt wird. Eine Kopie des Eingabevektors wird an jedes der folgenden Radialbasisneuronen gesendet.

Jedes RBF-Neuron speichert einen „zentralen“ Vektor – dies ist einfach ein eindeutiger Vektor aus dem Trainingssatz. Der Eingangsvektor wird mit dem zentralen Vektor verglichen und die Differenz wird in eine RBF-Funktion eingefügt. Wenn beispielsweise der Mittel- und der Eingangsvektor gleich wären, wäre die Differenz null. Die Normalverteilung bei x = 0 ist 1, also wäre die Ausgabe des Neurons 1.

Daher ist der „zentrale“ Vektor der Vektor im Zentrum der RBF-Funktion, da es die Eingabe ist, die die Spitzenausgabe liefert.

Gleichermaßen fällt der Ausgang des Neurons exponentiell gegen Null ab, wenn der zentrale und der Eingangsvektor unterschiedlich sind. Das RBF-Neuron kann dann als ein nichtlineares Maß für die Ähnlichkeit zwischen dem Eingangs- und dem zentralen Vektor betrachtet werden. Da das Neuron radial – radiusbasiert – ist, ist die Größe des Differenzvektors, nicht die Richtung, von Bedeutung.

Schließlich werden die Erkenntnisse aus den RBF-Knoten gewichtet und durch eine einfache Verbindung zur Ausgabeschicht summiert. Ausgabeknoten geben RBF-Neuronen, die eine bestimmte Bedeutung für eine Kategorie haben, große Gewichtungswerte und kleinere Gewichtungen für Neuronen, deren Ausgaben weniger wichtig sind.

Warum verfolgt das radiale Basisnetzwerk einen „Ähnlichkeits“-Ansatz bei der Modellierung? Nehmen Sie den folgenden zweidimensionalen Beispieldatensatz, in dem die zentralen Vektoren von zwanzig RBF-Knoten mit einem „+“ dargestellt werden.

Schauen Sie sich dann eine Konturkarte des Vorhersageraums für das trainierte RBF-Netzwerk an: um fast jeden zentralen Vektor (oder Gruppe von zentralen Vektoren) befindet sich eine Spitze oder ein Tal. Der Merkmalsraum des Netzwerks wird durch diese Vektoren ‚definiert‘, genau wie die globale Funktion g(x) wird in RBF-Kerneln durch radiale Basisfunktionen gebildet, die an jedem Datenpunkt zentriert sind.

Da es unpraktisch ist, wie Kernel für jedes einzelne Element im Trainingssatz einen RBF-Knoten zu bilden, wählten radiale Basisnetzwerke zentrale Vektoren, um die Sicht des Netzwerks auf die Landschaft zu formen. Diese zentralen Vektoren werden normalerweise durch einen Clustering-Algorithmus wie K-Means oder alternativ einfach durch Zufallsstichproben gefunden.

Die gezeichnete Feature-Grenze basierend auf der Höhe sieht wie folgt aus:

Das radiale Basisnetz nähert sich der Klassifikationsaufgabe grundsätzlich anders als normale neuronale Netze, da eine radiale Basisfunktion verwendet wird, die man sich als Dichtemessung vorstellen kann. Standardmäßige neuronale Netze versuchen, trennen die Daten durch lineare Manipulationen von Aktivierungsfunktionen, während radiale Basisfunktionen mehr Gruppe die Daten durch im Wesentlichen auf „Dichte“ basierende Transformationen.

Aus diesem Grund sowie seiner leichten Architektur und starken Nichtlinearität ist es ein Spitzenkonkurrent für künstliche neuronale Netze.

Grundsätzlich basieren Anwendungen radialer Basisfunktionen auf einem Konzept namens „radiale Basisfunktionsinterpolation“, das in der Näherungstheorie oder dem effizienten Studium von Näherungsfunktionen von großem Interesse ist.

Wie zuvor erwähnt, sind RBFs eine mathematische Verkörperung der Idee, dass ein Punkt an diesem Punkt den größten Einfluss haben sollte und dass der Einfluss bei zunehmenden Entfernungen von diesem Punkt abnimmt. Aus diesem Grund können sie auf sehr einfache Weise manipuliert werden, um komplexe Nichtlinearitäten zu konstruieren.


Radiales Basisfunktionsnetzwerk (RBF-Netzwerk) - Biologie

ERM ist cool, aber bisher sind alle Klassifikatoren linear. Was ist, wenn es keine lineare Entscheidungsgrenze gibt?

Frage: Kennen Sie ein nichtlineares Modell aus dem Unterricht?

  • k-NN:
    • Klassifizierung: $h(mathbf) = ext (Summe _^k y_i )$
    • Regression: $ h(mathbf) = frac<1>(Summe _^k y_i )$

    Was ist, wenn wir alle n Trainingsdatenpunkte und ein Gewichtungsschema verwenden, sodass weiter entfernte Datenpunkte dazu beitragen? weniger zur Vorhersage?

    Radiale Basisfunktionen (RBF)

    Verwenden Sie einen RBF (oder Kernel), um den Beitrag in Bezug auf die Entfernung zum Testpunkt zu quantifizieren. Normalerweise $mathsf(mathbf, mathbf) = g(underbrace - mathbf|>>_<= z>)$, wobei der Skalierungsparameter $r$ die Breite des Kernels regelt.

    • Gaußscher Kernel: $g(z) = e^<-frac<1><2>z^2>$
    • Fensterkern: $g(z) = left< egin1 & extrm< wenn $z leq 1$> 0 & extrm < wenn $z >1$> end echts. $ Dieses Modell ist auch als $epsilon$-NN bekannt, wobei $epsilon$ = r ist.

    Ein Vorhersagemodell: "Nadaraya-Watson"-Modell oder Kernel-Regression

    Verwenden Sie eine gewichtete Summe der $y$-Werte:

    $h(mathbf) = frac^n a_ (mathbf) cdot y_i>^n a_ (mathbf)>, ext < mit >a_i(mathbf) = mathsf(mathbf, mathbf)$

    $Rightarrow$ nicht parametrische Version (eine Erhebung bei x) des RBF-Netzes

    Illustration:

    $ h(mathbf) = sum_^n w_i(mathbf)cdot mathsf(mathbf, mathbf), ext w_i = frac^n mathsf(mathbf, mathbf)> $

    Zentrieren Sie eine Erhebung bei jedem $mathbf$ mit Höhe $w_i(x)$, wobei die Breite durch r . bestimmt wird

    Hinweis: Normalisierungskonstanten $<2 pi>^<-frac<2>>$ oder $frac<2>+1)><2>>>$ wird nicht benötigt (es sei denn, Sie verwenden es zur Dichteschätzung).

    Radiale Basisfunktionsnetzwerke

    Hinweis: $w_i(dot>)$ variiert je nach $dot>$ (Testpunkt)

    Mögliche Vereinfachung

    Fixe Höhen für alle Testpunkte auf $w_i$

    $Rightarrow$ parametrische Version des RBF-Netzwerks (passen Sie $w_i$ an, indem Sie den Trainingsfehler minimieren)

    Illustration:

    Große Überraschung!

    $ h(mathbf) = mathbf^ mathbf ext < mit >mathbf = egin mathsf(mathbf, mathbf) vdots mathsf(mathbf, mathbf) Ende $

    Wir haben das $d$-dimensionale nichtlineare Modell in ein $n$-dimensionales lineares Modell transformiert!

    Hinweis: Die nichtlineare Transformation wird durch den Kernel $mathsf . definiert$ und die Trainingsdatenpunkte $x_i$

    Die Auswahl von $n$-Parametern wird zu überangepassten $n$-Parametern und n Datenpunkten geladen, was genau passend ist. Aber wir haben verrauschte Daten. Für das RBF-Netzwerk wählen wir $k RBF-Netzwerk: Zum Vergleich: kNN-Entscheidungsgrenzen sind weniger glatt.
    k = 1: k = 3:


    Wenn Sie weiterlesen Ausbildung Abschnitt in Ihrem Link erklärt er, was die Mittelvektoren sind:

    Wenn ich das Obige lese, scheint es mir, dass Sie Ihre Proben haben, die xs, und aus diesen wählen Sie eine Reihe von Zentrumsvektoren - einen für jedes Neuron in der verborgenen Schicht. Die Zentrumsvektoren sind im Großen und Ganzen Zentren von Clustern in Ihren Beispieldaten.

    Wie die Anmerkungen sagen, können Sie einen unüberwachten Clustering-Algorithmus wie k-means verwenden, um zu finden n Clusterzentren in Ihren Daten, wo n ist die Anzahl der Neuronen in der verborgenen Schicht, mit der Sie es zu tun haben. Verschiedene Schichten können mehr oder weniger Neuronen aufweisen und haben dementsprechend mehr oder weniger Zentrumsvektoren.

    Dann bezieht der RBF jede einzelne Probe, x, zu jedem Zentrumsvektor durch eine Funktion des euklidischen Abstands zwischen ihnen.


    Einzelheiten

    RBF-Netze sind Feed-Forward-Netze mit einer versteckten Schicht. Ihre Aktivierung ist nicht sigmoid (wie bei MLP), sondern radialsymmetrisch (oft gaußförmig). Dabei werden Informationen lokal im Netzwerk repräsentiert (im Gegensatz zu MLP, wo sie global repräsentiert sind). Vorteile von RBF-Netzen im Vergleich zu MLPs sind vor allem, dass die Netze besser interpretierbar sind, das Training einfacher und schneller sein sollte und das Netzwerk nur in Bereichen des Merkmalsraums aktiviert, in denen es tatsächlich trainiert wurde, und somit die Möglichkeit hat, anzuzeigen dass es "einfach nicht weiß".

    Die Initialisierung eines RBF-Netzwerks kann schwierig sein und erfordert Vorkenntnisse. Bevor Sie diese Funktion verwenden, sollten Sie die Seiten 172-183 des SNNS-Benutzerhandbuchs 4.2 lesen. Die Initialisierung erfolgt in der aktuellen Implementierung durch einen Aufruf von RBF_Weights_Kohonen(0,0,0,0,0) und einen nachfolgenden Aufruf der angegebenen initFunc (normalerweise RBF_Weights ). Wenn diese Initialisierung nicht Ihren Anforderungen entspricht, sollten Sie die Low-Level-Schnittstelle von RSNNS verwenden, um Ihre eigene zu implementieren. Schauen Sie sich dann die Demos/Beispiele an. Außerdem beachten wir, dass je nachdem, ob linearer oder logistischer Output gewählt wird, die Initialisierungsparameter unterschiedlich sein müssen (normalerweise c(0,1. ) für linearen und c(-4,4. ) für logistischen Output).


    Radiales Basisfunktionsnetzwerk (RBF-Netzwerk) - Biologie

    Die radialen Basisfunktions-(RBF)-Netzwerke sind von biologischen neuronalen Systemen inspiriert, in denen Neuronen hierarchisch in verschiedenen Signalverarbeitungswegen organisiert sind und darauf abgestimmt sind, selektiv auf verschiedene Merkmale/Eigenschaften der Stimuli in ihren jeweiligen Feldern zu reagieren. Im Allgemeinen haben Neuronen in höheren Schichten größere rezeptive Felder und reagieren selektiv auf globalere und komplexere Muster.

    • Neuronen im primären visuellen Kortex (V1) empfangen visuellen Input von der Netzhaut und reagieren selektiv auf unterschiedliche Ausrichtungen linearer Merkmale
    • Neuronen im mittleren Temporalbereich (MT) erhalten visuellen Input aus dem V1-Bereich und reagieren selektiv auf verschiedene Bewegungsrichtungen
    • Neuronen im medialen oberen Schläfenbereich (MST) erhalten visuellen Input aus dem MT-Bereich und reagieren selektiv auf verschiedene Bewegungsmuster (optischer Fluss) wie Rotation, Expansion, Kontraktion und Spiralbewegungen.

    Die Abstimmkurven, die lokalen Reaktionsfunktionen, dieser Neuronen sind typischerweise Gaußsch, d. h. das Reaktionsniveau wird verringert, wenn der Stimulus weniger ähnlich dem wird, was die Zelle am empfindlichsten und am stärksten anspricht (am meisten bevorzugt).

    Diese Gauß-ähnlichen Funktionen können auch als ein Satz von Basisfunktionen (nicht unbedingt orthogonal und übervollständig) behandelt werden, die den Raum aller Eingabemuster überspannen. Basierend auf solchen lokalen Merkmalen, die durch die Knoten repräsentiert werden, kann ein Knoten in einer höheren Schicht trainiert werden, um selektiv auf einige Muster/Objekte (z. B. "Großmutterzelle") basierend auf den Ausgaben der Knoten in der unteren Schicht zu reagieren.

      Das RBF-Netzwerk kann bei der Musterklassifizierung verwendet werden, durch die ein gegebener Mustervektor in eine von Klassen klassifiziert wird. Die Klassifizierung wird typischerweise überwacht, d. h. das Netzwerk wird basierend auf einem Satz von Trainingsmustern ( ) trainiert, wobei die Klasse angibt, zu der das k-te Muster gehört, d.

    Wie in den obigen Beispielen zu sehen ist, besteht ein RBF-Netzwerk typischerweise aus drei Schichten, wobei die Eingabeschicht aus Knoten besteht, die das Eingangssignal empfangen, die verborgene Schicht aus Knoten besteht, die die Neuronen mit selektiver Abstimmung auf verschiedene Merkmale in der Eingabe simulieren, und die Ausgabeschicht besteht aus Knoten, die die Neuronen auf einer höheren Ebene simulieren, die auf Merkmale auf einer globaleren Ebene reagieren, basierend auf der Ausgabe der verborgenen Schicht, die verschiedene Merkmale auf lokaler Ebene darstellt. (Dies könnte als Modell für die visuelle Signalverarbeitung in der Bahn angesehen werden.)

    Beim Empfang eines Eingabemustervektors erreicht der j-te versteckte Knoten das Aktivierungsniveau:

    wobei und jeweils der Mittelwertvektor und die Kovarianzmatrix sind, die dem j-ten versteckten Knoten zugeordnet sind. Insbesondere ist die Kovarianzmatrix eine spezielle Diagonalmatrix , dann wird die Gaußsche Funktion isotrop und wir haben

    Wir sehen, dass dies das bevorzugte Merkmal (Ausrichtung, Bewegungsrichtung, Frequenz usw.) des j-ten Neurons darstellt. Wenn , wird die Reaktion des Neurons aufgrund der Selektivität des Neurons maximiert.

    In der Ausgabeschicht erhält jeder Knoten die Ausgaben aller Knoten in der verborgenen Schicht, und die Ausgabe des i-ten Ausgabeknotens ist die Linearkombination der Netzaktivierung:

    Note that the computation at the hidden layer is non-linear but that at the output layer is linear, i.e., this is a hybrid training scheme.

    Through the training stage, various system parameters of an RBF network will be obtained, including the and ( ) of the nodes of the hidden layer, as well as the weights ( ) for the nodes of the output layer, each fully connected to all hidden nodes.

      Training of the hidden layer

    • They can be chosen randomly from the input data set ( ).
    • The centers can be obtained by unsupervised learning (SOM, k-means clustering) based on the training data.
    • The covariance matrix as well as the center can also be obtained by supervised learning.

    Once the parameters and are available, we can concentrate on finding the weights of the output layer, based on the given training data containing data points , i.e., we need to solve the equation system for the weights ( ):

    This equation system can also be expressed in matrix form:

    where , , and is an matrix function of the input vectors :

    As the number of training data pairs is typically much greater than the number of hidden nodes , the equation system above contains more equations than unknowns, and has no solution. However, we can still try to find an optimal solution so that the actual output approximates with a minimal mean squared error (MSE):

    To find the weights as the parameters of the model, the general linear least squares can be used, based on the pseudo inverse of the non-square matrix:


    Chris McCormick

    A Radial Basis Function Network (RBFN) is a particular type of neural network. In this article, I’ll be describing it’s use as a non-linear classifier.

    Generally, when people talk about neural networks or “Artificial Neural Networks” they are referring to the Multilayer Perceptron (MLP). Each neuron in an MLP takes the weighted some of its input values. That is, each input value is multiplied by a coefficient, and the results are all summed together. A single MLP neuron is a simple linear classifier, but complex non-linear classifiers can be built by combining these neurons into a network.

    To me, the RBFN approach is more intuitive than the MLP. An RBFN performs classification by measuring the input’s similarity to examples from the training set. Each RBFN neuron stores a “prototype”, which is just one of the examples from the training set. When we want to classify a new input, each neuron computes the Euclidean distance between the input and its prototype. Roughly speaking, if the input more closely resembles the class A prototypes than the class B prototypes, it is classified as class A.

    RBF Network Architecture

    The above illustration shows the typical architecture of an RBF Network. It consists of an input vector, a layer of RBF neurons, and an output layer with one node per category or class of data.

    The Input Vector

    The input vector is the n-dimensional vector that you are trying to classify. The entire input vector is shown to each of the RBF neurons.

    The RBF Neurons

    Each RBF neuron stores a “prototype” vector which is just one of the vectors from the training set. Each RBF neuron compares the input vector to its prototype, and outputs a value between 0 and 1 which is a measure of similarity. If the input is equal to the prototype, then the output of that RBF neuron will be 1. As the distance between the input and prototype grows, the response falls off exponentially towards 0. The shape of the RBF neuron’s response is a bell curve, as illustrated in the network architecture diagram.

    The neuron’s response value is also called its “activation” value.

    The prototype vector is also often called the neuron’s “center”, since it’s the value at the center of the bell curve.

    The Output Nodes

    The output of the network consists of a set of nodes, one per category that we are trying to classify. Each output node computes a sort of score for the associated category. Typically, a classification decision is made by assigning the input to the category with the highest score.

    The score is computed by taking a weighted sum of the activation values from every RBF neuron. By weighted sum we mean that an output node associates a weight value with each of the RBF neurons, and multiplies the neuron’s activation by this weight before adding it to the total response.

    Because each output node is computing the score for a different category, every output node has its own set of weights. The output node will typically give a positive weight to the RBF neurons that belong to its category, and a negative weight to the others.

    RBF Neuron Activation Function

    Each RBF neuron computes a measure of the similarity between the input and its prototype vector (taken from the training set). Input vectors which are more similar to the prototype return a result closer to 1. There are different possible choices of similarity functions, but the most popular is based on the Gaussian. Below is the equation for a Gaussian with a one-dimensional input.

    Where x is the input, mu is the mean, and sigma is the standard deviation. This produces the familiar bell curve shown below, which is centered at the mean, mu (in the below plot the mean is 5 and sigma is 1).

    The RBF neuron activation function is slightly different, and is typically written as:

    In the Gaussian distribution, mu refers to the mean of the distribution. Here, it is the prototype vector which is at the center of the bell curve.

    For the activation function, phi, we aren’t directly interested in the value of the standard deviation, sigma, so we make a couple simplifying modifications.

    The first change is that we’ve removed the outer coefficient, 1 / (sigma * sqrt(2 * pi)). This term normally controls the height of the Gaussian. Here, though, it is redundant with the weights applied by the output nodes. During training, the output nodes will lernen the correct coefficient or “weight” to apply to the neuron’s response.

    The second change is that we’ve replaced the inner coefficient, 1 / (2 * sigma^2), with a single parameter ‘beta’. This beta coefficient controls the width of the bell curve. Again, in this context, we don’t care about the value of sigma, we just care that there’s some coefficient which is controlling the width of the bell curve. So we simplify the equation by replacing the term with a single variable.

    RBF Neuron activation for different values of beta

    There is also a slight change in notation here when we apply the equation to n-dimensional vectors. The double bar notation in the activation equation indicates that we are taking the Euclidean distance between x and mu, and squaring the result. For the 1-dimensional Gaussian, this simplifies to just (x – mu)^2.

    It’s important to note that the underlying metric here for evaluating the similarity between an input vector and a prototype is the Euclidean distance between the two vectors.

    Also, each RBF neuron will produce its largest response when the input is equal to the prototype vector. This allows to take it as a measure of similarity, and sum the results from all of the RBF neurons.

    As we move out from the prototype vector, the response falls off exponentially. Recall from the RBFN architecture illustration that the output node for each category takes the weighted sum of jeden RBF neuron in the network–in other words, every neuron in the network will have some influence over the classification decision. The exponential fall off of the activation function, however, means that the neurons whose prototypes are far from the input vector will actually contribute very little to the result.

    If you are interested in gaining a deeper understanding of how the Gaussian equation produces this bell curve shape, check out my post on the Gaussian Kernel.

    Example Dataset

    Before going into the details on training an RBFN, let’s look at a fully trained example.

    In the below dataset, we have two dimensional data points which belong to one of two classes, indicated by the blue x’s and red circles. I’ve trained an RBF Network with 20 RBF neurons on this data set. The prototypes selected are marked by black asterisks.

    We can also visualize the category 1 (red circle) score over the input space. We could do this with a 3D mesh, or a contour plot like the one below. The contour plot is like a topographical map.

    The areas where the category 1 score is highest are colored dark red, and the areas where the score is lowest are dark blue. The values range from -0.2 to 1.38.

    I’ve included the positions of the prototypes again as black asterisks. You can see how the hills in the output values are centered around these prototypes.

    It’s also interesting to look at the weights used by output nodes to remove some of the mystery.

    For the category 1 output node, all of the weights for the category 2 RBF neurons are negative:

    -0.79934
    -1.26054
    -0.68206
    -0.68042
    -0.65370
    -0.63270
    -0.65949
    -0.83266
    -0.82232
    -0.64140

    And all of the weights for category 1 RBF neurons are positive:
    0.78968
    0.64239
    0.61945
    0.44939
    0.83147
    0.61682
    0.49100
    0.57227
    0.68786
    0.84207

    Finally, we can plot an approximation of the decision boundary (the line where the category 1 and category 2 scores are equal).

    To plot the decision boundary, I’ve computed the scores over a finite grid. As a result, the decision boundary is jagged. I believe the true decision boundary would be smoother.

    Training The RBFN

    The training process for an RBFN consists of selecting three sets of parameters: the prototypes (mu) and beta coefficient for each of the RBF neurons, and the matrix of output weights between the RBF neurons and the output nodes.

    There are many possible approaches to selecting the prototypes and their variances. The following paper provides an overview of common approaches to training RBFNs. I read through it to familiarize myself with some of the details of RBF training, and chose specific approaches from it that made the most sense to me.

    It seems like there’s pretty much no “wrong” way to select the prototypes for the RBF neurons. In fact, two possible approaches are to create an RBF neuron for every training example, or to just randomly select k prototypes from the training data. The reason the requirements are so loose is that, given enough RBF neurons, an RBFN can define any arbitrarily complex decision boundary. In other words, you can always improve its accuracy by using more RBF neurons.

    What it really comes down to is a question of efficiency–more RBF neurons means more compute time, so it’s ideal if we can achieve good accuracy using as few RBF neurons as possible.

    One of the approaches for making an intelligent selection of prototypes is to perform k-Means clustering on your training set and to use the cluster centers as the prototypes. I won’t describe k-Means clustering in detail here, but it’s a fairly straight forward algorithm that you can find good tutorials for.

    When applying k-means, we first want to separate the training examples by category–we don’t want the clusters to include data points from multiple classes.

    Here again is the example data set with the selected prototypes. I ran k-means clustering with a k of 10 twice, once for the first class, and again for the second class, giving me a total of 20 clusters. Again, the cluster centers are marked with a black asterisk ‘*’.

    I’ve been claiming that the prototypes are just examples from the training set–here you can see that’s not technically true. The cluster centers are computed as the average of all of the points in the cluster.

    How many clusters to pick per class has to be determined “heuristically”. Higher values of k mean more prototypes, which enables a more complex decision boundary but also means more computations to evaluate the network.

    Selecting Beta Values

    If you use k-means clustering to select your prototypes, then one simple method for specifying the beta coefficients is to set sigma equal to the average distance between all points in the cluster and the cluster center.

    Here, mu is the cluster centroid, m is the number of training samples belonging to this cluster, and x_i is the ith training sample in the cluster.

    Once we have the sigma value for the cluster, we compute beta as:

    Output Weights

    The final set of parameters to train are the output weights. These can be trained using gradient descent (also known as least mean squares).

    First, for every data point in your training set, compute the activation values of the RBF neurons. These activation values become the training inputs to gradient descent.

    The linear equation needs a bias term, so we always add a fixed value of 𔃱’ to the beginning of the vector of activation values.

    Gradient descent must be run separately for each output node (that is, for each class in your data set).

    For the output labels, use the value 𔃱’ for samples that belong to the same category as the output node, and 𔃰’ for all other samples. For example, if our data set has three classes, and we’re learning the weights for output node 3, then all category 3 examples should be labeled as 𔃱’ and all category 1 and 2 examples should be labeled as 0.

    RBFN as a Neural Network

    So far, I’ve avoided using some of the typical neural network nomenclature to describe RBFNs. Since most papers do use neural network terminology when talking about RBFNs, I thought I’d provide some explanation on that here. Below is another version of the RBFN architecture diagram.

    Here the RBFN is viewed as a 𔄛-layer network” where the input vector is the first layer, the second “hidden” layer is the RBF neurons, and the third layer is the output layer containing linear combination neurons.

    One bit of terminology that really had me confused for a while is that the prototype vectors used by the RBFN neurons are sometimes referred to as the “input weights”. I generally think of weights as being coefficients, meaning that the weights will be multiplied against an input value. Here, though, we’re computing the distance between the input vector and the “input weights” (the prototype vector).


    Radial Basis Function Network versus Regression Model in Manufacturing Processes Prediction

    One of the objectives of manufacturing industry, is to increase the efficiency in their processes using different methodologies, such as statistical modeling, for production control and decision-making. However, the classical tools sometimes have difficulty to depict the manufacturing processes. This paper is a comparative study between a multiple regression model and a Radial Basis Function Neural Network in terms of the statistical metrics R2 and R2 adj applied in a permanent mold casting process and TIG welding process. Results showed that in both cases, the RBF network performed better than Regression model.

    Schlüsselwörter: Radial basis function Multiple regression Process prediction

    Einführung

    Nowadays, the manufacturing companies have been increased difficulty in their process decision making, due to rapid changes in design methods and demand for quality products [1]. For that reason, there are different tools for modeling a process, like statistical, mathematical and intelligent systems, but the question is which of these tools depict better the process?

    The multiple regression is a statistical model that analyze how a set of predictor variables X are related to a single response measured y. Regression analysis answers questions about the dependence of a single response variable on one or more predictors, including prediction of future values, discovering which predictors are important and estimating the impact of changing a predictor or a treatment on the value of the response [2]. The Radial Basis Function (RBF) neural network aids to explain the process outputs based on the inputs assigned to it. For example, to automate a manufacturing process, it is necessary to know the input-output relationship in both directions, and using a radial basis network it is possible to predict the results of a manufacturing process efficiently [3]. The RBF networks are important in prediction by his character of universal approximators [4] and for its good performance in the non-linearity common in processes [5]. In this paper, we propose a comparative study between a multiple regression model and a Radial Basis Function Neural Network in terms of the statistical metrics R 2 , R 2 adj, R 2 PRESS applied in a permanent mold casting process.

    Methoden

    Radial basis function network

    Are so called Radial basis functions because the functions of the hidden layer as a base set for the function to be approximated, and the functions display a radial symmetry, being only a function of the distance between the learned patterns and the input ones.

    A neural network with radial basis function consists of the following layers [6]:

    Input layer: it is formed by the source nodes (sensory units).

    Intermediate layer: it is a hidden layer of great dimension and in which the units (neurons) that form it are the base functions for the input data.

    Output layer: that has the responsibility in the network for the activation of patterns applied in the input layer.

    Radial basis functions are functions that reach a level close to the maximum of their path when the input pattern (Xn) is close to the center of the neuron. If the pattern moves away from the center, the value of the function tends to the minimum value of its path. The training is only forward. The output of a network in general is influenced by a non-linear transformation, originating in the hidden layer through the radial function and a linear one in the output layer through the continuous linear function. A derivation of the radial basis models is the use of the standard deviation to activate the function G(*) , working with exp(d 2 / a), where a is the standard deviation for the hidden node.

    Genetic algorithm

    As mentioned above, the RBF output depends on the distance between the inputs to the network centers. There are many methods of clustering and optimization for determining the centers. One of them is the Genetic Algorithm (GA), which is a method of optimization based on the processes of biological evolution [7]. It is part of intelligent systems.

    The process consists in select randomly individuals of the current population these individuals will be the parents of the next generation that will be evolve to an optimal solution. The GA works on three main rules [8]:

    Parent selection of the next generation.

    The combination of parents to form the next generation.

    Applying random changes of each parent for the children.

    The GA considers one function of evaluation (fitness function) to optimize. The objective is maximizing or minimizing such fitness function. Applying GA to determine the centroids of the RBF, the metric used is R^2 which is a global evaluation metric [9], in this case the objective is to maximize this metric.

    Multiple regression

    A regression model which involves more than one regressor variable is called multiple regression model. In general, you can relate a response Y with k regressors or predictors. The statistical model to explain the behavior of the dependent variable including any number of independent variables is equation (1).

    The deviation of an observation Yich from its population mean E[Yich] is taken into account by adding a random error E[Yich] .There are k independent variables and k+1 parameters to be estimated. Usually, the estimation of the parameters βJ is made by means of the Ordinary least Square Method (OLS). In a matrix form, the OLS estimator is given by [9]:

    Anwendung

    Abbildung 1: Radial basis function structure.

    Figur 2: Target vs regression.

    The process consists of a permanent mold casting for manufacturing a piece for the electrical industry. They have three independent variables in eight runs. The data were obtained using a factorial design with 3 factors 2 levels. The objective of the modeling is to find the variable that causes more defects and minimize them. The model response is the total defects in the process. The observations are shown in Table 1. The comparison between the real responses and the Regression model is showed in the Figure 1 and the comparison between Radial Basis Function and real response is showed in the Figure 2 & 3.

    Figur 3: Target vs RBF.

    Table 1: Model variables.

    Tabelle 2: Comparison of association measurements.

    Tisch 3: Comparison of association measurements.

    It is possible to see graphically the FBR network model has a better fit than by regression. After that, the measurements of association were estimated to test the performance of a Regression model and RBF. Results are shown in Table 2. It is observed at Table 2, that the RBF Network depicts the process variation over that 90% in terms of the coefficients of determination. The method was applied in the TIG welding process too, using a welding robot Kuka KR-16, with multi-process welding system (MIG and TIG). Then taking process data and identifying the important parameters: feed rate (IPM), input voltage (volts), wire speed (m/min), and the output, the fusion 2 of the welding.

    The Figure 4 shows the response called Fusion 2, and measures the penetration of the vertical element to be attached to the horizontal element. This response is important in the material properties since its control depends on the strength of the joint. The Table 3 illustrates the results about the application and comparison between the RBF with Regression model. Those metrics are quantities used to express the proportion of total variability in the response accounted by the model. So that indicates the proportion of variability in yexplained by the model. Then the RBF is better than multivariate regression model.

    Figur 4: TIG welding.

    Abschluss

    In order to improve manufacturing processes, it is very important to analyze the process to take better decisions. In this article it was shown that a tool based alternative intelligent systems, generates a better fit compared to regression analysis in terms of the measures of association. This statistical metrics provide information about the strength of the relationships between predictors and the dependent variable. With these results, it is possible to find the parameters that cause more defects. However, for future work is proposed to consider analyze each defect in a model for joint prediction, considering that the model design must be made multivariate: what will happen with the Regression model and RBF?

    Verweise

    © 2018 Homero De Jesus De Leon Delgado. This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and build upon your work non-commercially.


    Schau das Video: Lecture 16 - Radial Basis Functions (Kann 2022).