Verwenden eines neuronalen Netzwerks zum Erkennen von Mustern in Matrizen


10

Ich versuche, ein neuronales Netzwerk zu entwickeln, das Konstruktionsmerkmale in CAD-Modellen identifizieren kann (dh Schlitze, Vorsprünge, Löcher, Taschen, Stufen).

Die Eingabedaten, die ich für das Netzwerk verwenden möchte, sind Anxn-Matrix (wobei n die Anzahl der Flächen im CAD-Modell ist). Eine '1' im oberen rechten Dreieck in der Matrix repräsentiert eine konvexe Beziehung zwischen zwei Flächen und eine '1' im unteren linken Dreieck repräsentiert eine konkave Beziehung. Eine Null in beiden Positionen bedeutet, dass die Flächen nicht benachbart sind. Das Bild unten zeigt ein Beispiel für eine solche Matrix. Geben Sie hier die Bildbeschreibung ein

Nehmen wir an, ich stelle die maximale Modellgröße auf 20 Flächen ein und wende eine Auffüllung für alles an, was kleiner ist, um die Eingaben in das Netzwerk auf eine konstante Größe zu bringen.

Ich möchte in der Lage sein, 5 verschiedene Designmerkmale zu erkennen und hätte daher 5 Ausgangsneuronen - [Schlitz, Tasche, Loch, Chef, Schritt]

Würde ich zu Recht sagen, dass dies zu einer Art Problem der Mustererkennung wird? Wenn ich dem Netzwerk beispielsweise eine Reihe von Trainingsmodellen zur Verfügung stelle - zusammen mit Beschriftungen, die das im Modell vorhandene Entwurfsmerkmal beschreiben - würde das Netzwerk dann lernen, bestimmte in der Matrix dargestellte Adjazenzmuster zu erkennen, die sich auf bestimmte Entwurfsmerkmale beziehen?

Ich bin ein absoluter Anfänger im maschinellen Lernen und versuche herauszufinden, ob dieser Ansatz funktioniert oder nicht - wenn weitere Informationen zum Verständnis des Problems erforderlich sind, hinterlassen Sie einen Kommentar. Jede Eingabe oder Hilfe wäre dankbar, danke.


1
Das sieht wirklich interessant aus. Aber von welchem ​​Dreieck sprichst du? Können Sie es zur Klarheit zeichnen?
FelicityC

Antworten:


1

Würde ich zu Recht sagen, dass dies zu einer Art Problem der Mustererkennung wird?

Technisch ja. In der Praxis: nein.

Ich denke, Sie interpretieren den Begriff "Mustererkennung" möglicherweise etwas zu wörtlich. Obwohl Wikipedia die Mustererkennung als "einen Zweig des maschinellen Lernens definiert, der sich auf die Erkennung von Mustern und Regelmäßigkeiten in Daten konzentriert", geht es nicht darum, Probleme zu lösen, die durch logisches Denken "leicht" abgeleitet werden können.

ZB sagst du das

Eine '1' im oberen rechten Dreieck in der Matrix repräsentiert eine konvexe Beziehung zwischen zwei Flächen und eine '1' im unteren linken Dreieck repräsentiert eine konkave Beziehung

Das ist immer wahr . In einer typischen Situation des maschinellen Lernens hätten Sie (normalerweise) dieses Vorwissen nicht. Zumindest nicht in dem Maße, wie es möglich wäre, „von Hand zu lösen“.

Die Mustererkennung ist herkömmlicherweise ein statistischer Ansatz zur Lösung von Problemen, wenn sie zu komplex werden, um mit herkömmlichen logischen Überlegungen und einfacheren Regressionsmodellen analysiert zu werden. Wikipedia gibt auch (mit einer Quelle) an, dass die Mustererkennung "in einigen Fällen als nahezu synonym mit maschinellem Lernen angesehen wird".

Davon abgesehen : Sie können die Mustererkennung für dieses Problem verwenden. In diesem Fall scheint es jedoch übertrieben zu sein. Soweit ich verstehen kann, hat Ihr Problem eine tatsächliche "analytische" Lösung. Das heißt: Sie können logischerweise jederzeit ein 100% korrektes Ergebnis erzielen. Algorithmen für maschinelles Lernen könnten dies theoretisch auch tun, und in diesem Fall wird dieser Zweig der ML als Metamodellierung bezeichnet [1].

Wenn ich dem Netzwerk beispielsweise eine Reihe von Trainingsmodellen zur Verfügung stelle - zusammen mit Beschriftungen, die das im Modell vorhandene Entwurfsmerkmal beschreiben - würde das Netzwerk dann lernen, bestimmte in der Matrix dargestellte Adjazenzmuster zu erkennen, die sich auf bestimmte Entwurfsmerkmale beziehen?

Mit einem Wort: Wahrscheinlich. Bester Weg zu gehen? Wahrscheinlich nicht. Warum nicht, fragst du?

Es besteht immer die Möglichkeit, dass Ihr Modell nicht genau lernt, was Sie wollen. Darüber hinaus haben Sie viele Herausforderungen wie Überanpassung , über die Sie sich Sorgen machen müssen. Es ist ein statistischer Ansatz, wie ich sagte. Selbst wenn alle Ihre Testdaten als 100% korrekt klassifiziert werden, gibt es keine Möglichkeit (es sei denn, Sie überprüfen die wahnsinnig unlösbaren Berechnungen), 100% sicher zu sein, dass sie immer korrekt klassifiziert werden. Ich vermute weiter, dass Sie wahrscheinlich auch mehr Zeit mit der Arbeit an Ihrem Modell verbringen als mit der Zeit, die erforderlich wäre, um nur die Logik abzuleiten.

Ich bin auch anderer Meinung als @Bitzel: Ich würde diesbezüglich kein CNN (Convolutional Neural Network) durchführen. CNNs werden verwendet, wenn Sie bestimmte Teile der Matrix betrachten möchten, und die Beziehung und Verbindung zwischen den Pixeln sind wichtig - beispielsweise bei Bildern. Da Sie nur Einsen und Nullen haben, vermute ich stark, dass ein CNN erheblich übertrieben wäre. Und bei all der Sparsamkeit (viele Nullen) würden Sie am Ende viele Nullen in den Windungen haben.

Ich würde tatsächlich ein einfaches neuronales Vanille-Netzwerk (Feed-Forward) vorschlagen, das trotz der Sparsamkeit meiner Meinung nach diese Klassifizierung ziemlich einfach durchführen kann.


1
Sehr gründliche Antwort. Eine kurze Version ist, dass ML für Fragen mit einer analytischen Lösung normalerweise nicht der richtige Ansatz ist.
Amrinder Arora

0

Soweit ich weiß, hängt Ihr Problem mit der Mustererkennung zusammen. Da der Ansatz darin besteht, Eingaben mit Bezeichnungen zu klassifizieren, die Sie zuvor für das neuronale Netz bereitgestellt haben, denke ich, dass ein Faltungsnetzwerk für Ihr Problem funktionieren könnte.


0

Das Problem

Die Trainingsdaten für das vorgeschlagene System sind wie folgt.

  • Eine boolesche Matrix, die die Oberflächenadjazenz eines festen geometrischen Entwurfs darstellt
  • In der Matrix ist auch die Unterscheidung zwischen Innen- und Außenwinkeln von Kanten dargestellt
  • Etiketten (unten beschrieben)

Konvex und konkav sind nicht die richtigen Begriffe, um Oberflächengradientendiskontinuitäten zu beschreiben. Eine Innenkante, wie sie beispielsweise von einem Schaftfräser hergestellt wird, ist eigentlich keine konkave Oberfläche. Die Diskontinuität des Oberflächengradienten hat aus Sicht des idealisierten Volumenmodells einen Radius von Null. Eine Außenkante ist aus demselben Grund kein konvexer Teil einer Oberfläche.

Die beabsichtigte Ausgabe des vorgeschlagenen trainierten Systems ist ein Boolesches Array, das das Vorhandensein spezifischer fester geometrischer Entwurfsmerkmale anzeigt.

  • Ein oder mehrere Steckplätze
  • Ein oder mehrere Chefs
  • Ein oder mehrere Löcher
  • Eine oder mehrere Taschen
  • Ein oder mehrere Schritte

Dieses Array von Booleschen Werten wird auch als Bezeichnung für das Training verwendet.

Mögliche Vorsichtsmaßnahmen bei der Annäherung

Bei diesem Ansatz gibt es Mapping-Inkongruenzen. Sie fallen ungefähr in eine von vier Kategorien.

  • Mehrdeutigkeit durch Zuordnung der Topologie im CAD-Modell zur Matrix - Volumengeometrien, deren Primärdaten in der vorgeschlagenen Matrixcodierung nicht erfasst wurden
  • CAD-Modelle, für die keine Matrix vorhanden ist - Fälle, in denen sich Kanten von Innen- zu Außenwinkeln ändern oder aus der Krümmung hervorgehen
  • Mehrdeutigkeit bei der Identifizierung von Merkmalen aus der Matrix - Überlappung zwischen Merkmalen, die das Muster in der Matrix identifizieren könnten
  • Matrizen, die Funktionen beschreiben, die nicht zu den fünf gehören - dies könnte zu einem Datenverlustproblem in der Entwicklung werden

Dies sind nur einige Beispiele für Topologieprobleme, die in einigen Bereichen des mechanischen Entwurfs häufig auftreten und die Datenzuordnung verschleiern können.

  • Ein Loch hat die gleiche Matrix wie ein Kastenrahmen mit Innenradien.
  • Externe Radien können zu einer zu starken Vereinfachung in der Matrix führen.
  • Löcher, die sich mit Kanten schneiden, sind möglicherweise nicht von anderen Topologien in Matrixform zu unterscheiden.
  • Zwei oder mehr sich kreuzende Löcher können Adjazenzmehrdeutigkeiten aufweisen.
  • Flansche und Rippen, die runde Vorsprünge mit Mittellöchern tragen, sind möglicherweise nicht zu unterscheiden.
  • Ein Ball und ein Torus haben die gleiche Matrix.
  • Eine Scheibe und ein Band mit einem sechseckigen Kreuz mit einer 180-Grad-Drehung haben dieselbe Matrix.

Diese möglichen Vorbehalte können für das in der Frage definierte Projekt von Belang sein oder auch nicht.

Das Einstellen einer Gesichtsgröße bringt Effizienz mit Zuverlässigkeit in Einklang, schränkt jedoch die Benutzerfreundlichkeit ein. Es kann Ansätze geben, die eine der Varianten von RNNs nutzen, die die Abdeckung beliebiger Modellgrößen ermöglichen, ohne die Effizienz für einfache Geometrien zu beeinträchtigen. Ein solcher Ansatz kann das Ausspalten der Matrix als Sequenz für jedes Beispiel beinhalten, wobei eine gut durchdachte Normalisierungsstrategie auf jede Matrix angewendet wird. Das Auffüllen kann effektiv sein, wenn die Trainingseffizienz nicht stark eingeschränkt ist und ein praktisches Maximum für die Anzahl der Gesichter besteht.

Zählung und Sicherheit als Ausgabe betrachten

Um einige dieser Unklarheiten zu behandeln, könnte eine Gewissheit der Bereich der Aktivierungsfunktionen der Ausgabezellen sein, ohne die Kennzeichnung der Trainingsdaten zu ändern.[0.0,1.0]

Die Möglichkeit, eine nicht negative Ganzzahlausgabe als vorzeichenlose Binärdarstellung zu verwenden, die durch Aggregation mehrerer Binärausgabezellen anstelle eines einzelnen Booleschen Werts pro Merkmal erstellt wird, sollte zumindest ebenfalls in Betracht gezogen werden. Nachgeschaltet kann die Fähigkeit zum Zählen von Merkmalen wichtig werden.

Dies führt zu fünf zu berücksichtigenden realistischen Permutationen, die vom trainierten Netzwerk für jedes Merkmal jedes Modells mit fester Geometrie erzeugt werden könnten.

  • Boolescher Wert, der die Existenz anzeigt
  • Nicht negative Ganzzahl, die die Anzahl der Instanzen angibt
  • Boolesche und echte Gewissheit einer oder mehrerer Instanzen
  • Nicht negative Ganzzahl, die die wahrscheinlichste Anzahl von Instanzen und die tatsächliche Sicherheit einer oder mehrerer Instanzen darstellt
  • Nicht negativer realer Mittelwert und Standardabweichung

Mustererkennung oder was?

In der gegenwärtigen Kultur wird das Anwenden eines künstlichen Netzwerks auf dieses Problem normalerweise nicht als Mustererkennung im Sinne von Computer Vision oder Audioverarbeitung beschrieben. Es wird angenommen, dass ein komplexes funktionales Mapping durch Konvergenz in der groben Richtung eines Ideen-Mappings unter Berücksichtigung der Kriterien für Nähe, Genauigkeit und Zuverlässigkeit erlernt wird. Die Parameter der Funktion werden bei den Eingaben während des Trainings in Richtung der zugehörigen Bezeichnungen gesteuert .fXY

f(X)Y

Wenn die vom Netzwerk funktional approximierte Konzeptklasse in der für das Training verwendeten Stichprobe ausreichend dargestellt ist und die Stichprobe der Trainingsbeispiele auf die gleiche Weise gezeichnet wird, wie die Zielanwendung später zeichnen wird, ist die Annäherung wahrscheinlich ausreichend.

In der Welt der Informationstheorie verwischt sich die Unterscheidung zwischen Mustererkennung und funktionaler Approximation, wie es in dieser übergeordneten AI-Konzeptabstraktion der Fall sein sollte.

Durchführbarkeit

Würde das Netzwerk lernen, Matrizen [dem Array von] Booleschen [Indikatoren] von Designmerkmalen zuzuordnen?

Wenn die oben aufgeführten Vorbehalte für die Projektbeteiligten akzeptabel sind, die Beispiele gut beschriftet und in ausreichender Anzahl bereitgestellt werden und die Datennormalisierung, Verlustfunktion, Hyperparameter und Schichtanordnungen gut eingerichtet sind, ist es wahrscheinlich, dass Konvergenz während auftritt Schulung und ein angemessenes automatisiertes Merkmalidentifizierungssystem. Auch hier hängt die Benutzerfreundlichkeit davon ab, dass neue feste Geometrien aus der Konzeptklasse gezogen werden, wie dies bei den Trainingsbeispielen der Fall war. Die Zuverlässigkeit des Systems hängt davon ab, dass die Schulung für spätere Anwendungsfälle repräsentativ ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.