Otomatik makine öğrenmesi (AutoML) nedir?
ŞUNLAR IÇIN GEÇERLIDIR: Python SDK'sı azure-ai-ml v2 (geçerli)
Otomatik ml veya AutoML olarak da adlandırılan otomatik makine öğrenmesi, makine öğrenmesi modeli geliştirmenin zaman alan, yinelemeli görevlerini otomatikleştirme işlemidir. Veri bilimcilerinin, analistlerin ve geliştiricilerin yüksek ölçek, verimlilik ve üretkenlikle ML modelleri oluşturmasına ve model kalitesini sürdürmesine olanak tanır. Azure Machine Learning'de otomatik ML, Microsoft Research bölümünden gelen bir ilerlemeyi temel alır.
- Kod deneyimli müşteriler için Azure Machine Learning Python SDK'sını yükleyin. Öğretici: AutoML ve Python ile nesne algılama modelini eğitme (önizleme) ile çalışmaya başlama.
AutoML nasıl çalışır?
Eğitim sırasında Azure Machine Learning, sizin için farklı algoritmaları ve parametreleri deneyen birçok işlem hattını paralel olarak oluşturur. Hizmet, her yinelemenin eğitim puanına sahip bir model ürettiği özellik seçimleri ile eşleştirilmiş ML algoritmaları aracılığıyla yinelenir. İyileştirme yapmak istediğiniz ölçümün puanı ne kadar iyi olursa, modelin verilerinizi "sığdırmak" için o kadar iyi olduğu kabul edilir. Denemede tanımlanan çıkış ölçütlerine ulaştığında durdurulur.
Azure Machine Learning'i kullanarak aşağıdaki adımlarla otomatik ML eğitim denemelerinizi tasarlayabilir ve çalıştırabilirsiniz:
Çözülecek ML sorununu belirleyin: sınıflandırma, tahmin, regresyon, görüntü işleme veya NLP.
Kod öncelikli bir deneyim mi yoksa kod içermeyen bir studio web deneyimi mi istediğinizi seçin: Kod öncelikli deneyimi tercih eden kullanıcılar Azure Machine Learning SDKv2'yi veya Azure Machine Learning CLIv2'yi kullanabilir. Öğreticiyi kullanmaya başlama: AutoML ve Python ile nesne algılama modelini eğitme. Sınırlı veya kod içermeyen bir deneyimi tercih eden kullanıcılar adresinden Azure Machine Learning stüdyosu https://ml.azure.comweb arabirimini kullanabilir. Öğreticiyi kullanmaya başlama: Azure Machine Learning'de otomatik ML ile sınıflandırma modeli oluşturma.
Etiketlenen eğitim verilerinin kaynağını belirtin: Verilerinizi Birçok farklı yolla Azure Machine Learning'e getirebilirsiniz.
Farklı modeller üzerinde kaç yineleme olduğunu, hiper parametre ayarlarını, gelişmiş ön işlemeyi/özellik geliştirmeyi ve en iyi modeli belirlerken hangi ölçümlerin dikkate alındığını belirleyen otomatik makine öğrenmesi parametrelerini yapılandırın.
Eğitim işini gönderin.
Sonuçları gözden geçirin.
Aşağıdaki diyagramda bu işlem gösterilmektedir.
Ayrıca, iş sırasında toplanan ölçümleri içeren günlüğe kaydedilen iş bilgilerini de inceleyebilirsiniz. Eğitim işi, modeli ve veri ön işlemesini içeren bir Python serileştirilmiş nesnesi (.pkl
dosyası) oluşturur.
Model oluşturma otomatikleştirilmiş olsa da, oluşturulan modeller için önemli veya ilgili özelliklerin ne kadar önemli olduğunu da öğrenebilirsiniz.
AutoML ne zaman kullanılır: sınıflandırma, regresyon, tahmin, görüntü işleme ve NLP
Azure Machine Learning'in belirttiğiniz hedef ölçümü kullanarak modeli sizin için eğitmesini ve ayarlamasını istediğinizde otomatik ML uygulayın. Otomatik ML, makine öğrenmesi modeli geliştirme sürecini demokratikleştirir ve veri bilimi uzmanlığı ne olursa olsun kullanıcılarını herhangi bir sorun için uçtan uca bir makine öğrenmesi işlem hattını belirleme konusunda güçlendirir.
Farklı sektörlerdeki ML uzmanları ve geliştiriciler aşağıdaki işlemleri yapmak için otomatik ML kullanabilir:
- Kapsamlı programlama bilgisi olmadan ML çözümleri uygulama
- Zaman ve kaynak tasarrufu
- Veri bilimi en iyi uygulamalarını uygulama
- Çevik sorun çözme sağlama
Sınıflandırma
Sınıflandırma, modellerin eğitim verilerini kullanmayı ve bu öğrenmeleri yeni verilere uygulamayı öğrendiği bir denetimli öğrenme türüdür. Azure Machine Learning özellikle bu görevler için özellik geliştirmeleri, örneğin sınıflandırma için derin sinir ağı metin özellik geliştiricileri sunar. Özellik geliştirme seçenekleri hakkında daha fazla bilgi için bkz . Veri özellik kazandırma. AutoML tarafından desteklenen algoritmaların listesini Desteklenen algoritmalar bölümünde de bulabilirsiniz.
Sınıflandırma modellerinin temel amacı, eğitim verilerinden elde edilen öğrenmelere göre yeni verilerin hangi kategorilere gireceğini tahmin etmektir. Yaygın sınıflandırma örnekleri sahtekarlık algılama, el yazısı tanıma ve nesne algılamadır.
Bu Python not defterinde sınıflandırma ve otomatik makine öğrenmesi örneğine bakın: Banka Pazarlaması.
Regresyon
Sınıflandırmaya benzer şekilde regresyon görevleri de yaygın bir denetimli öğrenme görevidir. Azure Machine Learning, regresyon sorunlarına özgü özellik özellikleri sunar. Özellik geliştirme seçenekleri hakkında daha fazla bilgi edinin. AutoML tarafından desteklenen algoritmaların listesini Desteklenen algoritmalar bölümünde de bulabilirsiniz.
Tahmin edilen çıkış değerlerinin kategorik olduğu sınıflandırmadan farklı olarak, regresyon modelleri bağımsız tahmincilere göre sayısal çıkış değerlerini tahmin eder. Regresyonda amaç bir değişkenin diğerlerini nasıl etkilediğini tahmin ederek söz konusu bağımsız gösterge değişkenleri arasındaki ilişkiyi oluşturmaya yardımcı olmaktır. Örneğin model, gaz kilometresi ve güvenlik derecelendirmesi gibi özelliklere göre otomobil fiyatını tahmin edebilir.
Şu Python not defterlerindeki tahminler için regresyon ve otomatik makine öğrenmesi örneğine bakın: Donanım Performansı.
Zaman serisi tahmin etme
Gelir, envanter, satış veya müşteri talebi gibi daha birçok alanda tahminler oluşturmak her işletmenin ayrılmaz bir parçasıdır. Tekniklerle yaklaşımları birleştirmek ve önerilen, yüksek kaliteli bir zaman serisi tahmini elde etmek için otomatik ML'yi kullanabilirsiniz. AutoML tarafından desteklenen algoritmaların listesini Desteklenen algoritmalar bölümünde bulabilirsiniz.
Otomatik zaman serisi denemesi, çok değişkenli bir regresyon sorunu olarak kabul edilir. Geçmiş zaman serisi değerleri, diğer tahmincilerle birlikte regresör için daha fazla boyut haline gelmek için "özetlenir". Bu yaklaşım, klasik zaman serisi yöntemlerinden farklı olarak, eğitim sırasında birden çok bağlamsal değişkeni ve bunların birbiriyle ilişkilerini doğal olarak birleştirme avantajına sahiptir. Otomatik ML, veri kümesindeki tüm öğeler ve tahmin ufukları için tek ama genellikle dahili olarak dallandırılmış bir model öğrenir. Bu nedenle model parametrelerini tahmin etmek için daha fazla veri kullanılabilir ve görünmeyen serilere genelleştirmek mümkün hale gelir.
Gelişmiş tahmin yapılandırması şunları içerir:
- Tatil algılama ve özellik geliştirme
- Zaman serisi ve DNN öğrenenler (Auto-ARIMA, Prophet, ForecastTCN)
- Gruplandırma aracılığıyla birçok model desteklenir
- Sıralı çıkış noktası çapraz doğrulaması
- Yapılandırılabilir gecikmeler
- Hareketli pencere toplama özellikleri
Bu Python not defterinde tahmin ve otomatik makine öğrenmesi örneğine bakın: Enerji Talebi.
Görüntü işleme
Görüntü işleme görevleri desteği, görüntü sınıflandırması ve nesne algılama gibi senaryolar için görüntü verileri üzerinde eğitilmiş modelleri kolayca oluşturmanıza olanak tanır.
Bu özellik sayesinde:
- Azure Machine Learning veri etiketleme özelliğiyle sorunsuz bir şekilde tümleştirin .
- Görüntü modelleri oluşturmak için etiketlenmiş verileri kullanın.
- Model algoritmasını belirterek ve hiper parametreleri ayarlayarak model performansını iyileştirin.
- Elde edilen modeli Azure Machine Learning'de web hizmeti olarak indirin veya dağıtın.
- Azure Machine Learning MLOps ve ML Pipelines özelliklerinden yararlanarak uygun ölçekte kullanıma hazır hale getirme.
Görüntü işleme görevleri için AutoML modellerinin yazılması Azure Machine Learning Python SDK'sı aracılığıyla desteklenir. Sonuçta elde edilen deneme işlerine, modellere ve çıkışlara Azure Machine Learning stüdyosu kullanıcı arabiriminden erişilebilir.
Görüntü işleme modelleri için AutoML eğitimini ayarlamayı öğrenin.
Görüntü: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf
Görüntüler için otomatikleştirilmiş ML, aşağıdaki görüntü işleme görevlerini destekler:
Görev | Açıklama |
---|---|
Çok sınıflı görüntü sınıflandırması | Bir görüntünün bir sınıf kümesinden yalnızca tek bir etiketle sınıflandırıldığı görevler; örneğin, her görüntü bir 'kedi' veya 'köpek' ya da 'ördek' görüntüsü olarak sınıflandırılır. |
Çok etiketli görüntü sınıflandırması | Bir resmin bir etiket kümesinden bir veya daha fazla etikete sahip olabileceği görevler ; örneğin, bir görüntü hem 'kedi' hem de 'köpek' ile etiketlenebilir. |
Nesne algılama | Bir görüntüdeki nesneleri tanımlama ve her nesneyi sınırlayıcı kutuyla bulma görevleri; örneğin, bir görüntüdeki tüm köpek ve kedileri bulun ve her birinin çevresine bir sınırlayıcı kutu çizin. |
Örneği segmentlere ayırma | Bir görüntüdeki nesneleri piksel düzeyinde tanımlama, görüntüdeki her nesnenin etrafına bir çokgen çizme görevleri. |
Doğal dil işleme: NLP
Otomatik ML'de doğal dil işleme (NLP) görevleri desteği, metin sınıflandırması ve adlandırılmış varlık tanıma senaryoları için metin verileri üzerinde eğitilmiş modelleri kolayca oluşturmanıza olanak tanır. Otomatik ML tarafından eğitilen NLP modellerinin yazılması Azure Machine Learning Python SDK'sı aracılığıyla desteklenir. Sonuçta elde edilen deneme işlerine, modellere ve çıkışlara Azure Machine Learning stüdyosu kullanıcı arabiriminden erişilebilir.
NLP özelliği aşağıdakileri destekler:
- En son önceden eğitilmiş BERT modelleri ile uçtan uca derin sinir ağı NLP eğitimi
- Azure Machine Learning veri etiketlemesi ile sorunsuz tümleştirme
- NLP modelleri oluşturmak için etiketlenmiş verileri kullanma
- 104 dil ile çok dilli destek
- Horovod ile dağıtılmış eğitim
NLP modelleri için AutoML eğitimini ayarlamayı öğrenin.
Eğitim, doğrulama ve test verileri
Otomatik ML ile ML modellerini eğitmek için eğitim verileri sağlarsınız ve gerçekleştirilecek model doğrulama türünü belirtebilirsiniz. Otomatik ML, eğitimin bir parçası olarak model doğrulama gerçekleştirir. Yani otomatik ML, eğitim verilerine en uygun bileşimi bulmak için uygulanan algoritmaya göre model hiper parametreleri ayarlamak için doğrulama verilerini kullanır. Bununla birlikte, her ayarlama yinelemesi için aynı doğrulama verileri kullanılır. Bu da model, doğrulama verilerini geliştirmeye ve sığdırmaya devam ettiğinden model değerlendirme yanlılığını getirir.
Bu tür bir sapmanın önerilen son modele uygulanmadığını doğrulamaya yardımcı olmak için otomatik ML, denemenizin sonunda otomatik ML'nin önerdiği son modeli değerlendirmek için test verilerinin kullanılmasını destekler. AutoML deneme yapılandırmanızın bir parçası olarak test verileri sağladığınızda, bu önerilen model denemenizin (önizleme) sonunda varsayılan olarak test edilir.
Önemli
Oluşturulan modelleri değerlendirmek için modellerinizi bir test veri kümesiyle test etmek bir önizleme özelliğidir. Bu özellik deneysel bir önizleme özelliğidir ve herhangi bir zamanda değişebilir.
Test verilerini (önizleme) SDK ile veya Azure Machine Learning stüdyosu kullanacak şekilde AutoML denemelerini yapılandırmayı öğrenin.
Özellik mühendisliği
Özellik mühendisliği, ML algoritmalarının daha iyi öğrenmesine yardımcı olan özellikler oluşturmak için verilerin etki alanı bilgisini kullanma işlemidir. Azure Machine Learning'de, özellik mühendisliğini kolaylaştırmak için ölçeklendirme ve normalleştirme teknikleri uygulanır. Bu teknikler ve özellik mühendisliği toplu olarak özellik geliştirme olarak adlandırılır.
Otomatik makine öğrenmesi denemeleri için özellik geliştirme otomatik olarak uygulanır, ancak verilerinize göre de özelleştirilebilir. Özelliklerin hangi özelliklere dahil olduğu (SDK v1) ve AutoML'nin modellerinizdeki fazla sığdırma ve dengesiz verileri önlemeye nasıl yardımcı olduğu hakkında daha fazla bilgi edinin.
Not
Otomatik makine öğrenmesi özellik geliştirme adımları (örneğin, özellik normalleştirme, eksik verileri işleme ve metni sayısala dönüştürme) temel alınan modelin bir parçası haline gelir. Modeli tahminler için kullanırken, eğitim sırasında uygulanan özellik geliştirme adımları giriş verilerinize otomatik olarak uygulanır.
Özellik geliştirmeyi özelleştirme
Kodlama ve dönüşümler gibi ek özellik mühendisliği teknikleri de kullanılabilir.
Bu ayarı şu şekilde etkinleştirin:
Azure Machine Learning stüdyosu: Etkinleştir Bu adımların bulunduğu Ek yapılandırmayı görüntüle bölümünde otomatik özellik kazandırma.
Python SDK'sı: AutoML İşi nesnenizde özellik belirlemeyi belirtin. Özellik geliştirmeyi etkinleştirme hakkında daha fazla bilgi edinin.
Topluluk modelleri
Otomatik makine öğrenmesi, varsayılan olarak etkinleştirilen grup modellerini destekler. Ensemble learning, tek modelleri kullanmaktan farklı olarak birden çok modeli birleştirerek makine öğrenmesi sonuçlarını ve tahmine dayalı performansı geliştirir. Grup yinelemeleri, işinizin son yinelemeleri olarak görünür. Otomatik makine öğrenmesi, modelleri birleştirmek için hem oylama hem de yığınlama grubu yöntemlerini kullanır:
- Oylama: Tahmin edilen sınıf olasılıklarının ağırlıklı ortalamasını (sınıflandırma görevleri için) veya tahmin edilen regresyon hedeflerini (regresyon görevleri için) temel alarak tahmin eder.
- Yığınlama: Heterojen modelleri birleştirir ve tek tek modellerin çıkışına göre bir meta model eğiter. Geçerli varsayılan meta modeller sınıflandırma görevleri için LogisticRegression ve regresyon/tahmin görevleri için ElasticNet'tir.
Grup içinde hangi modellerin kullanılacağına karar vermek için sıralanmış grup başlatmalı Caruana grubu seçim algoritması kullanılır. Yüksek düzeyde, bu algoritma en iyi bireysel puanlara sahip en fazla beş modelle grubu başlatır ve kötü bir ilk grubu önlemek için bu modellerin en iyi puanın %5 eşiğinde olduğunu doğrular. Ardından her bir topluluk yinelemesi için mevcut gruba yeni bir model eklenir ve sonuçta elde edilen puan hesaplanır. Yeni bir model mevcut grup puanını geliştirdiyse, grup yeni modeli içerecek şekilde güncelleştirilir.
Otomatik makine öğrenmesinde varsayılan grup ayarlarını değiştirmek için AutoML paketine bakın.
AutoML & ONNX
Azure Machine Learning ile bir Python modeli oluşturmak ve bunun ONNX biçimine dönüştürülmesini sağlamak için otomatik ML'yi kullanabilirsiniz. Modeller ONNX biçiminde olduktan sonra çeşitli platformlarda ve cihazlarda çalıştırılabilir. ONNX ile ML modellerini hızlandırma hakkında daha fazla bilgi edinin.
Bu Jupyter not defteri örneğinde ONNX biçimine nasıl dönüştürüldüğünü görün. ONNX'te hangi algoritmaların desteklendiği hakkında bilgi edinin.
ONNX çalışma zamanı C#'yi de desteklediğinden, C# uygulamalarınızda otomatik olarak oluşturulan modeli, rest uç noktalarının oluşturduğu ağ gecikme sürelerinden herhangi birine veya yeniden kodlamaya gerek kalmadan kullanabilirsiniz. ML.NET içeren bir .NET uygulamasında AutoML ONNX modeli kullanma ve ONNX çalışma zamanı C# API'si ile ONNX modellerini çıkarsama hakkında daha fazla bilgi edinin.
Sonraki adımlar
AutoML ile çalışmaya başlamanızı sağlamak için birden çok kaynak vardır.
Öğreticiler/ nasıl yapılır
Öğreticiler, AutoML senaryolarının uçtan uca giriş örnekleridir.
İlk kod deneyimi için Öğretici: AutoML ve Python ile nesne algılama modelini eğitme
Düşük kodlu veya kod içermeyen bir deneyim için bkz. Öğretici: Azure Machine Learning stüdyosu'de kod içermeyen AutoML ile sınıflandırma modeli eğitme.
Nasıl yapılır makaleleri, otomatik ML'nin sunduğu işlevler hakkında daha fazla ayrıntı sağlar. Örneğin,
Otomatik eğitim denemeleri için ayarları yapılandırma
- Azure Machine Learning stüdyosu kod olmadan.
- Python SDK ile.
Python ile görüntü işleme modellerini eğitmeyi öğrenin.
Otomatik ML modellerinizden (SDK v1) oluşturulan kodu görüntülemeyi öğrenin.
Jupyter not defteri örnekleri
Otomatik makine öğrenimi örnekleri için GitHub not defteri deposundaki ayrıntılı kod örneklerini ve kullanım örneklerini inceleyin.
Python SDK başvurusu
AutoML İş sınıfı başvuru belgeleriyle SDK tasarım desenleri ve sınıf belirtimleri uzmanlığınızı derinleştirin.
Not
Otomatik makine öğrenmesi özellikleri ML.NET, HDInsight, Power BI ve SQL Server gibi diğer Microsoft çözümlerinde de kullanılabilir.