Öğretici: Azure Machine Learning ve IoT Edge kullanan 1 IoT Edge
Uygulama hedefi:
IoT Edge 1,1
IoT uygulamaları genellikle akıllı buluttan ve akıllı uçtan yararlanmak ister. Bu öğreticide, buluttaki IoT cihazlarından toplanan verilerle bir makine öğrenmesi modeli eğitma, bu modeli IoT Edge'a dağıtma ve modeli düzenli aralıklarla bakımını ve bakımını yapmak için size yol gösteririz.
Not
Bu öğretici kümesinde yer alan kavramlar tüm IoT Edge için geçerlidir, ancak senaryoyu denemek için oluştursanız örnek cihaz 1.1 IoT Edge çalışır.
Bu öğreticinin temel amacı, özellikle uçta IoT verilerini makine öğrenmesi ile işlemeyi tanıtmaktır. Genel makine öğrenmesi iş akışının birçok yönüne dokunacak olurken, bu öğretici makine öğrenmesi için ayrıntılı bir giriş olarak amaçlanmaz. Bu noktada kullanım örneğinde yüksek oranda iyileştirilmiş bir model oluşturmaya çalışmayız; yalnızca IoT veri işleme için uygulanabilir bir model oluşturma ve kullanma işlemini göstermek için yeterli çaba gösteririz.
Öğreticinin bu bölümünde aşağıdakiler ele almaktadır:
- Öğreticinin sonraki bölümlerini tamamlamak için önkoşullar.
- Öğreticinin hedef kitlesi.
- Öğreticinin benzetimini yapılan kullanım durumu.
- Öğreticinin kullanım büyük/büyük/büyük harf kullanımını yerine getirmek için takip eden genel işlem.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
Öğreticiyi tamamlamak için kaynak oluşturma haklarına sahip olduğunuz bir Azure aboneliğine erişmeniz gerekir. Bu öğreticide kullanılan hizmetlerden birkaçı Azure ücretlerine tabi olacak. Henüz bir Azure aboneliğiniz yoksa, Ücretsiz Azure Hesabı ile çalışmaya başlamanız mümkün olabilir.
Geliştirme makineniz olarak Azure Sanal Makinesi ayarlamak için betikleri çalıştırarak PowerShell yüklü bir makine de gerekir.
Bu belgede aşağıdaki araç kümesi ekleyebilirsiniz:
Veri yakalama için Azure IoT hub'ı
Azure Notebooks hazırlığı ve makine öğrenmesi denemesi için ana ön uç olarak kullanılır. Örnek verilerin bir alt kümesinde not defterinde Python kodu çalıştırma, veri hazırlama sırasında hızlı bir şekilde tekrarlı ve etkileşimli bir geri dönüş elde etmek için harika bir yol sağlar. Jupyter not defterleri, betikleri işlem arka ucu içinde büyük ölçekte çalıştıracak şekilde hazırlamak için de kullanılabilir.
Azure Machine Learning makine öğrenmesi ve makine öğrenmesi görüntüsü oluşturma için bir arka uç olarak kullanın. Jupyter not Azure Machine Learning hazırlanmış ve test edilmiş betikleri kullanarak arka ucu kullanıyoruz.
Azure IoT Edge makine öğrenmesi görüntüsünün bulut dışı uygulaması için uygulama
Başka seçenekler de olduğu açıktır. Örneğin bazı senaryolarda, IoT Central IoT cihazlarından ilk eğitim verilerini yakalamak için kod olmayan bir alternatif olarak kullanılabilir.
Hedef kitle ve roller
Bu makale kümesi, IoT geliştirme veya makine öğrenmesi deneyimi olmayan geliştiricilere yöneliktir. Makine öğrenmesini uçta dağıtmak için çok çeşitli teknolojilerin nasıl bağlanacakları konusunda bilgi sahibi olmak gerekir. Bu nedenle bu öğretici, bir IoT çözümü için bu teknolojileri birleştirmenin bir yolunu göstermek için tam bir uç senaryoyu kapsar. Gerçek bir ortamda, bu görevler farklı uzmanlıklara sahip birkaç kişi arasında dağıtılmalarını sağlar. Örneğin geliştiriciler cihaz veya bulut koduna odaklanırken veri bilimcileri analiz modellerini tasarlar. Tek bir geliştiricinin bu öğreticiyi başarıyla tamamlaması için içgörülerle ek rehberlik sağladık ve nelerin ve neden olduğunu anlamak için yeterli olduğunu umarız daha fazla bilgi için bağlantılar sağladık.
Alternatif olarak, öğreticiyi birlikte takip etmek, dayanacak tüm uzmanlığınızı getirmek ve ekip olarak her şeyin nasıl bir araya getirici olduğunu öğrenmek için farklı rollere sahip iş arkadaşları ile birlikte çalışabileceksiniz.
Her iki durumda da okuyucuyu yönlendirmeye yardımcı olmak için bu öğreticide yer alan her makale kullanıcının rolünü gösterir. Bu roller şunlardır:
- Bulut geliştirme (tek bir kapasitede çalışan bir bulut DevOps dahil)
- Veri analizi
Kullanım durumu: Tahmine dayalı bakım
Bu senaryoyu 2008'de Yapılan Prognoz ve Sağlık Yönetimi Konferansı'nda (PHM08) sunulan bir kullanım örneğine dayandırmıştık. Burada amaç, bir dizi turbofan uçak motorunun kalan yararlı yaşam sürelerini (RUL) tahmin etmektir. Bu veriler, MAPSS (Modüler Veya Sistem Benzetimi) yazılımının ticari sürümü olan C-MAPSS Aero-Propulsion kullanılarak oluşturulmuş. Bu yazılım sistem durumu, denetim ve motor parametrelerini rahatça simüle etmek için esnek bir turbofan motor benzetimi ortamı sağlar.
Bu öğreticide kullanılan veriler, Turbofan motor performans düşüşü simülasyonu veri kümesinden alınır.
Beni oku dosyasından:
Deneysel Senaryo
Veri kümeleri birden çok değişkenli zaman serisi içerir. Her veri kümesi eğitim ve test alt kümelerine ayrılmıştır. Her zaman serisi farklı bir altyapıdan alınır; örneğin, veriler aynı türde bir motor filosundan olduğu düşünülebilir. Her motor, kullanıcı tarafından bilinmeyen farklı derecelerde ilk yıpranma ve üretim varyasyonu ile başlar. Bu yıpranma ve varyasyon normal kabul edilir, yani bir hata koşulu olarak kabul edilir. Altyapı performansı üzerinde önemli bir etkiye sahip olan üç işletimsel ayar vardır. Bu ayarlar verilere de dahil edilir. Veriler algılayıcı kirliliğiyle bozulmuş.
Altyapı her zaman serisinin başında normal bir şekilde çalışıyor ve serinin bir noktasında hata geliştiriyor. Eğitim kümesinde hata, sistem hatasına kadar artar. Test kümesinde, zaman serisi sistem hatasından bir süre önce sona erer. Rekabetin amacı, test kümesinde hatadan önce kalan işlem döngülerinin sayısını tahmin etmektir; örneğin, motorun çalışmaya devam ettiği son döngüden sonra operasyonel döngülerin sayısı. Ayrıca test verileri için true Remaining Useful Life (RUL) değerlerinin vektörü sağlandı.
Veriler bir rekabet için yayımlandıklarından, makine öğrenmesi modellerini türetmeye yönelik çeşitli yaklaşımlar bağımsız olarak yayımlanmıştır. Örnekleri incelemenin, belirli bir makine öğrenmesi modelinin oluşturulmasıyla ilgili süreci ve gerekçeleri anlamada yararlı olduğunu bulduk. Bkz. örneğin:
Kullanıcı jancervenka tarafından GitHub uçak motoru hatası tahmin modeli.
Kullanıcının motor performansında GitHub turbofan motor performansı.
İşleme
Aşağıdaki resimde bu öğreticide takip edeceğiz kaba adımlar gösterilmiştir:

Eğitim verilerini toplama: İşlem, eğitim verileri toplayarak başlar. Bazı durumlarda veriler zaten toplanmış ve bir veritabanında veya veri dosyaları şeklinde kullanılabilir. Diğer durumlarda, özellikle IoT senaryoları için verilerin IoT cihazlarından ve algılayıcılardan toplanmış ve bulutta depolanmış olması gerekir.
Bir motor koleksiyonuna sahip olmadığınız için proje dosyalarında NASA cihaz verilerini buluta gönderen basit bir cihaz simülatörü vardır.
Verileri hazırlayın. Çoğu durumda, cihazlardan ve algılayıcılardan toplanan ham veriler, makine öğrenmesi için hazırlık gerektirir. Bu adım veri temizleme, veri yeniden düzenleme veya makine öğrenmesi için önemli olan ek bilgileri eklemeye yönelik ön işlemeyi içerir.
Uçak motorunun makine verileri için veri hazırlama işlemi, verilerle ilgili gerçek gözlemlere göre örnekteki her veri noktası için açık hata süresi sürelerinin hesaplanmasına dayalıdır. Bu bilgiler, makine öğrenmesi algoritmasının gerçek algılayıcı veri desenleri ile motorun beklenen kalan yaşam süresi arasındaki bağıntıları bulmasını sağlar. Bu adım yüksek oranda etki alanına özgü bir adımdır.
Makine öğrenmesi modeli oluşturma. Hazırlanan verilere dayanarak, modelleri eğitmek ve sonuçları karşılaştırmak için farklı makine öğrenmesi algoritmaları ve parametreleştirmeleri ile denemeler yapabiliyoruz.
Bu durumda test için model tarafından hesaplanan tahmin edilen sonucu bir dizi motorda gözlemlenen gerçek sonuçla karşılaştırmış oluruz. Bu Azure Machine Learning model kayıt defterinde oluşturdukları farklı model yinelemelerini yönetebiliriz.
Modeli dağıtın. Başarı ölçütlerimizi uygun bir modele sahip olduktan sonra dağıtıma geçebilirsiniz. Bu, modeli REST çağrıları ve dönüş analizi sonuçları kullanılarak verilerle besleniyor bir web hizmeti uygulamasına sarmalamayı içerir. Web hizmeti uygulaması daha sonra bir docker kapsayıcısı içinde paket haline geliyor ve bu kapsayıcı bulutta veya bir IoT Edge dağıtılabilir. Bu örnekte, dağıtıma ve dağıtıma IoT Edge.
Modelin bakımını ve iyileştirmesini sağlar. Model dağıtıldıktan sonra çalışmamız yapılmaz. Çoğu durumda verileri toplamaya devam etmek ve bu verileri düzenli aralıklarla buluta yüklemek istiyoruz. Daha sonra bu verileri kullanarak modelimizi yeniden eğitecek ve geliştirebilirsiniz. Daha sonra modelinizi yeniden IoT Edge.
Kaynakları temizleme
Bu öğretici, her makalenin öncekilerde yapılan çalışmalar üzerinde derleme yapılan bir kümenin bir parçasıdır. Lütfen son öğreticiyi tamamlayana kadar tüm kaynakları temizlemeyi bekleyin.
Sonraki adımlar
Bu öğretici aşağıdaki bölümlere ayrılmıştır:
- Geliştirme makinenizi ve Azure hizmetlerinizi ayarlayın.
- Makine öğrenmesi modülü için eğitim verilerini oluşturma.
- Makine öğrenmesi modülünü eğitin ve dağıtın.
- Bir IoT Edge saydam ağ geçidi olarak davranacak şekilde yapılandırma.
- Yeni modüller IoT Edge dağıtın.
- Verileri IoT Edge gönderin.
Bir geliştirme makinesi ayarlamak ve Azure kaynaklarını sağlama için sonraki makaleye devam edin.