Usiłuję opracować sieć neuronową, która może identyfikować cechy projektowe w modelach CAD (tj. Szczeliny, występy, dziury, kieszenie, stopnie).
Dane wejściowe, których zamierzam użyć dla sieci, to macierz anxn (gdzie n jest liczbą ścian w modelu CAD). „1” w prawym górnym trójkącie w macierzy reprezentuje wypukłą zależność między dwiema ścianami, a „1” w lewym dolnym trójkącie reprezentuje wklęsłą zależność. Zero w obu pozycjach oznacza, że twarze nie sąsiadują ze sobą. Poniższy obraz przedstawia przykład takiej matrycy.
Powiedzmy, że ustawiłem maksymalny rozmiar modelu na 20 ścian i stosuję padding dla wszystkiego, co jest mniejsze niż to, aby wejścia do sieci miały stały rozmiar.
Chcę być w stanie rozpoznać 5 różnych cech konstrukcyjnych i dlatego miałbym 5 neuronów wyjściowych - [szczelina, kieszeń, dziura, boss, krok]
Czy miałbym rację mówiąc, że staje się to rodzajem problemu z rozpoznawaniem wzorców? Na przykład, jeśli dostarczę sieci szereg modeli szkoleniowych - wraz z etykietami opisującymi funkcję projektową, która istnieje w modelu, czy sieć nauczy się rozpoznawać określone wzorce sąsiedztwa reprezentowane w matrycy, które odnoszą się do niektórych cech projektowych?
Jestem całkowicie początkującym uczeniem maszynowym i staram się ustalić, czy to podejście zadziała, czy nie - jeśli potrzebne są dodatkowe informacje, aby zrozumieć problem, zostaw komentarz. Wszelkie uwagi lub pomoc będą mile widziane, dzięki.
źródło
Odpowiedzi:
Technicznie tak. W praktyce: nie.
Myślę, że interpretujesz pojęcie „rozpoznawanie wzorców” zbyt dosłownie. Mimo że wikipedia definiuje rozpoznawanie wzorców jako „gałąź uczenia maszynowego, która koncentruje się na rozpoznawaniu wzorców i prawidłowości w danych”, nie dotyczy to rozwiązywania problemów, które można „łatwo” wywnioskować na podstawie logicznego rozumowania.
Np. Tak mówisz
Tak jest zawsze . W typowej sytuacji uczenia maszynowego nie ma (zwykle) tej wcześniejszej wiedzy. Przynajmniej nie w takim stopniu, w jakim byłoby to „wykonalne ręcznie”.
Rozpoznawanie wzorców jest tradycyjnie statystycznym podejściem do rozwiązywania problemów, gdy stają się zbyt skomplikowane, aby je analizować przy użyciu konwencjonalnego logicznego wnioskowania i prostszych modeli regresji. Wikipedia stwierdza również (ze źródłem), że rozpoznawanie wzorców „w niektórych przypadkach jest uważane za prawie synonim uczenia maszynowego”.
To powiedziawszy: można użyć rozpoznawania wzorców w tym problemie. Jednak w tym przypadku wydaje się, że to przesada. Twój problem, o ile rozumiem, ma rzeczywiste „analityczne” rozwiązanie. To znaczy: możesz logicznie uzyskać 100% poprawny wynik przez cały czas. Algorytmy uczenia maszynowego mogłyby teoretycznie również to zrobić, w takim przypadku, a ta gałąź ML jest określana jako Meta Modeling [1].
Jednym słowem: prawdopodobnie. Najlepsza droga? Prawdopodobnie nie. Dlaczego nie pytasz?
Zawsze istnieje możliwość, że Twój model nie nauczy się dokładnie tego, czego chcesz. Ponadto masz wiele wyzwań, takich jak nadmierne dopasowanie , o które powinieneś się martwić. Jest to podejście statystyczne, jak powiedziałem. Nawet jeśli klasyfikuje wszystkie twoje dane testowe jako 100% poprawne, nie ma możliwości (chyba że sprawdzisz szalenie trudną matematykę), aby mieć 100% pewności, że zawsze będzie poprawnie klasyfikowana. Podejrzewam ponadto, że prawdopodobnie skończysz spędzać więcej czasu pracując nad swoim modelem, niż czas potrzebny na samo wyprowadzenie logiki.
Nie zgadzam się również z @Bitzel: nie zrobiłbym na ten temat CNN (sieci neuronowej splotowej). Sieci CNN są używane, gdy chcesz spojrzeć na określone części macierzy, a zależność i powiązanie między pikselami są ważne - na przykład na obrazach. Ponieważ masz tylko 1 i 0, mocno podejrzewam, że CNN byłby znacznie przesadzony. I przy całej rzadkości (wielu zerach) skończyłoby się z wieloma zerami w zwojach.
Właściwie sugerowałbym prostą waniliową (feed forward) sieć neuronową, która, pomimo rzadkości, wydaje mi się, że będzie w stanie łatwo dokonać tej klasyfikacji.
źródło
O ile rozumiem, tak, twój problem związany jest z rozpoznawaniem wzorów. Ponieważ podejście polega na klasyfikowaniu danych wejściowych za pomocą etykiet, które wcześniej udostępniasz dla sieci neuronowej, myślę, że splotowe sieci neuronowe mogą być dla ciebie problemem.
źródło
Problem
Dane szkoleniowe dla proponowanego systemu są następujące.
Wypukłe i wklęsłe nie są poprawnymi terminami opisującymi nieciągłości gradientu powierzchni. Wewnętrzna krawędź, na przykład wykonana przez frez końcowy, nie jest w rzeczywistości powierzchnią wklęsłą. Nieciągłość gradientu powierzchni, z punktu widzenia wyidealizowanego modelu bryłowego, ma promień zerowy. Z tego samego powodu zewnętrzna krawędź nie jest wypukłą częścią powierzchni.
Zamierzonym wyjściem proponowanego wyszkolonego systemu jest tablica boolowska wskazująca na obecność konkretnych stałych cech geometrycznych.
Ta tablica wartości logicznych jest również używana jako etykiety do treningu.
Możliwe zastrzeżenia w podejściu
W tym podejściu występują niezgodności mapowania. Można je z grubsza podzielić na jedną z czterech kategorii.
To tylko kilka przykładów problemów z topologią, które mogą występować często w niektórych domenach projektowania mechanicznego i zaciemniają mapowanie danych.
Te możliwe zastrzeżenia mogą, ale nie muszą dotyczyć projektu określonego w pytaniu.
Ustawienie rozmiaru twarzy równoważy wydajność z niezawodnością, ale ogranicza użyteczność. Mogą istnieć podejścia wykorzystujące jeden z wariantów RNN, które mogą pozwolić na pokrycie dowolnych rozmiarów modeli bez uszczerbku dla wydajności prostych geometrii. Takie podejście może obejmować rozłożenie matrycy jako sekwencji dla każdego przykładu, zastosowanie dobrze opracowanej strategii normalizacji dla każdej matrycy. Wypełnienie może być skuteczne, jeśli nie ma ścisłych ograniczeń dotyczących wydajności treningu i istnieje praktyczne maksimum dla liczby twarzy.
Biorąc pod uwagę liczbę i pewność jako wynik
Należy przynajmniej wziąć pod uwagę możliwość użycia nieujemnej liczby całkowitej jako niepodpisanej reprezentacji binarnej utworzonej przez agregację wielu binarnych komórek wyjściowych, zamiast pojedynczej wartości logicznej na funkcję. W dalszej kolejności zdolność liczenia funkcji może stać się ważna.
Prowadzi to do rozważenia pięciu realistycznych permutacji, które mogą być wytwarzane przez przeszkoloną sieć dla każdej cechy każdego modelu bryły geometrycznej.
Rozpoznawanie wzoru czy co?
Jeżeli klasa koncepcji funkcjonalnie aproksymowana przez sieć jest dostatecznie reprezentowana w próbce użytej do szkolenia, a próbka przykładów szkolenia jest rysowana w taki sam sposób, jak aplikacja docelowa później narysuje, przybliżenie prawdopodobnie będzie wystarczające.
W świecie teorii informacji zaciera się rozróżnienie między rozpoznawaniem wzorów a przybliżeniem funkcjonalnym, ponieważ powinna istnieć abstrakcja koncepcyjna AI na wyższym poziomie.
Wykonalność
Jeśli wyżej wymienione zastrzeżenia są do zaakceptowania przez interesariuszy projektu, przykłady są dobrze oznakowane i przedstawione w wystarczającej liczbie, a normalizacja danych, funkcja utraty, hiperparametry i układ warstw są dobrze skonfigurowane, prawdopodobne jest, że konwergencja nastąpi podczas szkolenie i rozsądny automatyczny system identyfikacji funkcji. Ponownie, jego użyteczność zależy od nowych brył geometrycznych zaczerpniętych z klasy koncepcyjnej, tak jak w przykładach szkoleniowych. Niezawodność systemu polega na tym, że szkolenie jest reprezentatywne dla późniejszych przypadków użycia.
źródło