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ümüzün bir ilerlemesini temel alır.

AutoML nasıl çalışır?

Eğitim sırasında Azure Machine Learning, sizin için farklı algoritmaları ve parametreleri deneyen paralel bir dizi işlem hattı 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 durdurulacaktır.

Azure Machine Learning'i kullanarak aşağıdaki adımlarla otomatik ML eğitim denemelerinizi tasarlayabilir ve çalıştırabilirsiniz:

  1. Çözülecek ML sorununu belirleyin: sınıflandırma, tahmin, regresyon, görüntü işleme veya NLP.

  2. 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'yikullanabilir. Öğreticiyi kullanmaya başlama: AutoML ve Python ile nesne algılama modelini eğitme. Sınırlı/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.

  3. Etiketlenen eğitim verilerinin kaynağını belirtin: Verilerinizi Birçok farklı yolla Azure Machine Learning'e getirebilirsiniz.

  4. 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.

  5. Eğitim işini gönderin.

  6. Sonuçları gözden geçirme

Aşağıdaki diyagramda bu işlem gösterilmektedir. Automated Machine learning

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ı 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ından yararlanma
  • Çevik sorun çözme sağlama

Sınıflandırma

Sınıflandırma, modellerin eğitim verilerini kullanarak öğrendiği ve bu öğrendiklerini yeni verilere uyguladığı gözetimli bir öğ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 edinin. AutoML tarafından desteklenen algoritmaların listesini burada da bulabilirsiniz.

Sınıflandırma modellerinin ana hedefi, eğitim verilerinden öğrendiklerine dayanarak yeni verilerin hangi kategorilere ait olacağını 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 burada da 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 benzin tüketimi, güvenlik derecelendirmesi vb. özellikler temelinde araba fiyatları tahmin edilir.

Ş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 burada 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 ek boyutlar haline gelecek şekilde "ö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 ve tahmin ufuklarındaki tüm öğeler 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ştirme 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 öğrenicileri (Auto-ARIMA, Prophet, ForecastTCN)
  • birçok model gruplandırma aracılığıyla desteklenir
  • rolling-origin çapraz doğrulaması
  • yapılandırılabilir gecikmeler
  • kayan 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ştirme
  • Görüntü modelleri oluşturmak için etiketlenmiş verileri kullanma
  • 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.

Computer vision tasks examples. Image from: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf 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 dizi sınıftan yalnızca tek bir etiketle sınıflandırıldığı görevler - ör. her görüntü bir 'kedi' veya bir 'köpek' veya bir 'ördek' görüntüsü olarak sınıflandırılır
Çok etiketli görüntü sınıflandırması Bir görüntünün bir dizi etiketten bir veya daha fazla etikete sahip olabileceği görevler - ör. bir resim hem 'kedi' hem de 'köpek' ile etiketlenebilir
Nesne algılama Bir görüntüdeki nesneleri tanımlama ve her nesneyi bir sınırlayıcı kutuyla konumlandırma görevleri, ör. bir görüntüdeki tüm köpekleri ve kedileri bul ve her birinin etrafına bir sınırlayıcı kutu çiz.
Ö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.

Dekont

Otomatik makine öğrenmesi özellik geliştirme adımları (özellik normalleştirme, eksik verileri işleme, metni sayısala dönüştürme vb.) 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üşüm gibi ek özellik mühendisliği teknikleri de mevcuttur.

Bu ayarı şu şekilde etkinleştirin:

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ına (sınıflandırma görevleri için) veya tahmin edilen regresyon hedeflerine (regresyon görevleri için) göre tahmin eder.
  • Yığınlama: 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.

Nasıl yapılır makaleleri otomatik ML'nin sunduğu işlevlerle ilgili ek ayrıntılar sağlar. Örneğin:

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.

Dekont

Otomatik makine öğrenmesi özellikleri ML.NET, HDInsight, Power BI ve SQL Server gibi diğer Microsoft çözümlerinde de kullanılabilir