Menggunakan jaringan saraf untuk mengenali pola dalam matriks

10

Saya mencoba mengembangkan jaringan saraf yang dapat mengidentifikasi fitur desain dalam model CAD (yaitu slot, bos, lubang, kantong, langkah).

Data input yang ingin saya gunakan untuk jaringan adalah matriks anxn (di mana n adalah jumlah wajah dalam model CAD). A '1' di segitiga kanan atas dalam matriks mewakili hubungan cembung antara dua wajah dan '1' di segitiga kiri bawah mewakili hubungan cekung. Nilai nol di kedua posisi berarti wajah tidak berdekatan. Gambar di bawah ini memberikan contoh matriks seperti itu. masukkan deskripsi gambar di sini

Katakanlah saya menetapkan ukuran model maksimum ke 20 wajah dan menerapkan bantalan untuk apa pun yang lebih kecil dari itu untuk membuat input ke jaringan ukuran konstan.

Saya ingin dapat mengenali 5 fitur desain yang berbeda dan karenanya akan memiliki 5 output neuron - [slot, pocket, hole, boss, step]

Apakah saya benar mengatakan bahwa ini menjadi semacam masalah 'pengenalan pola'? Sebagai contoh, jika saya memasok jaringan dengan sejumlah model pelatihan - bersama dengan label yang menggambarkan fitur desain yang ada dalam model, akankah jaringan belajar untuk mengenali pola kedekatan spesifik yang diwakili dalam matriks yang terkait dengan fitur desain tertentu?

Saya seorang pemula yang lengkap dalam pembelajaran mesin dan saya mencoba untuk menangani apakah pendekatan ini akan berhasil atau tidak - jika ada informasi lebih lanjut diperlukan untuk memahami masalah ini, berikan komentar. Masukan atau bantuan apa pun akan dihargai, terima kasih.

Darren Taggart
sumber
1
Ini terlihat sangat menarik. Tapi segitiga apa yang kamu bicarakan? Bisakah Anda menggambarkannya dengan jelas?
FelicityC

Jawaban:

1

Apakah saya benar mengatakan bahwa ini menjadi semacam masalah 'pengenalan pola'?

Secara teknis, ya. Dalam praktiknya: tidak.

Saya pikir Anda mungkin menafsirkan istilah "pengenalan pola" agak terlalu harfiah. Meskipun wikipedia mendefinisikan Pengenalan Pola sebagai "cabang pembelajaran mesin yang berfokus pada pengenalan pola dan keteraturan dalam data", ini bukan tentang memecahkan masalah yang dapat "dengan mudah" disimpulkan dengan alasan logis.

Misalnya kamu mengatakan itu

A '1' di segitiga kanan atas dalam matriks mewakili hubungan cembung antara dua wajah dan '1' di segitiga kiri bawah mewakili hubungan cekung

Ini selalu benar . Dalam situasi pembelajaran mesin yang khas, Anda tidak akan (biasanya) memiliki pengetahuan sebelumnya ini. Setidaknya tidak sejauh bahwa itu akan dapat ditelusuri untuk "diselesaikan dengan tangan".

Pengenalan pola secara konvensional merupakan pendekatan statistik untuk memecahkan masalah ketika mereka menjadi terlalu kompleks untuk dianalisis dengan penalaran logis konvensional dan model regresi sederhana. Wikipedia juga menyatakan (dengan sumber) bahwa pengenalan pola "dalam beberapa kasus dianggap hampir identik dengan pembelajaran mesin".

Yang sedang berkata: Anda bisa menggunakan pengenalan pola pada masalah ini. Namun, sepertinya ini berlebihan dalam hal ini. Masalah Anda, sejauh yang saya mengerti, memiliki solusi "analitis" yang sebenarnya. Yaitu: Anda dapat, dengan logika, mendapatkan hasil yang benar 100% setiap saat. Algoritma pembelajaran mesin bisa, secara teori, juga melakukan ini, dan dalam hal itu, dan cabang ML ini disebut sebagai Meta Modeling [1].

Sebagai contoh, jika saya memasok jaringan dengan sejumlah model pelatihan - bersama dengan label yang menggambarkan fitur desain yang ada dalam model, akankah jaringan belajar untuk mengenali pola kedekatan spesifik yang diwakili dalam matriks yang terkait dengan fitur desain tertentu?

Dalam satu kata: Mungkin. Cara terbaik untuk pergi? Mungkin tidak. Kenapa tidak, Anda bertanya?

Selalu ada kemungkinan bahwa model Anda tidak mempelajari apa yang Anda inginkan. Selain itu, Anda memiliki banyak tantangan seperti overfitting yang perlu Anda perhatikan sendiri. Ini pendekatan statistik, seperti yang saya katakan. Bahkan jika itu mengklasifikasikan semua data pengujian Anda sebagai 100% benar, tidak ada cara (kecuali Anda memeriksa matematika yang sangat sulit diolah) untuk menjadi 100% yakin bahwa itu akan selalu mengklasifikasikan dengan benar. Saya lebih lanjut curiga bahwa Anda juga akan berakhir menghabiskan lebih banyak waktu mengerjakan model Anda maka waktu yang diperlukan untuk hanya menyimpulkan logika.

Saya juga tidak setuju dengan @Bitzel: Saya tidak akan melakukan CNN (jaringan saraf convolutional) dalam hal ini. CNN digunakan ketika Anda ingin melihat bagian-bagian tertentu dari matriks, dan hubungan dan keterhubungan antara piksel adalah penting - misalnya pada gambar. Karena Anda hanya memiliki 1 dan 0, saya sangat curiga bahwa CNN akan sangat berlebihan. Dan dengan semua sparsity (banyak nol) Anda akan berakhir dengan banyak nol dalam konvolusi.

Saya benar-benar menyarankan jaringan saraf vanilla (umpan maju), yang, meskipun jarang, saya pikir akan dapat melakukan klasifikasi ini dengan mudah.

Andreas Storvik Strauman
sumber
1
Jawaban yang sangat teliti. Salah satu versi singkatnya adalah bahwa untuk pertanyaan yang memiliki solusi analitis, ML biasanya bukan pendekatan yang tepat.
Amrinder Arora
0

Sejauh yang saya mengerti, ya masalah Anda terkait dengan pengenalan pola. Karena pendekatannya adalah untuk mengklasifikasikan input dengan label yang sebelumnya Anda berikan untuk jaringan syaraf, saya pikir jaringan syaraf convolutional dapat bekerja untuk masalah Anda.

Bitzel
sumber
0

Masalah

Data pelatihan untuk sistem yang diusulkan adalah sebagai berikut.

  • Matriks Boolean mewakili kedekatan permukaan dari desain geometris yang solid
  • Juga diwakili dalam matriks adalah diferensiasi antara sudut tepi interior dan eksterior
  • Label (dijelaskan di bawah)

Cembung dan cekung bukan istilah yang tepat untuk menggambarkan diskontinuitas gradien permukaan. Tepi interior, seperti yang dibuat oleh end mill, sebenarnya bukan permukaan cekung. Diskontinuitas gradien permukaan, dari sudut pandang model solid yang diidealkan, memiliki radius nol. Tepi luar bukan bagian cembung dari permukaan karena alasan yang sama.

Keluaran yang dimaksudkan dari sistem terlatih yang diusulkan adalah array Boolean yang menunjukkan keberadaan fitur desain geometris padat yang spesifik.

  • Satu slot atau lebih
  • Satu atau lebih bos
  • Satu lubang atau lebih
  • Satu atau lebih kantong
  • Satu atau lebih langkah

Array nilai Boolean ini juga digunakan sebagai label untuk pelatihan.

Kemungkinan Peringatan dalam Pendekatan

Ada pemetaan ketidaksesuaian dalam pendekatan ini. Mereka jatuh ke dalam salah satu dari empat kategori.

  • Ambiguitas dibuat dengan memetakan topologi dalam model CAD ke matriks - geometri solid yang primernya tidak ditangkap dalam pengkodean matriks
  • Model CAD yang tidak memiliki matriks - kasus di mana tepi berubah dari sudut dalam ke luar atau muncul dari lengkungan
  • Ambiguitas dalam identifikasi fitur dari matriks - tumpang tindih antara fitur yang dapat mengidentifikasi pola dalam matriks
  • Matriks yang menjelaskan fitur-fitur yang tidak termasuk dalam lima - ini bisa menjadi masalah kehilangan data hilir dalam pengembangan

Ini hanya beberapa contoh masalah topologi yang mungkin umum di beberapa domain desain mekanik dan mengaburkan pemetaan data.

  • Sebuah lubang memiliki matriks yang sama dengan bingkai kotak dengan jari-jari internal.
  • Jari-jari eksternal dapat menyebabkan penyederhanaan yang berlebihan dalam matriks.
  • Lubang yang berpotongan dengan tepi mungkin tidak dapat dibedakan dari topologi lain dalam bentuk matriks.
  • Dua atau lebih berpotongan melalui lubang dapat menghadirkan ambiguitas kedekatan.
  • Flensa dan tulang rusuk yang mendukung bos bundar dengan lubang tengah mungkin tidak bisa dibedakan.
  • Bola dan torus memiliki matriks yang sama.
  • Disk dan band dengan palang heksagonal dengan putaran 180 derajat memiliki matriks yang sama.

Kemungkinan peringatan ini mungkin atau mungkin tidak menjadi perhatian bagi proyek yang didefinisikan dalam pertanyaan.

Mengatur efisiensi ukuran wajah menyeimbangkan dengan keandalan tetapi membatasi kegunaan. Mungkin ada pendekatan yang memanfaatkan salah satu varian RNN, yang dapat memungkinkan cakupan ukuran model arbitrer tanpa mengurangi efisiensi untuk geometri sederhana. Pendekatan semacam itu mungkin melibatkan perluasan matriks sebagai urutan untuk setiap contoh, menerapkan strategi normalisasi yang disusun dengan baik untuk masing-masing matriks. Padding mungkin efektif jika tidak ada kendala ketat pada efisiensi pelatihan dan maksimum praktis untuk jumlah wajah ada.

Mempertimbangkan Hitungan dan Kepastian sebagai Output

Untuk menangani beberapa ambiguitas ini, suatu kepastian [0,0,1.0] bisa menjadi rentang fungsi aktivasi sel output tanpa mengubah pelabelan data pelatihan.

Kemungkinan menggunakan output integer non-negatif, sebagai representasi biner yang tidak ditandatangani yang dibuat dengan menggabungkan beberapa sel output biner, alih-alih Boolean tunggal per fitur harus setidaknya dipertimbangkan juga. Di hilir, kemampuan untuk menghitung fitur mungkin menjadi penting.

Hal ini menyebabkan lima permutasi realistis untuk dipertimbangkan, yang dapat dihasilkan oleh jaringan terlatih untuk setiap fitur dari setiap model geometri padat.

  • Boolean menunjukkan keberadaan
  • Integer non-negatif menunjukkan jumlah instance
  • Boolean dan kepastian nyata dari satu atau lebih contoh
  • Integer non-negatif mewakili jumlah instance yang paling mungkin dan kepastian nyata dari satu atau lebih instance
  • Rata-rata riil dan standar deviasi non-negatif

Pengenalan Pola atau Apa?

Dalam budaya saat ini, menerapkan jaringan buatan untuk masalah ini biasanya tidak digambarkan sebagai pengenalan pola dalam arti penglihatan komputer atau pemrosesan audio. Hal ini dianggap sebagai pembelajaran pemetaan fungsional yang kompleks melalui konvergensi ke arah kasar pemetaan ide, diberikan kriteria kedekatan, akurasi, dan keandalan. Parameter fungsif, diberi input X, didorong ke arah label terkait Y selama pelatihan.

f(X)Y

Jika kelas konsep secara fungsional didekati oleh jaringan cukup diwakili dalam sampel yang digunakan untuk pelatihan dan sampel contoh pelatihan diambil dengan cara yang sama seperti aplikasi target nantinya akan menggambar, perkiraan kemungkinan akan cukup.

Dalam dunia teori informasi, ada kekaburan perbedaan antara pengenalan pola dan perkiraan fungsional, karena harus ada dalam abstraksi konseptual AI tingkat yang lebih tinggi.

Kelayakan

Apakah jaringan akan belajar memetakan matriks ke [larik] Boolean [indikator] fitur desain?

Jika peringatan yang tercantum di atas dapat diterima oleh para pemangku kepentingan proyek, contoh-contoh diberi label dengan baik dan disediakan dalam jumlah yang cukup, dan normalisasi data, fungsi kehilangan, parameter-hyper, dan pengaturan lapisan diatur dengan baik, kemungkinan konvergensi akan terjadi selama pelatihan dan sistem identifikasi fitur otomatis yang wajar. Sekali lagi, kegunaannya bergantung pada geometri solid baru yang diambil dari kelas konsep seperti contoh pelatihan. Keandalan sistem bergantung pada pelatihan yang mewakili kasus penggunaan nanti.

Douglas Daseeco
sumber