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.
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.
quelle
Antworten:
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
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].
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.
quelle
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.
quelle
Das Problem
Die Trainingsdaten für das vorgeschlagene System sind wie folgt.
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.
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.
Dies sind nur einige Beispiele für Topologieprobleme, die in einigen Bereichen des mechanischen Entwurfs häufig auftreten und die Datenzuordnung verschleiern können.
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.
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 .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
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.
quelle