Kysymys:
Voinko käyttää pienen vahvistusjoukon?
Mark Cramer
2017-09-26 09:20:01 UTC
view on stackexchange narkive permalink

Ymmärrän syyt tietojen jakamiseen testijoukoksi ja vahvistusjoukoksi.Ymmärrän myös, että jaon koko riippuu tilanteesta, mutta vaihtelee yleensä välillä 50/50 - 90/10.

Rakensin RNN: n oikeinkirjoituksen korjaamiseksi ja aloitan ~ 5m lauseiden tietojoukolla.Ajelen 500k lauseita ja treenaan sitten jäljellä olevilla ~ 4,5m lauseilla.Kun harjoittelu on valmis, otan vahvistussarjan ja lasken tarkkuuden.

Mielenkiintoista on, että vain 4%: n vahvistusjoukostani jälkeen tarkkuus on 69,4% ja tämä prosenttiosuus ei muutu yli 0,1% kumpaankaan suuntaan.Lopulta katkaisin vain vahvistuksen lyhyeksi, koska numero on juuttunut 69,5 prosenttiin.

Miksi siis leikata pois 10% vahvistuksesta, kun voisin todennäköisesti päästä eroon 1%: lla?Onko sillä merkitystä?

Yleinen vastaus on, että suurempi otoskoko kuin sanoisin, että 10000 on hyvin edustava väestön osajoukko.Jos otos on otettu oikein, otoksen lisääminen voi olla kallista, kun taas näkemäsi arvio on suunnilleen sama.Etsi luottamusvälikonsepti.
Kolme vastused:
Ruben van Bergen
2017-09-26 13:30:07 UTC
view on stackexchange narkive permalink

Suuremmat vahvistusjoukot antavat tarkemmat arviot otoksen ulkopuolisesta suorituskyvystä. Mutta kuten olet huomannut, arvio voi jossain vaiheessa olla niin tarkka kuin tarvitset, ja voit tehdä karkeita ennusteita validointinäytteen koosta, joka sinun on saavutettava siihen pisteeseen.

Yksinkertaisen oikean / virheellisen luokitustarkkuuden saavuttamiseksi voit laskea estimaatin keskivirheen muodossa $ \ sqrt {p (1 − p) / n} $ (Bernouillin muuttujan keskihajonta), jossa $ p $ on oikean luokituksen todennäköisyys, ja $ n $ on vahvistusjoukon koko. Tietenkään et tiedä $ p $, mutta sinulla voi olla jonkinlainen käsitys sen alueesta. Esim. Oletetaan, että odotat tarkkuuden olevan 60-80% ja haluat, että arvioidesi vakiovirhe on alle 0,1%: $$ \ sqrt {p (1 − p) / n} <0.001 $$ Kuinka suuri $ n $ (vahvistusjoukon koko) pitäisi olla? Saat $ p = 0,6 $ saamme: $$ n > \ frac {0,6-0,6 ^ 2} {0,001 ^ 2} = 240 000 $$ Saat $ p = 0,8 $ saamme: $$ n > \ frac {0,8-0,8 ^ 2} {0,001 ^ 2} = 160 000 $$ Joten tämä kertoo meille, että voit päästä eroon käyttämällä alle 5% viidestä miljoonasta datanäytteestäsi validointiin. Tämä prosenttiosuus laskee, jos odotat parempaa suorituskykyä tai varsinkin jos olet tyytyväinen otoksen ulkopuolisen suorituskykyennusteen pienempään vakiovirheeseen (esim. $ P = 0,7 $ ja sinänsä < 1%, tarvitset vain 2100 validointinäytteet tai alle kaksikymmentä prosenttia tiedoistasi).

Nämä laskelmat esittelevät myös Timin vastauksessaan esittämän asian, jonka mukaan arvioidesi tarkkuus riippuu vahvistusjoukon absoluuttisesta koosta (ts. $ n $) sen sijaan, että se vastaisi harjoittelusarjaa.

(Lisäksi voin lisätä, että oletan tässä olevan edustava otanta. Jos tietosi ovat hyvin heterogeenisiä, sinun on ehkä käytettävä suurempia vahvistusjoukkoja vain varmistaaksesi, että validointitiedot sisältävät kaikki samat ehdot jne. kuin junasi & testitiedot.)

Huomaa, että $ p (1-p) $ saavuttaa maksimiarvonsa $ p = 1/2 $, jolloin $ p (1-p) = 1/4 $.Joten voit aina käyttää $ \ sqrt {p (1-p) / n} \ le 1 / \ sqrt {4n} $ -arvoa pahimmassa tapauksessa.Erityisesti 250 000 validointinäytteen tulisi aina olla riittävä saavuttamaan tavoitteen <0,1% maksimivirhevirhe (ja 2500 näytettä riittää <1%) riippumatta todellisesta luokitustarkkuudesta.
Tim
2017-09-26 13:13:45 UTC
view on stackexchange narkive permalink

Mukavan keskustelun tästä ongelmasta tarjoaa Andrew Ng Deep Learning -kurssillaan Coursera.org-sivustolla. Kuten hän toteaa, standardijakaumat, kuten 8: 2 tai 9: 1, ovat kelvollisia, jos tietosi ovat pieniä tai kohtalaisen suuria, mutta monet nykypäivän koneoppimisongelmat käyttävät valtavia määriä tietoa (esim. Miljoonia havaintoja kuten sinun tapauksessasi), ja tällaisessa tilanteessa voit jättää 2%, 1% tai jopa vähemmän dataa testijoukoksi ottamalla kaikki jäljellä olevat tiedot harjoitusjoukkoosi (hän ​​itse asiassa väittää käyttävänsä myös dev-sarjaa). Hänen mukaansa, mitä enemmän tietoja syötät algoritmillesi, sitä parempi on sen suorituskyky, ja tämä pätee erityisesti syvään oppimiseen oppimisalgoritmit).

Kuten Alex Burn kommentti jo huomasi, kyse ei ole oikeastaan ​​testisarjan koosta, vaan sen edustavuudesta ongelmasi suhteen. Tavallisesti suuremmalla datalla toivomme sen olevan edustavampi, mutta tämän ei tarvitse olla kyse. Tämä on aina kompromissi, ja sinun on tehtävä ongelmakohtaisia ​​näkökohtia. Ei ole sääntöjä, joiden mukaan testijoukon ei tulisi olla pienempi kuin X tapausta tai alle Y% tiedoistasi.

* - Vastuuvapauslauseke: Toistan täällä Andrew Ng: n väitteet, en pidä itseäni syvällisen oppimisen asiantuntijana.

"kyse ei ole oikeastaan testisarjan koosta, vaan sen edustavuudesta ongelmasi kannalta."- luultavasti viehättävä tapa esittää se, että ei ole mitään hyötyä siitä, että sinulla on suuri harjoituspaketti koirien ja kissojen kanssa tekemiselle, jos harjoittelusetti koostuu melkein kokonaan kissoista.
Tarkemmin sanottuna tämä oli ”Juna / Kehittäjä / Testisarjat” -luennolla viikolla 1 [”Improvement Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization”] (https://www.coursera.org/learn/deep-hermoverkko) -kurssi (joka on syvä 2 koko syvällisen oppimisen erikoistumisesta)
Tässä on koko lainaus luennosta: * "Joten tässä esimerkissä, jossa sinulla on miljoona esimerkkiä, jos tarvitset vain 10000 laitettasi varten ja 10000 testiäsi varten, suhde on enemmän kuin tämä 10000 on 1% miljoonasta, jotenSinulla on 98% juna, 1% dev, 1% testi. Ja olen myös nähnyt sovelluksia, joissa jos sinulla on jopa yli miljoona esimerkkiä, saatat päätyä 99,5% juna ja 0,25% dev, 0,25%Tai ehkä 0,4% dev, 0,1% testi. "*
Jan Kukacka
2017-09-26 21:19:52 UTC
view on stackexchange narkive permalink

Shun-ichi Amarin et ai. artikkelissa Asymptoottinen tilastollinen teoria ylikuormituksesta ja ristivalidoinnista .[1] he tutkivat optimaalisen määrän näytteitä, jotka jätetään pois validointijoukosta (varhaisen pysäyttämisen vuoksi) ja päättelevät, että optimaalinen jako on $ 1 / \ sqrt {2N} $, jossa $ N $ on näytteiden lukumääräsaatavilla.Sinun tapauksessasi $ N = 5 \ cdot10 ^ 6 $ ja optimaalinen jako on $ \ noin 0,00032 = 0,032 \% $.Kaavan mukaan 1580-näytteiden tulisi olla optimaalisia sinun tapauksessasi.

[1] https://www.ncbi.nlm.nih.gov/pubmed/18255701



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...