Apa itu pembelajaran mesin? Intelijen berasal dari data

Pembelajaran mesin ditentukan

Pembelajaran mesin adalah cabang kecerdasan buatan yang mencakup metode, atau algoritme, untuk membuat model dari data secara otomatis. Tidak seperti sistem yang menjalankan tugas dengan mengikuti aturan eksplisit, sistem pembelajaran mesin belajar dari pengalaman. Jika sistem berbasis aturan akan melakukan tugas dengan cara yang sama setiap saat (baik atau buruk), performa sistem pembelajaran mesin dapat ditingkatkan melalui pelatihan, dengan mengekspos algoritme ke lebih banyak data.

Algoritme pembelajaran mesin sering kali dibagi menjadi diawasi (data pelatihan ditandai dengan jawaban) dan tanpa pengawasan (label apa pun yang mungkin ada tidak ditampilkan ke algoritme pelatihan). Masalah pembelajaran mesin yang diawasi dibagi lagi menjadi klasifikasi (memprediksi jawaban non-numerik, seperti kemungkinan pembayaran hipotek yang terlewat) dan regresi (memprediksi jawaban numerik, seperti jumlah widget yang akan dijual bulan depan di toko Manhattan Anda).

Pembelajaran tanpa pengawasan selanjutnya dibagi menjadi pengelompokan (menemukan kelompok objek serupa, seperti sepatu lari, sepatu berjalan, dan sepatu resmi), asosiasi (menemukan urutan umum objek, seperti kopi dan krim), dan pengurangan dimensi (proyeksi, pemilihan fitur) , dan ekstraksi fitur).

Aplikasi pembelajaran mesin

Kami mendengar tentang aplikasi pembelajaran mesin setiap hari, meskipun tidak semuanya berhasil dengan sempurna. Mobil self-driving adalah contoh yang baik, di mana tugas berkisar dari yang sederhana dan berhasil (bantuan parkir dan mengikuti jalur jalan raya) hingga yang rumit dan rapuh (kontrol kendaraan penuh dalam pengaturan perkotaan, yang telah menyebabkan beberapa kematian).

Pembelajaran mesin bermain game sangat berhasil untuk checker, catur, shogi, dan Go, setelah mengalahkan juara dunia manusia. Terjemahan bahasa otomatis sebagian besar berhasil, meskipun beberapa pasangan bahasa bekerja lebih baik daripada yang lain, dan banyak terjemahan otomatis masih dapat ditingkatkan oleh penerjemah manusia.

Pidato otomatis ke teks berfungsi cukup baik untuk orang-orang dengan aksen arus utama, tetapi tidak begitu baik untuk orang-orang dengan aksen regional atau nasional yang kuat; kinerja tergantung pada set pelatihan yang digunakan oleh vendor. Analisis sentimen otomatis media sosial memiliki tingkat keberhasilan yang cukup baik, mungkin karena set pelatihan (misalnya peringkat produk Amazon, yang memasangkan komentar dengan skor numerik) besar dan mudah diakses.

Penyaringan otomatis resume adalah area yang kontroversial. Amazon harus menarik sistem internalnya karena bias sampel pelatihan yang menyebabkannya menurunkan versi semua lamaran kerja dari wanita.

Sistem penyaringan resume lain yang saat ini digunakan mungkin memiliki bias pelatihan yang menyebabkan mereka meningkatkan kandidat yang "seperti" karyawan saat ini dengan cara yang secara hukum tidak dianggap penting (mis. Kandidat muda, kulit putih, pria dari lingkungan kelas atas berbahasa Inggris yang bermain olahraga tim lebih mungkin untuk lulus pemeriksaan). Upaya penelitian oleh Microsoft dan lainnya berfokus pada menghilangkan bias implisit dalam pembelajaran mesin.

Klasifikasi otomatis dari gambar patologi dan radiologi telah maju ke titik di mana ia dapat membantu (tetapi tidak menggantikan) ahli patologi dan radiologi untuk mendeteksi jenis kelainan tertentu. Sementara itu, sistem identifikasi wajah menjadi kontroversial ketika berfungsi dengan baik (karena pertimbangan privasi) dan cenderung tidak akurat untuk wanita dan orang kulit berwarna seperti untuk pria kulit putih (karena bias dalam populasi pelatihan).

Algoritme pembelajaran mesin

Pembelajaran mesin bergantung pada sejumlah algoritme untuk mengubah kumpulan data menjadi model. Algoritme mana yang bekerja paling baik bergantung pada jenis masalah yang Anda selesaikan, sumber daya komputasi yang tersedia, dan sifat datanya. Apa pun algoritme atau algoritme yang Anda gunakan, Anda harus membersihkan dan mengkondisikan data terlebih dahulu.

Mari kita bahas algoritme paling umum untuk setiap jenis masalah.

Algoritma klasifikasi

Masalah klasifikasi adalah masalah pembelajaran terbimbing yang meminta pilihan antara dua kelas atau lebih, biasanya memberikan probabilitas untuk setiap kelas. Tanpa jaringan neural dan pembelajaran mendalam, yang memerlukan sumber daya komputasi yang jauh lebih tinggi, algoritme yang paling umum adalah Naive Bayes, Pohon Keputusan, Regresi Logistik, K-Nearest Neighbours, dan Support Vector Machine (SVM). Anda juga dapat menggunakan metode ensembel (kombinasi model), seperti Random Forest, metode Bagging lainnya, dan metode peningkatan seperti AdaBoost dan XGBoost.

Algoritma regresi

Masalah regresi adalah masalah pembelajaran terbimbing yang meminta model untuk memprediksi angka. Algoritme paling sederhana dan tercepat adalah regresi linier (kuadrat terkecil), tetapi Anda tidak boleh berhenti di situ, karena sering kali memberikan hasil yang biasa-biasa saja. Algoritme regresi pembelajaran mesin umum lainnya (singkatan dari neural network) termasuk Naive Bayes, Decision Tree, K-Nearest Neighbours, LVQ (Learning Vector Quantization), LARS Lasso, Elastic Net, Random Forest, AdaBoost, dan XGBoost. Anda akan melihat bahwa ada beberapa tumpang tindih antara algoritma pembelajaran mesin untuk regresi dan klasifikasi.

Algoritme pengelompokan

Masalah pengelompokan adalah masalah pembelajaran tanpa pengawasan yang meminta model untuk menemukan kelompok titik data yang serupa. Algoritme paling populer adalah K-Means Clustering; lainnya termasuk Mean-Shift Clustering, DBSCAN (Density-Based Spatial Clustering of Applications with Noise), GMM (Gaussian Mixture Model), dan HAC (Hierarchical Agglomerative Clustering).

Algoritma pengurangan dimensi

Pengurangan dimensi adalah masalah pembelajaran tanpa pengawasan yang meminta model untuk menjatuhkan atau menggabungkan variabel yang memiliki sedikit atau tidak ada pengaruh pada hasil. Ini sering digunakan dalam kombinasi dengan klasifikasi atau regresi. Algoritma pengurangan dimensi termasuk menghilangkan variabel dengan banyak nilai yang hilang, menghilangkan variabel dengan varians rendah, Decision Tree, Random Forest, menghilangkan atau menggabungkan variabel dengan korelasi tinggi, Backward Feature Elimination, Forward Feature Selection, Factor Analysis, dan PCA (Principal Component Analysis).

Metode pengoptimalan

Pelatihan dan evaluasi mengubah algoritme pembelajaran yang diawasi menjadi model dengan mengoptimalkan bobot parameternya untuk menemukan kumpulan nilai yang paling cocok dengan kebenaran dasar data Anda. Algoritme sering kali mengandalkan varian penurunan paling curam untuk pengoptimalnya, misalnya penurunan gradien stokastik (SGD), yang pada dasarnya merupakan penurunan paling curam yang dilakukan beberapa kali dari titik awal yang diacak.

Perbaikan umum pada SGD menambahkan faktor yang mengoreksi arah gradien berdasarkan momentum, atau menyesuaikan kecepatan pembelajaran berdasarkan kemajuan dari satu lintasan melalui data (disebut epoch atau batch) ke yang berikutnya.

Jaringan saraf dan pembelajaran mendalam

Jaringan saraf terinspirasi oleh arsitektur korteks visual biologis. Pembelajaran mendalam adalah sekumpulan teknik untuk pembelajaran di jaringan saraf yang melibatkan sejumlah besar lapisan "tersembunyi" untuk mengidentifikasi fitur. Lapisan tersembunyi berada di antara lapisan masukan dan keluaran. Setiap lapisan terdiri dari neuron buatan, seringkali dengan fungsi aktivasi sigmoid atau ReLU (Rectified Linear Unit).

Dalam jaringan umpan-maju, neuron diatur ke dalam lapisan yang berbeda: satu lapisan masukan, sejumlah lapisan pemrosesan tersembunyi, dan satu lapisan keluaran, dan keluaran dari setiap lapisan hanya pergi ke lapisan berikutnya.

Dalam jaringan umpan-maju dengan koneksi pintas, beberapa koneksi dapat melompati satu atau lebih lapisan perantara. Dalam jaringan saraf berulang, neuron dapat mempengaruhi dirinya sendiri, baik secara langsung maupun tidak langsung melalui lapisan berikutnya.

Pembelajaran jaringan neural yang diawasi dilakukan seperti halnya pembelajaran mesin lainnya: Anda menyajikan jaringan dengan grup data pelatihan, membandingkan keluaran jaringan dengan keluaran yang diinginkan, menghasilkan vektor kesalahan, dan menerapkan koreksi ke jaringan berdasarkan vektor kesalahan , biasanya menggunakan algoritme propagasi mundur. Kumpulan data pelatihan yang dijalankan bersama sebelum menerapkan koreksi disebut epoch.

Seperti halnya semua pembelajaran mesin, Anda perlu memeriksa prediksi jaringan neural terhadap kumpulan data pengujian yang terpisah. Tanpa melakukan itu, Anda berisiko membuat jaringan saraf yang hanya menghafal masukannya alih-alih belajar menjadi prediktor umum.

Terobosan dalam bidang jaringan saraf untuk penglihatan adalah LeNet-5 1998 milik Yann LeCun, jaringan saraf konvolusional tujuh tingkat (CNN) untuk pengenalan digit tulisan tangan yang didigitalkan dalam gambar 32x32 piksel. Untuk menganalisis gambar dengan resolusi lebih tinggi, jaringan membutuhkan lebih banyak neuron dan lebih banyak lapisan.

Jaringan saraf konvolusional biasanya menggunakan lapisan konvolusional, penggabungan, ULT, terhubung sepenuhnya, dan kerugian untuk mensimulasikan korteks visual. Lapisan konvolusional pada dasarnya mengambil integral dari banyak daerah kecil yang tumpang tindih. Lapisan penggabungan melakukan bentuk pengambilan sampel ke bawah non-linier. Lapisan ULT, yang saya sebutkan sebelumnya, menerapkan fungsi aktivasi non-saturasi f(x) = max(0,x).

Dalam lapisan yang sepenuhnya terhubung, neuron memiliki koneksi penuh ke semua aktivasi di lapisan sebelumnya. Lapisan kerugian menghitung bagaimana pelatihan jaringan menghukum penyimpangan antara label yang diprediksi dan label sebenarnya, menggunakan kerugian Softmax atau lintas entropi untuk klasifikasi atau kerugian Euclidean untuk regresi.

Pemrosesan bahasa alami (NLP) adalah area aplikasi utama lainnya untuk pembelajaran mendalam. Selain masalah terjemahan mesin yang ditangani oleh Google Terjemahan, tugas utama NLP mencakup peringkasan otomatis, resolusi referensi bersama, analisis wacana, segmentasi morfologi, pengenalan entitas, pembuatan bahasa alami, pemahaman bahasa alami, penandaan bagian dari ucapan, sentimen analisis, dan pengenalan ucapan.

Selain CNN, tugas NLP sering kali ditangani dengan jaringan saraf berulang (RNN), yang mencakup model Long-Short Term Memory (LSTM).

Semakin banyak lapisan di dalam jaringan neural dalam, semakin banyak komputasi yang diperlukan untuk melatih model di CPU. Akselerator hardware untuk jaringan neural mencakup GPU, TPU, dan FPGA.

Pembelajaran penguatan

Pembelajaran penguatan melatih aktor atau agen untuk menanggapi lingkungan dengan cara yang memaksimalkan beberapa nilai , biasanya dengan coba-coba. Itu berbeda dari pembelajaran yang diawasi dan tidak diawasi, tetapi sering digabungkan dengan keduanya.

Misalnya, AlphaGo DeepMind, untuk belajar memainkan (aksi) permainan Go (lingkungan), pertama kali belajar meniru pemain Go manusia dari kumpulan data besar permainan sejarah (pembelajaran magang). Kemudian meningkatkan permainannya dengan trial and error (pembelajaran penguatan), dengan memainkan sejumlah besar game Go melawan instance independen itu sendiri.

Kontrol robotik adalah masalah lain yang telah diserang dengan metode pembelajaran penguatan mendalam, yang berarti pembelajaran penguatan ditambah jaringan saraf dalam, jaringan saraf dalam sering dilatih CNN untuk mengekstrak fitur dari bingkai video.

Cara menggunakan pembelajaran mesin

Bagaimana cara membuat model pembelajaran mesin? Anda mulai dengan membersihkan dan mengondisikan data, lanjutkan dengan rekayasa fitur, lalu mencoba setiap algoritme pembelajaran mesin yang masuk akal. Untuk kelas masalah tertentu, seperti penglihatan dan pemrosesan bahasa alami, algoritme yang mungkin berhasil melibatkan pembelajaran yang mendalam.

Pembersihan data untuk pembelajaran mesin

Tidak ada yang namanya data bersih di alam liar. Agar berguna untuk pembelajaran mesin, data harus difilter secara agresif. Misalnya, Anda ingin:

  1. Lihat datanya dan kecualikan kolom yang memiliki banyak data yang hilang.
  2. Lihat lagi datanya dan pilih kolom yang ingin Anda gunakan ( pemilihan fitur ) untuk prediksi Anda. Ini adalah sesuatu yang mungkin ingin Anda ubah saat mengulang.
  3. Kecualikan baris yang masih memiliki data yang hilang di kolom yang tersisa.
  4. Perbaiki kesalahan ketik yang jelas dan gabungkan jawaban yang setara. Misalnya, AS, AS, AS, dan Amerika harus digabung menjadi satu kategori.
  5. Kecualikan baris yang memiliki data di luar jangkauan. Misalnya, jika Anda menganalisis perjalanan taksi di Kota New York, Anda akan ingin memfilter baris dengan garis lintang dan bujur penjemputan atau pengantaran yang berada di luar kotak pembatas wilayah metropolitan.

Masih banyak lagi yang dapat Anda lakukan, tetapi itu akan bergantung pada data yang dikumpulkan. Ini bisa membosankan, tetapi jika Anda menyiapkan langkah pembersihan data di pipeline machine learning, Anda dapat mengubah dan mengulanginya sesuka hati.

Enkode dan normalisasi data untuk pembelajaran mesin

Untuk menggunakan data kategorikal untuk klasifikasi mesin, Anda perlu mengenkode label teks ke dalam formulir lain. Ada dua pengkodean umum.

Salah satunya adalah label encoding , yang berarti setiap nilai label teks diganti dengan angka. Lainnya adalah one-hot encoding , yang berarti setiap nilai label teks diubah menjadi kolom dengan nilai biner (1 atau 0). Sebagian besar framework pembelajaran mesin memiliki fungsi yang melakukan konversi untuk Anda. Secara umum, encoding one-hot lebih disukai, karena encoding label terkadang dapat membingungkan algoritme pembelajaran mesin sehingga berpikir bahwa kolom yang dienkode diurutkan.