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

Cara Melatih Model ML Inti untuk Aplikasi iOS

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Meyria (you can also view the original English article)

Final product image
What You'll Be Creating

Core ML memudahkan pengembang iOS menambahkan mesin dalam ke aplikasi mereka. Dalam posting ini, saya akan menunjukkan bagaimana Anda bisa melatih model Core ML untuk memperoleh wawasan cerdas.

Pembelajaran mesin niscaya telah menjadi salah satu topik terpanas sepanjang tahun lalu, dengan perusahaan-perusahaan dari segala jenis mencoba membuat produk mereka lebih cerdas untuk meningkatkan pengalaman pengguna dan membedakan penawaran mereka. Google menginvestasikan antara $ 20B dan $ 30B dalam kecerdasan buatan tahun lalu saja, menurut McKinsey's State Of Machine Learning and AI, 2017.

AI berubah menjadi perlombaan untuk paten dan kekayaan intelektual (IP) di antara perusahaan teknologi terkemuka di dunia ... Laporan tersebut mengutip banyak contoh pengembangan internal termasuk investasi Amazon dalam pengenalan robotika dan ucapan, dan Salesforce pada agen virtual dan pembelajaran mesin. BMW, Tesla, dan Toyota memimpin produsen mobil dalam investasi mereka dalam bidang robotika dan pembelajaran mesin untuk digunakan dalam mobil tanpa sopir. Toyota berencana menginvestasikan $ 1 miliar untuk mendirikan sebuah institut penelitian baru yang ditujukan untuk AI untuk kendaraan robotika dan tanpa sopir. (sumber: Forbes)

Apple tidak terkecuali dengan tren ini, setelah menggunakan Machine Learning di aplikasi mereka sendiri. Misalnya, aplikasi Foto untuk iOS dapat mengenali wajah, objek dan tengara, dan maksud Siri dan makna dari ucapan. Pesan untuk iOS dengan cerdas menyarankan dan memprediksi kata-kata berdasarkan perilaku pengguna sebelumnya.

Dalam tutorial ini, Anda akan belajar tentang bagaimana menerapkan algoritma pembelajaran mesin ke satu set data pelatihan, untuk menciptakan model yang terlatih yang selanjutnya akan membuat prediksi berdasarkan masukan baru. Semua berkat kerangka kerja Core ML yang baru dari Apple

Tutorial ini akan mengenalkan Anda pada subset dari Machine Learning. Anda akan melatih dan mengintegrasikan model pembelajaran mesin dalam aplikasi iOS sederhana, dengan menggunakan kerangka algoritma pembelajaran yang populer. Dalam tutorial ini, Anda akan:

  • pelajari beberapa konsep Dasar Belajar Mesin
  • Latih model Anda menggunakan data sampel
  • mengintegrasikan model yang dilatih di aplikasi iOS

Setelah melalui teori NLP, kami akan menerapkan pengetahuan kami untuk berlatih dengan bekerja melalui klien twitter sederhana, menganalisis pesan tweet. Majulah dan kloning tutorial repo GitHub dan lihat versi final aplikasi yang akan kita buat dari nol.

Asumsi Pengetahuan

Tutorial ini mengasumsikan Anda adalah pengembang iOS berpengalaman, namun walaupun Anda akan bekerja dengan pembelajaran mesin, Anda tidak perlu memiliki latar belakang mengenai subjek ini. Anda akan menggunakan sedikit Python untuk membuat model terlatih Anda, namun Anda bisa mengikuti contoh tutorial tanpa sepengetahuan Python.

Tujuan pembelajaran mesin adalah agar komputer melakukan tugas tanpa diprogram secara eksplisit untuk melakukannya - kemampuan untuk berpikir atau menafsirkan secara mandiri. Kasus penggunaan kontemporer kontemporer adalah mengemudi otonom: memberi mobil kemampuan untuk menafsirkan lingkungan mereka secara visual dan menyetir tanpa bantuan.

Mesin Belajar saat ini dimanfaatkan oleh perusahaan besar untuk membuat keputusan bisnis yang lebih baik berdasarkan data historis, dengan menggunakan algoritma pembelajaran yang mendalam untuk mengidentifikasi pola dan korelasi, yang memungkinkan mereka membuat prediksi masa depan yang lebih baik. Misalnya, Anda dapat mengatasi masalah seperti 'Seberapa besar kemungkinan bagi pelanggan tertentu untuk membeli produk atau layanan tertentu?' Dengan keyakinan lebih besar berdasarkan perilaku sebelumnya.

Pembelajaran mesin paling baik diterapkan pada masalah di mana Anda memiliki riwayat jawaban, seperti yang akan Anda temukan nanti dalam tutorial ini saat kita membahas masalah sampel. Contoh pembelajaran mesin dalam tindakan adalah filter spam email Anda, yang menggunakan pembelajaran yang diawasi (seperti yang Anda tandai sebagai spam atau tidak) untuk memfilter spam lebih baik dari waktu ke waktu. Model pembelajaran mesin mengkodekan semua pengetahuan ini tentang hasil masa lalu dan membuatnya tersedia bagi algoritmanya untuk penggunaan yang efisien pada saat run-time.

Awalnya mungkin terdengar agak berlebihan, tapi tidak rumit, dan kami akan memandu Anda melalui cara membuat model yang sudah terlatih lama-baru ini. Setelah Anda menemukan model yang terlatih melalui sebuah algoritma, Anda kemudian akan mengubahnya menjadi model yang dapat dikonsumsi oleh iOS, berkat Core ML.

Core ML baru bagi keluarga SDK Apple, diperkenalkan sebagai bagian dari iOS 11 untuk memungkinkan pengembang menerapkan berbagai macam mode pembelajaran mesin dan tipe lapisan pembelajaran yang dalam.

The Core ML technology stack source Apple

Natural Language Processing (NLP) secara logis berada dalam kerangka Core ML bersama dua perpustakaan kuat lainnya, Vision and GameplayKit. Vision memberi pengembang kemampuan untuk menerapkan mesin penglihatan komputer untuk menyelesaikan hal-hal seperti mendeteksi wajah, tengara, atau benda lainnya, sementara GameplayKit menyediakan pengembang game dengan alat untuk permainan authoring dan fitur gameplay yang spesifik.

Manfaat CoreML dibandingkan dengan solusi lainnya adalah Apple telah mengoptimalkan pembelajaran mesin untuk berjalan di perangkat, yang berarti mengurangi konsumsi daya memori dan mengurangi latensi. Ini juga mengumpulkan informasi pengguna di dalam perangkat, meningkatkan privasi.

Core ML and models source Apple

Dengan ikhtisar tentang Pembelajaran Mesin dan model, cobalah menerapkan teori ini dengan menciptakan model pelatihan pertama Anda.

Agar model menjadi berguna, perlu dilatih untuk mengenali data sebagai informasi yang kemudian dapat digunakan untuk menegaskan prediksi dengan algoritma yang tepat. Core ML saat ini mendukung tipe model berikut:

Core ML model types and tools source Apple

Selain menunjuk sebuah algoritma, semakin banyak data yang Anda miliki semakin baik model Anda akan dilatih, dan prediksi akan semakin akurat. Sebelum kita mulai membuat model Core ML kita, mari kita lihat contoh aplikasi yang akan kita kerjakan, dan khususnya, data sampel.

Contoh Aplikasi: Prediktor Skor Hotel Las Vegas

Untuk tutorial ini kita akan menggunakan kumpulan data open source di ulasan hotel di Las Vegas Strip, yang telah kami sumber dari UCI untuk menggambarkan bagaimana cara melatih model dan menghitung korelasi. Anda dapat melihat sekumpulan file CSV koma-delimited yang akan kami gunakan di aplikasi kami. Struktur data adalah sebagai berikut:

Kami akan tertarik untuk memprediksi peringkat bintang hotel untuk hotel berdasarkan korelasi jumlah ulasan hotel, dan ulasan umum, untuk setiap hotel tertentu, yang merupakan contoh yang cukup nyata namun cukup sederhana untuk menggambarkan konsep pelatihan model dengan mudah. data.

Download file CSV koma-delimited ke folder baru yang akan Anda gunakan untuk latihan ini. Sekarang mari kita pergi ke depan dan mendapatkan tangan kita kotor dengan Python, dengan tujuan untuk mencapai hal berikut:

  • mengimpor perpustakaan yang diperlukan, termasuk perpustakaan Python CoreML
  • mengimpor data sampel kami
  • menerapkan algoritma regresi linier untuk data kita, menggunakan sebuah perpustakaan bernama SciKit
  • dentifikasi kolom dalam data yang kami minati dalam pemodelan (ulasan ulasan, ulasan hotel, bintang Hotel)
  • mengidentifikasi kolom yang mungkin mempengaruhi (Score)
  • mengubah model yang dilatih menjadi model CoreML

Sepertinya ada beberapa langkah, tapi tidak menakutkan seperti yang mungkin Anda pikirkan. Kode Python yang akan kita tunjukkan selanjutnya tidak akan sulit diikuti terlepas dari pengalaman Anda dengan bahasa.

Pertama, kita akan menyiapkan modul yang dibutuhkan sebagai dependensi, termasuk SciKitcoremltools alat resmi Apple’s CoreML untuk python, dan pandas, alat yang hebat untuk analisis struktur data.

Buka jendela terminal, arahkan ke folder proyek tempat Anda memiliki file CSV, dan masukkan yang berikut ini:

sudo -H pip install --ignore-installed coremltools scikit-learn pandas

Selanjutnya, dengan menggunakan editor pilihan Anda, buat file .py baru, dan beri nama itu seperti convert_reviews.py, tambahkan baris berikut untuk mengimpor perpustakaan yang akan Anda gunakan:

Langsung setelah pernyataan impor, tambahkan yang berikut ini:

Sejauh ini kami hanya mengimpor CSV menggunakan framework pandas, mencetak data yang diimpor ke layar, dan kemudian menggunakan framework SciKit untuk membentuk algoritma regresi linier untuk diterapkan pada kolom yang kami minati. Jangan terlalu khawatir tentang apa arti algoritma regresi linier, tapi ketahuilah bahwa kita menggunakan teknik algoritma pemodelan sederhana untuk membuat prediksi. Dalam proyek ini, kami tertarik pada bagaimana hal itu mempengaruhi nilai hotel kami, yang baru kami bangun dengan menggunakan fungsi model.fit.

Kami sekarang memiliki model terlatih kami, namun kami masih perlu mengubahnya menjadi model yang dapat dikonsumsi oleh Inti ML, di mana coremltools masuk. Masukkan baris kode berikut ini:

Dua baris terakhir mengubah model Anda menjadi model yang sesuai dengan Core ML sebelum menyimpan hasilnya sebagai objek .mlmodel, siap dikonsumsi dalam proyek Xcode Anda. Simpan skrip Python dan jalankan melalui terminal:

python convert_reviews.py

Dengan anggapan Anda tidak menemukan kesalahan, file Vegas_Reviews.mlmodel akan dihasilkan, dan model terlatih Anda prima untuk diimpor ke Xcode.

Untuk bagian kedua dari tutorial ini, Anda akan membuat aplikasi sederhana dengan satu kontroler tampilan, beberapa slider, dan kontrol segmen untuk memungkinkan pengguna beralih berbagai nilai, memungkinkan Anda untuk mengamati berbagai prediksi Core ML. Aplikasi terakhir akan terlihat dekat dengan berikut ini:

The final app UI

Di Xcode, buat proyek Single View App Swift yang baru, dan beri nama.

Create a new App

Selanjutnya, pastikan Anda menyertakan file Vegas_Reviews.mlmodel yang dihasilkan di proyek Anda, dengan menyeretnya ke panel proyek navigasi Anda.

Import the Core ML model

Sekarang, buka file ViewController.swift, dan tambahkan yang berikut ini:

Hal pertama yang Anda lakukan adalah membuat contoh model kami, yang akan Anda gunakan untuk membuat prediksi nanti di kelas. Anda juga menciptakan beberapa variabel IBOutlet yang akan Anda pasang di papan cerita lama, yang memetakan ke properti model individual yang ingin kami mainkan.

Beralih ke Storyboard, dan tambahkan kontrol yang sesuai yang kami nyatakan di controller tampilan Anda, pastikan Anda memasang setiap kontrol ke kontroler tampilan:

Wire up the controls in Storyboard

IBAction berikut ini:Beralih kembali ke file ViewController.swift, dan tambahkan metode @IBAction berikut ini:

Ini adalah kode fungsional utama mesin prediksi kami, jadi mari kita membedah metode ini selangkah demi selangkah. Kami pertama kali melemparkan berbagai kontrol ke dalam tipe Double, yang akan dilewatkan sebagai argumen saat kami memanggil metode prediksi kami. Dalam blok try?, panggil self.reviews.prediction() yang merupakan metode yang dihasilkan secara otomatis milik model kami, bersama dengan properti yang diharapkan yang telah kami definisikan saat mengimpor model terlatih kami.

Hasil dari blok prediksi kemudian diteruskan ke label ScoreValue, untuk ditampilkan di aplikasi Anda. Kami hampir selesai, cukup beralih kembali sekali lagi ke papan cerita dan memetakan nilai masing-masing kontrol ValueChanged: property ke metode @IBAction yang kami buat di view controller. Anda ingin metode ini disebut setiap kali Anda mengubah nilai slider atau segmen. Dan untuk ukuran yang baik, Anda juga dapat memastikan bahwa Anda juga secara otomatis memanggil metode ini dalam metode viewDidLoad() Anda sehingga pembaruannya benar sejak awal:

Bangun dan jalankan aplikasi di Xcode, dan di Simulator ubah berbagai slider dan amati prediksi nilai skor karena perubahannya berdasarkan faktor pengaitan lain dari jumlah ulasan dan ulasan hotel pada umumnya. Seperti yang ditekankan sebelumnya, ini memang contoh yang dibuat-buat, tapi ini memberi Anda gambaran tentang bagaimana membuat eksperimen Anda sendiri untuk berkorelasi, dan yang lebih penting lagi, betapa sederhananya menerapkan model yang dilatih di iOS.

Terimakasih ke Core ML di iOS 11, Apple telah mempermudah pengembang sehari-hari tanpa latar belakang dalam belajar untuk dapat menambahkan kecerdasan ke dalam aplikasi mereka. Semua pemrosesan dilakukan di perangkat, memastikan kinerja lebih baik tanpa masalah privasi untuk menyimpan data di atas awan. Dengan Apple sebelumnya 'dog-fooding', penerapan pembelajaran mesinnya pada aplikasi built-in seperti Photos and Mail, pengembang pihak ketiga sekarang memiliki kesempatan untuk mengenali pola, gambar dan tekstual dengan hanya beberapa baris kode.

Ini tidak diragukan lagi hanya awal dari gerakan Apple Core ML, namun ini adalah kesempatan bagus bagi pengembang untuk mulai berpikir lebih holistik tentang data. Dengan Core ML kami dapat memberikan pengguna pengalaman pengguna yang lebih baik sambil memberikan manajer produk wawasan bisnis yang lebih besar ke dalam perilaku pengguna.

Sementara Anda berada di sini, lihat beberapa posting kami yang lain tentang pengembangan aplikasi iOS dan pembelajaran mesin!

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.