Tüm Yazılar
KategoriAI & ML
Okuma Süresi
22 dk okuma
Yayın Tarihi
...
Kelime Sayısı
1.434kelime

Kahveni hazırla - bu içerikli bir makale!

Create ML ile sifirdan custom model egitimi. Image Classification, Object Detection, Sound Classification ve Text Classification ornekleriyle.

Create ML ile Custom Model Egitimi

# 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


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 CreateML
2 
3// Image Classifier egitimi
4func trainImageClassifier() async throws {
5 // Veri kaynaklarini tanimla
6 let trainingDir = URL(fileURLWithPath: "/path/to/training")
7 let testingDir = URL(fileURLWithPath: "/path/to/testing")
8 
9 // Egitim verisi
10 let trainingData = MLImageClassifier.DataSource.labeledDirectories(at: trainingDir)
11 
12 // Egitim parametreleri
13 let parameters = MLImageClassifier.ModelParameters(
14 validation: .dataSource(
15 .labeledDirectories(at: testingDir)
16 ),
17 maxIterations: 25,
18 augmentation: [
19 .crop, .rotation, .blur, .exposure, .flip, .noise
20 ]
21 )
22 
23 // Model egitimi
24 let classifier = try MLImageClassifier(
25 trainingData: trainingData,
26 parameters: parameters
27 )
28 
29 // Degerlendirme
30 let evaluation = classifier.evaluation(on: .labeledDirectories(at: testingDir))
31 print("Dogruluk: \(evaluation)")
32 
33 // Modeli kaydet
34 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: metadata
43 )
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 CreateML
2 
3func trainObjectDetector() async throws {
4 // Annotation formatinda veri
5 let trainingDataURL = URL(fileURLWithPath: "/path/to/annotations.json")
6 
7 let trainingData = try MLObjectDetector.DataSource.labeledFiles(
8 at: trainingDataURL
9 )
10 
11 let parameters = MLObjectDetector.ModelParameters(
12 algorithm: .transferLearning(
13 featureExtractor: .yoloV3TinyInt8LUT,
14 maxIterations: 50
15 )
16 )
17 
18 let detector = try MLObjectDetector(
19 trainingData: trainingData,
20 parameters: parameters
21 )
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: metadata
32 )
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 CreateML
2import Foundation
3 
4func trainTextClassifier() async throws {
5 // CSV veya JSON formatinda egitim verisi
6 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 test
17 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 CreateML
2import Foundation
3 
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: 50
10 )
11 
12 let classifier = try MLSoundClassifier(
13 trainingData: .labeledDirectories(at: trainingDir),
14 parameters: parameters
15 )
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: metadata
26 )
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.

Etiketler

#Create ML#Model Training#Image Classification#iOS#Machine Learning
Muhittin Çamdalı

Muhittin Çamdalı

Senior iOS Developer

12+ yıllık deneyime sahip iOS Developer. Swift, SwiftUI ve modern iOS mimarileri konusunda uzman. Apple platformlarında performanslı ve kullanıcı dostu uygulamalar geliştiriyorum.

iOS Geliştirme Haberleri

Haftalık Swift tips, SwiftUI tricks ve iOS best practices. Spam yok, sadece değerli içerik.

Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.

Paylaş

Bunu da begenebilirsiniz