Aracılığıyla paylaş


Eğitim: Azure Machine Learning ve IoT Edge kullanan uçtan uca bir çözüm

Şunlar için geçerlidir:yes iconevet simgesi IoT Edge 1.1

Önemli

IoT Edge 1.1 destek sonu tarihi 13 Aralık 2022. Bu ürünün, hizmetin, teknolojinin veya API’nin nasıl desteklendiği hakkında bilgi edinmek için Microsoft Ürün Yaşam Döngüsü’ne göz atın. IoT Edge'in en son sürümüne güncelleme hakkında daha fazla bilgi için IoT Edge'i Güncelleştirin bölümüne bakın.

IoT uygulamaları genellikle akıllı buluttan ve akıllı kenardan yararlanmak ister. Bu öğreticide, buluttaki IoT cihazlarından toplanan verilerle bir makine öğrenmesi modelini eğitme, bu modeli IoT Edge'e dağıtma ve modeli düzenli aralıklarla bakım ve iyileştirme adımlarında size yol gösteririz.

Uyarı

Bu öğretici kümesindeki kavramlar IoT Edge'in tüm sürümleri için geçerlidir, ancak senaryoyu denemek için oluşturduğunuz örnek cihaz IoT Edge sürüm 1.1'i çalıştırır.

Bu öğreticinin birincil amacı, IoT verilerinin makine öğrenmesi ile işlenmesini özellikle uçta tanıtmaktır. Genel bir makine öğrenmesi iş akışının birçok yönüne değinsek de bu öğretici, makine öğrenmesine ayrıntılı bir giriş olarak tasarlanmamıştır. Bu noktada kullanım örneği için yüksek oranda iyileştirilmiş bir model oluşturmaya çalışmıyoruz. IoT veri işleme için uygun bir model oluşturma ve kullanma sürecini göstermek için yeterli çabayı gösteririz.

Eğitim kılavuzunun bu bölümünde şu konular tartışılmaktadır:

  • Öğreticinin sonraki bölümlerini tamamlamak için gerekli önkoşullar.
  • Öğreticinin hedef kitlesi.
  • Öğreticide simüle edilen kullanım örneği.
  • Kullanım örneğini yerine getirmek için öğreticinin izlediği genel süreç.

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı 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çı Için Azure ücretleri uygulanır. Henüz bir Azure aboneliğiniz yoksa Ücretsiz Azure Hesabı kullanmaya başlayabilirsiniz.

Geliştirme makineniz olarak bir Azure Sanal Makinesi ayarlamak için betikleri çalıştırabileceğiniz PowerShell yüklü bir makineye de ihtiyacınız vardır.

Bu belgede aşağıdaki araç kümesini kullanacağız:

  • Veri yakalama için Azure IoT hub'ı

  • Azure Notebooks veri hazırlama ve makine öğrenmesi denemeleri için başlıca arayüz olarak kullanılmaktadır. Örnek verilerin bir alt kümesindeki bir not defterinde Python kodu çalıştırmak, veri hazırlama sırasında hızlı yinelemeli ve etkileşimli bir dönüş elde etmenin harika bir yoludur. Jupyter defterleri, betikleri bir hesaplama arka ucunda büyük ölçekte çalıştırmak için hazırlamak amacıyla da kullanılabilir.

  • Büyük ölçekte makine öğrenmesi ve görüntü oluşturma için arkauç olarak Azure Machine Learning. Azure Machine Learning altyapısını, Jupyter not defterlerinde hazırlanmış ve test edilmiş betikleri kullanarak çalıştırıyoruz.

  • Makine öğrenmesi görüntüsünün bulut dışı uygulaması için Azure IoT Edge

Açıkçası, başka seçenekler de var. Örneğin bazı senaryolarda IoT Central, IoT cihazlarından ilk eğitim verilerini yakalamak için kod içermeyen bir alternatif olarak kullanılabilir.

Hedef kitle ve roller

Bu makale kümesi, IoT geliştirme veya makine öğrenmesi konusunda daha önce deneyime sahip olmayan geliştiricilere yöneliktir. Uçta makine öğrenmesi dağıtmak için çok çeşitli teknolojilerin nasıl bağlanılacağı hakkında bilgi sahibi olmak gerekir. Bu nedenle, bu öğreticide bir IoT çözümü için bu teknolojileri birleştirmenin bir yolunu gösteren uçtan uca senaryonun tamamı ele alınır. Gerçek dünyadaki bir ortamda, bu görevler farklı uzmanlıklara sahip birkaç kişi arasında dağıtılabilir. Örneğin geliştiriciler cihaz veya bulut koduna odaklanırken, veri bilimcileri analiz modellerini tasarlar. Tek bir geliştiricinin bu öğreticiyi başarıyla tamamlayabilmesi için içgörüler ve yapılanları ve neden yapıldığını anlamak için yeterli olduğunu umdığımız daha fazla bilgi içeren bağlantılar içeren ek yönergeler sağladık.

Alternatif olarak, farklı rollere sahip iş arkadaşlarınızla birlikte öğreticiyi takip etmek için takım olabilir, bütün uzmanlığınızı kullanabilir ve bir ekip olarak işlerin nasıl bir araya geldiğini öğrenebilirsiniz.

Her iki durumda da okuyucuları yönlendirmeye yardımcı olmak için bu öğreticideki her makale kullanıcının rolünü gösterir. Bu roller şunlardır:

  • Bulut geliştirme (DevOps kapasitesinde çalışan bir bulut geliştirici dahil)
  • Veri analizi

Kullanım örneği: Tahmine dayalı bakım

Bu senaryoyu 2008'de Prognostics and Health Management Konferansı'nda (PHM08) sunulan bir kullanım örneğine dayandırdık. Amaç, bir dizi turbofan uçak motorunun kalan yararlı ömrünü (RUL) tahmin etmektir. Bu veriler MAPSS (Modüler Aero-Propulsion Sistem Benzetimi) yazılımının ticari sürümü olan C-MAPSS kullanılarak oluşturulmuştur. Bu yazılım, sistem durumu, kontrol ve motor parametrelerini rahatça simüle etmek için esnek bir turbofan motor simülasyon ortamı sağlar.

Bu öğreticide kullanılan veriler Turbofan motor bozulması simülasyonu veri kümesinden alınmıştır.

Readme dosyasından:

Deneysel Senaryo

Veri kümeleri birden çok değişkenli zaman serisinden oluşur. Her veri kümesi eğitim ve test alt kümelerine daha da ayrılır. Her zaman serisi farklı bir motordan gelir - yani veriler aynı türden motor filosundan olduğu düşünülebilir. Her motor, kullanıcı tarafından bilinmeyen farklı başlangıç yıpranma ve üretim varyasyonu dereceleriyle başlar. Bu yıpranma ve değişim normal kabul edilir, yani hata durumu olarak kabul edilmez. Motor performansı üzerinde önemli bir etkiye sahip olan üç operasyonel ayar vardır. Bu ayarlar da verilere dahil edilir. Veriler sensör gürültüsüyle kirlenmiş.

Motor, her bir zaman serisinin başlangıcında normal şekilde çalışır ve seri sırasında bir noktada bir arıza geliştirir. Eğitim kümesinde arıza, sistem hatasına kadar büyüklük kazanır. Test kümesinde, zaman serisi sistem hatasından bir süre önce sona erer. Rekabetin amacı, test kümesindeki arızadan önce kalan operasyonel döngülerin sayısını tahmin etmek, yani motorun çalışmaya devam edeceği son döngüden sonraki operasyonel döngülerin sayısını tahmin etmektir. Ayrıca test verileri için true Remaining Useful Life (RUL) değerlerini içeren bir vektör sağladı.

Veriler bir yarışma için yayımlandığından, makine öğrenmesi modellerini türetmeye yönelik çeşitli yaklaşımlar bağımsız olarak yayımlanmıştır. Örneklerin incelenmesinin, belirli bir makine öğrenmesi modelinin oluşturulmasında yer alan süreci ve mantığı anlamada yararlı olduğunu bulduk. Örneğin bkz:

GitHub kullanıcısı jancervenka tarafından uçak motoru arıza tahmin modeli.

GitHub kullanıcısı hankroark tarafından turbofan motorunun bozulması.

İşlem

Aşağıdaki resimde bu öğreticide izlediğimiz genel adımlar gösterilmektedir.

İşlem adımları için mimari diyagramı

  1. Eğitim verilerini toplama: süreç, eğitim verilerini toplayarak başlar. Bazı durumlarda veriler zaten toplanmıştır ve bir veritabanında veya veri dosyaları biçiminde kullanılabilir. Diğer durumlarda, özellikle IoT senaryolarında verilerin IoT cihazlarından ve algılayıcılarından toplanması ve bulutta depolanması gerekir.

    Bir turbofan motor koleksiyonunuz olmadığını varsayıyoruz, bu nedenle proje dosyaları NASA cihaz verilerini buluta gönderen basit bir cihaz simülatörü içeriyor.

  2. Verileri hazırlama. Çoğu durumda, cihazlardan ve algılayıcılardan toplanan ham veriler makine öğrenmesi için hazırlık gerektirir. Bu adım, makine öğrenmesi tarafından anahtarlanabilir ek bilgiler eklemek için veri temizlemeyi, verileri yeniden biçimlendirmeyi veya ön işlemeyi içerebilir.

    Uçak motoru makine verilerimiz için veri hazırlama işlemi, verilerdeki gerçek gözlemlere göre örnekteki her veri noktası için açık hata zamanı sürelerinin hesaplanması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, etki alanına son derece özeldir.

  3. Makine öğrenmesi modeli oluşturma. Hazırlanan verilere dayanarak artık modelleri eğitmek ve sonuçları birbiriyle karşılaştırmak için farklı makine öğrenmesi algoritmaları ve parametreleştirmeleri deneyebiliriz.

    Bu durumda test için model tarafından hesaplanan tahmini sonucu bir dizi motorda gözlemlenen gerçek sonuçla karşılaştırıyoruz. Azure Machine Learning'de, model kayıt defterinde oluşturduğumuz farklı model yinelemelerini yönetebiliriz.

  4. Modeli dağıtın. Başarı ölçütlerimizi karşılayan bir modele sahip olduktan sonra dağıtıma geçebiliriz. Bu, modeli REST çağrıları kullanılarak verilerle besleyebileceğiniz bir web hizmeti uygulamasına sarmalama ve analiz sonuçlarını döndürmeyi içerir. Web hizmeti uygulaması daha sonra bir docker kapsayıcısında paketlenmiş olur ve bu kapsayıcı buluta veya IoT Edge modülü olarak dağıtılabilir. Bu örnekte IoT Edge'e dağıtıma odaklanacağız.

  5. Modeli koruyun ve geliştirin. Model dağıtıldıktan sonra işimiz bitmez. Çoğu durumda veri toplamaya devam etmek ve bu verileri düzenli aralıklarla buluta yüklemek istiyoruz. Daha sonra modelimizi yeniden eğitmek ve iyileştirmek için bu verileri kullanabiliriz ve bu verileri IoT Edge'e yeniden dağıtabiliriz.

Kaynakları temizleme

Bu eğitim, her makalenin öncekilerde yapılan çalışmalara dayandığı bir dizinin parçasıdır. Son öğreticiyi tamamlayana kadar lütfen tüm kaynakları temizlemeyi bekleyin.

Sonraki adımlar

Bu kılavuz aşağıdaki bölümlerden oluşmaktadır:

  1. Geliştirme makinenizi ve Azure hizmetlerinizi ayarlayın.
  2. Makine öğrenmesi modülü için eğitim verilerini oluşturun.
  3. Makine öğrenmesi modülünü eğitin ve dağıtın.
  4. Bir IoT Edge cihazını saydam ağ geçidi olarak davranacak şekilde yapılandırın.
  5. IoT Edge modülleri oluşturun ve dağıtın.
  6. IoT Edge cihazınıza veri gönderin.

Geliştirme makinesi ayarlamak ve Azure kaynaklarını sağlamak için sonraki makaleye geçin.