Jest to druga część serii przedstawiającej sposób pracy z sieciami konwolucyjnymi (Conv Nets) z wykorzystaniem TensorFlow. Dokonamy w niej rozpoznania oraz klasyfikacji szeregu cyfr jednocześnie, co będzie wiązało się z kilkoma istotnymi zmianami w skrypcie w stosunku do poprzedniego wpisu. Stanowi to także dobry przykład do omówienia jednego z kluczowych elementów skutecznego uczenia czyli inicjalizacji wag w sieci.
Sieć konwolucyjna do rozpoznawania ciągu cyfr z obrazów
Post ten rozpoczyna serię, w której chciałbym przybliżyć tworzenie sieci neuronowych z wykorzystaniem biblioteki TensorFlow. Na początek przeanalizujemy architekturę sieci konwolucyjnej (ang. Convolutional Network) oraz przyjrzymy się warunkom, w jakich taka sieć będzie w stanie wyuczyć się rozpoznawania wzorca, jako przykład posłuży nam problem rozpoznawania ciągu cyfr z obrazu.
Continue readingJak wygenerować obrazy z ciągiem losowych cyfr w Pythonie
Praca z sieciami neuronowymi wymaga dużej ilości danych, mocy obliczeniowej oraz poprawnie zdefiniowanej architektury sieci. Wszystkie trzy komponenty składają się na dobre wyniki podczas fazy testowania. Jednak co możemy zrobić gdy nasza sieć daje nam wyniki, dalekie od naszych oczekiwań.
Sezon polowań na naukowca – współpraca nauki i biznesu
Powiązanie nauki z gospodarką. To hasło jest obecnie jednym z fundamentów polityki prowadzenia prac badawczych. Każdy większy biznes musi współpracować z naukowcem i każdy szanujący się naukowiec musi współpracować z biznesem, innej drogi ku oświeceniu nie ma. Forsowanie na siłę takiej współpracy rodzi szereg wypaczeń, sprowadza rolę naukowca zazwyczaj do wyrobnika. Liczne projekty z UE wymagają zaangażowania jednostki naukowej, stąd ostatnio mam wrażenie że rozpoczął się sezon polowań na naukowca.
Instalacja Tensorflow 0.9 CUDA 7.5 na ubuntu 16.04 i diabeł na ramieniu
Czy też tak macie? Diabeł siedzący na ramieniu szepcze wam do ucha „no weź zaktualizuj, przecież to zajmie chwilkę”. Tak właśnie zaczyna się historia instalacji biblioteki Tensorflow od Google pozwalająca na uczenie sieci neuronowych tzw. deep learning. Wszystko miało pójść gładko, jednak jej konfiguracja na ubuntu 16.04 jeszcze może przysporzyć wiele kłopotów.
MNIST i SVM klasyfikacja ręcznie pisanych cyfr
Klasyfikacja odręcznie pisanych cyfr z zbioru MNIST jest swojego rodzaju 'hello_world’ w dziedzinie uczenia maszynowego. Post ten prezentuje, w jaki sposób w Pythonie wczytać, wyświetlić oraz wykorzystać algorytm Support Vector Machines (SVM) do klasyfikacji obrazów przedstawiających ręcznie pisane cyfry.
Continue readingThe new begining
Zaczynam pisać bloga pełen nadziei, optymizmu, zapału oraz przyznam szczerze pewnych obaw.
Na początek chciałbym podzielić się z Wami motywacją, która spowodowała, że zacząłem myśleć na poważnie aby bezwstydnie przelewać swoje myśli i umiejętności na papier (ekran). Tak więc co mną kieruje?