głębokie uczenie do wykrywania zapalenia płuc ze zdjęć rentgenowskich
rurociąg od końca do końca do wykrywania zapalenia płuc ze zdjęć rentgenowskich
utknął za paywall? Kliknij tutaj, aby przeczytać całą historię z moim przyjacielem Link!
ryzyko zapalenia płuc jest ogromne dla wielu, szczególnie w krajach rozwijających się, gdzie miliardy borykają się z ubóstwem energetycznym i polegają na zanieczyszczających formach energii. WHO szacuje, że ponad 4 milionów przedwczesnych zgonów występuje rocznie z powodu chorób związanych z zanieczyszczeniem powietrza w gospodarstwach domowych, w tym zapalenia płuc. Ponad 150 milionów ludzi zaraża się zapaleniem płuc rocznie, zwłaszcza dzieci poniżej 5 roku życia. W takich regionach problem może być jeszcze bardziej pogłębiony ze względu na brak zasobów medycznych i personelu. Na przykład w 57 krajach Afryki istnieje luka 2,3 miliona lekarzy i pielęgniarek. Dla tych populacji dokładna i szybka diagnoza oznacza wszystko. Może zagwarantować szybki dostęp do leczenia i zaoszczędzić bardzo potrzebny czas i pieniądze osobom, które już doświadczają ubóstwa.
Ten projekt jest częścią zdjęć rentgenowskich klatki piersiowej (zapalenie płuc) wykonanych na Kaggle.
Zbuduj algorytm, aby automatycznie zidentyfikować, czy pacjent cierpi na zapalenie płuc, czy nie, oglądając zdjęcia rentgenowskie klatki piersiowej. Algorytm musiał być niezwykle dokładny, ponieważ stawką jest życie ludzi.
środowisko i narzędzia
- scikit-learn
- keras
- numpy
- pandy
- matplotlib
dane
zbiór danych można pobrać ze strony Kaggle, którą można znaleźć tutaj.
gdzie jest kod?
bez zbędnych ceregieli, zacznijmy od kodu. Kompletny projekt na GitHubie można znaleźć tutaj.
zacznijmy od załadowania wszystkich bibliotek i zależności.
następnie wyświetliłem kilka normalnych zdjęć, aby zobaczyć, jak bardzo różnią się one gołym okiem. Cóż, niewiele!
następnie wyszkoliłem model na 10 epok z wielkością partii 32. Należy pamiętać, że zwykle większy rozmiar partii daje lepsze wyniki, ale kosztem większego obciążenia obliczeniowego. Niektóre badania twierdzą również, że istnieje optymalny rozmiar partii dla najlepszych wyników, które można znaleźć, inwestując trochę czasu na strojenie hiper-parametrów.
wizualizujmy wykresy strat i dokładności.
jak na razie dobrze. Model jest zbieżny, co można zaobserwować ze spadku strat i strat walidacyjnych z epokami. Jest również w stanie osiągnąć 90% dokładność walidacji w zaledwie 10 epokach.
narysujmy macierz zamieszania i uzyskajmy Inne wyniki, takie jak precyzja, przypomnienie, wynik F1 i dokładność.
CONFUSION MATRIX ------------------
]
TEST METRICS ----------------------
Accuracy: 91.02564102564102%
Precision: 89.76190476190476%
Recall: 96.66666666666667%
F1-score: 93.08641975308642
TRAIN METRIC ----------------------
Train acc: 94.23
model jest w stanie osiągnąć dokładność 91.02%, co jest dość dobre, biorąc pod uwagę rozmiar używanych danych.
wnioski
chociaż ten projekt jest daleki od zakończenia, ale to niezwykłe, aby zobaczyć sukces głębokiego uczenia się w tak różnorodnych rzeczywistych problemach. Zademonstrowałem, jak klasyfikować pozytywne i negatywne dane dotyczące zapalenia płuc z kolekcji zdjęć rentgenowskich. Model został wykonany od podstaw, co odróżnia go od innych metod, które w dużym stopniu opierają się na podejściu do uczenia transferowego. W przyszłości praca ta może zostać rozszerzona o wykrywanie i klasyfikację obrazów rentgenowskich obejmujących raka płuc i zapalenie płuc. Rozróżnianie obrazów rentgenowskich zawierających raka płuc i zapalenie płuc było w ostatnim czasie dużym problemem, a naszym następnym podejściem powinno być rozwiązanie tego problemu.