Register now for Android Dev Summit 2019!

Membuat aplikasi yang lebih berguna dengan machine learning

Machine learning (ML) adalah teknik pemrograman yang memberi aplikasi Anda kemampuan untuk melakukan pembelajaran dan penyempurnaan secara otomatis berdasarkan pengalaman, tanpa perlu diprogram secara eksplisit. Teknik ini sangat cocok untuk aplikasi yang menggunakan data tidak terstruktur seperti gambar dan teks, atau aplikasi yang memiliki masalah dengan sejumlah besar parameter seperti memprediksi tim olahraga yang menang.

Android mendukung berbagai fitur dan metode machine learning. Entah Anda developer berpengalaman atau yang baru memulai, kami menyediakan beberapa referensi ML untuk membantu Anda mendapatkan hasil terbaik.

Area Utama Pengembangan ML

Sebagai Developer Android, fokus Anda adalah pada inferensi dan penerapan model ML. Bergantung pada keadaan Anda sendiri, Anda mungkin juga terlibat dalam membuat dan melatih model.

Mendesain untuk Machine Learning

Serupa dengan teknologi lain, penerapan machine learning sebagai sebuah solusi memerlukan kerja sama antara manajer produk, desainer, dan developer untuk menentukan sasaran, desain, build, dan iterasi produk. Google telah menyediakan dua panduan dalam area ini:

Membuat dan Melatih Model

Machine learning memerlukan model yang dilatih untuk menjalankan tugas tertentu, seperti membuat prediksi, atau mengklasifikasi atau mengenali beberapa input. Anda dapat memilih (dan mungkin menyesuaikan) model yang ada, atau membuat model dari awal. Pembuatan dan pelatihan model dapat dilakukan pada perangkat pengembangan, atau menggunakan infrastruktur cloud.

Mempelajari model terlatih

Model terlatih tersedia di ML Kit dan Google Cloud. Baca tentang keduanya lebih lanjut di bagian selanjutnya.

Pelajari cara membuat model Anda sendiri dengan TensorFlow

Untuk pengalaman pengembangan interaktif yang lebih mendalam, Anda dapat menggunakan referensi TensorFlow berikut:

Inferensi

Inferensi adalah proses menggunakan model machine learning yang telah dilatih untuk menjalankan suatu tugas tertentu.

Salah satu keputusan penting yang harus Anda buat sebagai developer Android adalah apakah inferensi akan dijalankan pada perangkat, atau menggunakan layanan cloud yang dapat diakses dari jauh. Berikut ini beberapa faktor yang perlu diperhitungkan saat membuat keputusan ini:

Inferensi pada perangkatInferensi berbasis cloud
Latensi Latensi yang lebih rendah meningkatkan kualitas pengalaman real time Komunikasi asinkron dan bandwidth yang tersedia dapat memengaruhi latensi.
Resource Resource perangkat tertentu, seperti penyimpanan dan daya pemrosesan, dapat membatasi performa. Resource berbasis cloud lebih andal dan memiliki penyimpanan berlimpah.
Offline/Online Kemampuan untuk beroperasi secara offline merupakan nilai tambah dari menjalankan inferensi dengan infrastruktur jaringan yang lemah atau tidak ada Sambungan jaringan diperlukan
Biaya Penggunaan baterai, waktu download model bagi pengguna akhir Bandwidth untuk transfer data bagi pengguna akhir, biaya komputasi bagi developer
Privasi Data pengguna tetap berada di perangkat Data mungkin keluar dari perangkat, tindakan pengamanan tambahan mungkin diperlukan

Tabel berikut menunjukkan opsi pengembangan yang tersedia untuk setiap jenis inferensi:

Inferensi pada perangkatInferensi cloud

ML Kit

Google Cloud

Latih model visi kustom Anda di Google Cloud, lalu jalankan model yang dihasilkan di Android atau perangkat edge lainnya:

TensorFlow Lite

TensorFlow Lite dapat digunakan untuk mengirimkan model TensorFlow yang sudah dilatih sebagai solusi pada perangkat:

ML Kit

API Google Cloud

Penerapan

Penerapan adalah proses pengemasan dan update model untuk digunakan pada Android saat melakukan inferensi di perangkat. Ada tiga opsi yang tersedia:

Mengemas Model ML dengan aplikasi Android
Model akan diterapkan dengan aplikasi Anda seperti aset lainnya. Update pada model akan memerlukan update pada aplikasi. Ada dua cara untuk mengemas Model ML dengan aplikasi:
Menyediakan model saat runtime
Opsi ini memungkinkan Anda mengupdate model secara terpisah dari aplikasi. Opsi ini juga memudahkan pengujian A/B. Anda dapat menyajikan model kustom menggunakan fungsi Model Kustom ML Kit atau menghosting download model dengan infrastruktur Anda sendiri.
Kombinasi keduanya
Ada kalanya developer mengemas versi awal model mereka dengan aplikasi Android sehingga pengguna tidak perlu menunggu model didownload saat mengupdate model ke versi baru.

Untuk model ML Kit terlatih yang dipilih, yaitu pengenalan teks dan pemindaian kode batang, developer dapat menggunakan model bersama yang disediakan oleh Layanan Google Play yang menghasilkan ukuran APK lebih kecil.

Kisah Developer

Membuat yang tidak mungkin menjadi mungkin

Penambahan ML ke aplikasi Android membuka cara baru untuk membuat aplikasi yang sebelumnya terlalu sulit untuk diperbaiki dalam berbagai kondisi (seperti pemindaian barcode yang andal) atau yang bahkan tidak mungkin dilakukan (misalnya deteksi gambar dan sentimen teks).

Lose It!

Lose It! adalah aplikasi pelacak kalori penurunan berat badan. Aplikasi ini membantu Anda menurunkan berat badan dengan mencatat semua makanan yang Anda makan sehingga Anda tahu banyaknya kalori yang Anda konsumsi. Lose It! menggunakan API pengenalan teks ML Kit untuk memindai label nutrisi guna menangkap data saat pengguna memasukkan makanan baru yang tidak ada di koleksi aplikasi.

PlantVillage

PlantVillage membantu petani mendeteksi penyakit pada tanaman singkong. Penn State University dan International Institute of Tropical Agriculture menggunakan model TensorFlow kustom yang berjalan secara offline di perangkat seluler untuk membantu petani mendeteksi gejala awal penyakit tanaman.

Fishbrain

Aplikasi Fishbrain menyediakan peta memancing setempat, prakiraan cuaca, dan menghubungkan jutaan pemancing. Fishbrain menggunakan Model Kustom ML Kit untuk menyajikan model TensorFlow Lite kustom yang diperbarui.