Apa itu pembelajaran mesin? Kecerdasan yang diperoleh daripada data

Pembelajaran mesin ditentukan

Pembelajaran mesin adalah cabang kecerdasan buatan yang merangkumi kaedah, atau algoritma, untuk membuat model dari data secara automatik. Tidak seperti sistem yang melaksanakan tugas dengan mengikuti peraturan eksplisit, sistem pembelajaran mesin belajar dari pengalaman. Walaupun sistem berdasarkan peraturan akan melakukan tugas dengan cara yang sama setiap kali (untuk lebih baik atau lebih buruk), prestasi sistem pembelajaran mesin dapat ditingkatkan melalui latihan, dengan memperlihatkan algoritma ke lebih banyak data.

Algoritma pembelajaran mesin sering dibahagikan kepada diselia (data latihan ditandai dengan jawapan) dan tidak diawasi ( label yang mungkin ada tidak ditunjukkan kepada algoritma latihan). Masalah pembelajaran mesin yang diselia selanjutnya dibahagikan kepada klasifikasi (meramalkan jawapan bukan angka, seperti kebarangkalian pembayaran gadai janji yang tidak dijawab) dan regresi (meramalkan jawapan berangka, seperti jumlah widget yang akan dijual bulan depan di kedai Manhattan anda).

Pembelajaran tanpa pengawasan selanjutnya dibahagikan kepada pengelompokan (mencari kumpulan objek serupa, seperti kasut berlari, kasut berjalan, dan kasut pakaian), pergaulan (mencari urutan objek yang biasa, seperti kopi dan krim), dan pengurangan dimensi (unjuran, pemilihan ciri , dan pengekstrakan ciri).

Aplikasi pembelajaran mesin

Kami mendengar tentang aplikasi pembelajaran mesin setiap hari, walaupun tidak semuanya merupakan kejayaan yang tidak disekat. Kereta memandu sendiri adalah contoh yang baik, di mana tugas berkisar dari yang mudah dan berjaya (bantuan tempat letak kenderaan dan jalan raya berikut) hingga yang kompleks dan rapuh (kawalan kenderaan penuh di kawasan bandar, yang menyebabkan beberapa kematian).

Pembelajaran mesin bermain permainan sangat berjaya bagi para pemeriksa, catur, shogi, dan Go, setelah berjaya mengalahkan juara dunia manusia. Terjemahan bahasa automatik telah berjaya, walaupun beberapa pasangan bahasa berfungsi lebih baik daripada yang lain, dan banyak terjemahan automatik masih dapat diperbaiki oleh penterjemah manusia.

Ucapan automatik ke teks berfungsi dengan baik untuk orang yang mempunyai aksen arus perdana, tetapi tidak begitu baik bagi orang yang mempunyai loghat wilayah atau kebangsaan yang kuat; prestasi bergantung pada set latihan yang digunakan oleh vendor. Analisis sentimen automatik media sosial mempunyai kadar kejayaan yang cukup baik, mungkin kerana set latihan (misalnya penilaian produk Amazon, yang memberikan komen dengan skor berangka) besar dan mudah diakses.

Pemeriksaan riwayat hidup secara automatik adalah kawasan yang kontroversial. Amazon terpaksa menarik balik sistem dalamannya kerana latihan bias sampel yang menyebabkannya menurunkan semua permohonan pekerjaan dari wanita.

Sistem saringan resume lain yang sedang digunakan mungkin mempunyai bias latihan yang menyebabkan mereka meningkatkan calon yang "seperti" pekerja semasa dengan cara yang tidak semestinya penting (misalnya, calon muda, putih, lelaki dari kawasan kejiranan berbahasa Inggeris yang bermain sukan berpasukan lebih cenderung untuk melewati saringan). Usaha penyelidikan oleh Microsoft dan yang lain menumpukan pada penghapusan bias tersirat dalam pembelajaran mesin.

Klasifikasi automatik gambar patologi dan radiologi telah berkembang ke tahap di mana ia dapat membantu (tetapi tidak menggantikan) ahli patologi dan ahli radiologi untuk mengesan jenis kelainan tertentu. Sementara itu, sistem pengenalan wajah keduanya kontroversial ketika mereka berfungsi dengan baik (kerana pertimbangan privasi) dan cenderung tidak begitu tepat untuk wanita dan orang yang berwarna seperti lelaki putih (kerana berat sebelah dalam populasi latihan).

Algoritma pembelajaran mesin

Pembelajaran mesin bergantung pada sebilangan algoritma untuk mengubah set data menjadi model. Algoritma mana yang paling sesuai bergantung pada jenis masalah yang anda selesaikan, sumber pengkomputeran yang ada, dan sifat data. Tidak kira apa algoritma atau algoritma yang anda gunakan, pertama-tama anda perlu membersihkan dan menyusun data.

Mari kita bincangkan algoritma yang paling biasa untuk setiap jenis masalah.

Algoritma klasifikasi

Masalah klasifikasi adalah masalah pembelajaran yang diawasi yang meminta pilihan antara dua atau lebih kelas, biasanya memberikan kebarangkalian untuk setiap kelas. Meninggalkan rangkaian saraf dan pembelajaran mendalam, yang memerlukan tahap sumber pengkomputeran yang jauh lebih tinggi, algoritma yang paling biasa adalah Naive Bayes, Decision Tree, Logistic Regression, K-Nearest Neighbours, and Support Vector Machine (SVM). Anda juga boleh menggunakan kaedah ensemble (kombinasi model), seperti Random Forest, kaedah Bagging lain, dan kaedah meningkatkan seperti AdaBoost dan XGBoost.

Algoritma regresi

Masalah regresi adalah masalah pembelajaran yang diawasi yang meminta model untuk meramalkan nombor. Algoritma paling mudah dan terpantas adalah regresi linear (kuadrat terkecil), tetapi anda tidak boleh berhenti di situ, kerana ia sering memberikan hasil yang biasa-biasa saja. Algoritma regresi pembelajaran mesin biasa yang lain (kekurangan rangkaian neural) termasuk Naive Bayes, Decision Tree, K-Nearest Neighbours, LVQ (Learning Vector Quantization), LARS Lasso, Elastic Net, Random Forest, AdaBoost, dan XGBoost. Anda akan melihat bahawa terdapat beberapa pertindihan antara algoritma pembelajaran mesin untuk regresi dan klasifikasi.

Algoritma pengelompokan

Masalah pengelompokan adalah masalah pembelajaran tanpa pengawasan yang meminta model untuk mencari kumpulan titik data yang serupa. Algoritma yang paling popular ialah K-Means Clustering; yang lain merangkumi Mean-Shift Clustering, DBSCAN (Density-Based Spatial Clustering of Applications with Noise), GMM (Gaussian Mixture Models), dan HAC (Hierarchical Agglomerative Clustering).

Algoritma pengurangan dimensi

Pengurangan dimensi adalah masalah pembelajaran yang tidak diawasi yang meminta model menjatuhkan atau menggabungkan pemboleh ubah yang mempunyai sedikit atau tidak ada kesan pada hasilnya. Ini sering digunakan dalam kombinasi dengan klasifikasi atau regresi. Algoritma pengurangan dimensi merangkumi membuang pemboleh ubah dengan banyak nilai yang hilang, membuang pemboleh ubah dengan varians rendah, Pohon Keputusan, Hutan Acak, membuang atau menggabungkan pemboleh ubah dengan korelasi tinggi, Penghapusan Ciri Belakang, Pemilihan Ciri Depan, Analisis Faktor, dan PCA (Analisis Komponen Utama).

Kaedah pengoptimuman

Latihan dan penilaian mengubah algoritma pembelajaran yang diawasi menjadi model dengan mengoptimumkan bobot parameter mereka untuk mencari sekumpulan nilai yang paling sesuai dengan kebenaran dasar data anda. Algoritma sering bergantung pada varian keturunan paling curam untuk pengoptimumnya, misalnya keturunan kecerunan stokastik (SGD), yang pada dasarnya turun paling curam dilakukan berkali-kali dari titik permulaan secara rawak.

Penambahbaikan umum pada SGD menambah faktor yang membetulkan arah kecerunan berdasarkan momentum, atau menyesuaikan kadar pembelajaran berdasarkan kemajuan dari satu proses melewati data (disebut zaman atau kumpulan) ke tahap berikutnya.

Rangkaian saraf dan pembelajaran mendalam

Jaringan saraf diilhamkan oleh seni bina korteks visual biologi. Pembelajaran mendalam adalah satu set teknik untuk belajar di jaringan saraf yang melibatkan sebilangan besar lapisan "tersembunyi" untuk mengenal pasti ciri. Lapisan tersembunyi terletak di antara lapisan input dan output. Setiap lapisan terdiri daripada neuron buatan, selalunya dengan fungsi pengaktifan sigmoid atau ReLU (Rectified Linear Unit).

Dalam rangkaian feed-forward, neuron disusun ke dalam lapisan yang berbeza: satu lapisan input, sebilangan lapisan pemprosesan tersembunyi, dan satu lapisan output, dan output dari setiap lapisan hanya menuju ke lapisan berikutnya.

Dalam rangkaian feed-forward dengan sambungan pintasan, beberapa sambungan dapat melompati satu atau lebih lapisan perantaraan. Dalam rangkaian saraf berulang, neuron dapat mempengaruhi diri mereka, baik secara langsung, atau tidak langsung melalui lapisan berikutnya.

Pembelajaran rangkaian saraf yang diawasi dilakukan seperti pembelajaran mesin yang lain: Anda menghadirkan rangkaian dengan kumpulan data latihan, membandingkan output rangkaian dengan output yang diinginkan, menghasilkan vektor ralat, dan menerapkan pembetulan ke rangkaian berdasarkan vektor ralat , biasanya menggunakan algoritma backpropagation. Kumpulan data latihan yang dijalankan bersama sebelum melakukan pembetulan disebut zaman.

Seperti semua pembelajaran mesin, anda perlu memeriksa ramalan rangkaian saraf terhadap satu set data ujian yang berasingan. Tanpa melakukan itu, anda berisiko membuat rangkaian saraf yang hanya menghafal inputnya daripada belajar menjadi peramal umum.

Terobosan dalam bidang rangkaian saraf untuk penglihatan adalah Leannet-5 Yann LeCun pada tahun 1998, rangkaian saraf konvolusional tujuh tingkat (CNN) untuk pengiktirafan digit tulisan tangan yang didigitalkan dalam gambar 32x32 piksel. Untuk menganalisis gambar dengan resolusi lebih tinggi, rangkaian memerlukan lebih banyak neuron dan lebih banyak lapisan.

Jaringan saraf konvolusional biasanya menggunakan lapisan konvolusional, penyatuan, ReLU, terhubung sepenuhnya, dan kehilangan untuk mensimulasikan korteks visual. Lapisan konvolusional pada dasarnya mengambil gabungan banyak kawasan bertindih kecil. Lapisan penyatuan melakukan bentuk pensampelan bawah tidak linear. Lapisan ReLU, yang saya sebutkan sebelumnya, menerapkan fungsi pengaktifan tidak tepu f(x) = max(0,x).

Dalam lapisan yang bersambung sepenuhnya, neuron mempunyai sambungan penuh ke semua pengaktifan pada lapisan sebelumnya. Lapisan kerugian menghitung bagaimana latihan rangkaian menghukum penyimpangan antara label yang diramalkan dan benar, dengan menggunakan Softmax atau kerugian cross-entropy untuk klasifikasi atau kerugian Euclidean untuk regresi.

Pemprosesan bahasa semula jadi (NLP) adalah satu lagi bidang aplikasi utama untuk pembelajaran mendalam. Sebagai tambahan kepada masalah terjemahan mesin yang ditangani oleh Google Translate, tugas-tugas utama NLP termasuk ringkasan automatik, penyelesaian rujukan bersama, analisis wacana, segmentasi morfologi, pengenalan entiti bernama, penjanaan bahasa semula jadi, pemahaman bahasa semula jadi, penandaan bahagian-ucapan, sentimen analisis, dan pengecaman pertuturan.

Sebagai tambahan kepada CNN, tugas-tugas NLP sering ditangani dengan jaringan saraf berulang (RNN), yang merangkumi model Memori Jangka Panjang-Panjang (LSTM).

Semakin banyak lapisan yang ada dalam jaringan neural yang mendalam, semakin banyak perhitungan yang diperlukan untuk melatih model menggunakan CPU. Pemecut perkakasan untuk rangkaian neural merangkumi GPU, TPU, dan FPGA.

Pembelajaran pengukuhan

Pembelajaran pengukuhan melatih pelakon atau ejen untuk bertindak balas terhadap persekitaran dengan cara yang memaksimumkan beberapa nilai , biasanya melalui percubaan dan kesilapan. Itu berbeza dengan pembelajaran yang diawasi dan tidak diawasi, tetapi sering digabungkan dengan mereka.

Sebagai contoh, DeepMind's AlphaGo, untuk belajar bermain (aksi) permainan Go (persekitaran), pertama kali belajar meniru pemain Go manusia dari kumpulan data besar permainan sejarah (pembelajaran magang). Ia kemudian meningkatkan permainannya melalui percubaan dan kesilapan (pembelajaran pengukuhan), dengan memainkan sejumlah besar permainan Go terhadap kejadian bebas dari dirinya.

Pengendalian robotik adalah masalah lain yang diserang dengan kaedah pembelajaran peneguhan mendalam, yang bermaksud pembelajaran pengukuhan ditambah dengan rangkaian neural dalam, rangkaian neural dalam sering menjadi CNN yang dilatih untuk mengekstrak ciri dari bingkai video.

Cara menggunakan pembelajaran mesin

Bagaimana seseorang membuat model pembelajaran mesin? Anda mulakan dengan membersihkan dan menyusun data, meneruskan teknik ciri, dan kemudian mencuba setiap algoritma pembelajaran mesin yang masuk akal. Untuk kelas masalah tertentu, seperti penglihatan dan pemprosesan bahasa semula jadi, algoritma yang cenderung berfungsi melibatkan pembelajaran mendalam.

Pembersihan data untuk pembelajaran mesin

Tidak ada yang namanya data bersih di alam liar. Agar berguna untuk pembelajaran mesin, data mesti disaring secara agresif. Contohnya, anda mahu:

  1. Lihat data dan kecualikan lajur yang mempunyai banyak data yang hilang.
  2. Lihat kembali data dan pilih lajur yang ingin anda gunakan ( pemilihan ciri ) untuk ramalan anda. Ini adalah sesuatu yang anda mungkin mahu berubah semasa anda berulang kali.
  3. Kecualikan baris yang masih ada data di lajur yang tinggal.
  4. Betulkan tipu yang jelas dan gabungkan jawapan yang setara. Contohnya, AS, AS, AS, dan Amerika harus digabungkan menjadi satu kategori.
  5. Kecualikan baris yang mempunyai data yang berada di luar jangkauan. Sebagai contoh, jika anda menganalisis perjalanan teksi di New York City, anda ingin menyaring baris dengan garis lintang dan garis bujur pikap atau turun yang berada di luar kotak sempadan kawasan metropolitan.

Masih banyak yang boleh anda lakukan, tetapi ia bergantung pada data yang dikumpulkan. Ini boleh membosankan, tetapi jika anda mengatur langkah pembersihan data di saluran pembelajaran mesin anda, anda boleh mengubah dan mengulanginya sesuka hati.

Pengekodan dan normalisasi data untuk pembelajaran mesin

Untuk menggunakan data kategori untuk klasifikasi mesin, anda perlu mengekod label teks ke dalam bentuk lain. Terdapat dua pengekodan biasa.

Salah satunya adalah pengekodan label , yang bermaksud bahawa setiap nilai label teks diganti dengan angka. Yang lain adalah pengekodan satu-panas , yang bermaksud bahawa setiap nilai label teks berubah menjadi lajur dengan nilai binari (1 atau 0). Sebilangan besar kerangka pembelajaran mesin mempunyai fungsi yang melakukan penukaran untuk anda. Secara amnya, pengekodan satu panas lebih disukai, kerana pengekodan label kadang-kadang dapat mengelirukan algoritma pembelajaran mesin untuk berfikir bahawa lajur yang dikodkan disusun.