Bagaimana cara menentukan kepercayaan prediksi jaringan saraf?

22

Untuk mengilustrasikan pertanyaan saya, anggaplah saya memiliki perangkat pelatihan di mana input memiliki tingkat kebisingan tetapi hasilnya tidak, misalnya;

# Training data
[1.02, 1.95, 2.01, 3.06] : [1.0]
[2.03, 4.11, 5.92, 8.00] : [2.0]
[10.01, 11.02, 11.96, 12.04] : [1.0]
[2.99, 6.06, 9.01, 12.10] : [3.0]

di sini output adalah gradien dari array input jika tidak bersuara (bukan gradien yang sebenarnya).

Setelah melatih jaringan, hasilnya akan terlihat seperti ini untuk input yang diberikan.

# Expected Output
[1.01, 1.96, 2.00, 3.06] : 95% confidence interval of [0.97, 1.03]
[2.03, 4.11, 3.89, 3.51] : 95% confidence interval of [2.30, 4.12]

Pertanyaan saya adalah bagaimana jaringan saraf dapat dibuat sehingga akan mengembalikan nilai prediksi dan ukuran kepercayaan, seperti varian atau interval kepercayaan?

John
sumber
3
Jika Anda mencari interval yang akan berisi realisasi masa depan , maka Anda mencari interval prediksi , bukan interval kepercayaan , yang berkaitan dengan parameter yang tidak dapat diobservasi . Ini sering membingungkan.
S. Kolassa - Reinstate Monica

Jawaban:

20

Kedengarannya seperti Anda mencari , yaitu interval yang berisi persentase yang ditentukan sebelumnya dari realisasi masa depan. (Lihatlah tag wiki untuk dan untuk perbedaannya.)

Taruhan terbaik Anda kemungkinan akan bekerja secara langsung dengan arsitektur NN yang tidak menghasilkan prediksi titik tunggal, tetapi seluruh distribusi prediksi . Anda kemudian dapat secara langsung mengekstrak interval prediksi yang diinginkan (atau rata-rata, atau prediksi titik tengah) dari distribusi ini. Saya dan yang lainnya berpendapat bahwa distribusi prediktif jauh lebih berguna daripada prediksi titik , tetapi jujur ​​saja, saya belum melihat banyak pekerjaan pada distribusi prediktif dengan jaring saraf, meskipun saya tetap membuka mata. Makalah ini sepertinya bermanfaat. Anda mungkin ingin mencari sedikit, mungkin juga menggunakan kata kunci lain seperti "perkiraan distribusi" atau "kepadatan prediksi" dan semacamnya.

Yang mengatakan, Anda mungkin ingin melihat ke dalam algoritma NeuroBayes Michael Feindt , yang menggunakan pendekatan Bayesian untuk memperkirakan kepadatan prediksi.

S. Kolassa - Reinstate Monica
sumber
1
Ini mungkin kertas lain yang bermanfaat - jaringan saraf yang mempelajari distribusi: google.com/...
Pro Q
@Stephan: Tautan telah berlalu: (
Matthew Drury
@MatthewDrury: tautan mana yang Anda maksud? Ketiganya bekerja dengan baik untuk saya.
S. Kolassa - Reinstate Monica
Bisakah Anda mengarahkan kami ke demo / contoh Ternsorflow sederhana dengan NN Predictive Distribution?
Martin Thøgersen
@ MartinThøgersen: maaf, tidak, saya tidak menggunakan Tensorflow ...
S. Kolassa - Reinstate Monica
5

Saya tidak yakin Anda dapat menghitung interval kepercayaan untuk satu prediksi, tetapi Anda memang bisa menghitung interval kepercayaan untuk tingkat kesalahan dari seluruh dataset (Anda dapat menyamaratakan akurasi dan ukuran apa pun yang Anda nilai).

Jika adalah tingkat kesalahan Anda saat mengklasifikasikan beberapa data S ukuran n , interval kepercayaan 95% untuk tingkat kesalahan Anda diberikan oleh: e ± 1,96 eSn .

e±1.96e(1e)n

(lihat buku "Pembelajaran Mesin" dari Tom Mitchell, bab 5.)

EDIT

Kira saya harus menyatakan kasus yang lebih umum, yaitu: mana pilihan umum untukzNtercantum dalam tabel berikut:

e±zNe(1e)n,
zN
confidence level    80%    90%    95%    98%    99%
values of zN       1.28   1.64   1.96   2.33   2.58
mp85
sumber
1
Ini akan mensyaratkan bahwa distribusi asimptotik normal
user2879934
4
Untuk ukuran sampel besar (yang cukup umum di ML) umumnya aman untuk menganggap itu. Tidak perlu downvote, hanya meminta klarifikasi, tapi oh well.
mp85
4

Interval prediksi (PI) dalam regresi non parametrik & masalah klasifikasi, seperti jaring saraf, SVM, hutan acak, dll. Sulit dibangun. Saya ingin mendengar pendapat lain tentang ini.

Namun, sejauh yang saya tahu, Conformal Prediction (CP) adalah satu-satunya metode berprinsip untuk membangun PI yang dikalibrasi untuk prediksi dalam masalah regresi dan klasifikasi nonparametrik. Untuk tutorial tentang CP, lihat Shfer & Vovk (2008), J. Machine Learning Research 9 , 371-421 [pdf]

utobi
sumber
3

Saya tidak tahu metode apa pun untuk melakukannya dengan cara yang tepat.

μσ(xi,yi)logN(yiμ(xi),σ(xi))μ(xi)yiσ(xi)

yiμ(xi)σ(xi)N(0,1)

etal
sumber
1
σ+
Apakah ada contoh konkret yang terlihat menggunakan NN untuk menghasilkan parameter distribusi, dilatih tentang kemungkinan log?
Miss Palmer
3

Saya belum pernah mendengar metode apa pun yang memberikan interval kepercayaan untuk prediksi jaringan saraf. Meskipun kurangnya metodologi formal, sepertinya layak untuk membangunnya. Saya belum pernah mencoba ini karena daya hitung yang akan dibutuhkan dan saya tidak mengklaim ini bekerja dengan pasti, tetapi satu metode yang mungkin bekerja untuk jaringan saraf yang kecil (atau dengan kekuatan GPU yang sangat cepat, ia dapat bekerja untuk jaring berukuran sedang ) adalah untuk menguji ulang set pelatihan dan membangun banyak jaringan yang serupa (katakan 10.000 kali) dengan parameter dan pengaturan awal yang sama, dan bangun interval kepercayaan berdasarkan prediksi untuk masing-masing net bootstrap Anda.

Misalnya, dalam 10.000 jaringan yang dilatih seperti dibahas di atas, seseorang mungkin mendapatkan 2,0 (setelah membulatkan prediksi regresi jaringan saraf) 9.000 kali, sehingga Anda akan memprediksi 2,0 dengan CI 90%. Anda kemudian dapat membangun array CI untuk setiap prediksi yang dibuat dan memilih mode untuk dilaporkan sebagai CI utama.

Tony S
sumber
2
Saya ingin tahu mengapa saran ini tidak dipilih karena pada dasarnya bootstrap dengan cara yang sedikit tidak konvensional (komponen pembulatan dari masalah membuatnya mudah untuk memeriksa seberapa yakin jaringan saraf tentang prediksi). Saya sebenarnya tidak keberatan dengan suara turun jika siapa pun yang memilih ini dapat menjelaskan mengapa ini bukan solusi yang valid untuk pertanyaan yang diajukan. Saya belajar sendiri dan akan sangat menghargai umpan balik!
Tony S
1
Saya tidak memilih, tetapi dari apa yang saya pahami metode yang diusulkan akan menghasilkan interval yang menangkap nilai prediksi model, ini tidak sama dengan interval yang menangkap nilai sebenarnya.
Miss Palmer
3

Dalam hal langsung menghasilkan interval prediksi, ada makalah 2011 ' Tinjauan Komprehensif Interval Prediksi Berbasis Jaringan Neural '

Mereka membandingkan empat pendekatan:

1: Metode Delta 2: Metode Bayesian 3: Estimasi varians rata-rata 4: Bootstrap

Penulis yang sama kemudian mengembangkan Metode Estimasi Batas Atas Bawah untuk Pembangunan Interval Prediksi Berbasis Jaringan Saraf yang secara langsung mengeluarkan batas bawah dan atas dari NN. Sayangnya itu tidak bekerja dengan backprop, tetapi pekerjaan baru-baru ini memungkinkan Interval Prediksi Berkualitas Tinggi untuk Pembelajaran Jauh .

Alternatif untuk langsung menghasilkan interval prediksi, Bayesian neural networks (BNNs) memodelkan ketidakpastian dalam parameter NN, dan karenanya menangkap ketidakpastian pada output. Ini sulit dilakukan, tetapi metode populer termasuk berjalan dropout MC pada waktu prediksi, atau ansambel .

Nona Palmer
sumber
1
Sebenarnya cukup mudah untuk melakukannya dengan Bayesian Deep Learning. Lihat misalnya edwardlib.org/tutorials/bayesian-neural-network
DeltaIV
2

Sebenarnya ada cara untuk melakukan ini menggunakan dropout. Jalankan evaluasi dengan dropout diaktifkan (biasanya dinonaktifkan untuk evaluasi tetapi dihidupkan saat pelatihan), dan jalankan evaluasi beberapa kali.

Distribusi hasil dari beberapa proses yang berbeda dapat digunakan sebagai interval kepercayaan.

Lihat makalah " Putus Sekolah sebagai Perkiraan Bayesian: Mewakili Ketidakpastian Model dalam Pembelajaran Mendalam " Tonton presentasi youtube Andrew Rowan - Bayesian Pembelajaran Dalam dengan Edward (dan trik menggunakan Dropout)

pengguna1141008
sumber
1

Tidak mungkin, semua model ML bukan tentang pemahaman fenomenal, ini metode interpolasi dengan harapan "berhasil". Mulailah dengan pertanyaan seperti itu, percaya diri hingga tidak ada jawaban.

Jadi untuk mendapatkan sesuatu, silakan gunakan berbagai ilmu terapan dan fundamental:

  • Gunakan kontrol (dan buat asumsi tentang dinamika)

  • Gunakan optimasi cembung (dengan beberapa kondisi tambahan berfungsi)

  • Gunakan statistik matematika (dengan asumsi awal tentang distribusi)

  • Gunakan pemrosesan sinyal (dengan beberapa asumsi sinyal terbatas pita)

Ilmuwan menggunakan beberapa asumsi awal (disebut aksioma) untuk mendapatkan sesuatu.

Tidak ada cara untuk memberikan kepercayaan apa pun tanpa asumsi awal, jadi masalah bukan pada DL mehtod, tapi itu masalah dalam metode apa pun yang mencoba melakukan interpolasi tanpa asumsi awal APAPUN - tidak ada cara untuk mendapatkan aljabar sesuatu dengan cerdas tanpa asumsi.

NN dan berbagai metode ML adalah untuk prototyping cepat untuk membuat "sesuatu" yang tampaknya berfungsi "entah bagaimana" diperiksa dengan validasi silang.

Bahkan lebih dalam lagi, regresi pas E [Y | X] atau perkiraannya bisa menjadi masalah yang benar-benar salah untuk dipecahkan (mungkin pdf dalam poin Y = E [Y | X] memiliki minimum, tidak maksimal), dan ada banyak hal halus seperti itu. sesuatu.

Juga izinkan saya mengingatkan dua masalah yang tidak terpecahkan dalam AI / ML, yang bisa karena beberapa alasan dilupakan, di balik slogan-slogan kecantikan:

(1) Ini metode interpolasi, bukan ekstrapolasi - tidak memiliki kemampuan untuk menangani masalah baru

(2) tidak ada yang tahu bagaimana model apa pun akan berperilaku pada data yang bukan dari distribusi yang sama (pria berkostum pisang untuk lokalisasi pejalan kaki)

bruziuz
sumber
bagaimana dengan pemodelan kesalahan dari data pelatihan yang diatur untuk "memprediksi" kesalahan untuk inferensi?
Jacko
Bahkan menganggap itu aditif "predict_for_mean" + "predict_for_error". Anda dapat membayangkan skema apa pun untuk memprediksi sinyal dan kesalahan secara terpisah. Tetapi sekali lagi - jika kita "hanya menyisipkan" kita tidak bisa mengatakan sesuatu dengan percaya diri. Kami memperkirakan suhu di permukaan. Ya, Anda dapat mengatakan ini prediksi saya "20" dan prediksi untuk kesalahan adalah "5". Jadi dikatakan bahwa saya pikir respons nyata ada pada [20-5, 20 + 5] tetapi untuk benar-benar memahami apa artinya, kita perlu memahami fenomena nyata dan model matematika. Dan ML bukan tentang keduanya. Daerah lain membuat beberapa asumsi awal.
bruziuz