# Create ML ile Custom Model Egitimi
Apple'in Create ML araci, Mac uzerinde makine ogrenmesi modelleri egitmeni saglayan sezgisel bir platformdur. Tek satir kod yazmadan veya Swift ile programatik olarak image classification, object detection, sound classification ve daha fazlasini olusturabilirsin. Bu rehberde Create ML'in tum yeteneklerini kesfedecek ve production-ready modeller egiteceksin.
"Herkes ML modeli egitebilir — onemli olan dogru veriyi toplamak ve modeli dogru degerlendirmektir." — Practical ML for iOS
Icindekiler
- Create ML Nedir?
- Desteklenen Model Turleri
- Image Classification Egitimi
- Object Detection
- Text Classification
- Sound Classification
- Programatik Egitim (Swift)
- Model Degerlendirme
- Transfer Learning
- Okuyucu Odulu
- Sonuc
1. Create ML Nedir?
Create ML, macOS uzerinde calisan ve Apple ekosistemi icin optimize edilmis modeller ureten bir aractir. Xcode 10+ ile birlikte gelir ve ayrica standalone bir app olarak da mevcuttur (macOS Ventura+).
Avantajlari
Ozellik | Create ML | TensorFlow/PyTorch |
|---|---|---|
Platform | macOS native | Cross-platform |
Kullanim | GUI + Swift API | Python script |
Cikti | .mlmodel/.mlpackage | .pb/.pt (donusum gerekli) |
Transfer Learning | Dahili | Manuel |
Veri Hazirlama | Otomatik augmentation | Manuel pipeline |
Ogrenme Egrisi | Dusuk | Yuksek |
Neural Engine Uyumu | Otomatik | Manuel optimizasyon |
2. Desteklenen Model Turleri
Create ML su model turlerini destekler:
- Image Classification: Goruntuleri kategorilere ayirma
- Object Detection: Goruntude nesne bulma ve konumlama
- Hand Pose Classification: El hareketlerini tanima
- Body Pose Classification: Vucut pozisyonlarini tanima
- Sound Classification: Ses siniflandirma
- Text Classification: Metin kategorilendirme
- Word Tagging: Kelime seviyesinde etiketleme
- Tabular Classification/Regression: Tablo verisi ile tahmin
- Recommendation: Oneri sistemi
- Activity Classification: Hareket sensoru verisiyle aktivite tanima
3. Image Classification Egitimi
Image classification, Create ML'in en yaygin kullanim alanindan biridir. Ornegin bir uygulamada cicek turlerini tanima sistemi kuralim.
Veri Hazirlama
Veri klasor yapisi su sekilde olmali:
Training Data klasorunun altinda her sinif icin ayri bir klasor olusturulur. Ornegin "gul", "papatya", "lale" gibi klasorlerin her birinde en az 10-20 ornek goruntu bulunmalidir.
Swift ile Programatik Egitim
swift
1import CreateML2 3// Image Classifier egitimi4func trainImageClassifier() async throws {5 // Veri kaynaklarini tanimla6 let trainingDir = URL(fileURLWithPath: "/path/to/training")7 let testingDir = URL(fileURLWithPath: "/path/to/testing")8 9 // Egitim verisi10 let trainingData = MLImageClassifier.DataSource.labeledDirectories(at: trainingDir)11 12 // Egitim parametreleri13 let parameters = MLImageClassifier.ModelParameters(14 validation: .dataSource(15 .labeledDirectories(at: testingDir)16 ),17 maxIterations: 25,18 augmentation: [19 .crop, .rotation, .blur, .exposure, .flip, .noise20 ]21 )22 23 // Model egitimi24 let classifier = try MLImageClassifier(25 trainingData: trainingData,26 parameters: parameters27 )28 29 // Degerlendirme30 let evaluation = classifier.evaluation(on: .labeledDirectories(at: testingDir))31 print("Dogruluk: \(evaluation)")32 33 // Modeli kaydet34 let metadata = MLModelMetadata(35 author: "iOS Developer",36 shortDescription: "Cicek turu siniflandirici",37 version: "1.0"38 )39 40 try classifier.write(41 to: URL(fileURLWithPath: "/path/to/FlowerClassifier.mlmodel"),42 metadata: metadata43 )44}Easter Egg
Gizli bir bilgi buldun!
Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?
4. Object Detection
Object detection, goruntude nesnelerin hem sinifini hem de konumunu tespit eder.
swift
1import CreateML2 3func trainObjectDetector() async throws {4 // Annotation formatinda veri5 let trainingDataURL = URL(fileURLWithPath: "/path/to/annotations.json")6 7 let trainingData = try MLObjectDetector.DataSource.labeledFiles(8 at: trainingDataURL9 )10 11 let parameters = MLObjectDetector.ModelParameters(12 algorithm: .transferLearning(13 featureExtractor: .yoloV3TinyInt8LUT,14 maxIterations: 5015 )16 )17 18 let detector = try MLObjectDetector(19 trainingData: trainingData,20 parameters: parameters21 )22 23 let metadata = MLModelMetadata(24 author: "iOS Developer",25 shortDescription: "Nesne tespiti modeli",26 version: "1.0"27 )28 29 try detector.write(30 to: URL(fileURLWithPath: "/path/to/ObjectDetector.mlmodel"),31 metadata: metadata32 )33}Annotation formati olarak Apple'in kendi JSON formati veya COCO formati kullanilabilir. CreateML app'inde gorsel olarak da annotation yapabilirsiniz.
5. Text Classification
Metin siniflandirma, duygu analizi, spam tespiti veya konu kategorilendirme icin kullanilir.
swift
1import CreateML2import Foundation3 4func trainTextClassifier() async throws {5 // CSV veya JSON formatinda egitim verisi6 let trainingData = try MLDataTable(7 contentsOf: URL(fileURLWithPath: "/path/to/reviews.csv")8 )9 10 let classifier = try MLTextClassifier(11 trainingData: trainingData,12 textColumn: "text",13 labelColumn: "sentiment"14 )15 16 // Tek bir metin uzerinde test17 let prediction = try classifier.prediction(from: "Bu urun harika!")18 print("Tahmin: \(prediction)")19 20 try classifier.write(21 to: URL(fileURLWithPath: "/path/to/SentimentClassifier.mlmodel"),22 metadata: MLModelMetadata(23 author: "iOS Dev",24 shortDescription: "Turkce duygu analizi",25 version: "1.0"26 )27 )28}6. Sound Classification
Ses siniflandirma, ortam seslerini tanima icin kullanilir. Ornegin bebek aglamasi, cam kirilmasi veya muzik aleti tanima.
Egitim icin her sinif en az 10 ses dosyasi (WAV veya M4A) icermeli ve her dosya minimum 1 saniye uzunlugunda olmalidir.
swift
1import CreateML2import Foundation3 4func trainSoundClassifier() async throws {5 let trainingDir = URL(fileURLWithPath: "/path/to/sounds/training")6 7 let parameters = MLSoundClassifier.ModelParameters(8 validation: .split(strategy: .automatic),9 maxIterations: 5010 )11 12 let classifier = try MLSoundClassifier(13 trainingData: .labeledDirectories(at: trainingDir),14 parameters: parameters15 )16 17 let metadata = MLModelMetadata(18 author: "iOS Developer",19 shortDescription: "Ortam sesi siniflandirici",20 version: "1.0"21 )22 23 try classifier.write(24 to: URL(fileURLWithPath: "/path/to/SoundClassifier.mlmodel"),25 metadata: metadata26 )27}Ses dosyalarinin kalitesi model basarisini dogrudan etkiler. Mumkunse farkli ortamlarda ve farkli cihazlarla kayit yapin; bu sayede model gercek dunya kosullarinda daha dayanikli olur.
7. Programatik Egitim ile Otomasyon
Create ML Swift API'si ile egitim pipeline'inizi otomatize edebilirsiniz. Bu, CI/CD sureclerine ML model egitimini dahil etmek icin idealdir.
Model Performans Metrikleri
Metrik | Aciklama | Hedef |
|---|---|---|
Accuracy | Dogru tahmin orani | >%90 |
Precision | Pozitif tahmin dogrulugu | >%85 |
Recall | Gercek pozitifleri yakalama | >%85 |
F1 Score | Precision-Recall dengesi | >%87 |
Confusion Matrix | Sinif bazli hata analizi | Az karisiklik |
8. Transfer Learning
Create ML, transfer learning'i dahili olarak destekler. Bu, onceden egitilmis bir modelin (feature extractor) uzerine kendi verilerinizle ince ayar yapmaniz demektir. 50-100 goruntu ile bile iyi sonuclar alinabilir.
Transfer learning kullanirken dikkat edilmesi gerekenler:
- Egitim verisi temiz ve dengeli olmali
- Her sinifta en az 10 ornek bulunmali
- Test verisi egitim verisinden tamamen farkli olmali
- Augmentation kullanarak veri cesitliligini artirin
ALTIN İPUCU
Bu yazının en değerli bilgisi
Bu ipucu, yazının en önemli çıkarımını içeriyor.
Okuyucu Ödülü
Tebrikler! Bu yazıyı sonuna kadar okuduğun için sana özel bir hediyem var:
Sonuç ve Öneriler
Create ML, iOS gelistiricileri icin en erisilebilir makine ogrenmesi aracidir. Python veya karmasik ML pipeline'lari bilmeden, Swift ile dogrudan model egitebilirsiniz. Transfer learning sayesinde az veriyle bile yuksek dogrulukta sonuclar almak mumkundur. Image classification ile baslayip, ihtiyaclariniza gore object detection, text classification veya sound classification'a gecebilirsiniz.
Model egitim surecinde veri kalitesine ozellikle dikkat edin. Dengeli ve temiz bir veri seti, karmasik bir model mimarisinden cok daha fazla etkiye sahiptir. Augmentation parametrelerini dogru ayarlamak, modelin gercek dunya kosullarinda daha dayanikli olmasini saglar. Her zaman bir validation seti ayirin ve confusion matrix'i dikkatlice inceleyin — modelin hangi siniflar arasinda karisiklik yasadigini anlamak, iyilestirme icin en degerli ipucunu verir.
Production'a gecmeden once modeli farkli cihazlarda ve kosullarda test etmeyi unutmayin. Core ML model boyutunu kontrol edin, cunku buyuk modeller uygulama boyutunu onemli olcude artirabilir. Modeli guncellemek icin on-device training veya CloudKit uzerinden model dagitimi gibi stratejiler dusunun. Create ML'in Xcode playground entegrasyonu sayesinde hizli iterasyon yapabilir, modeli surekli iyilestirebilirsiniz. Son olarak, her model guncellenmesinde A/B test yaparak kullanici deneyimi uzerindeki etkiyi olcmenizi siddetle oneririz.

