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 2024

Video: Bergelut dengan Tema (Dadakan) | Kejar Tayang 2024
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 Meditasi Mengubah Brain - dummies

Bagaimana Meditasi Mengubah Brain - dummies

Bersenjata dengan maklumat terkini tentang cara kerja otak, penyelidik telah mempelajari korelasi antara meditasi, pengaktifan bahagian otak yang berlainan, dan perubahan tingkah laku, kognisi, dan emosi. Hasilnya adalah jauh dari konklusif - mereka lebih seperti mengintip sekilas tentang bidang eksplorasi baru yang luas - tetapi mereka ...

Pilihan Editor

Cara Menghitung Umur dengan Formula Excel - patung

Cara Menghitung Umur dengan Formula Excel - patung

Salah satu cara yang paling mudah untuk mengira umur apa-apa pun adalah untuk menggunakan fungsi Excel DATEDIF. Fungsi misterius ini tidak muncul dalam fail Bantuan Excel, tetapi telah wujud sejak Excel 2000. Fungsi ini membuat pengiraan apa-apa jenis tarikh perbandingan angin. Untuk mengira usia seseorang menggunakan fungsi DATEDIF, anda ...

Bagaimana Menghitung Masa Berlalu di Excel - dummies

Bagaimana Menghitung Masa Berlalu di Excel - dummies

Salah satu perhitungan yang lebih biasa dilakukan dengan nilai masa melibatkan pengiraan masa berlalu - iaitu bilangan jam dan minit antara waktu mula dan waktu tamat. Jadual dalam gambar menunjukkan senarai masa mula dan akhir bersama dengan masa berlalu yang dikira. Anda boleh melihat bahawa formula ...

Bagaimana Menghitung Nilai Masa Depan dalam Excel 2013 - dummies

Bagaimana Menghitung Nilai Masa Depan dalam Excel 2013 - dummies

Fungsi Masa Depan Nilai (FV) Excel 2013 ditemui di menu lungsur butang Financial pada tab Rumus Ribbon (Alt + MI). Fungsi FV mengira nilai masa depan pelaburan. Sintaks fungsi ini ialah = FV (rate, nper, pmt, [pv], [type]) Kadar, nper, pmt, dan jenis argumen adalah sama seperti yang digunakan oleh PV ...

Pilihan Editor

Memindahkan Imej Digital dari Kamera Anda ke Komputer Windows - dummies

Memindahkan Imej Digital dari Kamera Anda ke Komputer Windows - dummies

, Anda boleh dengan mudah memindahkan imej dari kamera digital anda ke komputer anda. Pemindahan kamera ke komputer memerlukan anda memasang pemandu kamera anda pada PC anda. Untuk memindahkan foto dari kamera digital atau pembaca kad anda ke PC anda

Memindahkan Foto Digital dari Kad Memori Anda ke Komputer Anda dengan Adapter Kad PC

Memindahkan Foto Digital dari Kad Memori Anda ke Komputer Anda dengan Adapter Kad PC

Banyak komputer riba mempunyai slot untuk menyambungkan peranti PC Card (seperti modem). Anda boleh membeli penyesuai untuk kad memori anda supaya mereka boleh muatkan slot tersebut. Selepas anda memasang perisian penyesuai (ikuti arahan yang disertakan dengan penyesuai anda), memindahkan fail imej ke komputer anda adalah satu snap: