Pembelajaran mendalam berbanding pembelajaran mesin: Memahami perbezaan

Pembelajaran mesin dan pembelajaran mendalam adalah kedua-dua bentuk kecerdasan buatan. Anda juga boleh mengatakan, dengan betul, bahawa pembelajaran mendalam adalah jenis pembelajaran mesin tertentu. Pembelajaran mesin dan pembelajaran mendalam bermula dengan data latihan dan ujian dan model dan melalui proses pengoptimuman untuk mencari bobot yang menjadikan model paling sesuai dengan data. Kedua-duanya dapat menangani masalah numerik (regresi) dan bukan numerik (klasifikasi), walaupun ada beberapa bidang aplikasi, seperti pengenalan objek dan terjemahan bahasa, di mana model pembelajaran mendalam cenderung menghasilkan kesesuaian yang lebih baik daripada model pembelajaran mesin.

Pembelajaran mesin dijelaskan

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

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, yang pada dasarnya adalah keturunan paling curam dilakukan berkali-kali dari titik permulaan secara rawak.

Penambahbaikan umum pada penurunan gradien stokastik 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.

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 seharusnya menjadi senarai yang teratur.

Untuk menggunakan data berangka untuk regresi mesin, anda biasanya perlu menormalkan data. Jika tidak, angka dengan julat yang lebih besar cenderung mendominasi jarak Euclidian antara vektor ciri , kesannya dapat diperbesar dengan mengorbankan medan lain, dan pengoptimuman keturunan paling curam mungkin mengalami kesukaran untuk bertemu. Terdapat sejumlah cara untuk menormalkan dan menstandardisasi data untuk pembelajaran mesin, termasuk normalisasi min-max, normalisasi rata-rata, standardisasi, dan penskalaan hingga panjang unit. Proses ini sering disebut fitur skala .

Kejuruteraan ciri untuk pembelajaran mesin

A ciri adalah harta diukur individu atau ciri fenomena yang diperhatikan. Konsep "ciri" berkaitan dengan konsep pemboleh ubah, yang digunakan dalam teknik statistik seperti regresi linier. Vektor ciri menggabungkan semua ciri untuk satu baris menjadi vektor berangka.

Sebahagian daripada seni memilih ciri adalah memilih set minimum pemboleh ubah bebas yang menjelaskan masalahnya. Sekiranya dua pemboleh ubah berkorelasi tinggi, kedua-duanya perlu digabungkan menjadi satu ciri, atau satu harus digugurkan. Kadang kala orang melakukan analisis komponen utama untuk menukar pemboleh ubah berkorelasi menjadi satu set pemboleh ubah tidak berkorelasi linear.

Sebilangan transformasi yang digunakan orang untuk membina ciri baru atau mengurangkan dimensi vektor ciri adalah mudah. Contohnya, tolak Year of Birthdari Year of Deathdan anda bina Age at Death, yang merupakan pemboleh ubah bebas utama untuk analisis sepanjang hayat dan kematian. Dalam kes lain, pembinaan ciri mungkin tidak begitu jelas.

Membahagi data untuk pembelajaran mesin

Amalan yang biasa dilakukan untuk pembelajaran mesin yang diawasi adalah dengan memisahkan kumpulan data menjadi subset untuk latihan , pengesahan , dan ujian . Salah satu cara kerja adalah dengan menetapkan 80% data ke set data latihan, dan masing-masing 10% ke set data pengesahan dan ujian. (Perpecahan tepat adalah masalah pilihan.) Sebilangan besar latihan dilakukan terhadap kumpulan data latihan, dan ramalan dilakukan terhadap set data pengesahan pada akhir setiap zaman.

Kesalahan dalam set data pengesahan dapat digunakan untuk mengidentifikasi kriteria berhenti, atau untuk mendorong penalaan hyperparameter. Yang paling penting, kesilapan dalam set data pengesahan dapat membantu anda mengetahui sama ada model tersebut terlalu banyak data latihan.

Ramalan terhadap set data ujian biasanya dilakukan pada model akhir. Sekiranya set data ujian tidak pernah digunakan untuk latihan, kadangkala disebut set data penahanan.

Terdapat beberapa skema lain untuk membelah data. Salah satu teknik biasa, pengesahan silang , melibatkan pemisahan berulang kali kumpulan data penuh menjadi satu set data latihan dan satu set data pengesahan. Pada akhir setiap zaman, data diacak dan dibahagi lagi.

Perpustakaan pembelajaran mesin

Di Python, Spark MLlib dan Scikit-learn adalah pilihan terbaik untuk perpustakaan pembelajaran mesin. Dalam R, beberapa pilihan pakej pembelajaran mesin adalah CARAT, randomForest, e1071, dan KernLab. Di Jawa, pilihan yang baik termasuk Java-ML, RapidMiner, dan Weka.

Pembelajaran mendalam dijelaskan

Pembelajaran mendalam adalah satu bentuk pembelajaran mesin di mana model yang dilatih mempunyai lebih dari satu lapisan tersembunyi antara input dan output. Dalam kebanyakan perbincangan, pembelajaran mendalam bermaksud menggunakan rangkaian neural mendalam . Namun, ada beberapa algoritma yang menerapkan pembelajaran mendalam menggunakan jenis lapisan tersembunyi lain selain jaringan saraf.

Idea untuk rangkaian saraf "buatan" wujud sejak tahun 1940-an. Konsep pentingnya ialah rangkaian neuron tiruan yang dibina daripada suis ambang yang saling berkaitan dapat belajar mengenali corak dengan cara yang sama seperti yang dilakukan oleh otak dan sistem saraf haiwan (termasuk retina).

Backprop

Pembelajaran berlaku pada dasarnya dengan mengeratkan hubungan antara dua neuron ketika kedua-duanya aktif pada masa yang sama semasa latihan. Dalam perisian rangkaian saraf moden, ini biasanya merupakan masalah peningkatan nilai berat untuk hubungan antara neuron menggunakan aturan yang disebut penyebaran kembali kesalahan , backprop, atau BP.

Neuron dalam rangkaian saraf tiruan

Bagaimana neuron dimodelkan? Masing-masing mempunyai fungsi penyebaran yang mengubah output neuron yang bersambung, selalunya dengan jumlah tertimbang. Output fungsi penyebaran diteruskan ke fungsi pengaktifan, yang menyala ketika inputnya melebihi nilai ambang.

Fungsi pengaktifan dalam rangkaian saraf

Pada tahun 1940-an dan 50-an neuron buatan menggunakan fungsi pengaktifan langkah dan disebut perceptron . Rangkaian saraf moden mungkin mengatakan mereka menggunakan perceptron, tetapi sebenarnya mempunyai fungsi pengaktifan yang lancar, seperti fungsi logistik atau sigmoid, tangen hiperbolik, atau Rectified Linear Unit (ReLU). ReLU biasanya merupakan pilihan terbaik untuk penumpuan yang cepat, walaupun ia mempunyai masalah neuron "mati" semasa latihan jika kadar pembelajaran ditetapkan terlalu tinggi.

[Juga pada: 6 cara untuk membuat pembelajaran mesin gagal]

Output fungsi pengaktifan dapat diteruskan ke fungsi output untuk pembentukan tambahan. Namun, sering kali, fungsi output adalah fungsi identiti, yang bermaksud bahawa output fungsi pengaktifan diteruskan ke neuron yang disambungkan ke hilir.

Topologi rangkaian saraf

Sekarang kita mengetahui mengenai neuron, kita perlu belajar mengenai topologi rangkaian saraf yang biasa. Dalam rangkaian feed-forward, neuron disusun menjadi lapisan yang berbeza: satu lapisan input, n lapisan pemprosesan tersembunyi, dan satu lapisan output. Keluaran dari setiap lapisan hanya menuju ke lapisan seterusnya.

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 sendiri, baik secara langsung atau tidak langsung melalui lapisan berikutnya.

Melatih rangkaian saraf

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 . Kumpulan data latihan yang dijalankan bersama sebelum melakukan pembetulan disebut zaman.

Bagi mereka yang berminat dengan perinciannya, penyebaran belakang menggunakan kecerunan fungsi ralat (atau kos) berkenaan dengan berat dan bias model untuk mengetahui arah yang betul untuk mengurangkan kesalahan. Dua perkara mengawal penerapan pembetulan: algoritma pengoptimuman dan pemboleh ubah kadar pembelajaran. Pemboleh ubah kadar pembelajaran biasanya perlu kecil untuk menjamin penumpuan dan mengelakkan menyebabkan neuron ReLU mati.

Pengoptimum untuk rangkaian saraf

Pengoptimum untuk rangkaian saraf biasanya menggunakan beberapa bentuk algoritma keturunan kecerunan untuk mendorong penyebaran belakang, selalunya dengan mekanisme untuk membantu mengelakkan terjebak dalam minima tempatan, seperti mengoptimumkan kumpulan kecil yang dipilih secara rawak (Stochastic Gradient Descent) dan menerapkan pembetulan momentum pada kecerunan. Beberapa algoritma pengoptimuman juga menyesuaikan kadar pembelajaran parameter model dengan melihat sejarah kecerunan (AdaGrad, RMSProp, dan Adam).