Dari sudut pandang teknik apa sisi buruk dari model yang terlalu akurat?


24

Saya bertanya-tanya, dari sudut pandang teknik, untuk alasan apa bisa terlalu akurat dalam pemodelan merusak?

Dari sudut pandang ilmiah sepertinya hampir selalu bermanfaat, terlepas dari ketika Anda perlu mengambil lebih sedikit waktu perhitungan.

Jadi dari sudut pandang teknik, selain waktu (atau daya komputasi) mengapa Anda harus menghindari itu?


2
Tolong tentukan "akurasi" dan "terlalu banyak" di sini. Anda bisa memiliki model yang memprediksi rentang ketidakpastian ke akurasi yang sangat tinggi, atau model yang mengurangi ketidakpastian itu sendiri ke nilai yang sangat kecil. Dan seterusnya.
Carl Witthoft

1
"Semuanya harus dibuat sesederhana mungkin, tetapi tidak lebih sederhana." Einstein.
Eric Duminil

1
"Selain waktu (atau daya komputasi)" Tampaknya semua jawaban terlewat saat ini ..
agentp

1
@ agentp Sebaliknya, pertanyaan menjawab sendiri dengan mencoba mengecualikan itu. Adalah hal yang konyol berada di pertanyaan di tempat pertama.
jpmc26

2
ini benar-benar pertanyaan terburuk "yang dipilih" yang pernah saya lihat. Itu membingungkan.
agentp

Jawaban:


38

Waspadalah terhadap overfitting . Model yang lebih akurat dari data yang dikumpulkan dari suatu sistem mungkin bukan prediktor yang lebih baik dari perilaku sistem di masa depan.

Contoh Overfitting

Gambar di atas menunjukkan dua model dari beberapa data.

Garis linier agak akurat pada data pelatihan (titik-titik pada grafik), dan (orang akan berharap) itu akan agak akurat pada data pengujian (di mana titik cenderung untuk x <5 dan x> -5 ).

Sebaliknya, polinomial 100% akurat untuk data pelatihan, tetapi (kecuali jika Anda memiliki alasan untuk meyakini bahwa polinomial tingkat 9 masuk akal karena beberapa alasan fisik), Anda akan menganggap ini akan menjadi prediktor yang sangat buruk untuk x> 5 dan x <-5.

Model linear 'kurang akurat', berdasarkan perbandingan kesalahan dengan data yang kami kumpulkan. Tetapi lebih umum.

Selain itu, Insinyur harus lebih sedikit khawatir tentang model mereka, dan lebih banyak tentang apa yang akan dilakukan orang dengan model tersebut.

Jika saya katakan bahwa kita akan berjalan-jalan di hari yang panas dan itu diperkirakan akan berlangsung 426 menit. Anda cenderung membawa lebih sedikit air daripada jika saya katakan kepada Anda bahwa jalan kaki akan berlangsung 7 jam, dan bahkan lebih sedikit dari jika saya katakan jalan kaki akan berlangsung 4-8 jam. Ini karena Anda merespons tingkat kepercayaan tersirat saya pada perkiraan saya, daripada titik tengah waktu yang saya nyatakan.

Jika Anda memberi orang model yang akurat, orang akan mengurangi margin kesalahan mereka. Ini mengarah pada risiko yang lebih besar.

Mengambil jalan pada contoh hari yang panas, jika saya tahu jalan akan memakan waktu 4-8 jam dalam 95% kasus, dengan beberapa ketidakpastian seputar navigasi dan kecepatan berjalan. Mengetahui dengan sempurna kecepatan berjalan kita akan mengurangi ketidakpastian pada angka 4-8, tetapi itu tidak akan secara signifikan mempengaruhi 'kesempatan kita terlalu lama sehingga air menjadi masalah', karena itu didorong hampir seluruhnya oleh navigasi yang tidak pasti, bukan kecepatan berjalan yang tidak pasti.


1
Benar, meskipun saya berkomentar bahwa polinomial derajat adalah contoh dengan perilaku buruk yang luar biasa; orang pasti tidak boleh menggunakan model seperti itu. Model yang masuk akal, bahkan ketika dilengkapi berlebihan, tidak boleh meledak seperti itu kecuali Anda benar-benar meninggalkan rentang yang tercakup oleh pengukuran. Bahkan polinomial tingkat 8 sudah akan membuat cocok lebih halus, mengingat data tersebut. N
leftaroundabout

Kutipan kunci dari artikel Wikipedia yang terhubung: 'overfitting terjadi ketika model mulai "menghafal" data pelatihan daripada "belajar" untuk menggeneralisasi dari tren.'
Emilio M Bumachar

4
Apakah kita benar-benar menganggap overfitting sebagai "terlalu banyak ketepatan dalam model"? Itu bukan kelemahan memiliki "model yang terlalu akurat". Itu downside untuk memiliki terlalu banyak poin yang akurat dan pemodelan buruk . Membuat model yang buruk dari data yang akurat bukanlah model yang akurat.
JMac

@JMac: Overfitting dapat terjadi secara alami dalam konteks pembelajaran mesin, tanpa sengaja membuat model yang buruk, hanya dengan membuang terlalu banyak data pada set pelatihan. Saya tidak yakin "terlalu akurat" adalah cara yang tepat untuk menggambarkan hasil seperti itu, tetapi tidak juga "kesalahan pemodelan sederhana."
Kevin

26

Kelemahan yang paling jelas adalah biaya, semua proyek teknik memiliki anggaran yang terbatas dan menghabiskan lebih banyak uang daripada yang Anda butuhkan jelas merupakan hal yang buruk belum lagi membuang-buang waktu.

Mungkin juga ada masalah yang lebih halus. Hal-hal seperti analisis FE selalu merupakan perkiraan dan terkadang menambahkan detail yang tidak perlu dapat memperkenalkan artefak dan membuatnya lebih sulit untuk memecahkan masalah model. Misalnya, Anda bisa mendapatkan diskontinuitas yang menghasilkan penambah stres

Ada juga pertimbangan bahwa bahkan jika Anda memiliki kekuatan komputasi untuk dengan nyaman menangani sejumlah besar pemasok data dan pelanggan mungkin tidak dan dalam banyak kasus mentransfer file besar masih sedikit hambatan.

Demikian pula, jika Anda memiliki lebih banyak parameter daripada yang Anda perlukan, Anda berpotensi menciptakan pekerjaan tambahan di jalur dalam mengelola dan men-debug file.

Sekali lagi bahkan jika Anda memiliki waktu dan sumber daya yang melimpah sekarang, mungkin seseorang lebih jauh di telepon perlu menggunakan model itu tanpa kemewahan yang sama, terutama jika akhirnya menjadi bagian dari produk yang Anda jual kepada pelanggan.


7
Kueri: paragraf ke-2 harus berbunyi "... menambahkan detail yang diperlukan ..." atau "menambahkan detail yang tidak perlu"
Fred

ya seharusnya tidak perlu
Chris Johns

Saya tidak yakin apakah contoh FE berfungsi dengan baik di sini. Dalam hal itu, FE adalah modelnya. Menggunakan data yang lebih akurat dapat menimbulkan masalah; tetapi jika model FE Anda akurat, maka jelas Anda tidak perlu khawatir tentang artefak; karena model Anda tidak memilikinya. Kami sudah mendefinisikannya sebagai akurat. Mungkin dalam kasus menggunakan model yang berbeda untuk dimasukkan ke dalam analisis FE; tapi kemudian itu kebanyakan hanya titik "seseorang lebih jauh ke depan" menggunakan model.
JMac

13

Ada beberapa alasan.

Dari sudut pandang murni pragmatis, itu karena keterbatasan waktu. Waktu yang diperlukan untuk menyelesaikan model meningkat jauh, jauh lebih cepat daripada tingkat presisi, dan level mana pun yang diadopsi bersifat subyektif.

±515%

Karena itu, tidak ada gunanya bersikap terlalu tepat. Tetapi memang, mungkin bermanfaat untuk tidak mencoba terlalu tepat. Alasan untuk ini kebanyakan bersifat psikologis. Terutama, Anda tidak ingin model Anda terlalu tepat, dan Anda tidak ingin menampilkan hasil Anda dengan tujuh tempat desimal, karena Anda tidak ingin membangkitkan rasa percaya diri yang salah.

Otak manusia dirancang untuk berpikir bahwa 1.2393532697 adalah nilai yang lebih akurat daripada 1.2. Tapi sebenarnya bukan itu masalahnya. Karena semua ketidakpastian di dunia nyata, model Anda tidak mungkin dapat dipertimbangkan (terutama mengingat keterbatasan perangkat keras saat ini), 1.2 hampir pasti sama validnya dengan hasil 1.2393532697. Jadi jangan menipu diri sendiri atau siapa pun yang melihat model Anda. Hanya menghasilkan 1.2, yang secara transparan menunjukkan bahwa Anda tidak benar-benar tahu apa yang terjadi setelah digit kedua itu.


6

Model yang sangat akurat mungkin memerlukan sejumlah besar input data. Mungkin saja menghasilkan model sistem cuaca yang sangat baik, misalnya, dengan mengambil input posisi dan kecepatan setiap molekul gas di atmosfer. Dalam praktiknya, model seperti itu tidak akan berguna, karena tidak ada cara realistis untuk menghasilkan input yang tepat. Model yang kurang akurat yang hanya membutuhkan data input terbatas akan lebih disukai dalam kasus ini.


1
Anda telah menjawab pertanyaan yang berbeda, yaitu: "seberapa banyak input data terlalu banyak"
Carl Witthoft

Saya mungkin akan menambahkan di sini sebuah catatan tentang bagaimana pertanyaan menyebutkan "selain ketika Anda membutuhkan waktu komputasi yang lebih sedikit," karena itu juga merupakan alasan yang baik untuk memiliki model yang kurang tepat; jika model Anda terlalu tepat, kasus dunia nyata mungkin lebih lama dari kematian panas alam semesta untuk dihitung.
Delioth

5

"Terlalu akurat" bukan monoton. Ini benar-benar dapat menciptakan ilusi kesetiaan yang membuat Anda berpikir layak memompa lebih banyak uang ke dalam simulasi. Ini menjadi sangat penting ketika Anda mempresentasikan data dari model kesetiaan campuran, di mana beberapa bagian sangat detail dan bagian lainnya sangat kasar.

Contoh kehidupan nyata saya telah melibatkan pengambilan sampel ketinggian di atas medan. Tim telah memutuskan untuk mencicipi medan di 1024 potongan untuk memaksimalkan kesetiaan. Pelanggan kami menginginkan jawaban ReallyGood (tm).

Sekarang saya terganggu oleh hit runtime yang disebabkan oleh algoritma khusus ini, dan saya ingin memahami berapa banyak kesetiaan yang sebenarnya saya bayar. Saya belum melihat data medan, jadi saya bertanya kepada mereka bagaimana mereka memuatnya. Jawabannya adalah "oh, kami tidak memiliki medan. Itu hanya datar."

Jadi itu terdengar seperti saya memiliki model kesetiaan tinggi yang mengagumkan yang mengambil sampel 1024 poin. Apa yang sebenarnya saya miliki adalah model kesetiaan rendah yang tidak lebih baik daripada pengambilan sampel 1 poin 1024 kali, tetapi berlari satu ton lebih lambat, dan disamarkan sebagai model kesetiaan yang lebih tinggi!

Dalam dunia teknik nyata, para pemimpin tidak selalu memiliki kesempatan untuk mempelajari seluruh arsitektur model. Bahkan, saya katakan mereka tidak pernah punya waktu. Kepemimpinan kami mengambil keputusan dengan asumsi kami memiliki model 1024 poin yang luar biasa. Tidak ada yang salah, itu hanya apa yang terjadi ketika Anda menyetel kesetiaan terlalu tinggi di satu bagian model, dan memiliki kesetiaan yang rendah di sisi lain. Ini sifat binatang dengan campuran kesetiaan.


Perumpamaan tentang bagaimana mengurangi angka-angka penting tidak selalu berarti memotong angka nol.
Eikre

1

Pada kenyataannya ada data yang kita miliki, dan ada data yang tidak kita miliki. Hampir selalu, jumlah data yang tidak kita miliki jauh lebih banyak daripada yang bisa kita harapkan untuk dikumpulkan karena alasan praktis atau ekonomis.

Dengan mencoba mencocokkan data dengan sangat buruk dengan beberapa sampel, maka dari itu kami akan mengambil risiko membuat model kami melakukan perkiraan yang benar-benar buruk di area-area di mana kami benar-benar tidak tahu (karena kurangnya data). Maka model kita akan memberi kita rasa aman yang salah.


1

Jadi dari sudut pandang teknik, selain waktu (atau daya komputasi) mengapa Anda harus menghindari itu

Datang dari perspektif teknik mesin alasan terbesar adalah Anda hanya berkomitmen pada upaya tambahan jika menghasilkan hasil yang sangat berbeda.

Jika tingkat akurasi dalam model Anda adalah urutan besarnya lebih tinggi dari tingkat akurasi Anda akan dapat memberikan dalam pelaksanaan desain Anda, Anda membuang-buang usaha Anda. Jika tingkat akurasi yang dijelaskan dalam model Anda lebih tinggi dari apa yang diperlukan, hal itu berdampak bagi klien. Anda membuang-buang uang. Sebagai contoh jika Anda menentukan presisi yang lebih tinggi daripada desain sebenarnya membutuhkan (misalnya +/- .00001mm dalam panjang pipa ventilasi) Anda membuang-buang uang klien Anda karena ventilasi 350mm ke atmosfer melakukan pekerjaan yang sama dengan ventilasi 350.0005mm ke atmosfer tetapi yang terakhir secara signifikan lebih mahal untuk diproduksi.

Di universitas kita semua belajar memodelkan dunia fisik menggunakan fisika Newton meskipun sudah dipastikan bahwa fisika post-Newtonian menyajikan model perilaku fisik yang lebih akurat. Terlepas dari ini, saya tahu tidak ada program teknik mesin yang secara default menghindari model Newton terlalu tidak akurat. Jika kita menggunakan model yang lebih akurat dan menghasilkan jawaban yang 0,1% lebih dekat dengan kebenaran teoretis yang tidak akan memengaruhi desain akhir kita dalam sebagian besar kasus. Jika tegangan luluh kami adalah 0,1% berbeda yang memberi kami perbedaan yang tidak signifikan dalam penampang yang diperlukan kami yang mengarahkan kami untuk memilih ukuran yang sama persis dari balok-I berdasarkan metode mana pun. Dalam keadaan ini biaya usaha tambahan tidak memberikan manfaat tambahan.

Sekarang ada situasi di mana presisi diperlukan untuk menghasilkan desain yang bisa diterapkan, misalnya pemodelan beberapa satelit diperlukan fisika relativistik. Dalam keadaan ini kita perlu menemukan model yang memberikan tingkat akurasi yang diperlukan dan kita perlu merancang untuk model. Jika kita perlu menghitung dimensi hingga +/- 0,0001% itu benar-benar sia-sia jika dimensi bagian kita +/- 0,1%. Dalam aplikasi dunia nyata dimensi bagian dari tingkat akurasi yang terakhir jauh lebih umum daripada yang sebelumnya.


0

Biaya: biaya waktu atau biaya daya komputasi dan biaya keakuratan - jika variabel lain memiliki toleransi 5% misalnya mengapa menghitung hasil menjadi 1% ...


0

Dalam jawaban sebelumnya input dan biaya disebutkan. Jika Anda ingin ketepatan misalnya. dalam optimalisasi parameter produksi Anda mungkin perlu lebih banyak pengukuran dan pertama-tama Anda perlu menganalisis berapa banyak Anda dapat mengurangi biaya vs berapa jam kerja sehingga peningkatan biaya adalah untuk meningkatkan frekuensi pengukuran atau biaya sistem otomatis yang akan menggantikan pengumpulan data manual. Contoh kedua jika Anda mendapatkan resault yang sangat akurat di mana Anda menginvestasikan waktu dan sumber daya lainnya untuk mendapatkan, apakah Anda memiliki peralatan yang memadai untuk kontrol kualitas, pengukuran industri dll. Atau bahkan teknologi. Jika hasil Anda sia-sia daripada waktu yang dihabiskan, mereka salah eja.


0

Apakah Anda memerlukan gambar satelit pada resolusi sentimeter untuk mengidentifikasi hutan berdasarkan warna? Tentu tidak. Saya akan merugikan, karena Anda harus memutuskan tentang patch 10 sentimeter non-hijau. Hal yang sama untuk pemodelan: resolusi detail harus sesuai dengan resolusi fitur target Anda. Jika tidak, Anda akan kehilangan waktu berhemat.


0

Sebagian besar jawaban nyata dikecualikan oleh kendala buatan Anda bahwa daya komputasi dan waktu perhitungan tidak dipertimbangkan. Sebuah model yang membutuhkan waktu berjam-jam atau berhari-hari untuk mengevaluasi tidak memungkinkan iterasi desain yang cepat dan akan memperlambat segalanya dalam skala manusia, meningkatkan biaya dan mungkin mengarah ke hasil yang lebih rendah. Model yang disederhanakan secara cerdik tanpa kehilangan terlalu banyak akurasi dapat menjadi pendekatan yang sangat berguna, maka model brute-force dapat digunakan untuk memvalidasi iterasi akhir.

Mungkin saja model yang terlalu rumit dapat menutupi kesalahan mendasar dalam model, atau bahwa pekerjaan yang diperlukan untuk mengumpulkan informasi agar bisa menggunakan model secara maksimal akan melebihi manfaat potensial. Misalnya, jika Anda perlu mengetahui karakteristik suatu bahan sampai tingkat ketepatan yang lebih besar daripada yang dapat dikendalikan oleh pemasok, Anda dapat menerima jalur kesalahan atau pergi dan menguji setiap kumpulan bahan untuk mengubah model.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.