{"id":518,"date":"2024-06-02T23:11:43","date_gmt":"2024-06-02T21:11:43","guid":{"rendered":"https:\/\/cyberszary.pl\/?p=518"},"modified":"2024-06-03T14:34:19","modified_gmt":"2024-06-03T12:34:19","slug":"jejku-rety-maszyna-mysli-slow-klika-o-uczeniu-maszynowym","status":"publish","type":"post","link":"https:\/\/cyberszary.pl\/index.php\/2024\/06\/02\/jejku-rety-maszyna-mysli-slow-klika-o-uczeniu-maszynowym\/","title":{"rendered":"Jejku rety, maszyna my\u015bli! S\u0142\u00f3w kilka o uczeniu maszynowym."},"content":{"rendered":"\n<p class=\"has-medium-font-size\">Bez cienia w\u0105tpliwo\u015bci, przechodzimy rewolucj\u0119 technologiczn\u0105. By\u0142o ich zreszt\u0105 ju\u017c kilka, lecz ta jest inna ni\u017c wszystkie wcze\u015bniejsze (hmm, wcze\u015bniejsze zreszt\u0105 te\u017c by\u0142y inne ni\u017c je poprzedzaj\u0105ce), Lecz ta jest jednak wyj\u0105tkowa. Stoimy bowiem w przededniu rozwoju Sztucznej Inteligencji, inteligencji kt\u00f3r\u0105 to my sami budujemy. Mo\u017cliwo\u015bci, jakie oferuj\u0105 ju\u017c w tej chwili algorytmy uczenia maszynowego, s\u0105 niewiarygodne, przewy\u017cszaj\u0105ce znacznie nasze wcze\u015bniejsze wyobra\u017cenia.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Wielu z Was zastanawia si\u0119, jako to mo\u017cliwe, \u017ce m\u00f3j komputer, w\u0142a\u015bciwie jego oprogramowanie by\u0142o zdolne do \u201euczenia si\u0119\u201d i wykonywania z tak niezwyk\u0142\u0105 precyzj\u0105 skomplikowanych operacji, do kt\u00f3rych niejednokrotnie cz\u0142owiek dochodzi\u0142 latami swojej ci\u0119\u017ckiej pracy, \u017cmudnie zbieraj\u0105c do\u015bwiadczenia i stale pog\u0142\u0119biaj\u0105c swoj\u0105 wiedz\u0119? W tym artykule postaram si\u0119 przybli\u017cy\u0107 Wam ide\u0119 (tak, tak, znowu tak matematyka\u2026) stoj\u0105c\u0105 za uczeniem maszynowym i dlaczego i w jaki spos\u00f3b to dzia\u0142a.<\/p>\n\n\n\n<h5 class=\"wp-block-heading has-medium-font-size\"><strong>Wi\u0119c jak to dzia\u0142a? Jak komputer si\u0119 \u201euczy\u201d?<\/strong><\/h5>\n\n\n\n<p class=\"has-medium-font-size\">Istnieje wiele r\u00f3\u017cnych algorytm\u00f3w uczenia maszynowego. Ka\u017cdy z nich w troch\u0119 inny spos\u00f3b dokonuje rozpoznawania wzor\u00f3w, w inny spos\u00f3b okre\u015bla przynale\u017cno\u015b\u0107 nieznanych (nowych) danych do okre\u015blonego wzorca. Jednym z popularniejszych (i \u0142atwych do zrozumienia) jest Naiwny Klasyfikator Bayesa, i na jego podstawie om\u00f3wi\u0119 proces uczenia. <\/p>\n\n\n\n<p class=\"has-medium-font-size\">Proces &#8222;uczenia si\u0119&#8221; klasyfikatora obejmuje przypisywanie pewnych obiekt\u00f3w do dw\u00f3ch lub wi\u0119kszej ilo\u015bci klas decyzyjnych, np. mamy owoce (to nasze obiekty)  i klasyfikujemy je na jab\u0142ka, gruszki, pomara\u0144cze (to nasze klasy decyzyjne). By algorytm m\u00f3g\u0142 tego dokona\u0107, konieczne jest dostarczenie mu danych ucz\u0105cych, gdzie danemu obiektowi przypisano ju\u017c w\u0142a\u015bciw\u0105 klas\u0119 decyzyjn\u0105 (czyli wyci\u0105gni\u0119ty z kosza owoc nr 1 jest jab\u0142kiem, owoc nr 2 jest gruszk\u0105, itd.) <\/p>\n\n\n\n<h5 class=\"wp-block-heading has-medium-font-size\"><strong>Naiwny Klasyfikator Bayesa. <\/strong><\/h5>\n\n\n\n<p class=\"has-background has-medium-font-size\" style=\"background-color:#edbb9d\"><em><strong>UWAGA!<\/strong> W przedstawionym przyk\u0142adzie zastosowano szereg uproszcze\u0144, by idea uczenia maszynowego opartego na wybranym klasyfikatorze by\u0142a zrozumia\u0142a dla czytelnika. Niemniej jednak dysponuj\u0105c wi\u0119ksz\u0105 ilo\u015bci\u0105 danych ucz\u0105cych ni\u017c pokazano w poni\u017cszym przyk\u0142adzie, opisana idea w prawid\u0142owy spos\u00f3b (i z wysokim prawdopodobie\u0144stwem) dokona rozpoznania nowego, nieznanego wzorach &#8211; nauczy si\u0119 \ud83d\ude42 <\/em><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Dzia\u0142anie Naiwnego Klasyfikatora Bayesa polega na obliczeniu prawdopodobie\u0144stwa przynale\u017cno\u015bci danego obiektu do okre\u015blonych klas decyzyjnych (a wi\u0119c na ile prawdopodobne jest to, \u017ce wyci\u0105gni\u0119ty z kosza owoc to jab\u0142ko, a na ile prawdopodobne jest to \u017ce to jednak jest gruszka). Jak wi\u0119c obliczy\u0107 to prawdopodobie\u0144stwo? Z pomoc\u0105 przychodzi nam Twierdzenie Bayesa o prawdopodobie\u0144stwie warunkowym dw\u00f3ch zdarze\u0144: <\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(A\u2502B)=  {(P(A \u2229B)) \\over (P(B))}=  {(P(B\u2502A)*P(A)) \\over (P(B))}<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Tak, wiem &#8230;. matematyka. Brzmi skomplikowanie? Jak wykorzysta\u0107 to twierdzenie?<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Skonstruujmy wi\u0119c sobie pewien zbi\u00f3r danych. Za\u0142\u00f3\u017cmy, \u017ce mamy wiele element\u00f3w (egzemplarzy) pewnych obiekt\u00f3w. Egzemplarze r\u00f3\u017cni\u0105 si\u0119 pomi\u0119dzy sob\u0105, ale wszystkie nale\u017c\u0105 do kilku zdefiniowanych,\u00a0znanych i opisanych klas. Ka\u017cdy egzemplarz posiada kilka cech (znanych, opisanych i mierzalnych) \u00a0O przynale\u017cno\u015bci danego egzemplarza do danej klasy decyduj\u0105 warto\u015bci tych cech.\u00a0Naj\u0142atwiej wyobrazi\u0107 to sobie maj\u0105c np. \u00a0tak\u0105 tabel\u0119:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Lp.<\/strong><\/td><td><strong>Cecha 1<\/strong><\/td><td><strong>Cecha 2<\/strong><\/td><td><strong>Cecha 3<\/strong><\/td><td><strong>Cecha 4<\/strong><\/td><td><strong>Cecha 5<\/strong><\/td><td><strong>Klasa egzemplarza<\/strong><\/td><\/tr><tr><td>1<\/td><td>TAK<\/td><td>NIE<\/td><td>NIE<\/td><td>TAK<\/td><td>TAK<\/td><td>o\u0142\u00f3wek<\/td><\/tr><tr><td>2<\/td><td>NIE<\/td><td>TAK<\/td><td>NIE<\/td><td>NIE<\/td><td>TAK<\/td><td>d\u0142ugopis<\/td><\/tr><tr><td>3<\/td><td>NIE<\/td><td>NIE<\/td><td>TAK<\/td><td>TAK<\/td><td>NIE<\/td><td>pi\u00f3ro<\/td><\/tr><tr><td>4<\/td><td>NIE<\/td><td>NIE<\/td><td>NIE<\/td><td>NIE<\/td><td>TAK<\/td><td>o\u0142\u00f3wek<\/td><\/tr><tr><td>5<\/td><td>TAK<\/td><td>TAK<\/td><td>NIE<\/td><td>NIE<\/td><td>TAK<\/td><td>pi\u00f3ro<\/td><\/tr><tr><td>6<\/td><td>NIE<\/td><td>NIE<\/td><td>TAK<\/td><td>NIE<\/td><td>TAK<\/td><td>o\u0142\u00f3wek<\/td><\/tr><tr><td>7<\/td><td>TAK<\/td><td>NIE<\/td><td>TAK<\/td><td>TAK<\/td><td>TAK<\/td><td>d\u0142ugopis<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Tabela 1. Zbi\u00f3r warto\u015bci poszczeg\u00f3lnych cech, reprezentuj\u0105cych klasy: o\u0142\u00f3wek, d\u0142ugopis, pi\u00f3ro<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Dane te, mo\u017cemy zapisa\u0107 te\u017c w postaci pewnego wektora cech, wraz z nazw\u0105 (etykiet\u0105) klasy do jakiej dany egzemplarz nale\u017cy:<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>pi\u00f3ro|NIE,NIE,TAK,NIE,TAK<\/pre><\/div>\n\n\n\n<p class=\"has-medium-font-size\"><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Co oczywi\u015bcie mo\u017cemy uog\u00f3lni\u0107 do:<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>klasa|f_1,f_2,f_3,f_4,f_5<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Maj\u0105c dane tak przedstawione jak powy\u017cej, to co mo\u017cemy z nich jeszcze wywnioskowa\u0107. Czy na bazie znajomo\u015bci tylko samych klas egzemplarza i cz\u0119stotliwo\u015bci ich wyst\u0119powanie, mo\u017cemy przewidzie\u0107 jaka by\u0142aby nast\u0119pna klasa? \u017beby u\u0142atwi\u0107 nasze przewidywania, policzmy troch\u0119 \u2013 obliczmy prawdopodobie\u0144stwo wyst\u0105pienia ka\u017cdej z klas. Prawdopodobie\u0144stwo obliczany ze wzoru:<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(element)=  {(liczba \\space danych \\space element\u00f3w) \\over (liczba \\space wszystkich \\space element\u00f3w)}<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Wi\u0119c dla naszego przypadku, prawdopodobie\u0144stwo wyst\u0105pienia ka\u017cdej z klas wynosi;<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>Dla \\space o\u0142\u00f3wka = {3 \\over 7} \u2248 42 \\%<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>Dla \\space d\u0142ugopisu = {2 \\over 7} \u2248 28\\%<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>Dla \\space pi\u00f3ra = {2 \\over 7} \u2248 28\\%<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">A wi\u0119c (<strong>upraszczaj\u0105c!<\/strong>) mamy oko\u0142o 42% pewno\u015bci, \u017ce nast\u0119pnym elementem zbioru b\u0119dzie o\u0142\u00f3wek, a tylko 28% \u017ce nast\u0119pnym elementem b\u0119dzie d\u0142ugopis. W ten oto spos\u00f3b wyznaczyli\u015bmy wi\u0119c prawdopodobie\u0144stwo zdarzenia \u2013 <strong>P(A)<\/strong> &#8211; dla poszczeg\u00f3lnych klas do kt\u00f3rych nale\u017c\u0105 egzemplarze naszych danych. Mamy ju\u017c pierwszy element ze wzoru Bayesa \ud83d\ude42 <\/p>\n\n\n\n<p class=\"has-medium-font-size\">Jak wi\u0119c wyznaczy\u0107 jak\u0105 klas\u0119 b\u0119dzie mia\u0142 egzemplarz o nast\u0119puj\u0105cych cechach:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Cecha 1<\/td><td>Cecha 2<\/td><td>Cecha 3<\/td><td>Cecha 4<\/td><td>Cecha 5<\/td><\/tr><tr><td>NIE<\/td><td>NIE<\/td><td>NIE<\/td><td>TAK<\/td><td>TAK<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Tabela 2. Warto\u015bci poszczeg\u00f3lnych cech, nieznanego egzemplarza danych (bez okre\u015blania przynale\u017cno\u015bci do danej klasy). <\/figcaption><\/figure>\n\n\n\n<p> <\/p>\n\n\n\n<p class=\"has-medium-font-size\">Jak wi\u0119c algorytm dysponuj\u0105cymi danymi (patrz: Tabela 1), okre\u015bla do jakiej klasy decyzyjnej nale\u017cy ten nowy egzemplarz danych? Obliczmy wi\u0119c pewne prawdopodobie\u0144stwo warunkowe wyst\u0105pienia nowych danych (nowego egzemplarza) &nbsp;dla ka\u017cdej istniej\u0105cej decyzji (czyli, jak bardzo prawdopodobne jest, \u017ce warto\u015b\u0107 danej cechy danego egzemplarza wyst\u0105pi\u0142a w danych ucz\u0105cych i do jakiej klasy by\u0142a przyporz\u0105dkowana). &nbsp;Ide\u0105 uczenia maszynowego jest, \u017ce posiadany egzemplarz raczej na pewno nie wyst\u0105pi\u0142 w danych ucz\u0105cych, a algorytm musi oszacowa\u0107 do jakiej klasy nasze nowe dane nale\u017c\u0105.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Upro\u015b\u0107my sobie powy\u017csz\u0105 tabel\u0119:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Nazwa<\/td><td class=\"has-text-align-center\" data-align=\"center\">Cecha 1<\/td><td class=\"has-text-align-center\" data-align=\"center\">Cecha 2<\/td><td class=\"has-text-align-center\" data-align=\"center\">Cecha 3<\/td><td class=\"has-text-align-center\" data-align=\"center\">Cecha 4<\/td><td class=\"has-text-align-center\" data-align=\"center\">Cecha 5<\/td><\/tr><tr><td>symbol<\/td><td class=\"has-text-align-center\" data-align=\"center\">a<sub>1<\/sub><\/td><td class=\"has-text-align-center\" data-align=\"center\">a<sub>2<\/sub><\/td><td class=\"has-text-align-center\" data-align=\"center\">a<sub>3<\/sub><\/td><td class=\"has-text-align-center\" data-align=\"center\">a<sub>4<\/sub><\/td><td class=\"has-text-align-center\" data-align=\"center\">a<sub>5<\/sub><\/td><\/tr><tr><td>warto\u015b\u0107<\/td><td class=\"has-text-align-center\" data-align=\"center\">NIE<\/td><td class=\"has-text-align-center\" data-align=\"center\">NIE<\/td><td class=\"has-text-align-center\" data-align=\"center\">NIE<\/td><td class=\"has-text-align-center\" data-align=\"center\">TAK<\/td><td class=\"has-text-align-center\" data-align=\"center\">TAK<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Tabela 3. Warto\u015bci poszczeg\u00f3lnych cech, nieznanego egzemplarza danych, wraz z przypisanymi im symbolami.<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Od teraz zamiast d\u0142ugiej nazwy &#8222;Cecha 1&#8221; mo\u017cemy zapisa\u0107 elegancki matematyczny symbol a<sub>1<\/sub>, lub og\u00f3lnie ca\u0142y egzemplarz nowych danych mo\u017cemy zapisa\u0107 jako:<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>f= a_1,\u2026,a_i   \\space\\space\\space\\space dla \\space i=1,\u2026,n<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">gdzie:&nbsp;n \u2013 liczba naturalna, wi\u0119ksza od zera<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Pom\u0119cz\u0119 Was jeszcze troch\u0119 matematyk\u0105. Tak si\u0119 sk\u0142ada, \u017ce zrozumienie jej, jest niezwykle istotne do zrozumienia zasady dzia\u0142ania uczenia si\u0119 tego (i innych te\u017c) klasyfikatora, Maj\u0105c wi\u0119c matematycznie zdefiniowany pewien wektor danych (czyli nasz nowy, nieznany egzemplarz), wr\u00f3\u0107my na chwil\u0119 do wzoru Bayesa. \u017beby m\u00f3c okre\u015bli\u0107 do jakiej klasy nale\u017cy nasz egzemplarz danych, znamy ju\u017c wszystkie prawdopodobie\u0144stwa<strong> P(A)<\/strong> dla poszczeg\u00f3lnych klas (&#8222;o\u0142\u00f3wek&#8221;, &#8222;d\u0142ugopis&#8221;, &#8222;pi\u00f3ro&#8221;), pora wi\u0119c na wyliczenie prawdopodobie\u0144stwa przynale\u017cno\u015bci naszego nowego, nieznanego egzemplarza danych do poszczeg\u00f3lnych klas &#8211; <strong>P(B|A)<\/strong>.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Jak si\u0119 zabra\u0107 za te obliczenia? Dokonajmy wi\u0119c zn\u00f3w pewnego uproszczenia (tak, tak, w uczeniu maszynowym, upraszczanie to s\u0142owo klucz <img decoding=\"async\" width=\"30\" height=\"30\" class=\"wp-image-529\" style=\"width: 30px;\" src=\"http:\/\/cyberszary.pl\/wp-content\/uploads\/2024\/06\/smile.png\" alt=\"\"> ). Zapiszmy to prawdopodobie\u0144stwo w taki spos\u00f3b:<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(B\u2502A)=P(a_1\u2502d_i )*\u2026.*P(a_k |d_i)<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Co og\u00f3lniej mo\u017cemy zapisa\u0107 jako (matematycy b\u0119d\u0105 zadowoleni) : <\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>\u220f(P(a_j |d_i)<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Co tu si\u0119 w\u0142a\u015bciwie sta\u0142o? Obliczamy wi\u0119c niezale\u017cnie prawdopodobie\u0144stwo wyst\u0105pienia warto\u015bci ka\u017cdej cechy przynale\u017cnej do danej klasy decyzyjnej. <strong>Ka\u017cd\u0105 warto\u015b\u0107 cechy (atrybutu) traktujemy niezale\u017cnie, tak jakby nie mia\u0142a wp\u0142ywu na pozosta\u0142e cechy i klas\u0119 do jakiej dany egzemplarz nale\u017cy.<\/strong> Podej\u015bcie takie nazywamy \u201enaiwne\u201d \u2013 st\u0105d te\u017c nazwa algorytmu \u2013 <strong>Naiwny Klasyfikator Bayesa<\/strong>.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">\u201eDobrze\u201d \u2013 pomy\u015blicie \u2013 \u201eBrzmi to fajnie, naukowo, ale nadal nie wiem jak komputer &#8222;si\u0119 uczy&#8221;, ale jak mog\u0119 to zastosowa\u0107 do faktycznego uczenia si\u0119 algorytmu?\u201d. &nbsp;I jak to obliczy\u0107?<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Patrz\u0105c na powy\u017cszy wz\u00f3r, musimy obliczy\u0107 prawdopodobie\u0144stwo wyst\u0105pienia warto\u015bci poszczeg\u00f3lnych cech (atrybut\u00f3w) dla ka\u017cdej mo\u017cliwej klasy. Czyli: prawdopodobie\u0144stwo wyst\u0105pienia warto\u015bci NIE cechy 1 dla klasy \u201epi\u00f3ro\u201d, wyst\u0105pienie warto\u015bci NIE cechy 1 dla klasy \u201eo\u0142\u00f3wek\u201d, &nbsp;wyst\u0105pienie warto\u015bci NIE cechy 1 dla klasy \u201ed\u0142ugopis\u201d, wyst\u0105pienie warto\u015bci NIE cechy 2 dla klasy \u201epi\u00f3ro\u201d, i tak dalej, i tak dalej, a\u017c do obliczenia warto\u015bci prawdopodobie\u0144stwo wszystkich cech dla wszystkich klas. No to do dzie\u0142a.<\/p>\n\n\n\n<p class=\"has-medium-font-size\">Prawdopodobie\u0144stwo warto\u015bci poszczeg\u00f3lnych cech dla klasy \u201eo\u0142\u00f3wek\u201d:<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_1\u2502d_1 )=P(NIE\u2502o\u0142\u00f3wek)=   {2 \\over 3}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_2\u2502d_1 )=P(NIE\u2502o\u0142\u00f3wek)=  1<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_3\u2502d_1 )=P(NIE\u2502o\u0142\u00f3wek)=   {2 \\over 3}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_4\u2502d_1 )=P(TAK\u2502o\u0142\u00f3wek)=   {1 \\over 2}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_5\u2502d_1 )=P(TAK\u2502o\u0142\u00f3wek)=  1<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Prawdopodobie\u0144stwo warto\u015bci poszczeg\u00f3lnych cech dla klasy \u201ed\u0142ugopis\u201d:<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_1\u2502d_2 )=P(NIE\u2502d\u0142ugopis)=   {1 \\over 2}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_2\u2502d_2 )=P(NIE\u2502d\u0142ugopis)=   {1 \\over 2}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_3\u2502d_2 )=P(NIE\u2502d\u0142ugopis)=   {1 \\over 2}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_4\u2502d_2 )=P(TAK\u2502d\u0142ugopis)=   {1 \\over 2}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_5\u2502d_2 )=P(TAK\u2502d\u0142ugopis)=  1<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Prawdopodobie\u0144stwo warto\u015bci poszczeg\u00f3lnych cech dla klasy \u201epi\u00f3ro\u201d:<\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_1\u2502d_3 )=P(NIE\u2502pi\u00f3ro)=   {1 \\over 2}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_2\u2502d_3 )=P(NIE\u2502pi\u00f3ro)=   {1 \\over 2}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_3\u2502d_3 )=P(NIE\u2502pi\u00f3ro)=   {1 \\over 2}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_4\u2502d_3 )=P(TAK\u2502pi\u00f3ro)=   {1 \\over 2}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(a_5\u2502d_3 )=P(TAK\u2502pi\u00f3ro)=   {1 \\over 2}<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Mamy poszczeg\u00f3lne sk\u0142adowe iloczynu prawdopodobie\u0144stwa, pora wi\u0119c na obliczenie prawdopodobie\u0144stwa: <\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>(P(B\u2502A)*P(A))<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Dla klasy &#8222;o\u0142\u00f3wek&#8221;: <\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(o\u0142\u00f3wek\u2502a_i )={2 \\over 3}*1*{2 \\over 3}*{1 \\over 3}*1*{3 \\over 7}={4 \\over 63}\u22480,0634920634920635\u22480,063<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Dla klasy &#8222;d\u0142ugopis&#8221;: <\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(d\u0142ugopis\u2502a_i )={1 \\over 2}*{1 \\over 2}*{1 \\over 2}*{1 \\over 2}*1*{2 \\over 7}={1 \\over 56}\u22480,0178571428571429\u22480,017<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Dla klasy &#8222;pi\u00f3ro&#8221;: <\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>P(pi\u00f3ro\u2502a_i )=  {1 \\over 2}*{1 \\over 2}*{1 \\over 2}*{1 \\over 2}*{1 \\over 2}*{2 \\over 7}={1 \\over 12}\u22480,0089285714285714\u22480,008<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Uff!<\/strong> Przebrn\u0119li\u015bmy przez \u017cmudny proces wyliczania prawdopodobie\u0144stw dla ka\u017cdego atrybutu i ka\u017cdej mo\u017cliwej klasy decyzyjnej. Mamy wyniki ko\u0144cowe. Pozosta\u0142a ju\u017c nam tylko ostatnia rzecz. Por\u00f3wnanie prawdopodobie\u0144stw wzgl\u0119dem siebie i wybranie tego prawdopodobie\u0144stwa kt\u00f3re jest najwy\u017csze. <\/p>\n\n\n\n<div class=\"wp-block-katex-display-block katex-eq\" data-katex-display=\"true\"><pre>0,063 &gt; 0,017 &gt; 0,008<\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Mamy wi\u0119c zwyci\u0119zc\u0119!. Nowym egzemplarzem danych jest &#8230;. <strong>o\u0142\u00f3wek!<\/strong> <strong>*<\/strong><\/p>\n\n\n\n<p>* &#8211; pewnie si\u0119 zastanawiasz, co si\u0119 sta\u0142o z mianownikiem ze wzoru Bayesa, przedstawionym na pocz\u0105tku. Ot\u00f3\u017c, w procesie uczenia maszynowego, przedstawione przybli\u017cenie (tak, tak, magiczne uproszczenie), jest wystarczaj\u0105ce by ju\u017c okre\u015bli\u0107 przynale\u017cno\u015b\u0107 egzemplarza danych do klasy. Dlatego jest on pomijany. <\/p>\n\n\n\n<p class=\"has-medium-font-size\">To ju\u017c?! Tak! To ca\u0142a magia uczenia maszynowego (oczywi\u015bcie &#8211; a jak\u017ce &#8211; <strong>w uproszczeniu!<\/strong> <img decoding=\"async\" width=\"30\" height=\"30\" class=\"wp-image-529\" style=\"width: 30px;\" src=\"http:\/\/cyberszary.pl\/wp-content\/uploads\/2024\/06\/smile.png\" alt=\"\">). <\/p>\n\n\n\n<p class=\"has-background has-medium-font-size\" style=\"background-color:#edbb9d\"><em><strong>Pami\u0119taj!<\/strong> Om\u00f3wiony przyk\u0142ad jest poprawny matematycznie, jednak\u017ce do rzeczywistego modelu b\u0119dziesz potrzebowa\u0142 wi\u0119kszej ilo\u015bci danych ucz\u0105cych ni\u017c w modelu om\u00f3wionym powy\u017cej. <\/em><\/p>\n\n\n\n<p class=\"has-medium-font-size\">Do czego mo\u017cna zastosowa\u0107 Naiwny Klasyfikator Bayesa? Jednym z popularniejszych zastosowa\u0144 jest wykrywanie spamu w wiadomo\u015bciach email. Zbiorem ucz\u0105cym jest wi\u0119c tre\u015b\u0107 otrzymywanych wiadomo\u015bci email, kt\u00f3ra jest przypisana do dw\u00f3ch klas: &#8222;wiadomo\u015bci po\u017c\u0105dane&#8221; i &#8222;spam&#8221; (wiadomo\u015bci niechciane). Pojedyncza wiadomo\u015b\u0107 email, traktowana jest jako egzemplarz danych, a tre\u015b\u0107 (poszczeg\u00f3lne s\u0142owa) to kolejne atrybuty (cechy) danego egzemplarza. Widzimy tu kolejn\u0105 zalet\u0119 stosowania uczenia maszynowego &#8211; ilo\u015b\u0107 atrybut\u00f3w w ka\u017cdym kolejnym egzemplarzy danych mo\u017ce by\u0107 r\u00f3\u017cna (wiadomo\u015bci email zawieraj\u0105 r\u00f3\u017cn\u0105 tre\u015b\u0107, r\u00f3\u017cn\u0105 d\u0142ugo\u015b\u0107, a wi\u0119c ilo\u015b\u0107 s\u0142\u00f3w jest r\u00f3\u017cna), a pomimo to i tak, algorytm uczenia maszynowego, poprawnie przypisze otrzyman\u0105 wiadomo\u015b\u0107 do w\u0142a\u015bciwej klasy. <\/p>\n\n\n\n<p class=\"has-medium-font-size\">Mam nadzieje, \u017ce zainteresowa\u0142em Ci\u0119 ide\u0105 uczenia maszynowego i wyja\u015bni\u0142em w jaki spos\u00f3b algorytm potrafi na podstawie zbioru ucz\u0105cego poprawie dokona\u0107 rozpoznania nieznanego sobie wcze\u015bniej obiektu. <\/p>\n\n\n\n<p class=\"has-medium-font-size\"><em>Je\u017celi chcesz dowiedzie\u0107 si\u0119 wi\u0119cej na temat uczenia maszynowego, odwiedzaj regularnie naszeg blog, systematycznie b\u0119dziemy publikowa\u0107 nowe tre\u015bci z tej tematyki. Je\u017celi chcia\u0142bym by pojawi\u0142 si\u0119 konkretny artyku\u0142, <strong>napisz do nas! <\/strong><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bez cienia w\u0105tpliwo\u015bci, przechodzimy rewolucj\u0119 technologiczn\u0105. By\u0142o ich zreszt\u0105 ju\u017c kilka, lecz ta jest inna ni\u017c wszystkie wcze\u015bniejsze (hmm, wcze\u015bniejsze [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":521,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[5],"tags":[35,56,48,53,59,58,57,55],"class_list":["post-518","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","tag-ai-2","tag-klasyfikator","tag-machine-learning","tag-naiwny-klasyfikator-bayesa","tag-prawdopodobienstwo-warunkowe","tag-prawdopoodbienstwo","tag-twierdzenie-bayesa","tag-uczenie-maszynowe"],"_links":{"self":[{"href":"https:\/\/cyberszary.pl\/index.php\/wp-json\/wp\/v2\/posts\/518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyberszary.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyberszary.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyberszary.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cyberszary.pl\/index.php\/wp-json\/wp\/v2\/comments?post=518"}],"version-history":[{"count":9,"href":"https:\/\/cyberszary.pl\/index.php\/wp-json\/wp\/v2\/posts\/518\/revisions"}],"predecessor-version":[{"id":532,"href":"https:\/\/cyberszary.pl\/index.php\/wp-json\/wp\/v2\/posts\/518\/revisions\/532"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cyberszary.pl\/index.php\/wp-json\/wp\/v2\/media\/521"}],"wp:attachment":[{"href":"https:\/\/cyberszary.pl\/index.php\/wp-json\/wp\/v2\/media?parent=518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyberszary.pl\/index.php\/wp-json\/wp\/v2\/categories?post=518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyberszary.pl\/index.php\/wp-json\/wp\/v2\/tags?post=518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}