[PYTHON] (Maschinelles Lernen) Ich habe die Hauptkomponentenanalyse gelernt, die eine nützliche Methode zur Reduzierung einer großen Anzahl von Funktionen darstellt. + Ich habe darüber nachgedacht, sie auf die Fertigungsindustrie auszudehnen (insbesondere die Wartung von Maschinengeräten).

Einführung

Dieses Mal werde ich eine Methode namens Hauptkomponentenanalyse zusammenfassen. Diese Hauptkomponentenanalyse ist eine Methode zur Datenanalyse. Es wird verwendet, weil es heutzutage ein nützliches Mittel für den Umgang mit Big Data ist. Es ist auch die Grundlage des ** Auto-Encoder-Konzepts ** in neuronalen Netzen wie GAN. Hier ist die Motivation für mich zu studieren.

Die Materialien, auf die sich diese Zeit bezieht, sind hier. ** Insbesondere im PRML-Buch war die Beschreibung höflich, so dass es einfach war, die Erweiterung der Formel zu verfolgen und das Verständnis voranzutreiben. ** Ich hatte das Gefühl, den Grund dafür zu verstehen, ein Meisterwerk zu sein.

  1. Unter Mustererkennung und maschinellem Lernen (allgemein bekannt als PRML)

  2. Principal Component Analysis http://cda.psych.uiuc.edu/statistical_learning_course/Jolliffe%20I.%20Principal%20Component%20Analysis%20(2ed.,%20Springer,%202002)(518s)MVsa.pdf

  3. Feature Engineering für maschinelles Lernen - Die Prinzipien und die Praxis mit Python (O'Reilly)

Was ist Hauptkomponentenanalyse?

Die Hauptkomponentenanalyse (allgemein als PCA bekannt) bezieht sich auf das Ersetzen einer großen Anzahl von ** Variablen durch eine kleine Anzahl neuer Variablen. ** Als anderer Name scheint es Karhunen-Loeve-Konvertierung zu heißen.

Um es ein wenig mehr in Lehrbüchern auszudrücken, es ist eine orthogonale Projektion von Datenpunkten auf einen niedrigdimensionalen linearen Raum, der als Hauptunterraum bezeichnet wird. Der Punkt ist, die Verteilung dieser projizierten Daten so einzustellen, dass sie maximiert werden. Es kann auch als Minimierung des erwarteten Werts der Projektionskostenfunktion definiert werden, der durch den mittleren quadratischen Abstand zwischen dem Datenpunkt und dem projizierten Punkt definiert ist. Diese beiden Ideen sind gleichwertig.

  1. Maximieren Sie die Verteilung der projizierten Daten (Hotelling, 1933).
  2. Minimieren Sie den erwarteten Wert der Projektionskostenfunktion (= minimieren Sie die Summe der Quadrate der Residuen) (Pearson, 1901)

Die Idee wird unten kurz gezeigt.

image.png

Die Dispersionsmaximierung von 1. ist die Idee, die sich aus dem Wunsch ergibt, in einer neuen Dimension auszudrücken, ohne die in den ursprünglichen Beobachtungsdaten ausgedrückte Variation zu beeinträchtigen. Um den erwarteten Wert der Kostenfunktion in 2. zu minimieren, müssen Sie eine Dimension finden, die den Fehler so klein wie möglich ausdrückt. Obwohl 1 und 2 unterschiedliche Ausdrücke sind, sind sie auch gleichbedeutend.

Formulierung durch Maximierung der Dispersion

Betrachten Sie einen Satz beobachteter Daten in der Dimension $ D $ {$ \ bf x_n $} $ (n = 1,2, .... N) $. Der Zweck dieser Zeit besteht darin, die Daten in den Raum der $ M $ -Dimension (<$ D ) zu projizieren und gleichzeitig die Streuung der projizierten Datenpunkte zu maximieren. Betrachten Sie zunächst die Projektion auf einen eindimensionalen Raum ( D = 1 $).

Projektion in den eindimensionalen Raum

Die Richtung dieses eindimensionalen Raums wird als $ D $ -Dimensionsvektor $ \ bf u_1 $ dargestellt (siehe Abbildung unten).

Nehmen wir nun an, dass der Vektor $ \ bf u_1 $ der Einheitsvektor ist ($ \ bf {u_1 ^ T u_1} = 1 $). ** Dies ist ein Verfahren, das für die Wichtigkeit der definierten Richtung und die einfache Berechnung verwendet wird, nicht für die Größe von $ u_1 $ selbst. ** **. Dann wird jeder Datenpunkt {$ \ bf x_n $} auf den Skalarwert $ \ bf u_1 ^ Tx_n $ projiziert. Um die Verteilung zu maximieren, sei $ \ bar {x_n} $ der Durchschnittswert und fahre unten fort. Die Verteilung der projizierten Daten ist

\begin{align}
&\frac{1}{n} \sum_{n=1}^{n} ||\mathbf{u_1}^T \mathbf{x_i} - \mathbf{u_1}^T \bar{\mathbf{x}}||^2 \\
= &\frac{1}{n} \sum_{n=1}^{n} ||\mathbf{u_1}^T (\mathbf{x_i} - \bar{\mathbf{x}})||^2 (Gleichung 1)\\
= &\frac{1}{n} \sum_{n=1}^{n} \bigl( \mathbf{u_1}^T (\mathbf{x_i} - \bar{\mathbf{x}}) \bigr) \bigl( (\mathbf{x_i} - \bar{\mathbf{x}})^T \mathbf{u_1} \bigr) \\
= &\mathbf{u_1}^T \bigl( \frac{1}{n} \sum_{n=1}^{n} (\mathbf{x_i} - \bar{\mathbf{x}}) (\mathbf{x_i} - \bar{\mathbf{x}})^T \bigr) \mathbf{u_1} \\
= &\mathbf{u_1}^T \mathbf{S} \mathbf{u_1} \\
\end{align}

Gegeben in. Wobei $ S $ eine Datenverteilungsmatrix ist und wie folgt definiert ist:

\frac{1}{n} \sum_{n=1}^{n} (\mathbf{x_i} - \bar{\mathbf{x}}) (\mathbf{x_i} - \bar{\mathbf{x}})^T = \mathbf{S}

Nun die projizierte Streuung\bf {u_1^T S u_1}Zu\bf u_1に対して最大化することZu考えます。ここで先ほどの前提に関係しますが、||u_1||→∞となることZu避ける必要があります。従って、\bf {u_1^T u_1}=1Zu前提Zu置く必要があるのです。 Bei der Betrachtung dieser Dispersionsmaximierung wenden wir die unbestimmte Multiplikatormethode von Lagrange an. Bei der unbestimmten Multiplikatormethode dieses Lagrange ist es einfach ausgedrückt schwierig, den Maximalwert zu finden. Da es schwierig ist, den Maximalwert direkt zu finden, definieren Sie eine neue Funktion, die der zu suchenden Funktion und den Einschränkungen entspricht. Es geht darum, so zu gestalten, dass der Minimalwert der neuen Funktion zum Maximalwert der ursprünglichen Funktion wird. Daher kann der Maximalwert der ursprünglichen Funktion ermittelt werden, indem der Minimalwert der neuen Funktion ermittelt wird.

Wenn nun die unbestimmte Multiplikatormethode von Lagrange tatsächlich auf die obige Formel angewendet wird, wird $ \ lambda_1 $ als Lagrange-Multiplikator festgelegt.

L(\mathbf{u_1}, \lambda_1) = \frac{1}{2} \mathbf{u_1}^T \mathbf{S} \mathbf{u_1} - \lambda_1 (\mathbf{u_1}^T \mathbf{u_1} - 1) 

Kann ausgedrückt werden als. Um den Mindestwert dieser Funktion zu ermitteln, können Sie ihn ermitteln, indem Sie ihn teilweise mit $ \ bf u_1 $ differenzieren und als $ 0 $ festlegen.

\frac{\partial L}{\partial \mathbf{u_1}} = \mathbf{S} \mathbf{u_1} - \lambda_1 \mathbf{u_1} = 0 \\
\mathbf{S} \mathbf{u_1} = \lambda_1 \mathbf{u_1} \ (Gleichung 1)\\ 

Kann mit transformiert werden. $ \ bf u_1 $ ist

||\bf S -\lambda_1 I|| =0

Es kann durch Lösen der Matrixgleichung von erhalten werden.

Für die obige Gleichung 1 beträgt die Varianz, wenn $ \ bf u_1 ^ T $ von links multipliziert und $ \ bf {u_1 ^ T u_1} = 1 $ angewendet wird

\mathbf{u_1}^T \mathbf{S} \mathbf{u_1}  = \lambda_1

Kann gefragt werden.

Daher können wir sehen, dass die Varianz maximiert wird, wenn $ \ bf u_1 ^ T $ als Eigenvektor ausgewählt wird, der zum maximalen Eigenwert $ \ lambda_1 $ gehört. Dieser Eigenvektor wird als ** erste Hauptkomponente ** bezeichnet.

Analyse der Hauptkomponenten der Implementierung

Betrachten wir nun die Hauptkomponentenanalyse, wenn Sie in eine Dimension oben projizieren. Betrachten Sie im Allgemeinen die Projektion in einen M-dimensionalen Raum. Zu diesem Zeitpunkt kann es tatsächlich leicht durch ** Singularwertzerlegung ** der Matrix des ursprünglichen Datensatzes {$ \ bf x_n $} $ (n = 1,2, .... N) $ erhalten werden. Werden. Die Singularitätszerlegung ist eine Operation auf einer Matrix, und die Gliederung und Implementierungsmethode werden unten beschrieben.

Ich habe mich sehr bemüht, die spektrale Normalisierung und die Singularwertzerlegung zu verstehen, die zur Stabilität von GAN beitragen. https://qiita.com/Fumio-eisan/items/54d138df12737c0984b2

Finden Sie die Minimierung der Quadratsumme der Residuen

Als nächstes betrachten wir die Hauptkomponentenanalyse unter dem Gesichtspunkt der Minimierung der Quadratsumme der Residuen, was eine andere Idee ist.

image.png

Die Summe der Quadrate ist in der obigen Abbildung $ x_n- \ bf \ tilde {x_n} $. $ \ bf \ tilde {x_n} $ wird mit $ \ bf {x_n} $ und $ \ bf u_1 $ ausgedrückt. Wenn Sie $ \ bf \ tilde {x_n} = t \ bf u_1 $ setzen

\bf u_1^T (\bf x_n -t \bf u_1) =0

Wenn Sie lösen

\bf u^T \bf x_n -t\bf u_1^T \bf u_1 =0

t = \bf u_1^T \bf  {x_n}
(\bf u_1^T \bf u =Wegen 1)

Kann gelöst werden. Daher ist $ (\ bf u_1 ^ T \ bf {x_n}) \ bf u_1 $ eine normale Projektion. Mit anderen Worten, die $ \ bf x_n- \ bf \ tilde {x_n} $, die Sie zuerst suchen wollten, wird zu $ \ bf x_n - (\ bf u_1 ^ T \ bf {x_n}) \ bf u_1 $. Unter Berücksichtigung von $ \ bf u_1 $, das die Summe der Quadrate dieser Länge minimiert,

\sum_{n=1}^{N} ||\bf x_n-(\bf u_1^T \bf  {x_n})\bf u_1||^2 \\

Kann formuliert werden.

Wenn Sie das lösen

||\bf x_n-(\bf u_1^T \bf  {x_n})\bf u_1||^2 = \bf x_n^T \bf x_n - (\bf u_1^T \bf  {x_n})^2

Es wird sein. Dieses Minimierungsproblem ist darauf zurückzuführen, dass $ \ bf x_n ^ T \ bf x_n $ konstant ist, selbst wenn sich $ \ bf u_1 $ ändert.

\sum_{n=1}^{N} -(\bf u_1^T \bf  {x_n})^2

Es ist gleichbedeutend mit Lösen. Dies zeigt dasselbe wie Gleichung 1 bei der Lösung des Maximierungsproblems. Früher haben wir die Differenz zum Durchschnittswert entschieden, aber in diesem Fall kann man sagen, dass dies gleichbedeutend ist mit der Interpretation als Subtraktion des Durchschnittswerts im Voraus.

Mit anderen Worten kann gesagt werden, dass das zuvor erwähnte Maximalwertproblem nur ein Minimierungsproblem ist, da es diesmal ein Minus hat. Die Fortsetzung ist die gleiche wie beim Ermitteln des Maximalwerts.

Verschiedene Eindrücke: Berücksichtigung der Entwicklung der Hauptkomponentenanalyse für die Fertigungsindustrie

Ich arbeite als Produktionsingenieur in der Fertigungsindustrie. Unter diesen ist ** plötzliche Störung von Maschinen und Geräten ** eine der Ursachen, die zu Produktionsausfällen führen (= Opportunitätsverlust). Dies liegt daran, dass das Gerät zu unerwarteten Zeiten den normalen Betrieb beendet.

Bei wichtigen Geräten, deren Produktionsaktivitäten aufgrund von Problemen eingestellt werden, reparieren wir sie grundsätzlich regelmäßig auf der Grundlage einer zeitbasierten Wartung (zumindest in meiner Branche (Material)). ).

In vielen Fällen ist dieser Zeitraum ** früher (= vorzeitig) als der vom Hersteller empfohlene Austauschzeitraum für zu reparierende Teile (= wichtige Sicherheitsteile). ** Mit anderen Worten, obwohl es bereits auf der sicheren Seite ist, können Probleme auftreten, ohne auf die Zeit zu warten. Was den Grund angeht, warum es passiert, ist die Ursache je nach Fall unterschiedlich, daher kann ich nicht unbedingt sagen, aber es kann gesagt werden, dass sich die Art des produzierten Produkts ändert und sich der Arbeiter, der es betreibt, ändert.

Betrachten Sie die Anwendung der Hauptkomponentenanalyse auf dieses Problem. Unten sehen Sie ein Manga-Bild vom Problem bis zur Lösung.

image.png

Mit der jüngsten Umstellung auf IoT ist es einfacher geworden, Sensoren an Geräte anzuschließen und Daten zu erfassen. Darüber hinaus sind auch produktionsbezogene Betriebsdaten einfach zu verwenden (= leicht zu beschaffende Daten).

Vor diesem Hintergrund ist es möglich, Geräteausfälle anhand einer großen Datenmenge vorherzusagen. Bei dieser Vorhersage ist es eine Herausforderung, ** Referenzfaktoren und Schwellenwerte zu bestimmen. ** ** ** Ich denke, dass die ** Hauptkomponentenanalyse ** auf den Prozess der Eingrenzung von vielen Faktoren auf wenige Faktoren angewendet werden kann. Beispielsweise ist es denkbar, einen neuen Index zu verwenden, der mehrere Faktoren wie Gerätefrequenz x Gesamtnutzungszeit in Beziehung setzt. ** (Es kann als systematische Software angewendet werden, aber ich weiß es nicht, daher würde ich es begrüßen, wenn mich jemand unterrichten könnte.) **

** Allerdings ** muss hier der Punkt berücksichtigt werden, ob es aus dem sogenannten Domain-Wissen, dem Wissen des Gerätes und der Produktion, angemessen ist.

Wenn beispielsweise bei einem in diesem Walzwerk installierten Motor die Frequenz ursprünglich 0 bis 0 Hz beträgt, handelt es sich um eine normale Vibration. Oder wenn es △ hz oder mehr wird, ist es fast Zeit, es zu ersetzen. Wissen und Erfahrung geben den hier entschiedenen Faktoren Gültigkeit. Schließlich denke ich, dass das Wissen und die Erfahrung der Mitarbeiter, die die Website Dutzende oder Hunderte Male besucht haben, immer noch wichtig sind.

Ein weiterer Punkt. (** Es kann auf die Materialindustrie beschränkt sein **) Die Herausforderung bei der Anwendung dieser Idee besteht in der Hardware, z. B. der Notwendigkeit, einen Sensor am Gerät anzubringen, und der Frage, ob es einen Sensor gibt, der angemessene Daten erhalten kann. Ich denke, dass die Herausforderungen nebenbei immer noch groß sind. In einigen Fällen ist das Instrument selbst nicht vollständig installiert, oder selbst wenn es installiert ist, ist die Systemkonfiguration nicht für die Datenerfassung ausgelegt. Daher wird dort angehalten, wo es keine Möglichkeit gibt, die Daten von dem zu analysierenden Objekt abzurufen.

Heutzutage habe ich das Gefühl, dass die Realität darin besteht, dass nur die Idee des maschinellen Lernens voraus ist und die Hardwareseite nicht verbunden ist. .. Daher ** ist es eine schlammige, aber wichtige Aufgabe für die Geräteingenieure, IT-Mitarbeiter und IT-Berater des Herstellers. ** ** **

abschließend

Die Methode der Hauptkomponentenanalyse ist zusammengefasst. Obwohl die mathematische Operation einfach ist, hatte ich das Gefühl, dass sie ein breites Anwendungsspektrum hat. Persönlich möchte ich mehr über die Szenen erfahren, die für die Bildverarbeitung verwendet werden.

Recommended Posts

(Maschinelles Lernen) Ich habe die Hauptkomponentenanalyse gelernt, die eine nützliche Methode zur Reduzierung einer großen Anzahl von Funktionen darstellt. + Ich habe darüber nachgedacht, sie auf die Fertigungsindustrie auszudehnen (insbesondere die Wartung von Maschinengeräten).
Ich habe die Methode des maschinellen Lernens und ihre Implementierungssprache anhand der Tag-Informationen von Qiita betrachtet
Einführung in die Python-Grundlagen des maschinellen Lernens (unbeaufsichtigtes Lernen / Hauptanalyse)
Grundlegendes maschinelles Lernverfahren: ③ Vergleichen und untersuchen Sie die Auswahlmethode für die Merkmalsmenge