Veri kümesi damıtma nedir? Kısa bir genel bakış
Veri kümesi damıtmanın büyük veri kümelerini küçük ve optimize edilmiş sentetik örneklerden oluşan bir kümeyle değiştirerek model eğitimini nasıl hızlandırdığını ve hesaplama maliyetlerini nasıl azalttığını öğren.

Modelleri eğitmek, bir veri bilimcisinin işinin en çok zaman alan kısmı gibi görünebilir. Ancak zamanlarının çoğu, genellikle %60 ila %80'i, aslında verileri hazırlamaya gider: verileri toplamak, temizlemek ve modelleme için düzenlemek. Veri kümeleri büyüdükçe bu hazırlık süresi de artar; bu da deneyleri yavaşlatır ve yinelemeyi zorlaştırır.
Araştırmacılar bu sorunu çözmek için eğitimi kolaylaştırmanın yollarını yıllardır araştırıyor. Sentetik veri, veri kümesi sıkıştırma ve daha iyi optimizasyon yöntemleri gibi yaklaşımların tümü, büyük ölçekli veri kümeleriyle çalışmanın maliyetini ve zorluklarını azaltmayı ve makine öğrenimi iş akışlarını hızlandırmayı amaçlıyor.
Bunun ortaya çıkardığı temel soru, bir veri kümesini, modeli eksiksiz veriler üzerinde eğitmeyle aynı performansı korurken büyük ölçüde küçültüp küçültemeyeceğimizdir. Veri kümesi damıtma, umut vadeden yanıtlardan biridir.
Büyük bir eğitim veri kümesinin kompakt bir sürümünü oluştururken modelin etkili şekilde öğrenmesi için ihtiyaç duyduğu temel örüntüleri korur. Daha hızlı eğitim, daha düşük hesaplama gereksinimleri ve daha verimli deneyler için bir yol sunar. Bunu, model için bir çalışma kopya kâğıdı gibi düşünebilirsin: tam veri kümesiyle aynı temel örüntüleri öğretmek üzere tasarlanmış küçük bir sentetik veri örnekleri kümesi.
Bu makalede veri kümesi damıtmanın nasıl çalıştığını ve gerçek dünya uygulamalarında ölçeklenebilir makine öğrenimi ile derin öğrenmeyi nasıl desteklediğini inceleyeceğiz. Hadi başlayalım!
Veri kümesi damıtmayı anlama#
Veri kümesi damıtma, büyük bir eğitim veri kümesinin, modele orijinal veri kümesiyle neredeyse aynı bilgileri öğreten çok daha küçük bir veri kümesine yoğunlaştırılması sürecidir. Birçok araştırmacı bu sürece veri kümesi yoğunlaştırma da der; çünkü amaç, tam veri kümesi genelinde görülen temel örüntüleri yakalamaktır.
Damıtılmış veri kümesi, rastgele oluşturulmuş sentetik verilerden veya gerçek görüntülerin daha küçük bir alt kümesini seçmekten farklıdır. Rastgele bir sahte veri kümesi ya da orijinalin kırpılmış bir kopyası değildir.
Bunun yerine, en önemli örüntüleri yakalamak üzere bilinçli olarak optimize edilir. Bu süreçte her piksel ve özellik, damıtılmış verilerle eğitilen bir sinir ağının tüm veri kümesiyle eğitilmiş gibi öğrenmesi için ayarlanır ve optimize edilir.
Bu fikir ilk olarak Tongzhou Wang, Jun-Yan Zhu, Antonio Torralba ve Alexei A. Efros'un 2018 tarihli bir arXiv makalesinde ortaya çıktı. İlk testlerde MNIST ve CIFAR-10 gibi basit veri kümeleri kullanıldı; bu da birkaç damıtılmış örneğin binlerce gerçek görüntünün yerini alabileceğini göstermeyi kolaylaştırdı.

Şekil 1. Görüntü verileri için veri kümesi damıtma kullanımı (Kaynak)
O zamandan beri ICML ve ICLR'da yayımlanan ve yoğunlaştırmayı daha verimli ve ölçeklenebilir hâle getiren yöntemler de dâhil olmak üzere, devam eden çalışmalar veri kümesi damıtmayı daha ileriye taşıdı.
Veri kümesi damıtmanın önemi#
Veri kümesi damıtma, eğitim verimliliğini artırır ve geliştirme döngülerini hızlandırır. Bir modelin öğrenmesi gereken veri miktarını azaltarak hesaplama gereksinimlerini düşürür.
Bu durum özellikle, modellerin zaman içinde güncellendiği sürekli öğrenme, birçok model tasarımının test edildiği sinir mimarisi araması ve modellerin sınırlı bellek ve güce sahip küçük cihazlarda çalıştığı uçta eğitim için yararlıdır. Genel olarak bu avantajlar, veri kümesi damıtmayı hızlı başlatma, çabuk ince ayar ve birçok makine öğrenimi iş akışında erken prototipler oluşturma için harika bir seçenek hâline getirir.
Veri kümesi damıtmanın nasıl çalıştığına genel bakış#
Veri kümesi damıtma, sentetik veya yapay olarak oluşturulmuş eğitim örnekleri üretir. Bu örnekler, modelin gerçek veriler üzerinde eğitilmeye oldukça benzer şekilde öğrenmesine yardımcı olur. Süreç, normal eğitim sırasında üç temel faktörü izleyerek çalışır.
Birincisi, modelin tahminlerinin ne kadar hatalı olduğunu gösteren hata puanı olan kayıp işlevidir. İkincisi, model öğrenirken güncellenen ağın dahili ağırlıkları olan model parametreleridir.
Üçüncüsü, hatanın ve ağırlıkların zaman içinde adım adım nasıl değiştiğini açıklayan eğitim yörüngesidir. Ardından sentetik örnekler, model bunlarla eğitildiğinde hatasının azalması ve ağırlıklarının tam veri kümesiyle eğitimdekiyle aynı şekilde güncellenmesi için optimize edilir.
Veri kümesi damıtmaya adım adım bakış#
Veri kümesi damıtma sürecinin nasıl çalıştığına daha yakından bakalım:
- 1. Adım - Sentetik pikselleri başlatma: Süreç, öğrenilebilir girdiler olarak görev yapan sentetik görüntülerle başlar. İlk başta bu görüntüler çok az yapıya sahiptir ve boş bir tuval gibi görünür. Zamanla bilgilendirici örneklere dönüştürülürler.
- 2. Adım - Gradyan eşleme ve geri yayılımla optimize etme: Model bu sentetik görüntüler üzerinde eğitim alırken, gerçek verilerin eğitim davranışıyla daha iyi eşleşmek için her pikselin nasıl değişmesi gerektiğini gösteren gradyanlar üretir. Geri yayılım, ağın hatalardan öğrenmek için kullandığı yöntemdir. Hatayı modelin içinden geriye doğru ileterek hangi piksellerin ve ağırlıkların buna neden olduğunu belirler, ardından bunları küçük miktarlarda günceller. Geri yayılım, bu gradyanları kullanarak sentetik görüntüleri adım adım ayarlar ve eğitim için daha bilgilendirici hâle getirir.
- 3. Adım - Eğitim adımları boyunca davranışı eşleme: Yöntem ayrıca eğitim yörüngelerini, yani modelin öğrenirken geçirdiği adım adım değişimleri de eşler. Bu, damıtılmış veri kümesinin modeli tam veri kümesiyle izleyeceği yola benzer bir öğrenme yolunda yönlendirmesini sağlar.
- 4. Adım - Doğrulama ve genelleme: Son olarak damıtılmış veri kümesi, eğitilen modelin yeni örneklerde ne kadar iyi performans gösterdiğini görmek için gerçek doğrulama verileri üzerinde değerlendirilir. Bu kontrol, sentetik verilerin modelin belirli örnekleri ezberlemesine neden olmak yerine geniş kapsamlı ve işlevsel örüntüler öğretmesini sağlar.

Şekil 2. Veri kümesi damıtmaya bakış (Kaynak)
Temel veri kümesi damıtma yöntemleri#
Tüm veri kümesi damıtma yöntemleri, hedefe ulaşmak için farklı algoritmalar kullansalar da aynı temel fikre dayanır. Yaklaşımların çoğu üç kategoriye ayrılır: performans eşleme, dağılım eşleme ve parametre eşleme.
Şimdi her birine bakalım ve nasıl çalıştığını görelim.
Performans eşleme#
Veri kümesi damıtmada performans eşleme, modelin tam ve orijinal veri kümesi üzerinde eğitilmişçesine neredeyse aynı doğruluğa ulaşmasını sağlayan küçük, optimize edilmiş bir eğitim kümesi oluşturmaya odaklanır. Damıtılmış örnekler rastgele bir alt küme olarak seçilmek yerine, bunlarla eğitilen modelin orijinal veri kümesiyle eğitilen modele benzer tahminler, eğitim sırasında benzer kayıp davranışı veya benzer nihai doğruluk üretmesi için optimize edilir.
Meta öğrenme, bu süreci geliştirmek için kullanılan yaygın bir yöntemdir. Damıtılmış veri kümesi, tekrarlanan eğitim bölümleriyle güncellenir ve böylece birçok olası durumda etkili hâle gelir.
Bu bölümlerde yöntem, öğrenci modelin mevcut damıtılmış örneklerden nasıl öğrendiğini simüle eder, bu öğrencinin gerçek verilerde ne kadar iyi performans gösterdiğini kontrol eder ve ardından damıtılmış örnekleri daha iyi öğretmenler olacak şekilde ayarlar. Zamanla damıtılmış küme, öğrenci model farklı başlangıç ağırlıklarıyla başlasa veya farklı bir mimari kullansa bile hızlı öğrenmeyi ve güçlü genellemeyi desteklemeyi öğrenir. Bu, damıtılmış veri kümesini daha güvenilir hâle getirir ve tek bir eğitim çalışmasına bağlı kalmasını önler.

Şekil 3. Meta öğrenme süreci (Kaynak)
Dağılım eşleme teknikleri#
Buna karşılık dağılım eşleme, gerçek veri kümesinin istatistiksel örüntüleriyle eşleşen sentetik veriler üretir. Bu yaklaşım yalnızca modelin nihai doğruluğuna odaklanmak yerine, sinir ağının öğrenme sırasında ürettiği dahili özelliklere odaklanır.
Şimdi dağılım eşlemeyi yönlendiren iki tekniğe bakalım.
Tek katmanlı dağılım eşleme#
Tek katmanlı dağılım eşleme, bir sinir ağının tek bir katmanına odaklanır ve bu katmanın gerçek ve sentetik veriler için ürettiği özellikleri karşılaştırır. Aktivasyonlar olarak da adlandırılan bu özellikler, modelin ağın o noktasında ne öğrendiğini yakalar.
Sentetik verilerin benzer aktivasyonlar üretmesini sağlayan bu yöntem, damıtılmış veri kümesinin orijinal veri kümesiyle aynı önemli örüntüleri yansıtmasını teşvik eder. Uygulamada sentetik örnekler, seçilen katmandaki aktivasyonlar gerçek görüntülerdekilerle yakından eşleşene kadar tekrar tekrar güncellenir.
Bu yaklaşım, aynı anda yalnızca bir temsil düzeyini hizaladığı için nispeten basittir. Daha küçük veri kümelerinde veya derin, çok aşamalı özellik hiyerarşilerini eşlemenin gerekli olmadığı görevlerde özellikle iyi çalışabilir. Tek katmanlı eşleme, bir özellik uzayını açıkça hizalayarak damıtılmış veri kümesiyle öğrenme için kararlı ve anlamlı bir sinyal sağlar.
Çok katmanlı dağılım eşleme#
Çok katmanlı dağılım eşleme, gerçek ve sentetik verileri tek bir katman yerine bir sinir ağının çeşitli katmanlarında karşılaştırarak bu fikri geliştirir. Farklı katmanlar, erken katmanlardaki basit kenar ve dokulardan daha derin katmanlardaki şekillere ve daha karmaşık örüntülere kadar farklı bilgi türlerini yakalar.
Bu katmanlar arasındaki özellikleri eşleyerek damıtılmış veri kümesi, modelin birden çok düzeyde öğrendiklerini yansıtacak şekilde yönlendirilir. Ağ genelindeki özellikleri hizaladığı için bu yaklaşım, sentetik verilerin modelin sınıfları birbirinden ayırmak için dayandığı daha zengin sinyalleri korumasına yardımcı olur.
Bu, modellerin görüntüleri ve videoları anlamayı öğrendiği görevler anlamına gelen bilgisayarlı görü için özellikle yararlıdır; çünkü faydalı örüntüler birçok katmana yayılır. Özellik dağılımları çeşitli derinliklerde iyi eşleştiğinde damıtılmış veri kümesi, orijinal eğitim verilerinin daha güçlü ve güvenilir bir alternatifi olarak görev yapar.
Parametre eşleme yöntemleri#
Veri kümesi damıtmadaki bir diğer temel kategori parametre eşlemedir. Doğruluğu veya özellik dağılımlarını eşlemek yerine, model ağırlıklarının eğitim sırasında nasıl değiştiğini eşler. Damıtılmış veri kümesiyle yapılan eğitimin gerçek verilerle eğitime benzer parametre güncellemeleri üretmesini sağlayarak model neredeyse aynı öğrenme yolunu izler.
Şimdi iki temel parametre eşleme yöntemini ele alacağız.
Tek adımlı eşleme#
Tek adımlı eşleme, gerçek veriler üzerinde yalnızca bir eğitim adımından sonra model ağırlıklarında ne olduğunu karşılaştırır. Ardından damıtılmış veri kümesi, bununla bir adım eğitilen modelin çok benzer bir ağırlık güncellemesi üretmesi için ayarlanır. Yalnızca bu tek güncellemeye odaklandığı için yöntem basit ve hızlıdır.
Dezavantajı, özellikle modelin daha zengin özellikler oluşturmak için çok sayıda güncellemeye ihtiyaç duyduğu zor görevlerde, tek bir adımın tüm öğrenme sürecini yansıtmamasıdır. Bu nedenle tek adımlı eşleme, faydalı örüntülerin hızlıca öğrenilebildiği daha basit problemlerde veya daha küçük veri kümelerinde en iyi sonucu verme eğilimindedir.
Çok adımlı parametre eşleme#
Buna karşılık çok adımlı parametre eşleme, model ağırlıklarının yalnızca bir değil, birkaç eğitim adımı boyunca nasıl değiştiğine bakar. Bu güncelleme dizisi modelin eğitim yörüngesidir.
Damıtılmış veri kümesi, model sentetik örneklerle eğitildiğinde yörüngesinin gerçek verilerde izleyeceği yörüngeyi yakından takip etmesi için oluşturulur. Daha uzun bir öğrenme bölümünü eşleyerek damıtılmış küme, orijinal eğitim sürecinin daha fazla yapısını yakalar.
Öğrenmenin zaman içinde nasıl ilerlediğini yansıttığı için çok adımlı eşleme, modellerin faydalı örüntüleri öğrenmek üzere birçok güncellemeye ihtiyaç duyduğu daha büyük veya karmaşık veri kümelerinde genellikle daha iyi çalışır. Birden fazla adımı izlemek zorunda olduğundan daha fazla hesaplama gerektirir; ancak çoğu zaman tek adımlı eşlemeye göre daha iyi genelleyen ve daha iyi performans gösteren damıtılmış veri kümeleri üretir.
Sentetik veri kümesi oluşturma ve optimizasyonun işleyişi#
Temel damıtma yaklaşımlarını daha iyi anladığımıza göre şimdi sentetik verilerin nasıl oluşturulduğuna bakabiliriz. Veri kümesi damıtmada sentetik örnekler, en önemli öğrenme sinyalini yakalayacak şekilde optimize edilir; böylece küçük bir küme çok daha büyük bir veri kümesinin yerini alabilir.
Şimdi bu damıtılmış verilerin nasıl oluşturulduğunu ve değerlendirildiğini göreceğiz.
Damıtılmış görüntüleri oluşturma ve değerlendirme#
Veri kümesi damıtma sırasında sentetik pikseller birçok eğitim adımı boyunca güncellenir. Sinir ağı mevcut sentetik görüntülerden öğrenir ve her pikselin gerçek veri kümesindeki örüntülerle daha iyi eşleşmek için nasıl değişmesi gerektiğini gösteren gradyan tabanlı geri bildirim gönderir.
Bu süreç türevlenebilir olduğu için çalışır (yani her adım düzgündür ve iyi tanımlanmış gradyanlara sahiptir; bu nedenle küçük piksel değişiklikleri kayıpta öngörülebilir değişikliklere yol açar) ve modelin sentetik verileri gradyan inişi sırasında sorunsuzca ayarlamasına olanak tanır.
Optimizasyon devam ettikçe sentetik görüntüler, modelin tanıdığı şekiller ve dokular da dâhil olmak üzere anlamlı bir yapı kazanmaya başlar. Bu iyileştirilmiş sentetik görüntüler, sınıflandırıcının öğrenmesi gereken temel görsel ipuçlarını yakaladıkları için genellikle görüntü sınıflandırma görevlerinde kullanılır.
Damıtılmış veri kümeleri, modeller bunlarla eğitilerek ve sonuçlar gerçek verilerle eğitilen modellerle karşılaştırılarak değerlendirilir. Araştırmacılar doğrulama doğruluğunu ölçer ve sentetik kümenin sınıfları ayırmak için gereken ayırt edici özellikleri (modelin bir sınıfı diğerinden ayırmak için dayandığı örüntüler veya sinyaller) koruyup korumadığını kontrol eder. Ayrıca damıtılmış verilerin aşırı öğrenmeye yol açmadığından emin olmak için farklı çalıştırmalar veya model kurulumları arasındaki kararlılığı ve genellemeyi test ederler.
Veri damıtmanın gerçek dünya uygulamaları#
Şimdi, veriler sınırlı veya oldukça özel olsa bile güçlü performansı korurken damıtılmış veri kümelerinin eğitimi nasıl hızlandırdığını ve hesaplama maliyetlerini nasıl azalttığını gösteren örneklere daha yakından bakacağız.
Bilgisayarlı görü uygulamalarında veri kümesi damıtmayı kullanma#
Bilgisayarlı görü söz konusu olduğunda amaç, modelleri görüntüler ve videolar gibi görsel verileri anlamaları için eğitmektir. Bu modeller kenarlar, dokular, şekiller ve nesneler gibi örüntüleri öğrenir ve ardından bu örüntüleri görüntü sınıflandırma, nesne algılama veya segmentasyon gibi görevlerde kullanır. Görüntü problemlerinde aydınlatma, arka planlar ve bakış açıları çoğu zaman büyük çeşitlilik gösterdiğinden, bilgisayarlı görü sistemlerinin iyi genelleme yapabilmesi için genellikle büyük veri kümelerine ihtiyacı vardır; bu da eğitimi pahalı ve yavaş hâle getirir.

Şekil 4. Veri kümesi damıtma örneği (Kaynak)
Tıbbi taramalar, yaban hayatı izleme veya fabrika kusur tespiti gibi görüntü sınıflandırma kullanım alanlarında modeller çoğu zaman doğruluk ile eğitim maliyeti arasında zor bir dengeyle karşılaşır. Bu görevler genellikle devasa veri kümeleri içerir.
Veri kümesi damıtma, orijinal eğitim kümesini sınıflandırıcı için en önemli görsel ipuçlarını hâlâ içeren az sayıda sentetik görüntüye sıkıştırabilir. ImageNet gibi büyük kıyaslamalarda, yalnızca orijinal görüntülerin yaklaşık %4,2'sini kullanan damıtılmış kümelerin güçlü sınıflandırma doğruluğunu koruduğu gösterilmiştir. Bu, küçük bir sentetik vekilin milyonlarca gerçek örneğin yerini çok daha düşük hesaplama maliyetiyle alabileceği anlamına gelir.
Sinir mimarisi araması#
Sinir mimarisi araması veya NAS, bir görev için en iyi çalışanı bulmak üzere birçok olası sinir ağı tasarımını otomatik olarak inceleyen bir tekniktir. NAS'in çok sayıda aday modeli eğitip değerlendirmesi gerektiğinden, bunu tam veri kümeleri üzerinde çalıştırmak yavaş ve son derece hesaplama yoğun olabilir.
Veri kümesi damıtma, orijinal verilerin temel öğrenme sinyalini hâlâ içeren küçük bir sentetik eğitim kümesi oluşturarak yardımcı olur; böylece her aday mimari çok daha hızlı test edilebilir. Bu, NAS'in iyi ve kötü mimarilerin sıralamasını makul ölçüde güvenilir tutarken tasarımları verimli bir şekilde karşılaştırmasına ve nihai model kalitesinden fazla ödün vermeden arama maliyetini azaltmasına olanak tanır.
Sürekli öğrenme ve uçta dağıtım#
Yeni veriler geldikçe bir kez eğitilmek yerine güncellenmeye devam eden modeller anlamına gelen sürekli öğrenme sistemleri, hızlı ve bellek açısından verimli güncellemelere ihtiyaç duyar. Kameralar, telefonlar ve sensörler gibi uç cihazlar da sınırlı hesaplama ve depolama bütçelerine sahip oldukları için benzer kısıtlamalarla karşılaşır.
Veri kümesi damıtma, her iki durumda da büyük bir eğitim kümesini küçük bir sentetik kümeye sıkıştırarak yardımcı olur; böylece modeller tam veri kümesi yerine küçük bir yeniden oynatma kümesini kullanarak uyarlanabilir veya yeniden eğitilebilir. Örneğin çekirdek tabanlı meta öğrenme çalışması, yalnızca 10 damıtılmış örneğin standart bir görüntü sınıflandırma kıyaslaması olan CIFAR-10 üzerinde %64'ün üzerinde doğruluk elde edebileceğini gösterdi. Yeniden oynatma kümesi çok kompakt olduğu için güncellemeler, özellikle modellerin sık sık yenilenmesi gerektiğinde, çok daha hızlı ve pratik hâle gelir.
Veri kümesi damıtma, büyük dil modelleri için bilgi damıtmayla birlikte de çalışabilir. Küçük bir damıtılmış veri kümesi, öğretmen modelden gelen en önemli görev sinyallerini koruyabilir; böylece sıkıştırılmış öğrenci model, fazla performans kaybetmeden daha verimli şekilde eğitilebilir veya yenilenebilir. Bu veri kümeleri küçük olduğundan, depolama ve hesaplama kaynaklarının sınırlı olduğu ancak güncellemelerden sonra modelin doğruluğunu korumasının istendiği uçta veya cihaz üzerindeki kullanım için özellikle yararlıdır.
Veri damıtmanın artıları ve eksileri#
Veri kümesi damıtmayı kullanmanın bazı avantajları şunlardır:
- Hızlı deneyler için harika. Her seferinde devasa bir veri kümesi üzerinde yeniden eğitim yapmadan yeni mimarileri, kayıpları veya hiperparametreleri test edebilirsin.
- Gizlilik açısından potansiyel avantaj. Ham örnekler doğrudan açığa çıkmadığı için damıtılmış sentetik örnekleri paylaşmak, gerçek kullanıcı verilerini paylaşmaktan daha güvenli olabilir.
- Basit alt küme seçiminden genellikle daha güçlü. Damıtma, örnekleri yalnızca seçmek yerine en fazla bilgiyi sağlayacak şekilde etkin olarak optimize eder.
Veri kümesi damıtma çeşitli avantajlar sunsa da akılda tutulması gereken bazı sınırlamalar şunlardır:
- Aşırı öğrenme: Damıtılmış veriler genellikle damıtma sırasında kullanılan mimaride en iyi sonucu verir ve çok farklı modellere iyi aktarılamayabilir.
- Hiperparametrelere duyarlı. Sonuçlar öğrenme oranı, başlatma veya damıtma adımlarının sayısı gibi faktörlere büyük ölçüde bağlı olabilir.
- Gerçek dünya karmaşıklığına ölçeklemek daha zor. Kıyaslamalarda iyi çalışan yöntemler büyük, düzensiz veya yüksek çözünürlüklü veri kümelerinde doğruluk kaybedebilir.
Önemli çıkarımlar#
Veri kümesi damıtma, küçük bir sentetik örnek kümesinin modele eksiksiz bir veri kümesi kadar etkili bir şekilde öğretmesini mümkün kılar. Bu, makine öğrenimini daha hızlı, verimli ve ölçeklenebilir hâle getirir. Modeller büyüyüp daha fazla veriye ihtiyaç duydukça damıtılmış veri kümeleri, doğruluktan ödün vermeden hesaplama maliyetlerini azaltmak için pratik bir yol sunar.
Topluluğumuza katıl ve yapay zekâ hakkında daha fazla bilgi edinmek için GitHub depomuza göz at. Kendi görü yapay zekâ projenizi oluşturmak istiyorsan lisans seçeneklerimize göz at. Çözüm sayfalarımızı ziyaret ederek sağlık hizmetlerinde yapay zekâ ve perakendede görü yapay zekâ gibi uygulamalar hakkında daha fazla bilgi edin.









