Usando rede neural para reconhecer padrões em matrizes


10

Estou tentando desenvolver uma rede neural que possa identificar os recursos de design nos modelos CAD (ou seja, slots, saliências, furos, bolsos, etapas).

Os dados de entrada que pretendo usar para a rede são ansn matrix (em que n é o número de faces no modelo CAD). Um '1' no triângulo superior direito da matriz representa uma relação convexa entre duas faces e um '1' no triângulo inferior esquerdo representa uma relação côncava. Um zero nas duas posições significa que as faces não são adjacentes. A imagem abaixo mostra um exemplo dessa matriz. insira a descrição da imagem aqui

Digamos que eu defina o tamanho máximo do modelo para 20 faces e aplique preenchimento para algo menor que isso, a fim de tornar as entradas para a rede um tamanho constante.

Eu quero ser capaz de reconhecer 5 recursos de design diferentes e, portanto, ter 5 neurônios de saída - [slot, bolso, furo, chefe, passo]

Eu estaria certo ao dizer que isso se torna uma espécie de problema de 'reconhecimento de padrões'? Por exemplo, se eu fornecer à rede vários modelos de treinamento - juntamente com rótulos que descrevem o recurso de design existente no modelo, a rede aprenderia a reconhecer padrões de adjacência específicos representados na matriz relacionados a determinados recursos de design?

Sou iniciante em aprendizado de máquina e estou tentando entender se essa abordagem funcionará ou não - se mais alguma informação for necessária para entender o problema, deixe um comentário. Qualquer contribuição ou ajuda seria apreciada, obrigado.


1
Isso parece realmente interessante. Mas de que triângulo você está falando? Você pode desenhá-lo para maior clareza?
FelicityC

Respostas:


1

Eu estaria certo ao dizer que isso se torna uma espécie de problema de 'reconhecimento de padrões'?

Tecnicamente sim. Na prática: não.

Eu acho que você pode estar interpretando o termo "reconhecimento de padrões" um pouco literal demais. Embora a wikipedia defina o reconhecimento de padrões como "um ramo do aprendizado de máquina que se concentra no reconhecimento de padrões e regularidades nos dados", não se trata de resolver problemas que "facilmente" possam ser deduzidos pelo raciocínio lógico.

Por exemplo, você diz isso

Um '1' no triângulo superior direito da matriz representa uma relação convexa entre duas faces e um '1' no triângulo inferior esquerdo representa uma relação côncava

Isso é verdade sempre . Em uma situação típica de aprendizado de máquina, você normalmente não tem esse conhecimento prévio. Pelo menos não na medida em que seria b tratável "resolver manualmente".

O reconhecimento de padrões é convencionalmente uma abordagem estatística para resolver problemas quando eles se tornam muito complexos para serem analisados ​​com o raciocínio lógico convencional e modelos de regressão mais simples. A Wikipedia também afirma (com uma fonte) que o reconhecimento de padrões "em alguns casos é considerado quase sinônimo de aprendizado de máquina".

Dito isto: você pode usar o reconhecimento de padrões nesse problema. No entanto, parece um exagero neste caso. Seu problema, até onde posso entender, tem uma solução "analítica" real. Ou seja: você pode, por lógica, obter um resultado 100% correto o tempo todo. Os algoritmos de aprendizado de máquina também podem, em teoria, fazer isso e, nesse caso, e esse ramo do ML é chamado de Meta Modelagem [1].

Por exemplo, se eu fornecer à rede vários modelos de treinamento - juntamente com rótulos que descrevem o recurso de design existente no modelo, a rede aprenderia a reconhecer padrões de adjacência específicos representados na matriz relacionados a determinados recursos de design?

Em uma palavra: provavelmente. Melhor caminho a percorrer? Provavelmente não. Por que não, você pergunta?

Sempre existe a possibilidade de seu modelo não aprender exatamente o que você deseja. Além disso, você tem muitos desafios, como ajustes excessivos, dos quais precisa se preocupar. É uma abordagem estatística, como eu disse. Mesmo se classificar todos os seus dados de teste como 100% corretos, não há como (a menos que você verifique as matemáticas incrivelmente intratáveis) ter 100% de certeza de que sempre será classificado corretamente. Suspeito ainda que você também acabe gastando mais tempo trabalhando no seu modelo do que o tempo necessário para deduzir a lógica.

Também não concordo com @Bitzel: eu não faria uma CNN (rede neural convolucional) sobre isso. As CNNs são usadas quando você deseja examinar partes específicas da matriz, e a relação e a conexão entre os pixels são importantes - por exemplo, nas imagens. Como você tem apenas 1s e 0s, suspeito fortemente que uma CNN seria um exagero. E com toda a esparsidade (muitos zeros), você acabaria com muitos zeros nas convoluções.

Na verdade, eu sugiro uma rede neural simples de baunilha (feed forward), que, apesar da escassez, acho que será capaz de fazer essa classificação com bastante facilidade.


1
Resposta muito completa. Uma versão curta é que, para perguntas que têm uma solução analítica, o ML geralmente não é a abordagem correta.
Amrinder Arora

0

Pelo que entendi, sim, seu problema está relacionado ao reconhecimento de padrões. Como a abordagem é classificar entradas com rótulos que você fornece anteriormente para a rede neural, acho que uma rede neural convolucional pode funcionar para o seu problema.


0

O problema

Os dados de treinamento para o sistema proposto são os seguintes.

  • Uma matriz booleana representando a adjacência da superfície de um desenho geométrico sólido
  • Também representada na matriz está a diferenciação entre os ângulos interno e externo das arestas
  • Etiquetas (descritas abaixo)

Convexo e côncavo não são os termos corretos para descrever descontinuidades do gradiente de superfície. Uma aresta interna, como a fabricada por uma fresa de topo, não é realmente uma superfície côncava. A descontinuidade do gradiente de superfície, do ponto de vista do modelo sólido idealizado, tem um raio zero. Uma aresta externa não é uma porção convexa de uma superfície pelo mesmo motivo.

A saída pretendida do sistema treinado proposto é uma matriz booleana, indicando a presença de recursos específicos de desenho geométrico sólido.

  • Um ou mais slots
  • Um ou mais chefe
  • Um ou mais orifícios
  • Um ou mais bolsos
  • Uma ou mais etapas

Essa matriz de valores booleanos também é usada como rótulos para treinamento.

Possíveis advertências na abordagem

Existem incongruências de mapeamento nessa abordagem. Eles caem aproximadamente em uma das quatro categorias.

  • Ambiguidade criada pelo mapeamento da topologia no modelo CAD para a matriz - geometrias sólidas que não foram capturadas primárias na codificação da matriz proposta
  • Modelos CAD para os quais não existe matriz - casos em que as arestas mudam dos ângulos interno para o externo ou emergem da curvatura
  • Ambiguidade na identificação de características da matriz - sobreposição entre características que podem identificar o padrão na matriz
  • Matrizes que descrevem recursos que não estão entre os cinco - isso pode se tornar um problema de perda de dados no desenvolvimento

Estes são apenas alguns exemplos de problemas de topologia que podem ser comuns em alguns domínios de design mecânico e ofuscam o mapeamento de dados.

  • Um furo tem a mesma matriz que uma moldura de caixa com raios internos.
  • Raios externos podem levar a simplificação excessiva na matriz.
  • Os furos que se cruzam com as arestas podem ser indistinguíveis de outra topologia na forma de matriz.
  • Dois ou mais furos de interseção podem apresentar ambiguidades de adjacência.
  • Flanges e nervuras que suportam saliências redondas com orifícios centrais podem ser indistinguíveis.
  • Uma bola e um toro têm a mesma matriz.
  • Um disco e banda com uma cruz hexagonal com uma torção de 180 graus têm a mesma matriz.

Essas possíveis advertências podem ou não ser motivo de preocupação para o projeto definido na pergunta.

Definir um tamanho de face equilibra eficiência com confiabilidade, mas limita a usabilidade. Pode haver abordagens que aproveitem uma das variantes de RNNs, o que pode permitir a cobertura de tamanhos arbitrários de modelos sem comprometer a eficiência de geometrias simples. Essa abordagem pode envolver a distribuição da matriz como uma sequência para cada exemplo, aplicando uma estratégia de normalização bem concebida a cada matriz. O preenchimento pode ser eficaz se não houver restrições rígidas na eficiência do treinamento e existir um máximo prático para o número de faces.

Considerando Contagem e Certeza como Saída

[0.0,1.0]

A possibilidade de usar uma saída inteira não negativa, como uma representação binária não assinada criada pela agregação de várias células de saída binária, em vez de um único booleano por recurso, deve ser pelo menos considerada também. A jusante, a capacidade de contar recursos pode se tornar importante.

Isso leva a cinco permutações realistas a serem consideradas, que podem ser produzidas pela rede treinada para cada recurso de cada modelo de geometria sólida.

  • Booleano indicando existência
  • Número inteiro não negativo indicando contagem de instâncias
  • Segurança booleana e real de uma ou mais instâncias
  • Número inteiro não negativo que representa a contagem de instâncias mais provável e a certeza real de uma ou mais instâncias
  • Média real não negativa e desvio padrão

Reconhecimento de padrões ou o quê?

fXY

f(X)Y

Se a classe conceitual que está sendo aproximada funcionalmente pela rede estiver suficientemente representada na amostra usada para treinamento e a amostra de exemplos de treinamento for desenhada da mesma maneira que o aplicativo de destino desenhará posteriormente, é provável que a aproximação seja suficiente.

No mundo da teoria da informação, há uma confusão na distinção entre reconhecimento de padrões e aproximação funcional, como deve haver nessa abstração conceitual de IA de nível superior.

Viabilidade

A rede aprenderia a mapear matrizes para [a matriz de] indicadores booleanos de recursos de design?

Se as advertências listadas acima são aceitáveis ​​para as partes interessadas no projeto, os exemplos são bem rotulados e fornecidos em número suficiente, e a normalização dos dados, função de perda, hiperparâmetros e arranjos de camadas são configurados corretamente, é provável que a convergência ocorra durante treinamento e um razoável sistema automatizado de identificação de recursos. Novamente, sua usabilidade depende de novas geometrias sólidas sendo extraídas da classe conceitual, como os exemplos de treinamento. A confiabilidade do sistema depende do treinamento ser representativo dos casos de uso posteriores.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.