Model optimizasyonu nedir? Kısa bir rehber
Hiperparametre ayarı, model budama ve model niceleme gibi model optimizasyonu tekniklerinin bilgisayarlı görü modellerini daha verimli çalıştırmaya nasıl yardımcı olabileceğini öğrenin.
Abirami Vina8 dakikalık okuma
Model optimizasyonu, makine öğrenimi modellerinin verimliliğini ve performansını artırmayı amaçlayan bir süreçtir. Optimizasyon, modelin yapısını ve işlevini iyileştirerek modellerin daha az hesaplama kaynağıyla ve daha kısa eğitim ve değerlendirme süreleriyle daha iyi sonuçlar vermesini sağlar.
Bu süreç, modellerin karmaşık görüntüleri analiz etmek için çoğu zaman önemli miktarda kaynağa ihtiyaç duyduğu bilgisayarlı görü gibi alanlarda özellikle önemlidir. Mobil cihazlar veya uç sistemler gibi kaynakların kısıtlı olduğu ortamlarda optimize edilmiş modeller, doğruluklarını korurken sınırlı kaynaklarla da verimli çalışabilir.
Model optimizasyonu için hiperparametre ayarlama, model budama, model niceleme ve karma hassasiyet gibi çeşitli teknikler yaygın olarak kullanılır. Bu makalede, bu teknikleri ve bilgisayarlı görü uygulamalarına sağladıkları faydaları inceleyeceğiz.
Model optimizasyonunu anlama#
Bilgisayarlı görü modelleri, görüntülerdeki karmaşık örüntüleri tanımakta başarılı olan derin katmanlara ve karmaşık yapılara sahiptir; ancak işlem gücü açısından oldukça talepkâr da olabilirler. Bu modeller, cep telefonları veya uç cihazlar gibi donanım olanakları sınırlı cihazlara dağıtıldığında bazı zorluklarla veya kısıtlamalarla karşılaşabilir.
Bu cihazlardaki sınırlı işlem gücü, bellek ve enerji; modellerin ayak uydurmakta zorlanması nedeniyle performansta belirgin düşüşlere yol açabilir. Bu sorunları aşmak için model optimizasyonu teknikleri büyük önem taşır. Bu teknikler modeli sadeleştirmeye, hesaplama gereksinimlerini azaltmaya ve sınırlı kaynaklarla bile etkili biçimde çalışmasını sağlamaya yardımcı olur. Model mimarisi basitleştirilerek, hesaplamaların sayısal hassasiyeti azaltılarak veya modeli daha küçük ve hızlı hâle getirmek için gereksiz bileşenler kaldırılarak optimizasyon yapılabilir.

Şekil 1. Modellerini optimize etme nedenleri. Görselin sahibi yazar.
Aşağıda, sonraki bölümlerde daha ayrıntılı inceleyeceğimiz en yaygın model optimizasyonu tekniklerinden bazıları yer alıyor:
- Hiperparametre ayarı: Model performansını iyileştirmek için öğrenme oranı ve toplu iş boyutu gibi hiperparametrelerin sistematik olarak ayarlanmasını içerir.
- Model budama: Bu teknik, sinir ağındaki gereksiz ağırlıkları ve bağlantıları kaldırarak ağın karmaşıklığını ve hesaplama maliyetini azaltır.
- Model niceleme: Niceleme, model ağırlıklarının ve aktivasyonlarının hassasiyetini genellikle 32 bitten 16 veya 8 bite düşürerek bellek ayak izini ve hesaplama gereksinimlerini önemli ölçüde azaltır.
- Hassasiyet ayarlamaları: Karma hassasiyetli eğitim olarak da bilinen bu yöntem, modelin farklı bölümlerinde farklı hassasiyet biçimlerinin kullanılmasını ve doğruluktan ödün vermeden kaynak kullanımının optimize edilmesini içerir.
Açıklamalı: Makine öğrenimi modellerindeki hiperparametreler#
Modelin verilerden nasıl öğrendiğini şekillendiren ayarları, yani hiperparametrelerini düzenleyerek modelin öğrenmesine ve daha iyi performans göstermesine yardımcı olabilirsin. Hiperparametre ayarlama, bu ayarları optimize ederek modelin verimliliğini ve doğruluğunu artıran bir tekniktir. Modelin eğitim sırasında öğrendiği parametrelerden farklı olarak hiperparametreler, eğitim sürecine yön veren önceden belirlenmiş değerlerdir.
Ayarlanabilecek bazı hiperparametre örneklerine bakalım:
- Öğrenme oranı: Bu parametre, modelin iç ağırlıklarını ayarlamak için attığı adımların boyutunu belirler. Daha yüksek bir öğrenme oranı öğrenmeyi hızlandırabilir ancak en uygun çözümün gözden kaçırılması riskini taşır; daha düşük bir oran ise daha doğru sonuç verebilir ama daha yavaştır.
- Toplu iş boyutu: Her eğitim adımında işlenen veri örneği sayısını belirler. Daha büyük toplu işler daha kararlı öğrenme sağlar, ancak daha fazla bellek gerektirir. Daha küçük toplu işler daha hızlı eğitilir, ancak daha az kararlı olabilir.
- Epoch: Bu parametreyle modelin veri kümesinin tamamını kaç kez göreceğini belirleyebilirsin. Daha fazla epoch doğruluğu artırabilir, ancak aşırı öğrenme riskini de beraberinde getirir.
- Çekirdek boyutu: Evrişimli Sinir Ağlarındaki (CNN'ler) filtrenin boyutunu tanımlar. Daha büyük çekirdekler daha geniş örüntüleri yakalar, ancak daha fazla işlem gerektirir; daha küçük çekirdekler ise daha ince ayrıntılara odaklanır.
Hiperparametre ayarı nasıl çalışır?#
Hiperparametre ayarlama genellikle her hiperparametre için olası değer aralıklarını belirlemekle başlar. Ardından bir arama algoritması, en iyi performansı sağlayan ayarları bulmak için bu aralıklardaki farklı kombinasyonları inceler.
Yaygın ayarlama yöntemleri arasında ızgara araması, rastgele arama ve Bayes optimizasyonu bulunur. Izgara araması, belirtilen aralıklardaki olası tüm değer kombinasyonlarını dener. Rastgele arama, kombinasyonları rastgele seçer ve çoğu zaman etkili ayarları daha hızlı bulur. Bayes optimizasyonu, önceki sonuçlara dayanarak umut vadeden hiperparametre değerlerini tahmin etmek için olasılıksal bir model kullanır. Bu yaklaşım genellikle gereken deneme sayısını azaltır.
Son olarak, her hiperparametre kombinasyonu için modelin performansı değerlendirilir. İstenen sonuçlara ulaşılana kadar süreç tekrarlanır.
Hiperparametreler ve model parametreleri#
Hiperparametre ayarı üzerinde çalışırken hiperparametrelerle model parametreleri arasındaki farkı merak edebilirsin.
Hiperparametreler, öğrenme oranı veya yığın boyutu gibi, eğitimden önce belirlenen ve modelin öğrenme biçimini kontrol eden değerlerdir. Bu ayarlar eğitim boyunca sabit kalır ve öğrenme sürecini doğrudan etkiler. Model parametreleri ise modelin eğitim sırasında öğrendiği değerlerdir. Bunlar, model eğitilirken değişen ve sonunda tahminlerine yön veren ağırlıklar ile bias değerlerini içerir. Kısacası hiperparametreler öğrenme sürecini şekillendirirken model parametreleri bu öğrenme sürecinin sonucudur.

Şekil 2. Parametreler ve hiperparametrelerin karşılaştırması.
Derin öğrenmede model budama neden önemlidir?#
Model budama, modeli daha verimli hâle getirmek için gereksiz ağırlıkları ve parametreleri kaldıran bir boyut küçültme tekniğidir. Bilgisayarlı görüde, özellikle derin sinir ağlarında, ağırlıklar ve aktivasyonlar (nihai çıktının hesaplanmasına yardımcı olan ara çıktılar) gibi çok sayıda parametre hem karmaşıklığı hem de hesaplama gereksinimlerini artırabilir. Budama, performansa çok az katkı sağlayan parametreleri belirleyip kaldırarak modeli sadeleştirir ve daha hafif, verimli bir model ortaya çıkarır.

Şekil 3. Model budama öncesi ve sonrası.
Model eğitildikten sonra, büyüklük temelli budama veya duyarlılık analizi gibi teknikler her parametrenin önemini değerlendirebilir. Ardından düşük önem düzeyindeki parametreler, üç temel teknikten biri kullanılarak budanır: ağırlık budama, nöron budama veya yapılandırılmış budama.
Ağırlık budama, çıktı üzerinde en az etkiye sahip bağlantıları tek tek kaldırır. Nöron budama, modelin işlevine çok az katkıda bulunan nöronların tamamını kaldırır. Yapılandırılmış budama, model verimliliğini artırmak için evrişim filtreleri veya tam bağlantılı katmanlardaki nöronlar gibi daha büyük bölümleri ortadan kaldırır. Budama tamamlandıktan sonra kalan parametreleri ince ayarlamak ve modelin küçültülmüş hâlinde de yüksek doğruluğu korumasını sağlamak için model yeniden eğitilir.
Kuantizasyonla yapay zekâ modellerinde gecikmeyi azaltma#
Model niceleme, model ağırlıklarını ve aktivasyonlarını temsil etmek için kullanılan bit sayısını azaltır. Genellikle yüksek hassasiyetli 32 bit kayan noktalı değerleri, 16 bit kayan noktalı veya 8 bit tam sayı gibi daha düşük hassasiyetli değerlere dönüştürür. Bit hassasiyetini azaltan niceleme, modelin boyutunu, bellek ayak izini ve hesaplama maliyetini önemli ölçüde düşürür.
Bilgisayarlı görüde 32 bit kayan noktalı değerler standarttır; ancak 16 veya 8 bite dönüştürmek verimliliği artırabilir. İki temel niceleme türü vardır: ağırlık niceleme ve aktivasyon niceleme. Ağırlık niceleme, boyut küçültme ile doğruluk arasında denge kurarak model ağırlıklarının hassasiyetini düşürür. Aktivasyon niceleme ise aktivasyonların hassasiyetini azaltarak bellek ve hesaplama gereksinimlerini daha da düşürür.

Şekil 4. 32 bitlik kayan noktadan 8 bitlik tamsayıya nicemleme örneği.
Karma hassasiyet yapay zekâ çıkarımını nasıl hızlandırır#
Karma hassasiyet, sinir ağının farklı bölümlerinde farklı sayısal hassasiyetler kullanan bir tekniktir. Karma hassasiyet, 32 bit kayan noktalı değerler gibi daha yüksek hassasiyetli değerleri 16 veya 8 bit kayan noktalı değerler gibi daha düşük hassasiyetli değerlerle birleştirir; böylece bilgisayarlı görü modellerinin doğruluktan ödün vermeden eğitimi hızlandırmasını ve bellek kullanımını azaltmasını sağlar.
Eğitim sırasında karma hassasiyet, ağ genelinde gereken yerlerde yüksek hassasiyeti korurken belirli katmanlarda daha düşük hassasiyet kullanılarak elde edilir. Bu işlem, tür dönüştürme ve kayıp ölçekleme yoluyla gerçekleştirilir. Tür dönüştürme, modelin gereksinimlerine göre veri türlerini farklı hassasiyetler arasında dönüştürür. Kayıp ölçekleme, sayısal alt taşmayı önlemek ve kararlı bir eğitim sağlamak için azaltılmış hassasiyeti ayarlar. Karma hassasiyet, büyük modeller ve büyük toplu iş boyutları için özellikle kullanışlıdır.

Şekil 5. Karma hassasiyetli eğitimde hem 16 bitlik (FP16) hem de 32 bitlik (FP32) kayan nokta türleri kullanılır.
Model doğruluğu ile verimliliği dengeleme#
Birkaç model optimizasyonu tekniğini ele aldığımıza göre, şimdi özel ihtiyaçlarına göre hangisini seçeceğine bakalım. Seçim; mevcut donanım, dağıtım ortamının hesaplama ve bellek kısıtları ve gereken doğruluk düzeyi gibi etkenlere bağlıdır.
Örneğin, daha küçük ve hızlı modeller kaynakları sınırlı mobil cihazlar için daha uygundur; daha büyük ve doğru modeller ise yüksek performanslı sistemlerde kullanılabilir. Her tekniğin farklı hedeflere nasıl uyduğunu aşağıda görebilirsin:
- Budama: Model boyutunu doğruluğu önemli ölçüde etkilemeden küçültmek için idealdir; bu da onu cep telefonları veya Nesnelerin İnterneti (IoT) cihazları gibi kaynakları kısıtlı cihazlar için mükemmel bir seçenek hâline getirir.
- Niceleme: Model boyutunu küçültmek ve çıkarımı hızlandırmak için, özellikle bellek ve işlem gücü sınırlı mobil cihazlarda ve gömülü sistemlerde harika bir seçenektir. Doğruluktaki küçük düşüşlerin kabul edilebilir olduğu uygulamalarda iyi sonuç verir.
- Karma hassasiyet: Büyük ölçekli modeller için tasarlanan bu teknik, karma hassasiyet işlemlerini destekleyen GPU ve TPU gibi donanımlarda bellek kullanımını azaltır ve eğitimi hızlandırır. Verimliliğin önemli olduğu yüksek performanslı görevlerde sıkça kullanılır.
- Hiperparametre ayarlama: Hesaplama açısından yoğun olsa da tıbbi görüntüleme veya otonom sürüş gibi yüksek doğruluk gerektiren uygulamalar için vazgeçilmezdir.
Önemli çıkarımlar#
Model optimizasyonu, özellikle yapay zekâyı gerçek dünya uygulamalarında kullanıma sunarken makine öğreniminin önemli bir parçasıdır. Hiperparametre ayarlama, model budama, nicemleme ve karma hassasiyet gibi teknikler, bilgisayarlı görü modellerinin performansını, verimliliğini ve kaynak kullanımını iyileştirmeye yardımcı olur. Bu optimizasyonlar modelleri hızlandırır ve kaynak ihtiyacını azaltır; bu da onları belleği ve işlem gücü sınırlı cihazlar için ideal kılar. Optimize edilmiş modellerin farklı platformlarda ölçeklendirilmesi ve dağıtılması da daha kolaydır; böylece çok çeşitli kullanımlara uygun, etkili ve uyarlanabilir yapay zekâ çözümleri sunulur.
Yapay zekânın üretim ve tarım alanlarındaki uygulamaları hakkında daha fazla bilgi edinmek için Ultralytics GitHub deposunu ziyaret et ve topluluğumuza katıl.
Yazan
Yorumlar
Soru sor, sonuçlarını paylaş veya başka birine yardım et.










