Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Machine Learning
Code

Apa yang Baru di Core ML 2?

by
Length:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Febri Ardian Sanjoyo (you can also view the original English article)

Tahun lalu, Apple meluncurkan Core ML — segue ke dalam dunia pembelajaran mesin untuk para pengembang Apple. Sebelum itu, kita sudah menggunakan pembelajaran mesin dengan teknologi seperti AutoCorrect, Siri, dan predictive keyboard, tetapi Core ML membawa tingkat kekuatan dan fleksibilitas baru ke tangan pengembang. Selama WWDC 18, Apple mengumumkan Core ML 2, dan dalam artikel ini Anda akan belajar tentang apa yang baru.

Sekilas

Sebelum kita menyelami perubahan yang dibawa oleh Core ML 2, mari kita bahas secara singkat apa yang sesungguhnya dimiliki Core ML. Lebih khusus lagi, mari kita belajar sedikit tentang nuansa pembelajaran mesin. Core ML adalah kerangka kerja yang memungkinkan pengembang iOS dan macOS dengan mudah dan efisien menerapkan pembelajaran mesin ke dalam aplikasi mereka.

Apa itu Pembelajaran Mesin?

Pembelajaran mesin adalah penggunaan analisis statistik untuk membantu komputer membuat keputusan dan prediksi berdasarkan karakteristik yang ditemukan dalam data tersebut. Dengan kata lain, itu tindakan memiliki komputer membentuk pemahaman abstrak dari kumpulan data yang ada (disebut "model"), dan menggunakan model itu untuk menganalisis data yang lebih baru.

Bagaimana cara kerjanya?

Menggunakan teknologi tingkat rendah dalam platform Apple, Core ML mampu menawarkan alat pembelajaran mesin yang cepat dan efisien untuk diterapkan di aplikasi Anda. Ini bekerja dengan menggunakan Metal dan Accelerate untuk mengambil keuntungan penuh dari GPU dan CPU pada perangkat, membuat kecepatan tanpa batas. Ini juga memungkinkan pembelajaran mesin untuk bekerja pada perangkat daripada membutuhkan akses ke internet untuk setiap permintaan.

1. Batch Prediction

Memprediksi nilai fitur output dari kumpulan nilai fitur input yang diberikan. — Apple Documentation
Figure 1 Batch Prediction

Batch prediction layak dicatat karena Apple tidak memilikinya dalam versi pertama Core ML. Sepintas, batch prediction memungkinkan Anda untuk menjalankan model Anda pada satu set data dan mendapatkan satu set output.

Jika Anda memiliki model Core ML untuk mengklasifikasikan gambar pada apakah mereka mengandung bunga atau pohon dan Anda ingin mengklasifikasikan beberapa gambar, katakanlah 300, Anda harus menulis for-loop untuk mengulang melalui masing-masing gambar dan secara teratur mengklasifikasikan setiap menggunakan model kamu.

Di Core ML 2, kami mendapatkan apa yang Apple sebut Batch Predict API. Ini memungkinkan kita untuk membuat beberapa prediksi pada satu set data tanpa harus menggunakan for-loops. Jika Anda ingin menggunakannya, Anda cukup memanggil:

modelInputs, dalam contoh ini, adalah set input yang Anda inginkan untuk menjalankan model Anda, tetapi kami tidak akan membahas opsi apa yang ada dalam artikel ini. Jika Anda ingin mempelajari lebih lanjut tentang cara menggunakan Batch Predict API, silakan merujuk ke Apple's documentation. Meskipun ini mungkin tidak tampak sebagai masalah besar pada awalnya, itu benar-benar meningkatkan kinerja model dengan kekalahan 30%!

2. Training Models

Gunakan Creat ML dengan tool yang sudah dikenal seperti Swift dan macOS playground untuk membuat dan melatih model pembelajaran mesin khusus di Mac Anda. Anda dapat melatih model untuk melakukan tugas seperti mengenali gambar, mengekstraksi makna dari teks, atau menemukan hubungan antara nilai-nilai numerik. — Apple Documentation
Figure 2 Create ML

Sementara Core ML selalu menjadi platform yang kuat, tidak selalu mudah untuk membuat model Anda sendiri. Di masa lalu, itu hampir perlu untuk mengenal Python untuk menciptakan bahkan model yang paling dasar. Dengan Core ML 2, kita juga mendapat Create ML, cara mudah bagi Anda untuk membuat model ML Anda sendiri.

Buat ML tidak hanya terbatas pada model berbasis gambar. Tanpa membuat proyek Xcode yang nyata, Anda dapat melatih berbagai jenis model di plaayground. Selain itu, Anda juga dapat menguji model ini dan mengekspornya untuk digunakan dalam aplikasi apa pun.

Pengklasifikasi Gambar

Dengan pola seperti jaringan saraf convolutional, Creat ML dapat membantu Anda membuat pengklasifikasi gambar khusus untuk mengidentifikasi karakteristik tertentu dari gambar yang diberikan. Misalnya, Anda bisa melatihnya untuk membedakan antara pohon dan bunga.

Atau Anda bisa menggunakannya untuk aplikasi yang lebih kompleks seperti mengidentifikasi jenis tanaman atau jenis anjing tertentu. Berdasarkan jumlah gambar, akurasi meningkat, seperti halnya model pembelajaran mesin.

Lihat posting saya di sini di Envato Tuts+ untuk learn how to create an image classifier in Create ML.

Pengklasifikasi Teks (NLP)

Selain menjadi alat untuk klasifikasi gambar, Creat ML juga dapat membantu Anda membuat model pembelajaran mesin berbasis teks. Misalnya, Anda dapat membuat model yang memberi tahu Anda sentimen dalam kalimat tertentu. Atau Anda bisa membuat filter spam yang menggunakan karakteristik teks (yaitu kata-kata yang digunakan) untuk memeriksa apakah string adalah "spam" atau "not spam".

Pengklasifikasi Data Tabular

Terkadang, beberapa data point atau fitur dapat membantu ketika mencoba mengklasifikasikan data. Spreadsheets adalah contoh yang sangat kuat mengenai hal ini, dan Create ML dapat membuat model Core ML berdasarkan file CSV juga.

Sekarang, spreadsheet Excel Anda dapat digunakan untuk membuat model yang memprediksi pasar saham berdasarkan pola pembelian dan penjualan; atau mungkin, itu memprediksi genre buku berdasarkan nama penulis, judul, dan jumlah halaman.

3. Ukuran Model Pengurangan

Bundling model pembelajaran mesin Anda di aplikasi Anda adalah cara termudah untuk memulai dengan Core ML. Ketika model menjadi lebih advance, mereka dapat menjadi besar dan mengambil ruang penyimpanan yang signifikan. Untuk model berbasis neural-network, pertimbangkan untuk mengurangi footprint dengan menggunakan representasi presisi yang lebih rendah untuk parameter bobotnya. — Apple Documentation
Figure 3 Neural Network Size Reductions

Dengan diperkenalkannya Core ML 2 dan iOS 12, pengembang sekarang dapat mengurangi ukuran model mereka yang sudah terlatih lebih dari 70% dari ukuran aslinya. Model size dapat menjadi masalah nyata — Anda mungkin telah memperhatikan bahwa beberapa aplikasi Anda semakin besar dengan setiap update!

Ini tidak mengherankan karena pengembang terus-menerus membuat machine learning model mereka lebih baik, dan tentu saja, seperti yang dinyatakan dalam dokumentasi pengembang, model yang lebih canggih mengambil lebih banyak ruang penyimpanan, membuat aplikasi yang sebenarnya menjadi lebih besar. Jika aplikasi menjadi terlalu besar, beberapa pengguna mungkin berhenti mengunduh pembaruan dan dapat berhenti menggunakan aplikasi ini.

Untungnya, meskipun, Anda sekarang memiliki kemampuan untuk kuantisasi model, yang memungkinkan ukurannya untuk penurunan yang signifikan, berdasarkan jumlah kualitas yang Anda bersedia untuk menyerah. Kuantisasi bukan satu-satunya cara untuk pergi; ada cara lain, terlalu!

Figure 4 Weight Quantization

Konversikan ke Setengah-Presisi

Core ML Tools memberi pengembang cara untuk mengurangi bobot menjadi setengah ukuran. Jika Anda belum tahu apa bobotnya, tidak apa-apa; yang perlu Anda ketahui adalah bahwa mereka terkait langsung dengan ketepatan model. Seperti yang Anda duga, setengah ukuran setara dengan setengah presisi.

Model sebelum Core ML 2 hanya memiliki opsi untuk diwakili dengan 32 bit, yang sangat bagus untuk presisi, tetapi tidak ideal untuk ukuran penyimpanan. Setengah presisi mengurangi ini menjadi hanya 16 bit dan dapat sangat mengurangi ukuran model. Jika Anda ingin melakukan ini pada model Anda, kunjungi dokumentasi untuk panduan lengkap.

Download dan Compile

Sangat menyenangkan memiliki model Anda di perangkat Anda karena menghasilkan keamanan dan kinerja yang lebih baik, dan itu tidak bergantung pada koneksi internet yang solid. Namun, jika aplikasi Anda menggunakan beberapa model untuk menciptakan pengalaman yang mulus bagi pengguna, semua model ini mungkin tidak diperlukan sekaligus.

Anda juga dapat mengunduh model ini sesuai kebutuhan dan mengumpulkannya di tempat, bukan menggabungkannya dengan aplikasi Anda dan meningkatkan jumlah ruang yang diperlukan aplikasi Anda di perangkat pengguna Anda. Anda bahkan dapat mengunduh model ini dan menyimpannya di perangkat pengguna Anda sementara untuk menghindari mengunduh model yang sama beberapa kali.

Kesimpulan

Dalam artikel ini, Anda belajar tentang teknologi terbaru dan terhebat di Core ML dan bagaimana ia menumpuk terhadap versi API tahun sebelumnya. Saat Anda berada di sini di Envato Tuts+, periksa beberapa konten pembelajaran mesin hebat kami yang lain!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.