{"id":21937,"date":"2023-06-14T05:00:00","date_gmt":"2023-06-14T03:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=21937"},"modified":"2024-07-22T14:55:02","modified_gmt":"2024-07-22T12:55:02","slug":"przewidywanie-przyszlych-danych-za-pomoca-sieci-neuronowych","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/przewidywanie-przyszlych-danych-za-pomoca-sieci-neuronowych\/","title":{"rendered":"Przewidywanie przysz\u0142ych danych za pomoc\u0105 sieci neuronowych"},"content":{"rendered":"\n<p>Artyku\u0142 skierowany jest do os\u00f3b pocz\u0105tkuj\u0105cych oraz bardziej do\u015bwiadczonych w obszarze sieci neuronowych. Ma na celu w uproszczony spos\u00f3b wprowadzi\u0107 Was w dwa przyk\u0142adowe modele danych i zainspirowa\u0107 do dalszych do\u015bwiadcze\u0144 z sieciami neuronowymi. Tre\u015b\u0107 przybli\u017cy nam ich og\u00f3lne dzia\u0142anie. Przedstawione zostan\u0105 sposoby uczenia modeli sieci neuronowych s\u0142u\u017c\u0105ce do przewidywania przysz\u0142ych danych, jak r\u00f3wnie\u017c sposoby przygotowania tych modeli w j\u0119zyku Python.<\/p>\n\n\n\n<p>Sieci neuronowe s\u0105 jednym z najbardziej popularnych narz\u0119dzi w dziedzinie analizy danych i predykcji. Omawiane modele \u2013 <strong>GRU<\/strong> (ang. Gate Recurrent Unit) i <strong>LSTM<\/strong> (ang. Long Short-Term Memory) \u2013 s\u0105 rodzajami sieci neuronowych, kt\u00f3re s\u0105 szczeg\u00f3lnie skuteczne w analizie sekwencji danych. Oba modele maj\u0105 zdolno\u015b\u0107 do przechowywania informacji przez d\u0142u\u017cszy czas, co jest kluczowe w analizie sekwencji, takich jak serie czasowe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Do czego s\u0142u\u017cy sie\u0107 neuronowa i jak dzia\u0142a?<\/strong><\/h2>\n\n\n\n<p>Sie\u0107 neuronowa jest algorytmem uczenia maszynowego, kt\u00f3ry wykorzystuje po\u0142\u0105czone ze sob\u0105 neurony do przetwarzania informacji i wykonywania predykcji. Neurony nie podejmuj\u0105 decyzji, ale aktywuj\u0105 si\u0119 lub nie na podstawie wej\u015bciowych danych i wag, kt\u00f3re s\u0105 dostosowywane podczas uczenia.<\/p>\n\n\n\n<p>Sieci neuronowe s\u0105 stosowane w wielu dziedzinach, takich jak:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>rozpoznawanie obraz\u00f3w,<\/li>\n\n\n\n<li>analiza tekstu,<\/li>\n\n\n\n<li>predykcja sekwencji<\/li>\n\n\n\n<li>i wiele innych.<\/li>\n<\/ul>\n\n\n\n<p>Podczas dzia\u0142ania, wej\u015bciowe dane s\u0105 przetwarzane przez warstwy neuron\u00f3w, a wynik jest zwracany przez warstw\u0119 wyj\u015bciow\u0105. Podczas uczenia, sie\u0107 neuronowa dostosowuje wagi mi\u0119dzy neuronami, aby zminimalizowa\u0107 b\u0142\u0105d predykcji.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Z jakich danych najlepiej korzysta\u0107 i jak je przygotowa\u0107?<\/strong><\/h2>\n\n\n\n<p>Aby zapewni\u0107 jak najwy\u017csz\u0105 skuteczno\u015b\u0107 modelu, dane wykorzystywane w sieciach neuronowych powinny by\u0107 odpowiednio przygotowane. Dla modeli <strong>GRU<\/strong> i <strong>LSTM,<\/strong> by uzyska\u0107 najlepsze wyniki, powinni\u015bmy wykorzysta\u0107 <strong>dane sekwencyjne, takie jak serie czasowe<\/strong>, gdzie ka\u017cdy punkt danych jest zale\u017cny od poprzedniego. Dane powinny by\u0107 uporz\u0105dkowane w sekwencje, a nast\u0119pnie podzielone na zbiory: treningowy, walidacyjny i testowy.<\/p>\n\n\n\n<p><strong>Skalowanie danych<\/strong> jest wa\u017cnym etapem ich przygotowania przed trenowaniem sieci neuronowej. Zrobienie tego do okre\u015blonego zakresu, np. do warto\u015bci mi\u0119dzy <strong>0<\/strong> a <strong>1<\/strong>, mo\u017ce pom\u00f3c znormalizowa\u0107 warto\u015bci wej\u015bciowe i poprawi\u0107 wydajno\u015b\u0107 sieci neuronowej. Ponadto, skalowanie danych mo\u017ce pom\u00f3c w zmniejszeniu wp\u0142ywu warto\u015bci odstaj\u0105cych, kt\u00f3re mog\u0105 negatywnie oddzia\u0142ywa\u0107 na proces uczenia i predykcji sieci neuronowej.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Czym charakteryzuj\u0105 si\u0119 modele GRU i LSTM?<\/strong><\/h2>\n\n\n\n<p>Modele <strong>GRU<\/strong> i <strong>LSTM<\/strong> sk\u0142adaj\u0105 si\u0119 z kom\u00f3rek pami\u0119ci, kt\u00f3re umo\u017cliwiaj\u0105 sieci neuronowej przechowywanie informacji przez d\u0142u\u017cszy czas. Kom\u00f3rki te potrafi\u0105 kontrolowa\u0107, kt\u00f3re informacje s\u0105 gromadzone, a kt\u00f3re s\u0105 ignorowane.<\/p>\n\n\n\n<p>W modelu <strong>LSTM<\/strong>, kom\u00f3rki pami\u0119ci s\u0105 kontrolowane przez trzy bramki:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bramk\u0119 wej\u015bciow\u0105 \u2013 weryfikuje, kt\u00f3re informacje powinny by\u0107 przechowywane,<\/li>\n\n\n\n<li>bramk\u0119 wyj\u015bciow\u0105 \u2013 kontroluje, kt\u00f3re informacje powinny by\u0107 uwzgl\u0119dnione w wyniku sieci,<\/li>\n\n\n\n<li>bramk\u0119 zapomnienia \u2013 pozwala sieci na zapominanie niepotrzebnych informacji.<\/li>\n<\/ul>\n\n\n\n<p>W modelu <strong>GRU<\/strong>, bramki s\u0105 uproszczone do:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bramki resetu \u2013 odpowiada za kontrol\u0119, kt\u00f3re informacje powinny by\u0107 zapomniane,<\/li>\n\n\n\n<li>bramki aktualizacji \u2013 odpowiada za kontrol\u0119, kt\u00f3re informacje powinny by\u0107 uwzgl\u0119dnione w wyniku sieci.<\/li>\n<\/ul>\n\n\n\n<p>Modele <strong>GRU<\/strong> s\u0105 zazwyczaj mniej z\u0142o\u017cone ni\u017c modele <strong>LSTM<\/strong> i maj\u0105 tendencj\u0119 do szybszego uczenia si\u0119.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/1-6.png\"><img decoding=\"async\" width=\"605\" height=\"270\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/1-6.png\" alt=\"Obraz daj\u0105cy pogl\u0105d na z\u0142o\u017cono\u015b\u0107 dw\u00f3ch modeli LSTM i GRU\" class=\"wp-image-21938\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/1-6.png 605w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/1-6-300x134.png 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 1 <a href=\"dprogrammer.org\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Obraz daj\u0105cy pogl\u0105d na z\u0142o\u017cono\u015b\u0107 dw\u00f3ch modeli <strong>LSTM<\/strong> i <strong>GRU<\/strong><\/a><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Jak uczymy te modele i jak to wszystko dzia\u0142a?<\/strong><\/h2>\n\n\n\n<p>Modele <strong>GRU<\/strong> i <strong>LSTM<\/strong> ucz\u0105 si\u0119 poprzez minimalizowanie b\u0142\u0119du predykcji. Proces uczenia sk\u0142ada si\u0119 z dw\u00f3ch etap\u00f3w:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>propagacji w prz\u00f3d,<\/li>\n\n\n\n<li>propagacji wstecznej.<\/li>\n<\/ul>\n\n\n\n<p>W <strong>propagacji w prz\u00f3d<\/strong> dane wej\u015bciowe s\u0105 przetwarzane przez warstwy neuron\u00f3w, a nast\u0119pnie przekazywane do warstwy wyj\u015bciowej, kt\u00f3ra zwraca wynik. W <strong>propagacji wstecznej<\/strong> b\u0142\u0105d predykcji jest propagowany wstecz przez sie\u0107 neuronow\u0105, a nast\u0119pnie aktualizowane s\u0105 wagi mi\u0119dzy neuronami.<\/p>\n\n\n\n<p>Uczenie modeli <strong>GRU<\/strong> i <strong>LSTM<\/strong> jest cz\u0119sto trudne i wymaga odpowiedniego doboru <strong>hiperparametr\u00f3w<\/strong>, takich jak:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>liczba warstw,<\/li>\n\n\n\n<li>liczba neuron\u00f3w w ka\u017cdej warstwie,<\/li>\n\n\n\n<li>wsp\u00f3\u0142czynnik uczenia i wiele innych.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Przyk\u0142ad analizy<\/strong><\/h3>\n\n\n\n<p>Podczas mojej analizy tych modeli zosta\u0142 wykorzystany j\u0119zyk Python i biblioteka tensorflow.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/2-5.png\"><img decoding=\"async\" width=\"566\" height=\"300\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/2-5.png\" alt=\"Przyk\u0142ad kodu do okre\u015blenia modelu GRU i LSTM\" class=\"wp-image-21940\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/2-5.png 566w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/2-5-300x159.png 300w\" sizes=\"(max-width: 566px) 100vw, 566px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 2 Przyk\u0142ad kodu do okre\u015blenia modelu <strong>GRU<\/strong> i <strong>LSTM<\/strong><\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>input_shape <\/strong>\u2013 kszta\u0142t wej\u015bciowego tensora danych \u2013 odpowiada kszta\u0142towi naszych danych testowych i przygotowanych danych w celu uczenia modelu sieci neuronowej,<\/li>\n\n\n\n<li><strong>look_forward <\/strong>\u2013<strong> <\/strong>liczba krok\u00f3w czasowych, na kt\u00f3re model ma przewidywa\u0107 warto\u015bci w przysz\u0142o\u015bci,<\/li>\n\n\n\n<li><strong>dropout <\/strong>\u2013<strong> <\/strong>technika regularyzacji, kt\u00f3ra losowo usuwa pewien procent neuron\u00f3w w warstwie podczas treningu,<\/li>\n\n\n\n<li><strong>units<\/strong> \u2013 okre\u015bla liczb\u0119 ukrytych neuron\u00f3w w warstwie rekurencyjnej sieci,<\/li>\n\n\n\n<li><strong>dense <\/strong>\u2013 to liczba neuron\u00f3w w warstwie g\u0119stej,<\/li>\n\n\n\n<li><strong>loss <\/strong>\u2013 funkcja straty, kt\u00f3ra okre\u015bla jak bardzo predykcje modelu r\u00f3\u017cni\u0105 si\u0119 od rzeczywistych warto\u015bci,<\/li>\n\n\n\n<li><strong>optimizer <\/strong>\u2013 okre\u015bla metod\u0119 optymalizacji, kt\u00f3r\u0105 sie\u0107 neuronowa b\u0119dzie stosowa\u0107 podczas treningu.<\/li>\n<\/ul>\n\n\n\n<p>Gdyby\u015bmy chcieli wybudowa\u0107 i zapisa\u0107 nasz model do pliku w celu u\u017cywania go po wyuczeniu, powini\u015bmy wykona\u0107 dodatkowo poni\u017cszy kod:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/3-4.png\"><img decoding=\"async\" width=\"605\" height=\"188\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/3-4.png\" alt=\"Przyk\u0142ad kodu do wyuczenia modelu LSTM i zapisaniu go do pliku\" class=\"wp-image-21942\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/3-4.png 605w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/3-4-300x93.png 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 3 Przyk\u0142ad kodu do wyuczenia modelu <strong>LSTM <\/strong>i zapisaniu go do pliku<\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>learn_X i learn_Y <\/strong>\u2013 dane treningowe,<\/li>\n\n\n\n<li><strong>validate_X i validate_Y<\/strong> \u2013 dane walidacyjne,<\/li>\n\n\n\n<li><strong>epochs<\/strong> \u2013 liczba epok, czyli przej\u015b\u0107 przez ca\u0142y zbi\u00f3r treningowy,<\/li>\n\n\n\n<li><strong>batch_size \u2013<\/strong> liczba pr\u00f3bek u\u017cytych do jednej aktualizacji wag.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Jak u\u017cywa\u0107 danych z nauczonych modeli i jakie mo\u017cemy osi\u0105gn\u0105\u0107 prawdopodobie\u0144stwo danych?<\/strong><\/h2>\n\n\n\n<p>Po nauczeniu modelu <strong>GRU<\/strong> lub <strong>LSTM<\/strong> mo\u017cna go wykorzysta\u0107 do predykcji kolejnych punkt\u00f3w sekwencji np. do przewidywania przysz\u0142ych warto\u015bci serii czasowej na podstawie danych historycznych.<\/p>\n\n\n\n<p>Prawdopodobie\u0144stwo predykcji mo\u017cna okre\u015bli\u0107 na podstawie b\u0142\u0119du predykcji. Im mniejszy b\u0142\u0105d, tym wi\u0119ksze prawdopodobie\u0144stwo, \u017ce predykcja jest poprawna.<\/p>\n\n\n\n<p>Obraz zosta\u0142 wygenerowany poprzez narz\u0119dzie <a href=\"https:\/\/www.tensorflow.org\/tensorboard\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >tensorboard<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/4-3.png\"><img decoding=\"async\" width=\"605\" height=\"294\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/4-3.png\" alt=\"Wykres warto\u015bci funkcji straty (loss) w zale\u017cno\u015bci od liczby epok uczenia modelu. O\u015b pozioma na wykresie oznacza liczb\u0119 epok, natomiast o\u015b pionowa reprezentuje warto\u015b\u0107 funkcji straty\" class=\"wp-image-21944\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/4-3.png 605w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/4-3-300x146.png 300w\" sizes=\"(max-width: 605px) 100vw, 605px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 4 Wykres warto\u015bci funkcji straty (loss) w zale\u017cno\u015bci od liczby epok uczenia modelu. O\u015b pozioma na wykresie oznacza liczb\u0119 epok, natomiast o\u015b pionowa reprezentuje warto\u015b\u0107 funkcji straty<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>W jakich sytuacjach powinni\u015bmy ulepsza\u0107 nasz model sieci neuronowej i jak mo\u017cemy to robi\u0107?<\/strong><\/h2>\n\n\n\n<p>Przyk\u0142adowe sytuacje, w kt\u00f3rych powinni\u015bmy zastanowi\u0107 si\u0119 nad ulepszeniem naszego modelu sieci neuronowej:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>model sieci neuronowej nie osi\u0105ga po\u017c\u0105danych wynik\u00f3w lub wyst\u0119puje niska skuteczno\u015b\u0107 wynik\u00f3w,<\/li>\n\n\n\n<li>je\u015bli model osi\u0105ga bardzo dobre wyniki na danych treningowych, ale s\u0142abe na danych testowych,<\/li>\n\n\n\n<li>pojawi\u0105 si\u0119 nowe dane, kt\u00f3re s\u0105 r\u00f3\u017cne od tych, na kt\u00f3rych model by\u0142 uczony,<\/li>\n\n\n\n<li>model dzia\u0142a poprawnie, ale nie jest wystarczaj\u0105co szybki lub wydajny,<\/li>\n\n\n\n<li>struktura danych wej\u015bciowych zosta\u0142a zmieniona lub chcemy otrzymywa\u0107 inne dane.<\/li>\n<\/ul>\n\n\n\n<p>Aby ulepszy\u0107 model sieci neuronowej, mo\u017cna zastosowa\u0107 r\u00f3\u017cne techniki takie jak:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>dodanie dodatkowych warstw neuron\u00f3w,<\/li>\n\n\n\n<li>zwi\u0119kszenie liczby neuron\u00f3w w ka\u017cdej warstwie,<\/li>\n\n\n\n<li>dostosowanie hiperparametr\u00f3w, takich jak wsp\u00f3\u0142czynnik uczenia i liczba epok,<\/li>\n\n\n\n<li>wykorzystanie technik regularyzacji takich jak <strong>dropout<\/strong>, aby zapobiec przeuczeniu modelu,<\/li>\n\n\n\n<li>ulepszanie danych wej\u015bciowych np. poprzez zastosowanie technik normalizacji lub transformacji danych.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Podsumowanie<\/strong><\/h2>\n\n\n\n<p>Modele <strong>GRU<\/strong> i <strong>LSTM<\/strong> s\u0142u\u017c\u0105 analizie sekwencji danych, takich jak serie czasowe. Aby osi\u0105gn\u0105\u0107 jak najlepsze wyniki, nale\u017cy odpowiednio przygotowa\u0107 dane i dostosowa\u0107 hiperparametry modelu. Po jego wytrenowaniu, mo\u017cna go wykorzysta\u0107 do predykcji kolejnych punkt\u00f3w sekwencji.<\/p>\n\n\n\n<p>Aby ulepszy\u0107 model, powinni\u015bmy zastosowa\u0107 r\u00f3\u017cne techniki, takie jak dodanie dodatkowych warstw, regularyzacja czy ulepszanie danych wej\u015bciowych. Wa\u017cne jest r\u00f3wnie\u017c, aby unika\u0107 przeuczenia modelu i stosowa\u0107 techniki regularyzacji np. <strong>dropout<\/strong>, w celu zapobiegania zbytniemu dopasowaniu do danych treningowych.<\/p>\n\n\n\n<p>Wreszcie, warto pami\u0119ta\u0107, \u017ce modele <strong>GRU<\/strong> i <strong>LSTM<\/strong> s\u0105 jedynie narz\u0119dziami, a jako\u015b\u0107 wynik\u00f3w b\u0119dzie zale\u017ca\u0142a od jako\u015bci danych wej\u015bciowych i odpowiedniego wykorzystania modelu w kontek\u015bcie konkretnego problemu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Przydatne linki<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.tensorflow.org\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" ><strong>TensorFlow<\/strong><\/a><strong> <\/strong>\u2013<strong> <\/strong>biblioteka, kt\u00f3ra umo\u017cliwia nam procesowanie sieci neuronowych.<\/li>\n\n\n\n<li><a href=\"https:\/\/keras.io\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" ><strong>Keras<\/strong><\/a> \u2013 zestaw modeli danych przydatnych w uczeniu maszynowym, biblioteka ta jest u\u017cywana w Pythonie.<\/li>\n\n\n\n<li><a href=\"https:\/\/scikit-learn.org\/stable\/modules\/generated\/sklearn.preprocessing.normalize.html\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" ><strong>Sklearn preprocessing<\/strong><\/a><strong> <\/strong>\u2013<strong> <\/strong>bibloteka dla Pythona, kt\u00f3ra w szybki spos\u00f3b umo\u017cliwia nam przygotowanie danych do normalizacji jak r\u00f3wnie\u017c zdenormalizowanie danych po predykcji.<\/li>\n<\/ul>\n\n\n\n<p>***<\/p>\n\n\n\n<p>Je\u015bli interesuje Ci\u0119 tematyka uczenia maszynowego, zajrzyj r\u00f3wnie\u017c <a href=\"https:\/\/sii.pl\/blog\/wyszukiwarka\/uczenie%20maszynowe\/\" class=\"ek-link\">do innych artyku\u0142\u00f3w naszych ekspert\u00f3w. <\/a><\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;21937&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;7&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5 ( votes: 7)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Przewidywanie przysz\u0142ych danych za pomoc\u0105 sieci neuronowych&quot;,&quot;width&quot;:&quot;139.5&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 139.5px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            5\/5 ( votes: 7)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Artyku\u0142 skierowany jest do os\u00f3b pocz\u0105tkuj\u0105cych oraz bardziej do\u015bwiadczonych w obszarze sieci neuronowych. Ma na celu w uproszczony spos\u00f3b wprowadzi\u0107 &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/przewidywanie-przyszlych-danych-za-pomoca-sieci-neuronowych\/\">Continued<\/a><\/p>\n","protected":false},"author":523,"featured_media":21948,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1314],"tags":[2427,1710,513,584,1163],"class_list":["post-21937","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-twardo","tag-digital","tag-sieci-neuronowe","tag-analiza-danych","tag-python","tag-uczenie-maszynowe"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/05\/Przewidywanie-przyszlych-danych-za-pomoca-sieci-neuronowych.jpg","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/21937"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/523"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=21937"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/21937\/revisions"}],"predecessor-version":[{"id":21947,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/21937\/revisions\/21947"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/21948"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=21937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=21937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=21937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}