Normalleştirme
Normalleştirmenin model eğitimi ve doğruluğunu nasıl iyileştirdiğini keşfedin. Min-Max ölçeklendirme, Z-skor standardizasyonu ve bunların Ultralytics projelerindeki rolü hakkında bilgi edinin.
Normalleştirme,
veri ön işlemede sayısal özellikleri standart bir aralığa yeniden ölçeklendirmeyi içeren temel bir tekniktir.
Makine öğrenimi (ML) bağlamında, veri kümeleri genellikle
yaş aralıkları (0–100) ile gelir düzeyleri (0–100.000) gibi farklı ölçeklere sahip özellikler içerir. Bu
eşitsizlikler düzeltilmezse,
optimizasyon algoritması daha büyük değerlere
yönelik önyargılı hale gelebilir ve bu da daha yavaş yakınsama ve optimal olmayan performansa yol açabilir. Verileri normalleştirerek mühendisler,
her özelliğin nihai sonuca orantılı olarak katkıda bulunmasını sağlar ve
sinir ağlarının daha verimli bir şekilde öğrenmesini mümkün kılar.
Yaygın Normalleştirme Teknikleri
Verileri dönüştürmek için, her biri farklı dağılımlar ve algoritma gereksinimlerine uygun birkaç standart yöntem vardır
.
-
Min-Max Ölçeklendirme:
Bu, normalleştirmenin en sezgisel şeklidir. Verileri sabit bir aralığa, genellikle [0, 1] aralığına yeniden ölçeklendirir. Bu
dönüşüm, minimum değeri çıkararak ve aralığa bölerek (maksimum eksi minimum) gerçekleştirilir.
Piksel yoğunluklarının 0 ile 255 arasında sınırlı olduğu bilinen
görüntü işlemede
yaygın olarak kullanılır.
-
Z-Puanı Standartlaştırma: Genellikle
normalleştirme ile eşanlamlı olarak kullanılır, ancak standartlaştırma özellikle verileri ortalama 0 ve
standart sapma 1 olacak şekilde dönüştürür. Bu, veriler
Gauss dağılımını izlediğinde özellikle yararlıdır ve
normal dağılımlı verileri varsayan
Destek Vektör Makineleri (SVM) gibi
algoritmalar için gereklidir.
-
Logaritmik Ölçeklendirme:
Aşırı uç değerler içeren veya güç yasasına uyan veriler için logaritmik dönüşüm uygulamak, değer aralığını sıkıştırabilir.
Bu, dağılımı daha yönetilebilir hale getirir ve
çıkarım motorunun, büyük değer artışlarından etkilenmeden
etkili bir şekilde yorumlamasını sağlar.
Gerçek Dünya Uygulamaları
Normalleştirme, çeşitli endüstrilerdeki yüksek performanslı yapay zeka sistemlerinin iş akışlarında standart bir adımdır.
-
Bilgisayar Görme (CV): Nesne algılama ve
görüntü sınıflandırma gibi görevlerde, dijital görüntüler
0 ile 255 arasında değişen piksel değerlerinden oluşur. Bu büyük tamsayıları doğrudan bir ağa beslemek,
gradyan inişini yavaşlatabilir. Standart bir ön işleme adımı
piksel değerlerini 255,0'a bölerek [0, 1] aralığına normalize etmektir. Bu uygulama, YOLO26 gibi gelişmiş modeller için tutarlı
girdiler sağlayarak Ultralytics eğitim
istikrarını artırır.
-
Tıbbi Görüntü Analizi: Sağlık hizmetlerinde yapay zeka
kullanımında olduğu gibi, tıbbi taramalar genellikle
farklı yoğunluk ölçeklerine sahip farklı makinelerden elde edilir. Normalleştirme, MRI veya CT
taramasından elde edilen piksel yoğunluklarının farklı hastalar ve ekipmanlar arasında karşılaştırılabilir olmasını sağlar. Bu tutarlılık, doğru
tümör tespiti için çok önemlidir ve
modelin parlaklık değişikliklerinden ziyade yapısal anomalilere odaklanmasını sağlar.
İlgili Kavramları Ayırt Etme
Normalleştirmeyi, derin öğrenmede bulunan benzer ön işleme ve mimari terimlerden ayırmak önemlidir.
öğrenme.
-
vs. Toplu Normalleştirme:
Veri normalleştirme, ham girdi veri kümesine ağa girmeden önce uygulanan bir ön işleme adımıdır.
Buna karşılık, Toplu Normalleştirme, model eğitimi sırasında ağdaki katmanlar arasında dahili olarak çalışır.
Öğrenme sürecini stabilize etmek için önceki
aktivasyon katmanının çıktısını normalleştirir.
-
vs. Görüntü Büyütme:
Normalleştirme piksel değerlerinin ölçeğini değiştirirken, büyütme veri setinin çeşitliliğini artırmak için görüntünün içeriğini veya
geometrisini değiştirir (örneğin, çevirme, döndürme veya renk değiştirme).
Albumentations gibi araçlar büyütme için kullanılır,
normalleştirme ise matematiksel bir ölçeklendirme işlemidir.
Uygulama Örneği
Bilgisayar görüşünde, normalizasyon genellikle iş akışının ilk adımıdır. Aşağıdaki
Python örneği,
NumPy kullanarak görüntü verilerini manuel olarak normalleştirmeyi gösterir. Bu işlem, eğitim sırasında
Ultralytics veri yükleyicisi içinde otomatik olarak gerçekleşir.
import numpy as np
# Simulate a 2x2 pixel image with values ranging from 0 to 255
raw_image = np.array([[0, 255], [127, 64]], dtype=np.float32)
# Apply Min-Max normalization to scale values to [0, 1]
# This standardizes the input for the neural network
normalized_image = raw_image / 255.0
print(f"Original Range: {raw_image.min()} - {raw_image.max()}")
print(f"Normalized Range: {normalized_image.min()} - {normalized_image.max()}")