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

Bagaimana Berlatih ML Model Teras untuk Aplikasi iOS

by
Difficulty:IntermediateLength:LongLanguages:

Malay (Melayu) translation by Meyria (you can also view the original English article)

Final product image
What You'll Be Creating

Core ML memudahkan para pemaju iOS untuk menambah pembelajaran mesin yang mendalam kepada aplikasinya. Dalam jawatan ini, saya akan menunjukkan kepada anda bagaimana anda boleh melatih model Core ML untuk mendapatkan pandangan bijak.

Pembelajaran mesin sudah pasti salah satu topik paling hangat sepanjang tahun lalu, dengan syarikat-syarikat dari semua jenis berusaha untuk menjadikan produk mereka lebih pintar untuk meningkatkan pengalaman pengguna dan membezakan tawaran mereka. Google melabur antara $ 20B dan $ 30B dalam kecerdasan buatan pada tahun lepas sahaja, menurut McKinsey State Of Machine Learning And AI, 2017.

AI bertukar menjadi perlumbaan paten dan harta intelek (IP) di kalangan syarikat teknologi terkemuka di dunia ... Laporan itu menyebutkan banyak contoh pembangunan dalaman termasuk pelaburan Amazon dalam robotika dan pengecaman pertuturan, dan Salesforce pada ejen maya dan pembelajaran mesin. BMW, Tesla, dan Toyota memimpin pengeluar kereta dalam pelaburan mereka dalam robotics dan pembelajaran mesin untuk digunakan dalam kereta tanpa pemandu. Toyota merancang untuk melabur $ 1B dalam mewujudkan sebuah institut penyelidikan baru yang ditumpukan kepada AI untuk robotika dan kenderaan tanpa pemandu. (sumber: Forbes)

Apple tidak terkecuali untuk trend ini, setelah menggunakan Pembelajaran Mesin dalam aplikasi mereka sendiri. Sebagai contoh, aplikasi Foto untuk iOS boleh mengenali wajah, objek dan mercu tanda, dan Siri menyebarkan niat dan makna dari ucapan. Mesej untuk iOS bijak mencadangkan dan meramalkan perkataan berdasarkan tingkah laku pengguna sebelumnya.

Dalam tutorial ini, anda akan belajar tentang cara menggunakan algoritma pembelajaran mesin untuk satu set data latihan, untuk membuat model terlatih yang kemudiannya akan membuat ramalan berdasarkan input baru. Semua terima kasih kepada kerangka teras Core ML Apple baru.

Tutorial ini akan memperkenalkan anda kepada subset Pembelajaran Mesin. Anda akan melatih dan mengintegrasikan model pembelajaran mesin dalam aplikasi iOS mudah, menggunakan rangka kerja algoritma pembelajaran yang mendalam. Dalam tutorial ini, anda akan:

  • belajar beberapa konsep Pembelajaran Mesin asas
  • melatih model anda menggunakan data sampel
  • mengintegrasikan model terlatih dalam apl iOS

Setelah melalui teori NLP, kami akan meletakkan pengetahuan kami untuk berlatih dengan bekerja melalui pelanggan twitter mudah, menganalisis mesej tweet. Teruskan dan klikan repo GitHub tutorial dan lihat versi akhir aplikasi yang akan kami buat dari awal.

Pengetahuan yang Diasumsikan

Tutorial ini menganggap anda pemaju IOS yang berpengalaman, tetapi walaupun anda akan bekerja dengan pembelajaran mesin, anda tidak perlu mempunyai sebarang latar belakang mengenai subjek itu. Anda akan menggunakan sedikit Python untuk membuat model terlatih anda, tetapi anda boleh mengikuti contoh tutorial tanpa pengetahuan Python terlebih dahulu.

Matlamat pembelajaran mesin adalah untuk komputer untuk melakukan tugas tanpa diprogram dengan jelas untuk berbuat demikian-keupayaan untuk berfikir atau mentafsir secara autonomi. Satu kes penggunaan kontemporari tinggi adalah memandu autonomi: memberi kereta kebolehan untuk mentafsir visual persekitaran mereka dan memandu tanpa bantuan.

Pembelajaran Mesin kini dimanfaatkan oleh syarikat-syarikat besar untuk membuat keputusan perniagaan yang lebih baik berdasarkan data sejarah, dengan menggunakan algoritma pembelajaran mendalam untuk mengenal pasti corak dan korelasi, yang membolehkan mereka membuat ramalan yang lebih baik pada masa depan. Contohnya, anda boleh menyelesaikan masalah seperti 'Bagaimana mungkin pelanggan tertentu membeli produk atau perkhidmatan tertentu?' Dengan keyakinan yang lebih tinggi berdasarkan tingkah laku terdahulu.

Pembelajaran mesin terbaik diterapkan pada masalah di mana anda mempunyai sejarah jawapan, seperti yang anda akan temui kemudian dalam tutorial ini apabila kita melalui masalah contoh kami. Satu contoh pembelajaran mesin dalam tindakan akan menjadi penapis spam e-mel anda, yang menggunakan pembelajaran diawasi (seperti yang anda bendera item sebagai spam atau tidak) untuk menapis spam dengan lebih baik dari semasa ke semasa. Model pembelajaran mesin mengkodekan semua pengetahuan ini tentang hasil yang lepas dan menjadikannya tersedia untuk algoritma untuk digunakan dengan cekap pada jangka masa.

Mungkin semuanya terdengar agak hangat pada mulanya, tetapi ia tidak rumit, dan kami akan memandu anda melalui cara membuat model terlatih tidak lama lagi. Sebaik sahaja anda telah mencipta model terlatih melalui algoritma, anda akan mengubahnya menjadi model yang boleh dimakan oleh iOS, terima kasih kepada Core ML.

Core ML adalah yang baru kepada keluarga SDK Apple, yang diperkenalkan sebagai sebahagian daripada IOS 11 untuk membolehkan pemaju melaksanakan pelbagai jenis mod pembelajaran mesin dan jenis lapisan pembelajaran yang mendalam.

The Core ML technology stack source Apple

Pemprosesan Bahasa Semula Jadi (NLP) secara logiknya berada dalam kerangka teras Core ML bersama dua perpustakaan berkuasa lain, Visi dan GameplayKit. Visi menyediakan pemaju dengan kemampuan untuk melaksanakan pembelajaran mesin penglihatan komputer untuk mencapai perkara-perkara seperti mengesan wajah, mercu tanda atau objek lain, sementara GameplayKit menyediakan pemaju permainan dengan alat untuk membuat permainan dan ciri-ciri permainan khusus.

Manfaat CoreML berbanding dengan penyelesaian lain adalah bahawa Apple telah mengoptimumkan pembelajaran mesin untuk menjalankan on-device, yang bermaksud mengurangkan penggunaan kuasa ingatan dan pengurangan kependaman. Ini juga mengandungi maklumat pengguna dalam peranti, meningkatkan privasi.

Core ML and models source Apple

Dengan gambaran keseluruhan Pembelajaran Mesin dan model-model yang tidak diaplikasikan, mari meletakkan teori itu menjadi praktikal dengan membuat model latihan pertama anda.

Agar model menjadi berguna, ia perlu dilatih untuk mengiktiraf data sebagai maklumat yang kemudiannya dapat digunakan untuk menegaskan ramalan dengan algoritma yang sesuai. Core ML kini menyokong jenis model berikut:

Core ML model types and tools source Apple

Sebagai tambahan untuk menetapkan algoritma, lebih banyak data yang anda lebih baik model anda akan dilatih, dan lebih tepat ramalan akan. Sebelum kami mula membuat model Core ML kami, mari kita lihat pada contoh aplikasi yang akan kami bekerjasama, dan khususnya, data sampel.

Contoh App: Las Vegas Hotel Score Predictor

Untuk tutorial ini, kami akan menggunakan satu set data terbuka mengenai ulasan hotel di Las Vegas Strip, yang kami dapatkan dari UCI untuk menggambarkan cara melatih model dan mengira hubungan. Anda boleh melihat set lengkap fail CSV yang dimensi koma yang akan kami gunakan dalam aplikasi kami. Struktur data adalah seperti berikut:

Kami akan berminat untuk meramalkan penarafan bintang hotel untuk hotel berdasarkan korelasi bilangan ulasan hotel dan tinjauan am untuk setiap hotel tertentu, yang merupakan contoh yang dibuat tetapi cukup mudah untuk menggambarkan konsep latihan model dengan mudah data.

Muat turun fail CSV yang dipisahkan koma ke dalam folder baru yang akan anda gunakan untuk latihan ini. Sekarang mari kita pergi dan tangan kita kotor dengan beberapa Python, dengan matlamat untuk mencapai perkara berikut:

  • mengimport perpustakaan yang diperlukan, termasuk perpustakaan CoreML Python
  • mengimport data sampel kami
  • memohon algoritma regresi linear ke data kami, menggunakan perpustakaan yang dipanggil SciKit
  • mengenal pasti lajur dalam data yang kami berminat dalam pemodelan (Nr.ulasan, Nr. ulasan hotel, Hotel bintang)
  • mengenal pasti lajur yang mungkin mempengaruhi (Markah)
  • menukar model terlatih menjadi model CoreML

Ia mungkin kelihatan seperti terdapat beberapa langkah, tetapi ia tidak begitu menakutkan seperti yang anda fikirkan. Kod Python yang kami akan tunjukkan seterusnya tidak akan sukar untuk diikuti tanpa menghiraukan pengalaman anda dengan bahasa itu.

Mula-mula, kami akan menyediakan modul-modul yang diperlukan kami sebagai dependensi, termasuk SciKit, coremltools alat CoreML rasmi Apple untuk python, dan pandas, alat yang kuat untuk analisis struktur data.

Buka tetingkap terminal, navigasi ke folder projek di mana anda mempunyai fail CSV, dan masukkan yang berikut:

sudo -H pip memasang -- dipasang coremltools corignonols-belajar panda

Seterusnya, menggunakan editor pilihan anda, buat fail .py baru, dan namakannya seperti convert_reviews.py, menambah baris berikut untuk mengimport perpustakaan yang akan anda gunakan:

Lurus selepas penyata import, tambah yang berikut:

Setakat ini kami hanya mengimport CSV menggunakan rangka pandas, mencetak data yang diimport ke skrin, dan kemudian menggunakan rangka SciKit untuk menubuhkan algoritma regresi linear untuk memohon kepada lajur yang kami berminat untuk mengekstrapolasi. Jangan risau tentang apa cara algoritma regresi linear, tetapi hanya tahu bahawa kami menggunakan teknik algoritma pemodelan mudah untuk membuat ramalan. Dalam projek ini, kami berminat untuk memberi kesan terhadap skor hotel kami, yang kami baru-baru ini telah menggunakan fungsi model.fit.

Kami kini mempunyai model terlatih kami, tetapi kami masih perlu mengubahnya menjadi model yang boleh digunakan oleh Core ML, yang mana coremltools masuk. Masukkan baris kod berikut:

Dua baris terakhir menukar model anda menjadi model yang berlabel Core ML sebelum menyimpan hasilnya sebagai objek .mlmodel, yang sedia untuk dimakan dalam projek Xcode anda. Simpan skrip Python dan jalankan melalui terminal:

python convert_reviews.py

Menganggap anda tidak mengalami sebarang kesilapan, fail Vegas_Reviews.mlmodel akan dijana, dan model terlatih anda akan diimport ke Xcode.

Untuk bahagian kedua tutorial ini, anda akan membuat aplikasi mudah dengan pengawal paparan tunggal, beberapa slider, dan kawalan segmen untuk membolehkan pengguna menukar beraneka nilai, membolehkan anda melihat pelbagai ramalan Core ML. Aplikasi akhir akan melihat perkara berikut:

The final app UI

Dalam Xcode, buat projek Swift View App baru, dan beri nama.

Create a new App

Seterusnya pastikan anda menyertakan fail Vegas_Reviews.mlmodel yang dihasilkan dalam projek anda, dengan menyeretnya ke dalam anak tetingkap projek navigasi anda.

Import the Core ML model

Sekarang, buka fail ViewController.swift, dan tambah yang berikut:

Perkara pertama yang anda lakukan adalah membuat contoh model kami, yang akan anda gunakan untuk membuat ramalan di kelas. Anda juga mencipta beberapa pembolehubah IBOutlet yang akan anda tarik di papan cerita tidak lama lagi, yang memetakan kepada sifat model individu yang kami mahu bermain-main dengannya.

Beralih ke Storyboard, dan tambahkan kawalan yang sepadan yang kami diisytiharkan pada pengawal pandangan anda, pastikan anda menghidupkan setiap kawalan ke pengawal pandangan:

Wire up the controls in Storyboard

Tukar kembali ke fail ViewController.swift, dan tambah kaedah @IBAction yang berikut:

Inilah kod fungsional utama enjin ramalan kami, jadi mari membedah kaedah ini langkah demi langkah. Kami pertama kali membuang pelbagai kawalan ke dalam jenis Double, yang akan diluluskan sebagai argumen apabila kami memanggil kaedah ramalan kami. Dalam percubaan? blok, panggil self.reviews.prediction () yang merupakan kaedah auto-hasil milik model kami, bersama-sama dengan sifat-sifat yang dijangkakan yang telah kami jelaskan semasa mengimport model terlatih kami.

Hasil blok ramalan kemudian diluluskan ke label ScoreValue, untuk memaparkan dalam aplikasi anda. Kami hampir selesai, hanya sekali lagi beralih ke papan cerita dan memetakan setiap nilai valueChanged: property kepadaKaedah @IBAction yang kami buat dalam pengawal pandangan. Anda mahu kaedah ini dipanggil setiap kali anda menukar nilai slider atau segmen. Dan untuk langkah yang baik, anda juga boleh memastikan bahawa anda juga secara automatik memanggil kaedah ini dalam kaedah viewDidLoad () anda supaya ia dikemas kini terus dari awal:

Bina dan jalankan aplikasinya di Xcode, dan dalam Simulator toggle pelbagai slider dan perhatikan ramalan nilai skor kerana ia berubah berdasarkan faktor-faktor lain yang mengaitkan bilangan ulasan hotel dan ulasan secara umum. Seperti yang ditekankan sebelumnya, ini sememangnya satu contoh yang dibuat tetapi ia memberikan anda idea tentang bagaimana membina eksperimen anda sendiri untuk menghubungkan, dan yang lebih penting, betapa mudahnya untuk melaksanakan model terlatih dalam IOS.

Terima kasih kepada Core ML di iOS 11, Apple telah memudahkan para pemaju setiap hari tanpa latar belakang dalam pembelajaran mendalam untuk dapat menambah kecerdasan ke dalam aplikasi mereka. Semua pemprosesan dilakukan pada peranti, memastikan prestasi yang lebih besar tanpa kebimbangan privasi menyimpan data di awan. Dengan Apple sebelumnya 'pemakanan anjing' pelaksanaan pembelajaran mesinnya pada aplikasi terbina seperti Photos and Mail, pemaju pihak ketiga kini mempunyai peluang untuk mengenali pola, imej dan niat teks dengan hanya beberapa baris kod.

Ini tidak semestinya hanya permulaan pergerakan Core ML Apple, tetapi ia adalah satu peluang yang baik untuk pemaju untuk mula memikirkan lebih holistik mengenai data. Dengan Core ML kami dapat menyediakan pengguna dengan pengalaman pengguna yang lebih baik sambil menyediakan pengurus produk dengan pandangan perniagaan yang lebih besar ke dalam tingkah laku pengguna.

Semasa berada di sini, lihat beberapa jawatan lain kami mengenai pembangunan aplikasi iOS dan pembelajaran mesin!

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.