Utilizzo della rete neurale per riconoscere i modelli nelle matrici


10

Sto cercando di sviluppare una rete neurale in grado di identificare le caratteristiche di progettazione nei modelli CAD (ad esempio slot, boccole, fori, tasche, gradini).

I dati di input che intendo utilizzare per la rete sono una matrice anxn (dove n è il numero di facce nel modello CAD). Un '1' nel triangolo in alto a destra nella matrice rappresenta una relazione convessa tra due facce e un '1' nel triangolo in basso a sinistra rappresenta una relazione concava. Uno zero in entrambe le posizioni significa che le facce non sono adiacenti. L'immagine seguente fornisce un esempio di tale matrice. inserisci qui la descrizione dell'immagine

Diciamo che ho impostato la dimensione massima del modello su 20 facce e applico il riempimento per qualsiasi cosa più piccola di quella al fine di rendere gli ingressi alla rete di dimensioni costanti.

Voglio essere in grado di riconoscere 5 diverse caratteristiche del design e quindi avere 5 neuroni di output - [slot, pocket, hole, boss, step]

Avrei ragione nel dire che questo diventa una sorta di problema di "riconoscimento dei modelli"? Ad esempio, se fornissi alla rete un numero di modelli di addestramento - insieme alle etichette che descrivono la caratteristica di progettazione che esiste nel modello, la rete imparerebbe a riconoscere specifici schemi di adiacenza rappresentati nella matrice che si riferiscono a determinate caratteristiche di progettazione?

Sono un principiante assoluto nell'apprendimento automatico e sto cercando di capire se questo approccio funzionerà o meno - se sono necessarie ulteriori informazioni per comprendere il problema, lasciare un commento. Qualsiasi contributo o aiuto sarebbe apprezzato, grazie.


1
Questo sembra davvero interessante. Ma di quale triangolo stai parlando? Puoi disegnarlo per chiarezza?
FelicityC

Risposte:


1

Avrei ragione nel dire che questo diventa una sorta di problema di "riconoscimento dei modelli"?

Tecnicamente si. In pratica: no.

Penso che potresti interpretare il termine "riconoscimento del modello" un po 'troppo letterale. Anche se Wikipedia definisce il riconoscimento di Pattern come "una branca dell'apprendimento automatico che si concentra sul riconoscimento di pattern e regolarità nei dati", non si tratta di risolvere problemi che possono essere "facilmente" dedotti dal ragionamento logico.

Ad esempio, lo dici tu

Un '1' nel triangolo in alto a destra nella matrice rappresenta una relazione convessa tra due facce e un '1' nel triangolo in basso a sinistra rappresenta una relazione concava

Questo è sempre vero . In una tipica situazione di apprendimento automatico, non avresti (di solito) questa conoscenza precedente. Almeno non nella misura in cui sarebbe trattabile "risolvere a mano".

Il riconoscimento dei modelli è convenzionalmente un approccio statistico per risolvere i problemi quando diventano troppo complessi per essere analizzati con ragionamenti logici convenzionali e modelli di regressione più semplici. Wikipedia afferma anche (con una fonte) che il riconoscimento del modello "in alcuni casi è considerato quasi sinonimo di apprendimento automatico".

Detto questo: è possibile utilizzare il riconoscimento dei modelli su questo problema. Tuttavia, sembra eccessivo in questo caso. Il tuo problema, per quanto posso capire, ha una vera soluzione "analitica". Cioè: puoi, logicamente, ottenere sempre un risultato corretto al 100%. In teoria, anche gli algoritmi di apprendimento automatico potrebbero fare questo, e in quel caso, e questo ramo di ML viene chiamato Meta Modeling [1].

Ad esempio, se fornissi alla rete un numero di modelli di addestramento - insieme alle etichette che descrivono la caratteristica di progettazione che esiste nel modello, la rete imparerebbe a riconoscere specifici schemi di adiacenza rappresentati nella matrice che si riferiscono a determinate caratteristiche di progettazione?

In una parola: probabilmente. Il modo migliore per andare? Probabilmente no. Perché no, chiedi?

C'è sempre la possibilità che il tuo modello non impari esattamente ciò che desideri. Inoltre hai molte sfide come il sovradimensionamento di cui dovresti preoccuparti. È un approccio statistico, come ho detto. Anche se classifica tutti i tuoi dati di test come corretti al 100%, non c'è modo (a meno che non controlli la matematica insanabilmente intrattabile) di essere sicuro al 100% che si classificherà sempre correttamente. Sospetto inoltre che probabilmente finirai per dedicare più tempo a lavorare sul tuo modello rispetto al tempo necessario per dedurre la logica.

Sono anche in disaccordo con @Bitzel: non vorrei fare una CNN (rete neurale convoluzionale) su questo. Le CNN vengono utilizzate quando si desidera esaminare parti specifiche della matrice e la relazione e la connessione tra i pixel sono importanti, ad esempio sulle immagini. Dato che hai solo 1 e 0, sospetto fortemente che una CNN sarebbe enormemente eccessiva. E con tutta la scarsità (molti zeri) finiresti con molti zeri nelle convoluzioni.

In realtà suggerirei una semplice rete neurale alla vaniglia (feed forward), che, nonostante la scarsità, penso che sarà in grado di fare questa classificazione abbastanza facilmente.


1
Risposta molto approfondita. Una versione breve è che per le domande che hanno una soluzione analitica, ML di solito non è l'approccio giusto.
Amrinder Arora,

0

Per quanto ho capito, sì, il tuo problema è legato al riconoscimento di schemi. Poiché l'approccio è quello di classificare gli input con etichette fornite in precedenza per la rete neurale, penso che una rete neurale convoluzionale potrebbe funzionare per il tuo problema.


0

Il problema

I dati di addestramento per il sistema proposto sono i seguenti.

  • Una matrice booleana che rappresenta l'adiacenza superficiale di un solido disegno geometrico
  • Nella matrice è rappresentata anche la differenziazione tra gli angoli interni ed esterni dei bordi
  • Etichette (descritte di seguito)

Convesso e concavo non sono i termini corretti per descrivere le discontinuità del gradiente di superficie. Un bordo interno, come quello realizzato da una fresa, non è in realtà una superficie concava. La discontinuità del gradiente di superficie, dal punto di vista del modello solido idealizzato, ha un raggio zero. Un bordo esterno non è una porzione convessa di una superficie per lo stesso motivo.

L'output previsto del sistema addestrato proposto è un array booleano che indica la presenza di specifiche caratteristiche di progettazione geometrica solida.

  • Uno o più slot
  • Uno o più boss
  • Uno o più fori
  • Una o più tasche
  • Uno o più passaggi

Questa matrice di valori booleani viene anche utilizzata come etichetta per la formazione.

Possibili avvertenze in avvicinamento

Ci sono incongruenze di mappatura in questo approccio. Cadono approssimativamente in una delle quattro categorie.

  • Ambiguità creata mappando la topologia nel modello CAD sulla matrice - geometrie solide che hanno il primario non catturato nella codifica della matrice proposta
  • Modelli CAD per i quali non esiste una matrice: casi in cui i bordi cambiano dagli angoli interni a quelli esterni o emergono dalla curvatura
  • Ambiguità nell'identificazione delle funzioni dalla matrice: sovrapposizione di funzioni che potrebbero identificare il modello nella matrice
  • Matrici che descrivono caratteristiche che non sono tra le cinque: questo potrebbe diventare un problema di perdita di dati a valle dello sviluppo

Questi sono solo alcuni esempi di problemi di topologia che possono essere comuni in alcuni domini di progettazione meccanica e offuscare la mappatura dei dati.

  • Un foro ha la stessa matrice di un telaio scatolato con raggi interni.
  • I raggi esterni possono portare a una semplificazione eccessiva nella matrice.
  • I fori che si intersecano con i bordi possono essere indistinguibili da altre topologie in forma di matrice.
  • Due o più fori che si intersecano possono presentare ambiguità di adiacenza.
  • Le flange e le nervature che supportano le sporgenze rotonde con fori centrali possono essere indistinguibili.
  • Una palla e un toro hanno la stessa matrice.
  • Un disco e una fascia con una croce esagonale con una rotazione di 180 gradi hanno la stessa matrice.

Questi possibili avvertimenti possono o meno essere fonte di preoccupazione per il progetto definito nella domanda.

L'impostazione di una dimensione del viso bilancia l'efficienza con l'affidabilità ma limita l'usabilità. Ci possono essere approcci che sfruttano una delle varianti di RNN, che possono consentire la copertura di dimensioni di modello arbitrarie senza compromettere l'efficienza per geometrie semplici. Un tale approccio può comportare la suddivisione della matrice come sequenza per ciascun esempio, applicando una strategia di normalizzazione ben concepita a ciascuna matrice. L'imbottitura può essere efficace se non ci sono vincoli stretti sull'efficienza dell'allenamento ed esiste un massimo pratico per il numero di facce.

Considerando il conteggio e la certezza come output

[0.0,1.0]

Dovrebbe essere considerata almeno la possibilità di utilizzare un output intero non negativo, come rappresentazione binaria senza segno creata aggregando più celle di output binarie, anziché un singolo valore booleano per caratteristica. A valle, la capacità di contare le funzionalità può diventare importante.

Ciò porta a cinque permutazioni realistiche da considerare, che potrebbero essere prodotte dalla rete addestrata per ciascuna caratteristica di ciascun modello di geometria solida.

  • Booleano che indica l'esistenza
  • Numero intero non negativo che indica il numero di istanze
  • Certezza booleana e reale di una o più istanze
  • Numero intero non negativo che rappresenta il conteggio delle istanze più probabile e la certezza reale di una o più istanze
  • Media reale non negativa e deviazione standard

Riconoscimento del modello o cosa?

fXY

f(X)Y

Se la classe di concetti che viene approssimata funzionalmente dalla rete è sufficientemente rappresentata nel campione utilizzato per l'addestramento e il campione di esempi di addestramento viene disegnato nello stesso modo in cui verrà successivamente disegnata l'applicazione di destinazione, è probabile che l'approssimazione sia sufficiente.

Nel mondo della teoria dell'informazione, c'è una sfocatura della distinzione tra riconoscimento del modello e approssimazione funzionale, come dovrebbe esserci in quell'astrazione concettuale di intelligenza artificiale di livello superiore.

Fattibilità

La rete imparerebbe a mappare le matrici su [la matrice di] [indicatori] booleani di funzionalità di progettazione?

Se le avvertenze sopra elencate sono accettabili per le parti interessate del progetto, gli esempi sono ben etichettati e forniti in numero sufficiente e la normalizzazione dei dati, la funzione di perdita, gli iperparametri e le disposizioni dei livelli sono ben impostate, è probabile che si verifichi convergenza durante formazione e un ragionevole sistema automatizzato di identificazione delle caratteristiche. Ancora una volta, la sua usabilità dipende da nuove geometrie solide che sono state tratte dalla classe concettuale come lo erano gli esempi di addestramento. L'affidabilità del sistema si basa sulla formazione rappresentativa di casi d'uso successivi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.