{"id":2237,"date":"2022-12-14T15:46:26","date_gmt":"2022-12-14T14:46:26","guid":{"rendered":"https:\/\/mikulasskydenik.cz\/?p=2237"},"modified":"2023-04-01T17:16:26","modified_gmt":"2023-04-01T17:16:26","slug":"co-je-overfitting-underfitting-a-jak-funguje","status":"publish","type":"post","link":"https:\/\/denik.mikulasske.cz\/?p=2237","title":{"rendered":"Co je overfitting\/underfitting a jak funguje?"},"content":{"rendered":"<p>O jak\u00e9m jevu tady v\u016fbec pl\u00e1nuji mluvit? A k \u010demu je n\u00e1m dobr\u00e9 tyto jevy zn\u00e1t? I p\u0159esto, \u017ee se statistice nebo um\u011bl\u00e9 inteligenci nev\u011bnujete, a ani nepl\u00e1nujete v\u011bnovat, tento jev se vyskytuje ve spoust\u011b p\u0159\u00edklad\u016f z re\u00e1ln\u00e9ho sv\u011bta.<\/p>\n<style>\/*! elementor - v3.8.1 - 13-11-2022 *\/<br \/>\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style>\n<h2>Kde se vyskytuj\u00ed?<\/h2>\n<p>Tyto jevy se objevuj\u00ed kdy\u017e se sna\u017e\u00edme natr\u00e9novat n\u011bjak\u00fd &#8222;chytr\u00fd&#8220; algoritmus (neuronovou s\u00ed\u0165, algoritmus strojov\u00e9ho u\u010den\u00ed, atd.). Stejn\u011b jako lidi, i tyto algoritmy se mohou jaksi \u0161patn\u011b nau\u010dit na tr\u00e9novac\u00edch datech. Pak m\u016f\u017eou vzniknout pr\u00e1v\u011b tyto dva jevy.<\/p>\n<style>\/*! elementor - v3.8.1 - 13-11-2022 *\/<br \/>\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/eP0gppr-1-1024x768.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/eP0gppr-1-1024x768.png 1024w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/eP0gppr-1-300x225.png 300w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/eP0gppr-1-768x576.png 768w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/eP0gppr-1-1536x1152.png 1536w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/eP0gppr-1-500x375.png 500w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/eP0gppr-1-350x263.png 350w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/eP0gppr-1-1.png 2048w\" alt=\"\" width=\"1024\" height=\"768\" \/><figcaption>Zdroj: https:\/\/www.kaggle.com\/code\/ryanholbrook\/overfitting-and-underfitting<\/figcaption><\/figure>\n<p>Zde na grafu je zachycen tr\u00e9novac\u00ed proces &#8222;typick\u00e9ho chytr\u00e9ho&#8220; algoritmu strojov\u00e9ho u\u010den\u00ed. A taky zde dovysv\u011btl\u00edm p\u00e1r pojm\u016f:<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>\nEpochs &#8211; po\u010det epoch kter\u00e9 algoritmus provede (1 Epocha &#8211; situace, za kter\u00e9 algoritmus projde cel\u00fd tr\u00e9novac\u00ed dataset).<\/li>\n<li>\nEarly Stopping &#8211; Optimaliza\u010dn\u00ed technika kter\u00e1 sn\u00ed\u017e\u00ed mo\u017enost overfitov\u00e1n\u00ed na datasetu, bez toho aby sn\u00ed\u017eila p\u0159esnost modelu.<\/li>\n<li>\nLoss &#8211; ztr\u00e1ta, resp. metrika ve kter\u00e9 se m\u011b\u0159\u00ed p\u0159esnost modelu (\u010d\u00edm ni\u017e\u0161\u00ed ztr\u00e1ta, t\u00edm l\u00edp!).<\/li>\n<li>\nValidation &amp; Training &#8211; dva r\u016fzn\u00e9 datasety, ka\u017ed\u00fd slou\u017e\u00ed k n\u011b\u010demu jin\u00e9mu, nap\u0159. Training dataset slou\u017e\u00ed k natr\u00e9nov\u00e1n\u00ed samotn\u00e9ho modelu, zat\u00edmco Validation dataset slou\u017e\u00ed k validaci (vyhodnocen\u00ed) tohoto modelu<\/li>\n<\/ul>\n<p>Nutno podotknouti (k validation a training dataset), \u017ee u tr\u00e9novac\u00edho datasetu se ztr\u00e1ta sni\u017euje, zat\u00edmco u validace m\u016f\u017ee nar\u016fstat, to je prvn\u00ed zn\u00e1mka Overfittov\u00e1n\u00ed!<\/p>\n<h2>Underfitting<\/h2>\n<p>Underfitting (v \u010de\u0161tin\u011b podtr\u00e9nov\u00e1n\u00ed), je situace, ve kter\u00e9 se model nedok\u00e1\u017ee nau\u010dit tak dob\u0159e souvislost mezi daty, a tak je za\u010dne predikovat \u0161patn\u011b (model pln\u011b nepochop\u00ed data) a t\u00edm m\u00e1 zbyte\u010dn\u011b velkou ztr\u00e1tu a malou p\u0159esnost.<\/p>\n<p>Tohle se nap\u0159\u00edklad d\u00e1 vid\u011bt p\u0159i pou\u017eit\u00ed line\u00e1rn\u00ed regrese na neline\u00e1rn\u00ed data (obr\u00e1zek pod t\u00edmto odstavcem). Model se nedok\u00e1zal pln\u011b nau\u010dit vztahy mezy jednotliv\u00fdmi daty a d\u00edky tomu se vlastn\u011b nau\u010dil \u0161patn\u011b. Zde ale bohu\u017eel u line\u00e1rn\u00ed regrese nic nezm\u016f\u017eeme, proto\u017ee rovnice m\u00e1 p\u0159edpis y = ax + b, a jedin\u00fd m\u011bniteln\u00fd parametr je parametr a &#8211; kter\u00fd pouze ovliv\u0148uje n\u00e1klon, b &#8211; pouze ovliv\u0148uje posunut\u00ed na y sou\u0159adnici. K tomu abychom dos\u00e1hli v\u011bt\u0161\u00ed p\u0159esnosti, mus\u00edme pou\u017e\u00edt nap\u0159\u00edkad Polynomi\u00e1ln\u00ed regresi.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/1-1-1.png\" sizes=\"(max-width: 445px) 100vw, 445px\" srcset=\"https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/1-1-1.png 445w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/1-1-300x196.png 300w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/1-1-350x229.png 350w\" alt=\"\" width=\"445\" height=\"291\" \/><figcaption>Zdroj: GeeksForGeeks.com<\/figcaption><\/figure>\n<h2>Overfitting<\/h2>\n<p>Overfitting (v \u010de\u0161tin\u011b p\u0159eu\u010den\u00ed), jak u\u017e n\u00e1zev s\u00e1m napov\u00edd\u00e1, tento jev bude zp\u016fsoben t\u00edm \u017ee se n\u00e1\u0161 chytr\u00fd algoritmus p\u0159eu\u010d\u00ed na n\u011b\u010dem, t\u00edm p\u00e1dem bude hledat a\u017e moc souvislost\u00ed mezi datem, a m\u00edsto aby zanedb\u00e1val odchylky (a generalizoval), tak m\u00e1 tendenci zapo\u010d\u00edtat v\u0161echny veli\u010diny tak aby zmen\u0161il ztr\u00e1tu a t\u00edm dostaneme naprosto nekvalitn\u00ed algoritmus.<\/p>\n<p>Berme t\u0159eba n\u00e1\u0161 p\u0159\u00edklad s line\u00e1rn\u00ed regres\u00ed, dejme tomu \u017ee jsme zvolili polynomi\u00e1ln\u00ed regresi, ale m\u00e1me ji na datech s velk\u00fdm \u0161umem. Obr\u00e1zek dole n\u00e1m to dost dob\u0159e ukazuje.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/1-1-_7OPgojau8hkiPUiHoGK_w-1-1024x356.png\" sizes=\"(max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/1-1-_7OPgojau8hkiPUiHoGK_w-1-1024x356.png 1024w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/1-1-_7OPgojau8hkiPUiHoGK_w-1-300x104.png 300w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/1-1-_7OPgojau8hkiPUiHoGK_w-1-768x267.png 768w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/1-1-_7OPgojau8hkiPUiHoGK_w-1-350x122.png 350w, https:\/\/mikulasskydenik.cz\/wp-content\/uploads\/2022\/12\/1-1-_7OPgojau8hkiPUiHoGK_w-1-1.png 1125w\" alt=\"\" width=\"1024\" height=\"356\" \/><figcaption>Zdroj: medium.com<\/figcaption><\/figure>\n<style>\/*! elementor - v3.8.1 - 13-11-2022 *\/<br \/>\n.elementor-column .elementor-spacer-inner{height:var(--spacer-size)}.e-con{--container-widget-width:100%}.e-con-inner>.elementor-widget-spacer,.e-con>.elementor-widget-spacer{width:var(--container-widget-width,var(--spacer-size));-ms-flex-item-align:stretch;align-self:stretch;-ms-flex-negative:0;flex-shrink:0}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container,.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer,.e-con>.elementor-widget-spacer>.elementor-widget-container,.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer{height:100%}.e-con-inner>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner,.e-con>.elementor-widget-spacer>.elementor-widget-container>.elementor-spacer>.elementor-spacer-inner{height:var(--container-widget-height,var(--spacer-size))}<\/style>\n<h2>Jak proti tomuhle bojovat?<\/h2>\n<p>Tak u underfittov\u00e1n\u00ed je to lehk\u00e9, sta\u010d\u00ed bu\u010f zm\u011bnit algoritmus (pou\u017e\u00edt slo\u017eit\u011bj\u0161\u00ed), zm\u011bnit omezen\u00ed kter\u00e9 mu d\u00e1v\u00e1me, a nebo upravit tr\u00e9novac\u00ed parametry (po\u010det epoch, ztr\u00e1tovou funkci, optimiz\u00e1tor)<\/p>\n<p>U overfittov\u00e1n\u00ed je to slo\u017eit\u011bj\u0161\u00ed, a zde jsou mo\u017enosti, jak tomu p\u0159edej\u00edt:<\/p>\n<p><strong>V\u00edce dat: <\/strong>\u010d\u00edm v\u00edce dat budeme m\u00edt, t\u00edm v\u00edce bude muset model generalizovat, a d\u00edky tomu upust\u00ed od overfittov\u00e1n\u00ed (samoz\u0159ejm\u011b se to nesm\u00ed p\u0159eh\u00e1n\u011bt), u probl\u00e9mu klasifikace pak mus\u00edme d\u00e1vat pozor abychom brali data kter\u00e1 jsou doopravdy reprezentativn\u00ed pro svoji t\u0159\u00eddu<\/p>\n<p><strong>Augmentace dat:<\/strong> tento pojem vysv\u011btl\u00edm velmi jednodu\u0161e, prakticky v t\u00e9to \u010d\u00e1sti se sna\u017e\u00edme, aby se model pod\u00edval na data jin\u00fdm zp\u016fsobem (u detekce objekt\u016f v obr\u00e1zku nap\u0159\u00edklad p\u0159id\u00e1v\u00e1me obr\u00e1zky kter\u00e9 jsou jen p\u0159eto\u010den\u00e9 nebo p\u0159e\u0161k\u00e1lovan\u00e9, aby se algoritmus nau\u010dil jin\u00fd typ dat)<\/p>\n<p><strong>P\u0159id\u00e1n\u00ed v\u00edce hluku k dat\u016fm: <\/strong>Tento zp\u016fsob nebude tak dob\u0159e fungovat u polynomi\u00e1ln\u00ed regrese, kde je pak st\u00e1le velk\u00e1 mo\u017enost p\u0159eu\u010den\u00ed. Z\u00e1rove\u0148 zde sni\u017eujeme p\u0159esnost modelu.<\/p>\n<p><strong>Cross-validace<\/strong><strong>: <\/strong>Dataset bude rozd\u011blen do \u010d\u00e1st\u00ed, na kter\u00fdch se bude model iterativn\u011b tr\u00e9novat a z toho se n\u00e1sledn\u011b uprav\u00ed parametry (velmi efektivn\u00ed a robustn\u00ed metoda)<\/p>\n<p><strong>Regularizace:<\/strong> Znemo\u017en\u00edme modelu zvolit jist\u00e9 extr\u00e9mn\u00ed parametry tak, \u017ee mu nastav\u00edme limity parametr\u016f (limit, do kter\u00e9ho jde hodnota parametru nastavit)<\/p>\n<p><strong>Early stopping<\/strong><strong>:<\/strong> Modelu nastav\u00edme brzk\u00e9 stopnut\u00ed, tak aby se d\u00e1l netr\u00e9noval. A d\u00edky tomu nep\u0159etr\u00e9noval (toto jde vid\u011bt na 1. obr\u00e1zku, kde je p\u0159\u00edmka ozna\u010duj\u00edc\u00ed mez early stoppingu)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Co je overfitting, o jak\u00fd jev se jedn\u00e1?<br \/>\nTenhle text se bude hlavn\u011b zab\u00fdvat t\u00edmhle jevem z hlediska statistiky, ale samoz\u0159ejm\u011b se pokus\u00edm vysv\u011btlit tento jev co nejjednodu\u0161eji, i pro ty, kter\u00e9 jsou statistikou a strojov\u00fdm u\u010den\u00edm nepol\u00edbeni<\/p>\n","protected":false},"author":8,"featured_media":2241,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[61],"tags":[223,236],"acf":[],"_links":{"self":[{"href":"https:\/\/denik.mikulasske.cz\/index.php?rest_route=\/wp\/v2\/posts\/2237"}],"collection":[{"href":"https:\/\/denik.mikulasske.cz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/denik.mikulasske.cz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/denik.mikulasske.cz\/index.php?rest_route=\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/denik.mikulasske.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2237"}],"version-history":[{"count":0,"href":"https:\/\/denik.mikulasske.cz\/index.php?rest_route=\/wp\/v2\/posts\/2237\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/denik.mikulasske.cz\/index.php?rest_route=\/wp\/v2\/media\/2241"}],"wp:attachment":[{"href":"https:\/\/denik.mikulasske.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/denik.mikulasske.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/denik.mikulasske.cz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}