Aracılığıyla paylaş


Sinir Ağı Regresyonu

Önemli

Machine Learning Stüdyosu (klasik) desteği 31 Ağustos 2024'te sona erecektir. Bu tarihe kadar Azure Machine Learning'e geçmenizi öneririz.

1 Aralık 2021'den başlayarak artık yeni Machine Learning Stüdyosu (klasik) kaynakları oluşturamayacaksınız. 31 Ağustos 2024'e kadar mevcut Machine Learning Stüdyosu (klasik) kaynaklarını kullanmaya devam edebilirsiniz.

ML Stüdyosu (klasik) belgeleri kullanımdan kaldırılacak ve gelecekte güncelleştirilmeyecektir.

Sinir ağı algoritmasını kullanarak regresyon modeli oluşturur

Kategori: Machine Learning / Modeli Başlatma / Regresyon

Not

Uygulama: Machine Learning Studio (yalnızca klasik)

Benzer sürükle ve bırak modülleri tasarımcıda da Azure Machine Learning kullanılabilir.

Modüle genel bakış

Bu makalede, özelleştirilebilir bir sinir ağı algoritması kullanarak regresyon modeli oluşturmak için Machine Learning Studio'da (klasik) Sinir Ağı Regresyon modülünün nasıl kullanımı açıklanmıştır.

Sinir ağları, derin öğrenme ve görüntü tanıma gibi karmaşık sorunların modellemesinde yaygın olarak bilinse de regresyon sorunlarına kolayca uyarlanabilir. Herhangi bir istatistiksel model sınıfı, uyarlamalı ağırlıklar kullanıyorsa bir sinir ağı olarak anlanabilir ve girişlerinin doğrusal olmayan işlevlerini yaklaşık olarak kullanabilir. Bu nedenle sinir ağı regresyonu, daha geleneksel bir regresyon modelinin çözüme sığmayabilirsiniz.

Sinir ağı regresmi denetimli bir öğrenme yöntemidir ve bu nedenle etiket sütunu içeren etiketli bir veri kümesi gerektirir. Regresyon modeli sayısal bir değer tahminde olduğundan etiket sütununu sayısal bir veri türü olması gerekir.

Modeli ve etiketli veri kümelerini Modeli Eğit veya Modeli Ayarla Hiperparametreleri için giriş olarak sağlayarak modeli eğitebilirsiniz. Eğitilen model daha sonra yeni giriş örneklerinin değerlerini tahmin etmek için kullanılabilir.

Nöral Ağ Regresyonlarını yapılandırma

Sinir ağları kapsamlı olarak özelleştirilebilir. Bu bölümde, iki yöntem kullanılarak model oluşturma açık açıklamalır:

  • Varsayılan mimariyi kullanarak sinir ağı modeli oluşturma

    Varsayılan sinir ağı mimarisini kabul ediyorsanız, gizli katmanda düğüm sayısı, öğrenme hızı ve normalleştirme gibi sinir ağının davranışını kontrol eden parametreler ayarlamak için Özellikler bölmesini kullanın.

    Sinir ağlarına yeni başladıysanız buradan başlayabilirsiniz. Modül, sinir ağları hakkında derin bilgi sahibi olmadan birçok özelleştirmeyi ve model ayarlamayı destekler.

  • Sinir ağı için özel mimari tanımlama

    Ek gizli katmanlar eklemek veya ağ mimarisini, bağlantılarını ve etkinleştirme işlevlerini tamamen özelleştirmek için bu seçeneği kullanın.

    Sinir ağları hakkında bilgi sahibiyseniz bu seçenek en iyi seçenektir. Ağ mimarisini tanımlamak için Net# dilini kullanırsanız.

Varsayılan mimariyi kullanarak sinir ağı modeli oluşturma

  1. Studio'da (klasik) denemenize Sinir Ağı Regresyon modülünü ekleyin. Bu modülü Regresyon Machine LearningBaşlataltında bulabilirsiniz.

  2. Eğitimci modu oluştur seçeneğini ayarerek modelin nasıl eğitilsin istediğinize işaret edin.

    • Tek Parametre: Modeli nasıl yapılandırmak istediğiniz zaten biliyorsanız bu seçeneği belirleyin.

    • Parametre Aralığı: En iyi parametrelerden emin değilseniz bu seçeneği belirleyin. Ardından, bir değer aralığı belirtin ve birleşimler üzerinde yineler ve en uygun yapılandırmayı bulmak için Model Ayarlama Hiperparametreleri modülünü kullanın.

  3. Gizli katman belirtimi'nin Altında Tam bağlı büyük/altlık seçeneğini kullanın. Bu seçenek, bir nöral ağ regresyon modeli için şu özniteliklere sahip olan varsayılan sinir ağı mimarisini kullanarak bir model oluşturur:

    • Ağın tam olarak bir gizli katmanı vardır.
    • Çıkış katmanı gizli katmana tam olarak bağlanır ve gizli katman giriş katmanına tamamen bağlanır.
    • Gizli katmanda düğüm sayısı kullanıcı tarafından ayarlanebiliyor (varsayılan değer 100).

    Giriş katmanında düğüm sayısı eğitim verilerinden gelen özelliklerin sayısına göre belirlene bir regresyon modelinde çıkış katmanında yalnızca bir düğüm olabilir.

  4. Gizli düğüm sayısı için, gizli düğümlerin sayısını yazın. Varsayılan, 100 düğüme sahip bir gizli katmandır. (Net# kullanarak özel bir mimari tanımlarsanız bu seçenek kullanılamaz.)

  5. Daha Learning için, düzeltmeden önce her yinelemede at alınan adımı tanımlayan bir değer yazın. Öğrenme hızı için daha büyük bir değer, modelin daha hızlı yakınsamasını sağlar, ancak yerel minimleri aşırı atlar.

  6. Öğrenme yineleme sayısı için, algoritmanın eğitim olaylarını en fazla kaç kez işley olduğunu belirtin.

  7. İlk öğrenme ağırlıkları değeri için , öğrenme işleminin başındaki düğüm ağırlıklarını belirleyen bir değer yazın.

  8. Ivme için öğrenme sırasında önceki yinelemelerden düğümlere ağırlık olarak uygulanacak bir değer yazın.

  9. Normalleştirici türü için, özellik normalleştirme için kullanmak üzere aşağıdaki yöntemlerden birini seçin:

    • Gruplama normalleştiricisi: Gruplama eşit boyutta gruplar oluşturur ve ardından her gruptaki her değeri toplam grup sayısına bölünmesi için normalleştirin.

    • Gauss normalleştiricisi: Gauss normalleştirmesi, her özelliğin değerlerini ortalama 0 ve varyans 1 olacak şekilde yeniden ölçekler. Bu işlem, her özelliğin ortalama ve varyansı hesaplanır ve ardından her örnek için ortalama değeri çıkararak ve varyans karekökünü (standart sapma) bölerek yapılır.

    • Min-Max normalleştirici: Minimum maksimum normalleştirme, her özelliği [0,1] aralığına doğrusal olarak yeniden ölçekler.

      [0,1] aralığına yeniden ölçeklendirme, her özelliğin değerleri minimum değerin 0 olması için kaydırarak ve ardından yeni en yüksek değere (özgün en yüksek ve en düşük değer arasındaki fark) bölünerek yapılır.

    • Normalleştirme: Normalleştirme gerçekleştirlanmaz.

  10. Yinelemeler arasındaki servis örneklerinin sıralamalarını değiştirmek için Karıştırma örnekleri seçeneğini belirleyin. Bu seçeneğin seçimini kaldırsanız, denemeyi her çalıştırıldığında servis işlemleri tam olarak aynı sırada işlenir.

  11. Rastgele sayı çekirdeği için isteğe bağlı olarak çekirdek olarak kullanmak üzere bir değer yazın. Bir çekirdek değeri belirtmek, aynı denemenin çalıştırmaları arasında tekrarlanabilirlik sağlamak istediğiniz zaman yararlıdır.

  12. Bilinmeyen kategorik düzeylerin bilinmeyen değerler için bir gruplama oluşturmasına izin ver seçeneğini belirleyin. Model, bilinen değerlerde daha az kesin olabilir ancak yeni (bilinmeyen) değerler için daha iyi tahminler sağlar.

    Bu seçeneğin seçimini kaldırsanız, model yalnızca eğitim verisinde yer alan değerleri kabul eder.

  13. Bağlan bir eğitim dat kümesi ve eğitim modüllerinden birini kullanın:

    Uyarı

    Modeli Eğit'e bir parametre aralığı iletirsiniz, parametre aralığı listesinde yalnızca ilk değeri kullanır.

    Model Ayarlama Hiperparametreleri modülüne tek bir parametre değeri kümesi iletirsiniz; her parametre için bir dizi ayar bekliyorsa, değerleri yoksayır ve öğrenciler için varsayılan değerleri kullanır.

    Parametre Aralığı seçeneğini belirtir ve herhangi bir parametre için tek bir değer girerseniz, diğer parametreler bir değer aralığında değişse bile, belirttiğiniz tek değer tarama boyunca kullanılır.

  14. Denemeyi çalıştırın.

Özel mimari tanımlama

  1. Sinir Ağı Regresyon modülünü denemenize ekleyin.

  2. Eğitimci modu oluştur seçeneğini ayarerek modelin nasıl eğitilsin istediğinize işaret edin.

    • Tek Parametre: Modeli nasıl yapılandırmak istediğiniz zaten biliyorsanız bu seçeneği belirleyin.

    • Parametre Aralığı: En iyi parametrelerden emin değilseniz bu seçeneği belirleyin. Ardından, bir değer aralığı belirtin ve birleşimler üzerinde yineler ve en uygun yapılandırmayı bulmak için Model Ayarlama Hiperparametreleri modülünü kullanın.

  3. Gizli katman belirtimi'nin altında Özel tanım betiği'yi seçin. Net# dilini kullanarak özel bir sinir ağı mimarisi tanımlamak için bu seçeneği belirlemelisiniz .

  4. Özel tanım betiği seçeneğini işaretledikten sonra Sinir ağı tanımı metin kutusu görüntülenir. Gizli katmanların sayısı, bağlantıları ve katmanlar arasındaki eşlemeleri belirtme gibi gelişmiş seçenekler de dahil olmak üzere sinir ağı için özel bir mimari tanımlamak üzere Net# betiğine yapıştırabilirsiniz.

  5. Daha Learning için, düzeltmeden önce her yinelemede at alınan adımı tanımlayan bir değer yazın. Öğrenme hızı için daha büyük bir değer, modelin daha hızlı yakınsamasını sağlar, ancak yerel minimleri aşırı atlar.

  6. Öğrenme yineleme sayısı için, algoritmanın eğitim olaylarını en fazla kaç kez işley olduğunu belirtin.

  7. İlk öğrenme ağırlıkları değeri için , öğrenme işleminin başındaki düğüm ağırlıklarını belirleyen bir değer yazın.

  8. Ivme için öğrenme sırasında önceki yinelemelerden düğümlere ağırlık olarak uygulanacak bir değer yazın.

  9. Normalleştirici türü için, özellik normalleştirme için kullanmak üzere aşağıdaki yöntemlerden birini seçin:

    • Gruplama normalleştiricisi: Gruplama eşit boyutta gruplar oluşturur ve ardından toplam grup sayısına bölerek her gruptaki her değeri normalleştirin.

    • Gauss normalleştiricisi: Gauss normalleştirmesi, her özelliğin değerlerini ortalama 0 ve varyans 1 olacak şekilde yeniden ölçekler. Bu işlem, her özelliğin ortalama ve varyansı hesaplanır ve ardından her örnek için ortalama değeri çıkararak ve varyans karekökünü (standart sapma) bölerek yapılır.

    • Min-Max: Minimum-maksimum normalleştirme doğrusal olarak her özelliği [0,1] aralığına yeniden ölçekler.

      [0,1] aralığına yeniden ölçeklendirme, her özelliğin değerleri minimum değerin 0 olması için kaydırarak ve ardından yeni en yüksek değere (özgün en yüksek ve en düşük değer arasındaki fark) bölünerek yapılır.

    • Normalleştirme: Normalleştirme gerçekleştirlanmaz.

  10. Yinelemeler arasındaki servis örneklerinin sıralamalarını değiştirmek için Karıştırma örnekleri seçeneğini belirleyin. Bu seçeneğin seçimini kaldırsanız, denemeyi her çalıştırıldığında servis işlemleri tam olarak aynı sırada işlenir.

  11. Rastgele sayı çekirdeği için isteğe bağlı olarak çekirdek olarak kullanmak üzere bir değer yazın. Bir çekirdek değeri belirtmek, aynı denemenin çalıştırmaları arasında tekrarlanabilirlik sağlamak istediğiniz zaman yararlıdır.

  12. Bilinmeyen kategorik düzeylerin bilinmeyen değerler için bir gruplama oluşturmasına izin ver seçeneğini belirleyin. Test veri kümesinde bilinmeyen değerler bu bilinmeyen kategoriye eşlenmiş. Bu seçeneğin kullanımı modelin bilinen değerlerde biraz daha az kesinlik sağlamasa da yeni (bilinmeyen) değerler için daha iyi tahminler sağlar.

    Bu seçeneğin seçimini kaldırsanız, model yalnızca eğitim verisinde yer alan değerler için tahminde olabilir.

  13. Bağlan bir eğitim dat kümesi ve eğitim modüllerinden birini kullanın:

    Uyarı

    Modeli Eğit'e bir parametre aralığı iletirsiniz, parametre aralığı listesinde yalnızca ilk değeri kullanır.

    Model Ayarlama Hiper parametreleri modülüne tek bir parametre değeri kümesi iletirsiniz; her parametre için bir dizi ayar bekliyorsa, değerleri yoksayar ve öğrenciler için varsayılan değerleri kullanır.

    Parametre Aralığı seçeneğini belirtir ve herhangi bir parametre için tek bir değer girerseniz, diğer parametreler bir değer aralığında değişse bile, belirttiğiniz tek değer tarama boyunca kullanılır.

  14. Denemeyi çalıştırın.

Sonuçlar

Eğitim tamamlandıktan sonra:

  • Modelin parametrelerinin özetini eğitimden öğrenilen özellik ağırlıklarıyla ve sinir ağının diğer parametreleriyle birlikte görmek için Modeli Eğit veya Modeli Ayarla Hiper Parametrelerinin çıkışına sağ tıklayın ve Görselleştir'i seçin.

  • Eğitilen modelin anlık görüntüsünü kaydetmek için Eğitilen model çıkışına sağ tıklayın ve Eğitilen Model Olarak Kaydet'i seçin. Bu model, aynı denemenin başarılı çalıştırmalarında güncelleştirilmez.

  • Etiketli bir veri kümesinde çapraz doğrulama gerçekleştirmek için, eğitilmemiş modeli Modeli Çapraz Doğrula'ya bağlama.

Örnekler

Bu algoritmanın denemelerde nasıl kullanıldıklarının örnekleri için aşağıdaki örneklerde yer alan Azure Yapay Zeka Galerisi:

  • Birden Çok Regresör karşılaştırması: Çeşitli regresyon algoritmalarının kullanımını gösterir ve sonuçlarını karşılar.

Denemeler Net# hakkında daha fazla yardım sağlar. Denemeler temel yapılandırmalardan gelişmiş yapılandırmalara kadar ilgili ve ilerleme durumuna bağlıdır:

Teknik notlar

Bu bölümde uygulama ayrıntıları, ipuçları ve sık sorulan soruların yanıtları yer almaktadır.

Net hakkında daha fazla bilgi #

Machine Learning Studio'da (klasik), Net# dilini kullanarak bir sinir ağı modelinin mimarisini özelleştirebilirsiniz. Net# dili tarafından desteklenen özelleştirmeler şunlardır:

  • Gizli katmanların sayısını ve her katmanda düğüm sayısını belirtme
  • Katmanlar arasındaki eşlemeleri belirtme
  • Convolutions ve weight-sharing paketlerini tanımlama
  • Etkinleştirme işlevini seçme

Sinir ağı modeli grafı yapısı tarafından tanımlanır ve bu model şu öznitelikleri içerir:

  • Gizli katmanların sayısı
  • Her gizli katmanda düğüm sayısı
  • Katmanlar nasıl bağlanır?
  • Hangi etkinleştirme işlevi kullanılır?
  • Graf kenarlarında ağırlıklar

Önemli

Graf genel yapısı ve etkinleştirme işlevi kullanıcı tarafından belirtilebilir. Ancak, kenarlar üzerinde ağırlıklar belirtilmez ve sinir ağı giriş verileri üzerinde eğitiliyorsa öğrenilmelidir.

Genel olarak, ağ şu varsayılanlara sahip olur:

  • İlk katman her zaman giriş katmanıdır.
  • Son katman her zaman çıkış katmanıdır.
  • Çıkış katmanında düğüm sayısı, sınıf sayısına eşit olması gerekir.

Herhangi bir sayıda ara katman tanımlayabilirsiniz (bazen gizli katmanlar olarak da anabilirsiniz çünkü bunlar modelin içinde yer alır ve uç noktalar olarak doğrudan açığa çıkarlanmazlar).

Net# başvuru kılavuzu söz dizimlerini açıklar ve örnek ağ tanımları sağlar. Gizli katmanlar eklemek ve farklı katmanların birbirleriyle etkileşim kurma yolunu tanımlamak için Net# kullanmayı açıklar.

Örneğin, aşağıdaki betik auto giriş ve çıkış katmanları için özellik sayısını otomatik olarak ayarleyen anahtar sözcüğünü kullanır ve gizli katman için varsayılan değerleri kullanır.

input Data auto;  
hidden Hidden auto from Data all;  
output Result auto from Hidden all;   

Ek betik örnekleri için bkz . Net# Sinir Ağları Belirtim Dili Kılavuzu.

İpucu

Sinir ağları, bir dizi hiperparametre ve özel ağ topolojilerinin tanıtımı nedeniyle işlemsel olarak pahalı olabilir. Sinir ağları çoğu durumda diğer algoritmalara göre daha iyi sonuçlar üretse de, bu tür sonuçların elde etmek için hiperparametreler üzerinde makul miktarda tarama (yineleme) söz konusu olabilir.

Modül parametreleri

Name Aralık Tür Varsayılan Description
Gizli katman belirtimi Liste Sinir Ağı Topolojisi Tam bağlantılı büyük/büyük harf Gizli katmanın veya katmanların mimarisini belirtme
İlk öğrenme ağırlıkları ağırlığı >=double. Epsilon Float 0.1 Öğrenme sürecinin başında düğüm ağırlıklarını belirtme
Öğrenme oranı [double. Epsilon;0,01] Float 0.005 Öğrenme sürecindeki her adımın boyutunu belirtme
Ivme [0.0;1.0] Float 0,0 Önceki yinelemelerden düğümlere öğrenme sırasında uygulanacak ağırlığı belirtme
Sinir ağı tanımı Herhangi biri Streamreader "Özel tanım betiği" seçeneğini belirleyerek özel bir sinir ağının katmanlarını, düğümlerini ve davranışını tanımlamak için her satıra geçerli bir betik ifadesi yazın
Normalleştiricinin türü Liste Normalleştirme Yöntemi Min-Max normalleştirici Öğrenme örneklerine uygulanacak normalleştirme türünü seçin
Gizli düğüm sayısı Herhangi biri Dize 100 Gizli katmandaki düğümlerin sayısını yazın. Birden çok gizli katman için, virgülle ayrılmış bir liste yazın.
Öğrenme yinelemesi sayısı >değer Tamsayı 100 Öğrenirken yineleme sayısını belirtin
Örnekleri karıştır Herhangi biri Boole true Öğrenme yinelemeleri arasındaki örneklerin sırasını değiştirmek için bu seçeneği belirleyin
Rastgele sayı çekirdek Herhangi biri Tamsayı Rastgele sayı üretimi için kullanılacak sayısal bir çekirdek belirtin. Varsayılan tohum 'yi kullanmak için boş bırakın.

Bu parametre isteğe bağlıdır
Bilinmeyen kategorik düzeylerine izin ver Herhangi biri Boole true Bilinmeyen kategoriler için ek düzeyin oluşturulup oluşturulmayacağını belirtin. Test veri kümesi, eğitim veri kümesinde mevcut olmayan kategoriler içeriyorsa, bu bilinmeyen düzeye eşlenir.

Çıkışlar

Ad Tür Description
Eğitilen model ILearner arabirimi Eğitilen regresyon modeli

Ayrıca bkz.

Regresyon
A-Z modül listesi