Sieci konwolucyjne 4: data augmentation

W poprzednich trzech częściach tutoriala w szczegółach poznaliśmy sieci konwolucyjne. Przyjrzeliśmy się operacji konwolucji, architekturze sieci konwolucyjnych oraz problemowi overfittingu. W klasyfikacji zbioru CIFAR-10 osiągnęliśmy wynik 81% na zbiorze testowym. Aby pójść dalej, musielibyśmy zmienić architekturę naszej sieci, poeksperymentować z hiperparametrami lub uzyskać więcej danych. Dwa pierwsze rozwiązania zostawiam dla was, 😉 a sam będę …

Czytaj dalej

Neuronowe sieci konwolucyjne 2: architektura

Neuronowe sieci konwolucyjne pozwalają uzyskać bardzo dobre wyniki klasyfikacji w przypadku obrazów. W poprzednim poście mieliście okazję dowiedzieć się, czym jest konwolucja oraz jak sklasyfikować zbiór CIFAR-10 wykorzystując prostą klasyczną sieć neuronową. Przypomnę, że uzyskaliśmy poprawność klasyfikacji na zbiorze testowym na poziomie 47%. W drugiej części tutoriala idziemy dalej: Niniejszy post jest drugą częścią tutoriala, …

Czytaj dalej

Konwolucyjne sieci neuronowe 3: overfitting

Konwolucyjne sieci neuronowe to jedna z najbardziej skutecznych architektur sieci neuronowych w obszarze klasyfikacji obrazów. W pierwszej części tutoriala omówiliśmy zagadnienie konwolucji oraz zbudowaliśmy prostą, gęsto połączoną sieć neuronową, której użyliśmy do klasyfikacji zbioru CIFAR-10, uzyskując skuteczność na poziomie 47%. W części drugiej tutoriala zapoznaliśmy się szczegółowo z architekturą i parametrami konwolucyjnej sieci neuronowej, zbudowaliśmy …

Czytaj dalej

Convolutional neural network

Konwolucyjne sieci neuronowe 1: konwolucja

Głębokie sieci neuronowe znajdują szerokie zastosowanie w rozpoznawaniu obrazów i kształtów. Przykładowe aplikacje obejmują rozpoznawanie twarzy, analizę obrazów w medycynie, klasyfikację pisma czy detekcję obiektów otoczenia. Specjalnym rodzajem sieci neuronowej, który wyjątkowo dobrze radzi sobie z przetwarzaniem obrazu, są konwolucyjne sieci neuronowe. Przyznam, że ConvNet to moja ulubiona architektura głębokich sieci neuronowych i bardzo lubię …

Czytaj dalej

PyTorch: podział zbioru, transformacje, uczenie na GPU oraz wizualizacja metryki

Dziś taki lekki misz-masz. W uczeniu maszynowym określenie struktury modelu i trening sieci neuronowej to stosunkowo niewielkie elementy dłuższego łańcucha czynności, który rozpoczyna się od załadowania zbioru danych, jego podziału na podzbiory uczący, walidacyjny oraz testowy i odpowiedniego serwowania danych do modelu. Po drodze pojawiają się również takie kwestie jak transformacja danych, uczenie na GPU …

Czytaj dalej

YOLO szybka detekcja i klasyfikacja obiektów

Computer Vision jest jednym z najciekawszych i moim ulubionym obszarem zastosowań dla sztucznej inteligencji. Sporym wyzwaniem dla algorytmów analizy obrazów jest szybka detekcja i klasyfikacja obiektów w czasie rzeczywistym. Problem detekcji obiektów jest dużo trudniejszy niż klasyfikacja, którą wielokrotnie omawiałem na moim blogu, ponieważ nie tylko musimy wskazać co to za obiekt, ale również miejsce, …

Czytaj dalej

Mały model językowy do generowania XIX-wiecznego bełkotu – część 1

W momencie pisania tego posta (kwiecień 2023) nadal panuje dość powszechna ekscytacja możliwościami dużych modeli językowych. Możliwości te w spektakularny sposób pokazało nam rozwiązanie udostępnione pod koniec 2022 przez OpenAI i nasz świat nigdy nie będzie już taki sam. Duże modele językowe, w tym konwersacyjne takie jak ChatGPT, w większości wykorzystują wariacje architektury Transformer. Punktem …

Czytaj dalej

Przygotowanie danych do uczenia maszynowego w PyTorch

Przygotowanie danych do uczenia maszynowego nie jest zadaniem, za którym tęskni większość specjalistów AI. Dane bywają różnej jakości, najczęściej wymagają bardzo dokładnej analizy, czasami ręcznego przeglądu, a na pewno selekcji i wstępnego przetworzenia. W przypadku zadań klasyfikacyjnych podział zbioru na klasy bywa niewłaściwy lub niewystarczająco zbalansowany. Często danych jest również po prostu za mało i …

Czytaj dalej