Rumah Kewangan Peribadi Berjuang dengan Overfitting in Machine Learning - dummies

Berjuang dengan Overfitting in Machine Learning - dummies

Isi kandungan:

Video: Bergelut dengan Tema (Dadakan) | Kejar Tayang 2025

Video: Bergelut dengan Tema (Dadakan) | Kejar Tayang 2025
Anonim

Memandangkan seni bina rangkaian neural, anda boleh membayangkan betapa mudahnya algoritma itu dapat belajar hampir apa-apa daripada data, terutamanya jika anda menambahkan terlalu banyak lapisan. Malah, algoritma itu begitu baik sehingga ramalannya sering dipengaruhi oleh varians anggaran tinggi yang disebut overfitting. Berlebihan menyebabkan rangkaian neural mempelajari setiap terperinci contoh latihan, yang memungkinkan untuk meniru mereka dalam fasa ramalan. Tetapi selain dari set latihan, ia tidak akan pernah meramalkan apa-apa yang berbeza.

Memahami masalah yang terlalu pantas

Apabila anda menggunakan rangkaian neural untuk masalah sebenar, anda perlu mengambil beberapa langkah amaran dengan cara yang lebih ketat daripada yang anda lakukan dengan algoritma lain. Rangkaian saraf adalah frailer dan lebih cenderung kepada kesilapan yang berkaitan berbanding penyelesaian pembelajaran mesin yang lain.

Pertama, anda telah memisahkan data anda dengan teliti ke dalam latihan, pengesahan, dan set ujian. Sebelum algoritma belajar dari data, anda mesti menilai kebaikan parameter anda: seni bina (bilangan lapisan dan nod di dalamnya); fungsi pengaktifan; parameter pembelajaran; dan bilangan lelaran. Khususnya, seni bina ini menawarkan peluang yang besar untuk mencipta model ramalan yang kuat dengan risiko yang berlebihan. Parameter pembelajaran mengawal seberapa cepat rangkaian belajar dari data, tetapi mungkin tidak mencukupi untuk menghalang data latihan yang terlalu besar.

Anda mempunyai dua penyelesaian yang mungkin untuk masalah ini:

  • Penyelesaian pertama adalah regularization, seperti dalam regresi linear dan logistik. Anda boleh merangkumi semua koefisien sambungan, kuasa dua atau nilai mutlak, untuk menghukum model dengan terlalu banyak pekali dengan nilai tinggi (dicapai oleh regulasi rajah L2) atau dengan nilai yang berbeza dari sifar (dicapai oleh regulasi rajah L1).
  • Penyelesaian kedua juga berkesan kerana ia mengendalikan apabila overfitting berlaku. Ia dipanggil awal berhenti dan berfungsi dengan memeriksa fungsi kos pada set pengesahan sebagai algoritma belajar dari set latihan.

Anda mungkin tidak menyedari apabila model anda bermula lebih pantas. Fungsi kos yang dikira menggunakan set latihan terus meningkat apabila pengoptimuman berlangsung. Bagaimanapun, sebaik sahaja anda mula merakam bunyi dari data dan berhenti belajar peraturan am, anda boleh menyemak fungsi kos pada sampel yang tidak dapat dieksekusi (contoh pengesahan). Pada satu ketika, anda akan melihat bahawa ia berhenti membaik dan mula semakin buruk, yang bermaksud bahawa model anda telah mencapai had pembelajarannya.

Membuka kotak hitam rangkaian neural

Cara terbaik untuk belajar bagaimana membina rangkaian saraf adalah membina satu. Python menawarkan pelbagai kemungkinan pelaksanaan untuk rangkaian saraf dan pembelajaran yang mendalam. Python mempunyai perpustakaan seperti Theano, yang membolehkan perhitungan yang kompleks pada tahap abstrak, dan lebih banyak pakej praktikal, seperti Lasagne, yang membolehkan anda membina rangkaian saraf, walaupun masih memerlukan beberapa abstraksi. Atas sebab ini, anda memerlukan pembalut, seperti nolearn, yang bersesuaian dengan scikit-learn, atau Keras, yang juga boleh membungkus pustaka TensorFlow yang dikeluarkan oleh Google yang berpotensi untuk menggantikan Theano sebagai perpustakaan perisian untuk pengiraan saraf.

R menyediakan perpustakaan yang kurang rumit dan lebih mudah diakses, seperti nnet, AMORE, dan neuralnet. Contoh ringkas dalam R menunjukkan cara melatih kedua-dua rangkaian klasifikasi (pada set data Iris) dan rangkaian regresi (pada set data Boston). Bermula dari klasifikasi, kod berikut memuatkan set data dan memecahnya ke dalam latihan dan set ujian:

perpustakaan (neuralnet)

sasaran <- model. matriks (~ Spesies & # x00A0; - 1, data = iris)

kolnames (target) <- c ("setosa", "versicolor", "virginica")

biji (101)

index <- sample (1: nrow (iris), 100)

train_predictors <- iris [index, 1: 4]

test_predictors <- iris [-index,

Oleh kerana rangkaian saraf bergantung kepada ketinggian gradien, anda perlu menyeragamkan atau menormalkan input. Normalisasi adalah lebih baik supaya minimum adalah sifar dan maksimum adalah satu untuk setiap ciri. Sememangnya, anda belajar bagaimana untuk menjadikan penukaran berangka menggunakan latihan yang ditetapkan untuk mengelakkan sebarang peluang menggunakan maklumat daripada ujian luar sampel.

min_vector <- apply (train_predictors, 2, min)

range_vector <- apply (train_predictors, 2, max) -

apply (train_predictors, (999) target ]

test_scaled <- cbind (skala (test_predictors,

min_vector, range_vector),

target [-index,]) < ringkasan (train_scaled)

Apabila latihan telah siap, anda boleh melatih model untuk meneka tiga pemboleh ubah biner, dengan setiap satu mewakili kelas. Output adalah nilai bagi setiap kelas yang berkadar dengan kebarangkalian menjadi kelas sebenar. Anda memilih ramalan dengan mengambil nilai tertinggi. Anda juga boleh memvisualisasikan rangkaian dengan menggunakan plot dalaman dan dengan itu melihat seni bina rangkaian neural dan berat yang ditugaskan. Set

. biji (102)

nn_iris <- neuralnet (setosa + versicolor + virginica ~

Sepal Length + Sepal Width

+ Petal Length + Petal Width, data = train_scaled, (2),

linear output = F)

plot (nn_iris)

ramalan <- hitung (nn_iris, test_scaled [1: 4])

y_predicted <- apply (predictions $ net. hasilnya, 1, yang mana max)

y_true <- apply (test_scaled [5: 7], 1, yang mana max)

confusion_matrix <- table (y_true, y_predicted)

diag (confusion_matrix)) /

jumlah (confusion_matrix)

print (confusion_matrix)

print (paste ("Ketepatan:", ketepatan))

Contoh berikut menunjukkan cara untuk meramalkan nilai rumah di Boston, menggunakan set data Boston. Prosedurnya adalah sama dengan klasifikasi sebelumnya, tetapi di sini anda mempunyai satu unit output tunggal. Kod ini juga memperlihatkan keputusan ramalan yang ditetapkan oleh ujian terhadap nilai sebenar untuk mengesahkan kesesuaian model.

no_examples <- nrow (Boston)

ciri <- kolnames (Boston)

tetapkan. benih (101)

index <- sample (1: no_examples, 400)

train <- boston [index,]

test <- boston [-index, (2, min) - gunakan (kereta, 2, min)

scaled_train <- skala (kereta api, min_vector, range_vector)

scaled_test <- skala (test, min_vector, range_vector)

formula = paste ("medv ~", tampal (features [1: 13],

collapse = & apos; = scaled_train,

hidden = c (5, 3), linear. output = T)

ramalan <- compute (nn_boston, scaled_test [1: 13])

predicted_values ​​<- (ramalan $ bersih. - (min () [2])

print (paste ("RMSE:", RMSE))

plot (test [14], predicted_values, cex = 1. 5)

abline (0, 1, lwd = 1)

Berjuang dengan Overfitting in Machine Learning - dummies

Pilihan Editor

Bagaimana untuk memperbaiki pencahayaan dengan bayang-bayang dan sorotan di Photoshop CS6 - dummies

Bagaimana untuk memperbaiki pencahayaan dengan bayang-bayang dan sorotan di Photoshop CS6 - dummies

Bayang-bayang / sorotan pelarasan adalah ciri yang hebat Dalam Adobe Photoshop CS6 yang menawarkan kaedah yang cepat dan mudah untuk membetulkan pencahayaan. Perintah ini berfungsi dengan baik pada subjek yang difoto dengan sumber cahaya yang berasal dari belakang, memberikan subjek yang latar depan gelap. Pelarasan ini juga boleh membawa terperinci di kawasan bayangan kasar. Untuk ...

Bagaimana Membekukan dan Kawasan Imej Thaw di Photoshop CS6 - dummies

Bagaimana Membekukan dan Kawasan Imej Thaw di Photoshop CS6 - dummies

Cecair dalam Photoshop CS6 ke melindungi kawasan dengan beku, dan kawasan yang tidak dilindungi oleh pencairan, patut dilihat lebih dekat. Pertimbangkan pembekuan yang bersamaan dengan pelekat. Berikut adalah ringkasan perkara-perkara yang perlu anda ketahui: Cara paling mudah untuk membekukan / melepaskan adalah dengan menggunakan alat Freeze Mask dan Thaw Mask untuk melukis kawasan anda ...

Bagaimana Mendapatkan Sebaliknya Lebih Baik di Photoshop CS6 Arahan - dummies

Bagaimana Mendapatkan Sebaliknya Lebih Baik di Photoshop CS6 Arahan - dummies

Jika anda ingin menyesuaikan nada nilai imej dalam Photoshop CS6 atau warna yang betul, arahan Level boleh memberi anda kontras yang lebih baik dan alat untuk anda. Ia menawarkan lebih banyak kawalan daripada arahan Auto Tone. Perintah Tahap juga merupakan alat yang lebih canggih daripada kawalan Kecerahan / Kontras kerana anda boleh ...

Pilihan Editor

Cara Menggunakan Swatches dalam Adobe InDesign CS6 Dokumen - dummies

Cara Menggunakan Swatches dalam Adobe InDesign CS6 Dokumen - dummies

Anda boleh membuat, memohon dan mengedit warna-warna dari panel Swatches dalam Adobe InDesign Creative Suite 6. Selain menggunakan panel ini untuk mencipta dan mengedit tints dan kecerunan dan kemudian menerapkannya pada objek pada halaman, anda juga boleh membuat dan menyimpan warna pepejal. Pilih Window → Warna → Swatch untuk membuka atau mengembangkan Swatches ...

Cara Menggunakan Grid dalam bingkai teks Adobe InDesign CS6 - dummies

Cara Menggunakan Grid dalam bingkai teks Adobe InDesign CS6 - dummies

Mengandungi apa-apa teks yang anda tambah pada penerbitan . Anda boleh membuat bingkai teks baru dalam pelbagai cara. Dalam Adobe InDesign CS6, anda boleh menambah teks kepada bentuk kreatif yang anda lukis, dengan itu mengubahnya menjadi bingkai teks. Membuat dan menggunakan bingkai teks dalam penerbitan adalah penting kerana anda biasanya menggunakan ...

Cara Menggunakan Alat Transformasi Percuma dalam InDesign CS6 Documents - dummies

Cara Menggunakan Alat Transformasi Percuma dalam InDesign CS6 Documents - dummies

Alat dalam Adobe InDesign membolehkan anda mengubah objek dengan cara yang berbeza. Menggunakan alat Transformasi Percuma, anda boleh memindahkan, memutar, ricih, mencerminkan, dan objek skala. Fungsi Alat Transformasi Percuma diwakili dalam InDesign oleh kursor yang berbeza. Untuk menggerakkan objek dengan menggunakan alat Transform Free, ikuti langkah berikut:

Pilihan Editor

Bagaimana untuk Memantau Media Sosial dengan Google Alerts - dummies

Bagaimana untuk Memantau Media Sosial dengan Google Alerts - dummies

Anda ingin mempunyai idea yang baik dari apa yang sedang dibincangkan di media sosial dalam bidang perniagaan anda, mengenai produk dan perkhidmatan anda, atau tentang persaingan anda. Anda boleh memantau ulasan media sosial dengan Google Alerts. Orang-orang jenis di Google mempunyai perkhidmatan yang memberitahu anda apabila Google mendapati hasil baru, halaman web, ...

Cara Menyediakan Homepage Netvibes untuk Pemasaran Dalam Talian - dummies

Cara Menyediakan Homepage Netvibes untuk Pemasaran Dalam Talian - dummies

Netvibes boleh alat yang berguna kepada pemasar web dan anda harus bermula dengan membuat laman utama. Jika anda suka antara muka yang sedikit lebih digilap, mahukan lebih banyak pilihan penyesuaian, atau tidak selesa menggunakan Google kerana kebimbangan privasi (sesetengah orang bukan sahaja), Netvibes adalah pilihan yang sangat baik. Menyediakan laman web Netvibes hanya mengambil ...

Cara Menetapkan Senarai Perniagaan di Laman Tinjauan - dummies

Cara Menetapkan Senarai Perniagaan di Laman Tinjauan - dummies

Merupakan langkah penting dalam membina perdagangan laman web media sosial adalah untuk mencari perniagaan anda di laman ulasan dan menuntut halaman anda! Yelp sepatutnya menjadi perhentian pertama anda. Dalam angka tersebut, disenaraikan di antara komen dan data mengenai perniagaan, anda boleh melihat jemputan terbuka untuk pemilik perniagaan untuk mendapatkan semula halaman tersebut. ...