Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ö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.
- Makine öğrenmesi projelerini ML Studio'dan (klasik) Azure Machine Learning.
- Daha fazla bilgi Azure Machine Learning.
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
Studio'da (klasik) denemenize Sinir Ağı Regresyon modülünü ekleyin. Bu modülü Regresyon Machine LearningBaşlataltında bulabilirsiniz.
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.
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.
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.)
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.
Öğrenme yineleme sayısı için, algoritmanın eğitim olaylarını en fazla kaç kez işley olduğunu belirtin.
İ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.
Ivme için öğrenme sırasında önceki yinelemelerden düğümlere ağırlık olarak uygulanacak bir değer yazın.
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.
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.
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.
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.
Bağlan bir eğitim dat kümesi ve eğitim modüllerinden birini kullanın:
Eğitimci modu oluştur'a Tek Parametreolarak ayarlanırsa Modeli Eğit'i kullanın.
Eğitmen modu oluştur'ları Parametre Aralığı olarak ayarlarsanız Model Ayarlama Hiperparametrelerini 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.
Denemeyi çalıştırın.
Özel mimari tanımlama
Sinir Ağı Regresyon modülünü denemenize ekleyin.
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.
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 .
Ö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.
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.
Öğrenme yineleme sayısı için, algoritmanın eğitim olaylarını en fazla kaç kez işley olduğunu belirtin.
İ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.
Ivme için öğrenme sırasında önceki yinelemelerden düğümlere ağırlık olarak uygulanacak bir değer yazın.
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.
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.
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.
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.
Bağlan bir eğitim dat kümesi ve eğitim modüllerinden birini kullanın:
Eğitimci modu oluştur'a Tek Parametreolarak ayarlanırsa Modeli Eğit'i kullanın.
Eğitmen modu oluştur'ları Parametre Aralığı olarak ayarlarsanız Model Ayarlama Hiperparametrelerini 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.
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:
- Derin Sinir ağları örneği (bölüm A)
- Derin Sinir ağları örneği (bölüm B)
- Derin Sinir ağları örneği (C bölümü)
- Derin Sinir ağları örneği (D bölümü)
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 |