Belajar Machine Learning dengan Create ML

Cara membuat machine learning model dari dataset hingga mampu digunakan dalam aplikasi iOS tanpa menggunakan Python

Auriga Aristo
Dipantry
6 min readOct 25, 2020

--

Screenshot by Author

Sudah menjadi sebuah cita-cita mobile app developer sendiri, yaitu membuat aplikasi dengan sebuah machine learning tanpa menggunakan koneksi internet. Akan tetapi, apabila kita melihat proses implementasinya, terdapat proses training data, testing data, pembuatan model, dan menerapkannya dalam aplikasi. Mungkin kamu akan berpikiran luas, bagaimana caranya melakukan training data? Apakah harus memiliki server untuk menjalankan training? Apakah saya harus belajar Python untuk membuat model? Artikel ini akan menjadi jawaban bagi kalian yang ingin menerapkan machine learning dari scratch pada aplikasi iOS.

Berdasarkan postingan saya sebelumnya tentang Core ML (lengkapnya klik di sini), setiap aplikasi dengan machine learning akan menggunakan .mlmodel sebagai model mereka dan menerapkan library Core ML untuk menggunakan mlmodel dalam aplikasi. Pada postingan tersebut, mlmodel sudah saya sediakan atau menggunakan mlmodel milik Apple. Namun, bagaimana jika kamu ingin memiliki mlmodel sendiri dan mlmodel tidak ditemukan di internet? Bagaimana harus membuatnya?

Apabila kalian membuka website Apple Developer tentang Machine Learning, Apple telah menyediakan 2 library untuk digunakan, yaitu Core ML seperti yang sudah dijelaskan di atas dan Create ML.

Apa itu Create ML?

Create ML adalah library milik Apple yang digunakan developer untuk menciptakan mlmodel sendiri. Dengan Create ML, kamu mampu melakukan training dan testing data pada mac lokalmu tanpa menggunakan internet. Menurutku Create ML ini lebih powerful daripada library python biasa. Satu hal yang menjadi kemudahan bagi developer iOS, pembuatan model dan sistem training dan testing ini sama sekali tidak menggunakan kodingan. Bahkan sangat simpel dalam penggunaanya.

Beberapa fitur yang ditawarkan oleh Create ML adalah sistem training dilakukan dalam lokal komputer tanpa internet, melakukan model preview langsung dengan pengambilan gambar atau suara melalui iPhone, train menggunakan GPU tanpa mengganggu kinerja Mac, melakukan pause, save, resume, dan extend ketika proses train telah dijalankan, hingga mampu melakukan training model dari beberapa dataset yang berbeda.

Adapun tipe model yang mampu dijalankan menggunakan Create ML yaitu gambar, suara, video, gerakan, teks, hingga tabular.

Berikut ini adalah penjelasan dari tipe model yang ada:

  • Image Classification: Mengklasifikasi obyek atau skenario yang paling dominan dalam sebuah gambar.
  • Object Detection: Menemukan dan mengklasifikasi beberapa obyek yang berbeda dalam sebuah gambar.
  • Style Transfer: Mengubah gambar atau video agar sesuai dengan gaya tampilan dari referensi gambar.
  • Action Classification: Mengklasifikasi pergerakan seseorang dalam video berdasarkan pergerakan tubuh.
  • Activity Classification: Mengklasifikasi aktivitas yang paling dominan yang diambil melalui sensor data.
  • Sound Classification: Mengklasifikasi suara yang paling dominan dalam rekaman suara.
  • Text Classification: Mengklasifikasi topik, tema, atau sentimen dalam kalimat.
  • Word Tagging: Memisahkan teks menjadi frasa atau kata yang diklasifikasikan berdasarkan peran kontekstualnya.
  • Tabular Classification: Memprediksi nilai berdasarkan nilai pada fitur lainnya.
  • Tabular Regression: Memprediksi nilai angka berdasarkan nilai pada fitur lainnya.
  • Recommendation: Memberikan rekomendasi data baru berdasarkan seberapa sering user melakukan experience pada sebuah fitur.

Setup Environment

Untuk membuat proyek Create ML, kita tidak perlu mendownload apapun dari internet. Create ML sudah menjadi satu paket yang sama dengan Xcode (salah satu alasan mengapa app size Xcode besar). Kamu bisa membuka program Create ML dengan shortcut Command + Spasi, lalu ketik Create ML atau bisa juga melalui Xcode (lihat gambar di bawah).

Setelah muncul window aplikasi Create ML, kita akan membuat proyek baru. Pada artikel ini, saya akan membahas tentang Image Classification, maka dari itu, mari kita memilih template Image Classification.

Silahkan memberi nama proyek dan mengisi deskripsi dan lisensi jika perlu. Apabila sudah selesai, maka akan muncul tampilan seperti di bawah.

Pada tutorial ini, saya ingin membuat machine learning yang mampu membedakan kucing dan anjing berdasarkan foto. Kalian boleh mencari dan menyimpan foto dari google image, atau mencari dataset. Saya menyediakan asset dari kaggle, salah satu website yang berisikan berbagai macam dataset. Silahkan download dataset yang ada melalui link di bawah.

Link asset : https://www.kaggle.com/chetankv/dogs-cats-images

Berdasarkan info dari link di atas, dataset terbagi atas 2 macam data, yaitu training_set dan test_set. Training set berisikan foto anjing dan kucing, masing-masing berjumlah 4000 gambar, sedangkan test set masing-masing berjumlah 1000 gambar.

Traning dan test data

Dataset siap dan project sudah siap. Sekarang waktunya kita memasukkan data ke dalam project dan mengatur beberapa pengaturan sebelum memulai proses training.

Untuk bagian Training Data dan Testing Data, arahkan folder training_set dan test_set ke bagian masing-masing. Pada bagian Validation Data kita abaikan saja atau menggunakan auto sehingga sistem akan memvalidasi sendiri berdasarkan data training.

Pada bagian parameter, terdapat maximum iterations. Apabila kamu tahu berapa iterasi yang biasa kamu gunakan dalam training data, isilah berdasarkan pengetahuanmu. Apabila tidak, biarkan saja pada 25. Pada bagian augmentations, terdapat beberapa pilihan filter. Pada setiap filter yang dipilih, dataset akan disalin dan memasukkan filter ke setiap gambar yang ada. Semakin besar iterasi dan semakin banyak augmentasi, semakin lama pula proses training, namun semakin akurat data yang akan dipakai.

Untuk contoh ini, saya menggunakan iterasi sebanyak 10 tanpa adanya augmentasi.

Jika sudah, silahkan mulai proses training dan testing dengan cara klik tombol Train di atas. Normalnya, proses training hanya dilakukan oleh GPU sehingga kamu masih bisa mengerjakan hal lain dalam macmu tanpa lag.

Setelah selesai, di bagian activity pojok kanan atas, terdapat 3 buah presentase, nilai testing adalah nilai yang terpenting untuk mengetahui nilai akurasi dari training tadi. Jika kamu mendapatkan akurasi di atas 80%, maka hasil sudah siap untuk digunakan, namun jika di bawah itu, ada baiknya kamu mencari cara supaya bisa meningkatkan akurasi. Meningkatkan akurasi bisa dilakukan dengan berbagai cara, mulai dari menambah jumlah data training, menambah iterasi, hingga memasang augmentasi. Pada tutorial ini, seharuskan kalian mendapatkan akurasi sebanyak 98%.

Pada tab Preview, kamu bisa melakukan testing model yang sudah siap pakai. Kamu bisa memasukkan gambar dari google atau mengambil gambar melalui iPhone. Sistem preview bukanlah testing data, namun create ML menciptakan environment khusus seperti ketika kamu sudah mengimplementasikan model dalam aplikasi iOS. Model akan menjawab setiap gambar yang kamu masukkan dan memberikan tingkat keyakinan pada jawabannya.

Jika kamu sudah puas dengan hasilnya, kamu bisa melakukan penyimpanan melalui tab output. Lalu menekan tombol Get. Setelah itu, kamu akan mendapatkan sebuah file .mlmodel yang siap digunakan. Cara implementasi .mlmodel dalam aplikasi iOS, klik di sini.

Kesimpulan

Simpel banget kan? Program Create ML memang digunakan untuk pembuatan model machine learning. Selain powerful, framework ini mampu melakukan segala hal. Kamu bisa mencoba tipe model lainnya sendiri. Kamu hanya perlu mengikuti program tersebut. Setiap langkap bisa kamu cari tahu sendiri.

Create ML adalah satu-satunya machine learning yang saya tahu untuk membuat model tanpa menggunakan koding. Mulai sekarang lupakan python untuk machine learning dalam aplikasi iOS, kecuali kamu memang butuh machine learning yang bersifat online dan dijalankan di external server.

Saya harap kamu bisa mengikuti tutorial di atas. Selamat mencoba…

--

--

Auriga Aristo
Dipantry

4+ years in Backend Developer | PHP, Java/Kotlin, MySQL, Golang | New story every week