Pembelajaran mesin di Azure IoT Edge vision AI

Pembelajaran mesin di Azure IoT Edge vision AI

IoT Edge perangkat memiliki memori, kapasitas komputasi, dan kemampuan daya yang terbatas. Karakteristik ini menghadirkan tantangan dan persyaratan unik untuk solusi pembelajaran mesin (ML). Artikel ini membahas ML data dan pilihan arsitektur untuk solusi Azure IoT Edge vision AI. Artikel ini juga membahas proses memilih, melatih, dan menyebarkan solusi dan alat ML.

Model ML pelatihan adalah proses berulang dan berbasis data. Memilih data dan arsitektur yang akan digunakan untuk solusi ML juga merupakan proses berulang. Jika model ML yang dipilih berkinerja buruk, Anda dapat mengatasi masalah melalui eksperimen dan pelatihan ulang.

Saat menyelidiki dan memilih model ML untuk skenario IoT Edge, ikuti panduan berikut:

  • Tentukan masalah yang harus diselesaikan dengan jelas.
  • Pastikan tim Anda memiliki keahlian yang memadai dalam domain masalah, jaringan ML dan neural, serta penyebaran IoT Edge.
  • Pahami jenis data yang dikumpulkan perangkat, untuk menentukan jenis algoritma ML untuk digunakan.
  • Pastikan untuk menggunakan data perwakilan, dengan variabilitas yang cukup untuk mewakili semua kelas.
  • Pertimbangkan cara menyelesaikan masalah tanpa ML, atau dengan algoritma ML paling sederhana.
  • Rencanakan untuk menguji beberapa arsitektur ML yang memiliki kapasitas pembelajaran yang berbeda.
  • Memiliki cara untuk mengumpulkan data baru dari perangkat untuk melatih kembali model ML.

Data pembelajaran mesin

Sumber dan atribut data menentukan cara membangun sistem. Sebelum Anda melatih model apa pun, kumpulkan dan periksa data dunia nyata. Untuk vision AI, sinyal data streaming dapat berupa gambar, video, atau data Light Detection and Ranging (Lidar).

Pastikan untuk mengumpulkan dan menggunakan himpunan data seimbang yang sama-sama mewakili semua kelas atau kategori data. Semakin representatif data yang dikumpulkan untuk pelatihan, semakin baik performa model.

Himpunan data untuk pelatihan model ML dibagi menjadi subset pelatihan, validasi, dan pengujian.

Himpunan data pelatihan digunakan untuk pelatihan model aktual, melalui banyak pass atau iterasi yang disebut epoch.

Sepanjang pelatihan, model diperiksa spot untuk performa pada himpunan data validasi .

Setelah pelatihan selesai, himpunan data pengujian diteruskan melalui model untuk menilai seberapa baik performa model sebagai proksi ke dunia nyata.

Jangan optimalkan model untuk satu himpunan data pengujian. Ada baiknya memiliki beberapa himpunan data pengujian yang berbeda.

ML pertimbangan data

Semua jenis ML menggunakan transformasi data untuk membersihkan atau memformat ulang data untuk input model. Transformasi diperlukan baik selama pelatihan maupun selama inferensi, atau menggunakan model untuk menilai data baru.

Pembelajaran mendalam, digunakan dalam beban kerja AI penglihatan, menemukan sinyal dalam kebisingan lebih baik daripada ML tradisional. Menggunakan model pembelajaran mendalam membantu menghindari rekayasa dan praprossesi fitur yang mahal dan sulit.

Untuk solusi AI visi IoT Edge, praproscessing tingkat lanjut seperti mendenoisasi, menyesuaikan kecerahan atau kontras, atau transformasi dari RGB ke HSV dapat sangat memengaruhi performa model. Terkadang, Anda hanya dapat sepenuhnya mengamati dan mengevaluasi efek ini dalam situasi dunia nyata.

Setelah menginstal perangkat keras IoT Edge di lokasi permanennya, pantau aliran data masuk untuk penyimpangan data. Penyimpangan data adalah penyimpangan data saat ini dari data asli, dan dapat menjadi penyebab penurunan performa dan akurasi model. Penurunan performa juga dapat disebabkan oleh faktor lain, seperti masalah perangkat keras atau kamera.

Sistem juga harus mengumpulkan data baru untuk melatih kembali putaran, dan untuk memantau komponen perangkat keras untuk degradasi atau kegagalan.

ML rekomendasi data

Berikut adalah beberapa rekomendasi pengumpulan data untuk model ML visi:

  • Gunakan himpunan data seimbang dengan semua kelas yang diwakili.
  • Pastikan data sewakilas mungkin.
  • Menyiapkan sistem untuk menguji penyimpangan data.
  • Memiliki sistem untuk mengumpulkan data baru untuk pelatihan ulang.
  • Hanya menjalankan pengujian yang ditetapkan melalui model ML baru sekali. Iterasi dan pengujian ulang pada set pengujian yang sama dapat menyebabkan overfitting ke set pengujian.

Arsitektur pembelajaran mesin

ML arsitektur adalah tata letak operasi matematika yang memproses input data menjadi output yang dapat ditindaklanjuti. Dalam pembelajaran mendalam, arsitektur menggambarkan jumlah dan pengaturan lapisan dan neuron di setiap lapisan jaringan saraf dalam. Parameter yang dapat dipelajari berkorelasi dengan jumlah lapisan dan neuron per lapisan. Jumlah parameter yang dapat dipelajari menentukan kapasitas hafalan model.

Anda memilih arsitektur ML untuk mencapai metrik performa terbaik, seperti akurasi. Dalam fase eksplorasi, pertimbangkan beberapa arsitektur yang berbeda sebelum memilihnya. Anda dapat memperbarui pilihan data dan pilihan arsitektur selama fase ini.

pertimbangan model ML

Selama pelatihan, nilai penilaian melewati pengoptimalan dan pembaruan berat. Masalah dapat muncul saat melatih model ML, setelah pelatihan, atau bahkan pada titik inferensi pada perangkat. Overfitting dan underfitting adalah dua masalah umum yang ditemukan selama pelatihan dan pengujian.

Overfitting

Overfitting terjadi ketika model cocok dengan data pelatihan atau pengujian sehingga tidak dapat digeneralisasi dengan baik ke data baru. Misalnya, model hanya berkinerja baik di dalam ruangan, karena data pelatihan berasal dari pengaturan dalam ruangan. Overfitting dapat memberikan rasa keberhasilan yang salah, karena metrik performa mungkin sangat baik ketika data input terlihat seperti data pelatihan.

Banyak masalah dapat menyebabkan overfitting, beberapa di luar cakupan artikel ini. Penyebab umum overfitting meliputi:

  • Model ini belajar fokus pada fitur non-representatif yang hanya ada dalam himpunan data pelatihan.
  • Data pelatihan tidak memiliki kompleksitas atau variasi yang cukup.
  • Model ini dilatih melalui terlalu banyak iterasi.
  • Arsitektur model memiliki terlalu banyak parameter yang dapat dipelajari.

Underfitting

Underfitting terjadi ketika model telah menggeneralisasi begitu banyak sehingga tidak dapat membedakan antara kelas dengan percaya diri. Kehilangan pelatihan tidak dapat diterima tinggi.

Penyebab umum underfitting meliputi:

  • Tidak ada cukup sampel yang tersedia dalam data pelatihan.
  • Model ini dilatih melalui terlalu sedikit iterasi dan diregeneralisasi secara berlebihan.
  • Model tidak dapat mengenali objek, atau memiliki pengenalan yang buruk dan nilai kerugian tinggi selama pelatihan.

Kapasitas

Kapasitas mengacu pada ukuran jaringan dan jumlah parameter yang dapat dipelajari. Arsitektur ML dapat memiliki kapasitas yang terlalu banyak atau terlalu sedikit. Pembelajaran transfer terjadi ketika beberapa lapisan jaringan ditetapkan sebagai tidak dapat dilatih, atau dibekukan. Meningkatkan kapasitas berarti membuka lebih banyak lapisan sebelumnya di jaringan. Kapasitas yang lebih sedikit berarti hanya menggunakan beberapa lapisan terakhir dalam pelatihan, dengan sisanya dibekukan.

Tidak ada aturan yang keras dan cepat untuk menentukan jumlah lapisan yang diperlukan dalam jaringan neural dalam. Beberapa arsitektur model mungkin perlu dievaluasi dalam tugas ML. Secara umum, mulailah dengan jaringan yang lebih kecil dan lebih sedikit lapisan dan parameter. Tingkatkan kompleksitas secara bertahap.

Kecepatan

Pertimbangan lain untuk pilihan arsitektur adalah persyaratan kecepatan inferensi. Kecepatan inferensi yang lebih cepat dapat dikaitkan dengan performa, akurasi, keyakinan, atau presisi yang lebih rendah. Menilai dan menentukan kecepatan yang dapat diterima versus tradeoff akurasi untuk kebutuhan Anda.

ML rekomendasi model

Diskusi dasar tentang pelatihan ML dan inferensi pada pertimbangan sebelumnya, dan persyaratan khusus perusahaan apa pun. Jika kebijakan perusahaan memungkinkan, solusi sumber terbuka memberikan banyak kemungkinan algoritma ML. Sebagian besar pekerjaan ML mutakhir ada di domain sumber terbuka.

Berikut adalah rekomendasi utama untuk membuat keputusan arsitektur model ML:

  • Perhatikan overfitting dan underfitting.
  • Uji beberapa arsitektur ML.
  • Pertukaran antara terlalu banyak kapasitas jaringan dan terlalu sedikit. Mulailah dengan terlalu sedikit, dan bangun dari sana.
  • Perdagangkan antara metrik kecepatan dan performa seperti akurasi.
  • Selidiki solusi ML sumber terbuka jika memungkinkan.
  • Jangan mengulangi tanpa batas waktu. Ketika performa model ML dapat diterima, fase eksplorasi selesai.

Penyebaran model pada perangkat IoT Edge

Proses penyebaran model IoT Edge ML mengikuti pola siklus dan berulang.

Pertama, rumuskan pernyataan masalah yang jelas dan berbasis data, dan putuskan hasil dan metrik keberhasilan yang diinginkan. Kemudian, ikuti langkah-langkah yang diilustrasikan dalam diagram berikut:

Diagram showing the data science cycle for IoT Edge vision AI projects.

Mengumpulkan atau memperoleh data dari sumber data perwakilan.

Umumnya, semakin banyak data semakin baik, dan semakin banyak varian data, semakin baik generalisasinya. Pengumpulan atau akuisisi data dapat menjadi pencarian gambar online dari perangkat yang saat ini disebarkan.

Beri label data.

Anda dapat memberi label data untuk sejumlah kecil gambar internal, seperti saat menggunakan pembelajaran transfer. Jika banyak gambar memerlukan pelabelan, Anda dapat menyewa vendor untuk pengumpulan dan pelabelan data.

Melatih model dengan kerangka kerja ML.

Pilihan kerangka kerja biasanya tergantung pada sampel kode yang tersedia sumber terbuka atau internal, dan keahlian dan preferensi tim. ML kerangka kerja seperti TensorFlow dan PyTorch memiliki API Python dan C++.

Bahasa kode yang dipilih sebagian menentukan API atau SDK apa yang akan digunakan untuk pelatihan dan inferensi model ML. API atau SDK kemudian menentukan jenis model ML, perangkat, dan modul IoT Edge untuk digunakan.

Misalnya, jika pengembang aplikasi membangun aplikasi C++, gunakan kerangka kerja seperti PyTorch, TensorFlow, atau CNTK yang memiliki API inferensi C++. API inferensi dan pelatihan PyTorch C++ berfungsi dengan baik dengan API OpenCV C++.

Anda dapat menggunakan Azure Machine Learning untuk melatih model menggunakan kerangka kerja dan pendekatan ML apa pun. Azure Machine Learning agnostik kerangka kerja, memiliki pengikatan Python dan R, dan mencakup banyak pembungkus di sekitar kerangka kerja populer.

Konversikan model untuk inferensi pada perangkat.

Anda hampir selalu harus mengonversi model ML untuk bekerja dengan runtime IoT Edge tertentu. Konversi model biasanya mencakup pengoptimalan seperti inferensi yang lebih cepat dan jejak model yang lebih kecil. Proses ini berbeda untuk setiap kerangka kerja dan runtime ML. ONNX dan MMdnn adalah beberapa kerangka kerja interoperabilitas sumber terbuka yang tersedia.

Bangun solusi untuk perangkat.

Anda biasanya membangun solusi pada jenis perangkat yang sama dengan yang Anda gunakan untuk penyebaran akhir, karena file biner khusus sistem.

Dengan menggunakan runtime, sebarkan solusi ke perangkat.

Pilih runtime, biasanya bersama dengan pilihan kerangka kerja ML, dan sebarkan solusi yang dikompilasi. Runtime Azure IoT Edge adalah sistem berbasis Docker yang dapat menyebarkan model ML sebagai kontainer.

Terus kumpulkan data yang akan digunakan untuk pelatihan ulang dan pemantauan.

Diagram berikut menunjukkan contoh proses ilmu data yang menggunakan alat sumber terbuka untuk alur kerja penyebaran. Jenis data dan drive ketersediaan sebagian besar pilihan, termasuk perangkat dan perangkat keras yang dipilih.

Diagram showing an example IoT Edge vision AI workflow.

Jika organisasi Anda sudah memiliki alur kerja ilmu data atau pengembangan aplikasi, beberapa rekomendasi lainnya berlaku:

  • Memiliki sistem penerapan versi kode, model, dan data.
  • Memiliki rencana otomatisasi untuk pengujian kode dan integrasi.
  • Gunakan aspek proses ilmu data, seperti pemicu dan proses build/rilis, untuk mempercepat waktu produksi dan mempromosikan kolaborasi tim.

Berikut adalah ML kunci dan pertimbangan penyebaran ilmu data untuk skenario AI visi IoT Edge:

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *