Pembelajaran mendalam vs. pembelajaran mesin: Pahami perbedaannya

Pembelajaran mesin dan pembelajaran mendalam adalah bentuk kecerdasan buatan. Anda juga dapat mengatakan, dengan benar, bahwa pembelajaran mendalam adalah jenis pembelajaran mesin tertentu. Baik pembelajaran mesin dan pembelajaran mendalam dimulai dengan pelatihan dan data pengujian serta model dan melalui proses pengoptimalan untuk menemukan bobot yang membuat model paling sesuai dengan data. Keduanya dapat menangani masalah numerik (regresi) dan non-numerik (klasifikasi), meskipun terdapat beberapa area aplikasi, seperti pengenalan objek dan terjemahan bahasa, di mana model deep learning cenderung menghasilkan kesesuaian yang lebih baik daripada model pembelajaran mesin.

Pembelajaran mesin menjelaskan

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).

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, yang pada dasarnya merupakan penurunan paling curam yang dilakukan beberapa kali dari titik awal acak.

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

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 memodifikasi dan mengulangnya 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 artinya 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, pengkodean one-hot lebih disukai, karena pengkodean label terkadang dapat membingungkan algoritme pembelajaran mesin sehingga berpikir bahwa kolom yang dienkode seharusnya menjadi daftar yang diurutkan.

Untuk menggunakan data numerik untuk regresi mesin, Anda biasanya perlu menormalkan data. Jika tidak, angka dengan rentang yang lebih besar mungkin cenderung mendominasi jarak Euclidian antara vektor fitur , efeknya dapat diperbesar dengan mengorbankan bidang lainnya, dan pengoptimalan penurunan paling curam mungkin mengalami kesulitan untuk menyatu. Ada sejumlah cara untuk menormalkan dan menstandarisasi data untuk pembelajaran mesin, termasuk normalisasi min-maks, normalisasi rata-rata, standarisasi, dan penskalaan ke panjang satuan. Proses ini sering disebut penskalaan fitur .

Rekayasa fitur untuk pembelajaran mesin

Sebuah fitur adalah properti terukur individu atau karakteristik fenomena yang diamati. Konsep "fitur" terkait dengan variabel penjelas, yang digunakan dalam teknik statistik seperti regresi linier. Vektor fitur menggabungkan semua fitur untuk satu baris menjadi vektor numerik.

Bagian dari seni memilih fitur adalah memilih sekumpulan variabel independen minimum yang menjelaskan masalah. Jika dua variabel sangat berkorelasi, keduanya perlu digabungkan menjadi satu fitur, atau salah satunya harus dibuang. Kadang-kadang orang melakukan analisis komponen utama untuk mengubah variabel berkorelasi menjadi sekumpulan variabel yang tidak berkorelasi linier.

Beberapa transformasi yang digunakan orang untuk membuat fitur baru atau mengurangi dimensi vektor fitur cukup sederhana. Misalnya, kurangi Year of Birthdari Year of Deathdan Anda buat Age at Death, yang merupakan variabel bebas utama untuk analisis seumur hidup dan kematian. Dalam kasus lain, konstruksi fitur mungkin tidak begitu jelas.

Memisahkan data untuk pembelajaran mesin

Praktik yang biasa dilakukan untuk machine learning yang diawasi adalah membagi kumpulan data menjadi beberapa subset untuk pelatihan , validasi , dan pengujian . Salah satu cara kerjanya adalah menetapkan 80% data ke set data pelatihan, dan 10% masing-masing ke validasi dan set data pengujian. (Pemisahan yang tepat adalah masalah preferensi.) Sebagian besar pelatihan dilakukan terhadap kumpulan data pelatihan, dan prediksi dilakukan terhadap kumpulan data validasi di akhir setiap periode.

Kesalahan dalam kumpulan data validasi dapat digunakan untuk mengidentifikasi kriteria penghentian, atau untuk mendorong penyetelan hyperparameter. Yang terpenting, error dalam kumpulan data validasi dapat membantu Anda mengetahui apakah model telah overfitting dengan data pelatihan.

Prediksi terhadap kumpulan data pengujian biasanya dilakukan pada model akhir. Jika kumpulan data pengujian tidak pernah digunakan untuk pelatihan, terkadang disebut kumpulan data pisahan.

Ada beberapa skema lain untuk memisahkan data. Satu teknik umum, validasi silang , melibatkan pemisahan berulang kali kumpulan data lengkap menjadi kumpulan data pelatihan dan kumpulan data validasi. Di akhir setiap periode, data diacak dan dipisahkan lagi.

Perpustakaan pembelajaran mesin

Di Python, Spark MLlib dan Scikit-learn adalah pilihan yang sangat baik untuk pustaka pembelajaran mesin. Di R, beberapa opsi paket pembelajaran mesin adalah CARAT, randomForest, e1071, dan KernLab. Di Java, pilihan yang bagus termasuk Java-ML, RapidMiner, dan Weka.

Pembelajaran mendalam menjelaskan

Pembelajaran mendalam adalah bentuk pembelajaran mesin di mana model yang dilatih memiliki lebih dari satu lapisan tersembunyi antara masukan dan keluaran. Dalam sebagian besar diskusi, pembelajaran mendalam berarti menggunakan jaringan saraf yang dalam . Namun, ada beberapa algoritme yang menerapkan pembelajaran mendalam menggunakan jenis lapisan tersembunyi lain selain jaringan saraf.

Ide untuk jaringan saraf "buatan" kembali ke tahun 1940-an. Konsep dasarnya adalah bahwa jaringan neuron buatan yang dibangun dari sakelar ambang yang saling berhubungan dapat belajar mengenali pola dengan cara yang sama seperti yang dilakukan oleh otak dan sistem saraf hewan (termasuk retina).

Backprop

Pembelajaran terjadi pada dasarnya dengan memperkuat hubungan antara dua neuron ketika keduanya aktif pada waktu yang sama selama pelatihan. Dalam perangkat lunak jaringan saraf modern, hal ini paling sering adalah masalah peningkatan nilai bobot untuk koneksi antar neuron menggunakan aturan yang disebut propagasi balik kesalahan , backprop, atau BP.

Neuron di jaringan saraf tiruan

Bagaimana neuron dimodelkan? Masing-masing memiliki fungsi propagasi yang mengubah keluaran dari neuron yang terhubung, seringkali dengan jumlah tertimbang. Output dari fungsi propagasi diteruskan ke fungsi aktivasi, yang diaktifkan ketika inputnya melebihi nilai ambang batas.

Fungsi aktivasi di jaringan saraf

Pada 1940-an dan 50-an neuron buatan menggunakan fungsi aktivasi langkah dan disebut perceptron . Jaringan saraf modern mungkin mengatakan mereka menggunakan perceptron, tetapi sebenarnya memiliki fungsi aktivasi yang lancar, seperti fungsi logistik atau sigmoid, garis singgung hiperbolik, atau Unit Linear Rektifikasi (ULT). ULT biasanya merupakan pilihan terbaik untuk konvergensi cepat, meskipun memiliki masalah neuron "sekarat" selama pelatihan jika kecepatan pemelajaran disetel terlalu tinggi.

[Juga pada: 6 cara membuat pembelajaran mesin gagal]

Keluaran dari fungsi aktivasi dapat diteruskan ke fungsi keluaran untuk pembentukan tambahan. Seringkali, bagaimanapun, fungsi keluaran adalah fungsi identitas, yang berarti bahwa keluaran dari fungsi aktivasi diteruskan ke neuron yang terhubung ke hilir.

Topologi jaringan saraf

Sekarang kita tahu tentang neuron, kita perlu belajar tentang topologi jaringan saraf umum. Dalam jaringan umpan-maju, neuron diatur ke dalam lapisan yang berbeda: satu lapisan masukan, n lapisan pemrosesan tersembunyi, dan satu lapisan keluaran. Output dari setiap lapisan hanya menuju 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 memengaruhi dirinya sendiri, baik secara langsung maupun tidak langsung melalui lapisan berikutnya.

Melatih jaringan saraf

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 . Kumpulan data pelatihan yang dijalankan bersama sebelum menerapkan koreksi disebut epoch.

Bagi mereka yang tertarik dengan detailnya, propagasi balik menggunakan fungsi gradien kesalahan (atau biaya) sehubungan dengan bobot dan bias model untuk menemukan arah yang benar untuk meminimalkan kesalahan. Dua hal yang mengontrol penerapan koreksi: algoritme pengoptimalan dan variabel kecepatan pembelajaran. Variabel kecepatan pembelajaran biasanya harus kecil untuk menjamin konvergensi dan menghindari penyebab neuron ULT yang mati.

Pengoptimal untuk jaringan neural

Pengoptimal untuk jaringan neural biasanya menggunakan beberapa bentuk algoritme penurunan gradien untuk mendorong propagasi mundur, seringkali dengan mekanisme untuk membantu menghindari macet di minimum lokal, seperti mengoptimalkan tumpukan-mini yang dipilih secara acak (Penurunan Gradien Stokastik) dan menerapkan koreksi momentum ke gradien. Beberapa algoritme pengoptimalan juga mengadaptasi kecepatan pembelajaran dari parameter model dengan melihat riwayat gradien (AdaGrad, RMSProp, dan Adam).