{"id":3452,"date":"2024-08-29T17:01:28","date_gmt":"2024-08-29T17:01:28","guid":{"rendered":"https:\/\/haimagazine.com\/?p=3452"},"modified":"2025-06-26T14:08:05","modified_gmt":"2025-06-26T12:08:05","slug":"funkcja-straty","status":"publish","type":"post","link":"https:\/\/haimagazine.com\/pl\/hai-magazine\/funkcja-straty\/","title":{"rendered":"\ud83d\udd12 Funkcja straty"},"content":{"rendered":"<p>Jedn\u0105 z g\u0142\u00f3wnych ga\u0142\u0119zi sztucznej inteligencji jest nadzorowane uczenie maszynowe (ang.\u00a0supervised\u00a0learning). Jest to obszar skupiaj\u0105cy si\u0119 na algorytmach, kt\u00f3re ucz\u0105 si\u0119 dokonywania predykcji lub szeroko poj\u0119tego klasyfikowania obiekt\u00f3w na przyk\u0142adach, dla kt\u00f3rych dysponujemy danymi wej\u015bciowymi (opis obiektu\/sytuacji) oraz przypisanymi im danymi wyj\u015bciowymi (wielko\u015b\u0107\/cecha obiektu, kt\u00f3re chcemy przewidywa\u0107 lub odgadywa\u0107). Przyk\u0142adowo, na podstawie zbioru treningowego (ang.\u00a0training data) z\u0142o\u017conego ze zdj\u0119\u0107 os\u00f3b (zdj\u0119cie \u2013 obiekt wej\u015bciowy) i informacji o wieku danej osoby (wiek \u2013 warto\u015b\u0107 wyj\u015bciowa) mo\u017cemy uczy\u0107 algorytm odgadywania wieku osoby na zdj\u0119ciu.<\/p><p>Uczenie algorytmu polega na szukaniu zale\u017cno\u015bci mi\u0119dzy obrazem a wiekiem, kt\u00f3ra pozwala jak najlepiej odgadywa\u0107 wiek. Powstaje zatem pytanie, co oznacza \u201enajlepiej\u201d? W zwi\u0105zku z tym, \u017ce wszystko w algorytmach sztucznej inteligencji opiera si\u0119 na obliczeniach, niezb\u0119dne w naszym przypadku jest matematyczne okre\u015blenie tego, jak dobry jest algorytm. W tym celu definiuje si\u0119 tzw. funkcj\u0119 straty (ang.\u00a0<em>loss function<\/em>), kt\u00f3ra s\u0142u\u017cy w\u0142a\u015bnie do tego, aby zmierzy\u0107 adekwatno\u015b\u0107 warto\u015bci podawanej przez algorytm wzgl\u0119dem prawdziwej warto\u015bci wyj\u015bciowej w pojedynczym przyk\u0142adzie.<\/p><figure class=\"wp-block-pullquote\"><blockquote><p>Funkcja straty przyjmuje ona tym wi\u0119ksz\u0105 warto\u015b\u0107, im bardziej algorytm si\u0119 myli. W\u00f3wczas uczenie polega na minimalizacji tej funkcji \u2013 szukaniu zale\u017cno\u015bci, dla kt\u00f3rych \u015brednia \u201estrata\u201d jest najmniejsza na danych treningowych.<\/p><\/blockquote><\/figure><p>W praktyce u\u017cywane s\u0105 r\u00f3\u017cne funkcje straty, kt\u00f3re dobiera si\u0119 do specyfiki problemu. W przypadku odgadywania wielko\u015bci liczbowych, warto\u015b\u0107 funkcji straty jest obliczana w oparciu o r\u00f3\u017cnic\u0119 mi\u0119dzy warto\u015bci\u0105 prawdziw\u0105 w danym przyk\u0142adzie a zwracan\u0105 przez algorytm. Najcz\u0119\u015bciej stosowanym (lecz nie jedynym) wariantem jest kwadratowa funkcja straty (ang.\u00a0<em>squared loss<\/em>):<\/p><p><strong>loss(y<sub>pred<\/sub>, y<sub>true<\/sub>) = (y<sub>pred<\/sub>\u00a0\u2013 y<sub>true<\/sub>)<sup>2<\/sup><\/strong><\/p><p>gdzie y<sub>true<\/sub>\u00a0\u2013 prawdziwa warto\u015b\u0107 wyj\u015bciowa,<\/p><p>y<sub>pred<\/sub>\u00a0\u2013 przewidywana warto\u015b\u0107 wyj\u015bciowa.<\/p><p>W poprzednim przyk\u0142adzie rozpoznawania wieku oczekiwan\u0105 odpowiedzi\u0105 modelu by\u0142a liczba \u2013 w tym przypadku lat. Natomiast jest wiele problem\u00f3w rozwi\u0105zywanych przez modele AI, w kt\u00f3rych oczkiwan\u0105 odpowiedzi\u0105 nie s\u0105 liczby. Mog\u0105 to by\u0107 tzw. dane kategoryczne, czyli sko\u0144czony, konkretny zbi\u00f3r okre\u015blonych warto\u015bci nieliczbowych (najcz\u0119\u015bciej wyra\u017conych s\u0142owami w j\u0119zyku naturalnym). Na przyk\u0142ad, klasyfikuj\u0105c wyd\u017awi\u0119k tekstu (ang.&nbsp;<em>sentiment<\/em>), najcz\u0119\u015bciej zak\u0142adamy, \u017ce mamy do wyboru wyd\u017awi\u0119k negatywny lub pozytywny, i to s\u0105 odpowiedzi, kt\u00f3rych oczekujemy na wyj\u015bciu modelu. W\u00f3wczas uczenie w oparciu o funkcj\u0119 straty r\u00f3wnie\u017c ma zastosowanie, ale najpierw trzeba przekszta\u0142ci\u0107 dane wyj\u015bciowe do postaci liczbowej. W przypadku dw\u00f3ch kategorii, w praktyce nazywanych klasami, czyli np. \u201epozytywny\u201d i \u201enegatywny\u201d, zwyczajowo przypisuje si\u0119 im warto\u015bci 0 i 1. W takiej sytuacji algorytmy najcz\u0119\u015bciej pr\u00f3buj\u0105 odgadn\u0105\u0107 klas\u0119, zwracaj\u0105c warto\u015b\u0107 z przedzia\u0142u [0, 1], a wytypowana klasa to ta, w kt\u00f3rej ta warto\u015b\u0107 jest bli\u017cej. Najcz\u0119\u015bciej stosowan\u0105 funkcj\u0105 straty w tym scenariuszu jest binarna entropia krzy\u017cowa (ang.&nbsp;<em>binary cross entropy<\/em>):<\/p><p><strong>loss(p, y<sub>true<\/sub>) = \u2013[y<sub>true<\/sub>log(p) +(1 \u2013 y<sub>true<\/sub>)log(1 \u2013 p)]<\/strong><\/p><p>gdzie y<sub>true<\/sub>\u00a0\u2013 prawdziwa klasa (0 lub 1),<br>p \u2013 warto\u015b\u0107 zwracana przez model (liczba z przedzia\u0142u [0, 1]), log oznacza logarytm (w zale\u017cno\u015bci od kontekstu o podstawie 2 lub liczby e \u2248 2,72 \u2013 sta\u0142a Eulera).<\/p><p>Zwr\u00f3\u0107my uwag\u0119, \u017ce to wyra\u017cenie sprowadza si\u0119 do jednego z dw\u00f3ch przypadk\u00f3w: je\u015bli przyk\u0142ad dotyczy klasy 0 (yt<sub>rue<\/sub>\u00a0= 0), to w\u00f3wczas przyjmuje posta\u0107 -log(1-p), a w przeciwnym przypadku (y<sub>true<\/sub>\u00a0= 1) b\u0119dzie to -log(p). Taka formu\u0142a sprawia, \u017ce strata jest tym wi\u0119ksza, im dalej od w\u0142a\u015bciwej klasy znajduje si\u0119 zwracana przez algorytm wielko\u015b\u0107. Dlatego mo\u017cna to interpretowa\u0107 jako wielko\u015b\u0107 reprezentuj\u0105c\u0105 b\u0142\u0105d, kt\u00f3ry chcemy minimalizowa\u0107.<\/p>","protected":false},"excerpt":{"rendered":"<p>Co oznacza, jak dzia\u0142a i dlaczego jest tak wa\u017cna w uczeniu modeli? <\/p>\n","protected":false},"author":30,"featured_media":3476,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_lock_modified_date":false,"footnotes":""},"categories":[402,763,754,403],"tags":[512,513],"popular":[],"difficulty-level":[38],"ppma_author":[374],"class_list":["post-3452","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hai-magazine","category-ai_praktyka","category-hai_premium","category-hai-magazine-1","tag-algorytm","tag-funkcja","difficulty-level-medium"],"acf":[],"authors":[{"term_id":374,"user_id":30,"is_guest":0,"slug":"norbert-ryciak","display_name":"Norbert Ryciak","avatar_url":{"url":"https:\/\/haimagazine.com\/wp-content\/uploads\/2024\/08\/Norbert-Ryciak.jpeg","url2x":"https:\/\/haimagazine.com\/wp-content\/uploads\/2024\/08\/Norbert-Ryciak.jpeg"},"first_name":"Norbert","last_name":"Ryciak","user_url":"","job_title":"","description":"Data scientist z zawodu, pasji i wykszta\u0142cenia. Lubi dzieli\u0107 si\u0119 wiedz\u0105 i anga\u017cuje si\u0119 w r\u00f3\u017cnorodne formy nauczania"}],"_links":{"self":[{"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/posts\/3452","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/comments?post=3452"}],"version-history":[{"count":3,"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/posts\/3452\/revisions"}],"predecessor-version":[{"id":3608,"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/posts\/3452\/revisions\/3608"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/media\/3476"}],"wp:attachment":[{"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/media?parent=3452"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/categories?post=3452"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/tags?post=3452"},{"taxonomy":"popular","embeddable":true,"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/popular?post=3452"},{"taxonomy":"difficulty-level","embeddable":true,"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/difficulty-level?post=3452"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/haimagazine.com\/pl\/wp-json\/wp\/v2\/ppma_author?post=3452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}