mély tanulás a tüdőgyulladás kimutatására Röntgenképekből
end-to-end csővezeték tüdőgyulladás kimutatására Röntgenképekből
![](https://miro.medium.com/proxy/1*sE2lzbGqffqXZmHeooB0-g.jpeg)
a tüdőgyulladás kockázata sokak számára óriási, különösen a fejlődő országokban, ahol milliárdok szembesülnek energiaszegény és támaszkodnak szennyező energiaformákra. A WHO becslése szerint évente több mint 4 millió korai haláleset fordul elő háztartási légszennyezéssel kapcsolatos betegségek, beleértve a tüdőgyulladást is. Évente több mint 150 millió ember fertőződik meg tüdőgyulladással, különösen az 5 év alatti gyermekek. Az ilyen régiókban a probléma tovább súlyosbodhat az orvosi erőforrások és a személyzet hiánya miatt. Afrika 57 országában például 2,3 millió orvos és nővér hiányzik. Ezeknek a populációknak a pontos és gyors diagnózis mindent jelent. Garantálhatja a kezelésekhez való időben történő hozzáférést, és sok időt és pénzt takaríthat meg azok számára, akik már most is szegénységben élnek.
Ez a projekt a Kaggle-n tartott mellkasi röntgenfelvételek (tüdőgyulladás) része.
készítsen egy algoritmust, amely automatikusan azonosítja, hogy a beteg tüdőgyulladásban szenved-e vagy sem, a mellkas röntgenfelvételeinek megtekintésével. Az algoritmusnak rendkívül pontosnak kellett lennie, mert az emberek élete forog kockán.
![](https://miro.medium.com/max/60/1*J5wUMztRXZ_eHimMxULAnA.png?q=20)
környezet és eszközök
- scikit-learn
- keras
- numpy
- pandák
- matplotlib
adatok
az adatkészlet letölthető a Kaggle weboldaláról, amely itt található.
hol van a kód?
sok minden nélkül kezdjük el a kódot. A github teljes projektje itt található.
kezdjük az összes könyvtár és függőség betöltésével.
ezután megjelenítettem néhány normál és tüdőgyulladásos képet, hogy megnézzem, mennyire különböznek szabad szemmel. Hát nem sok!
![](https://miro.medium.com/max/60/1*kn4y_p8HHGYmsrCVy10mFQ.png?q=20)
ezután az adatkészletet három csoportra osztom-vonat, érvényesítés és tesztkészletek.
ezután írtam egy funkciót, amelyben elvégeztem néhány adatnagyítást, betápláltam a képzési és tesztkészleteket a hálózatba. A képekhez címkéket is készítettem.
az adatnagyítás gyakorlata hatékony módszer a képzési készlet méretének növelésére. A képzési példák kibővítése lehetővé teszi a hálózat számára, hogy diverzifikáltabb, de mégis reprezentatív adatpontokat “lásson” a képzés során.
ezután meghatároztam egy pár adatgenerátort: az egyik a képzési adatokhoz, a másik az érvényesítési adatokhoz. Az adatgenerátor képes betölteni a szükséges mennyiségű adatot (egy mini képcsomag) közvetlenül a forrásmappából, konvertálni őket képzési adatokká (a modellbe táplálva) és képzési célokká (attribútumok vektora — a felügyeleti jel).
kísérleteimhez általában a
batch_size = 64
értéket állítom be. Általában a 32 és 128 közötti értéknek jól kell működnie. Általában meg kell növelni/csökkenteni a tétel méretét szerint számítási erőforrások és a modell teljesítményét.
ezután meghatároztam néhány állandót a későbbi használathoz.
a következő lépés a modell elkészítése volt. Ezt a következő 5 lépésben lehet leírni.
- öt konvolúciós blokkot használtam, amelyek konvolúciós rétegből, max-poolingból és batch-normalizációból álltak.
- a tetején egy simított réteget használtam, amelyet négy teljesen összekapcsolt réteg követett.
- között is használtam a lemorzsolódásokat a túlzott illesztés csökkentésére.
- az aktiválási funkció Relu volt, kivéve az utolsó réteget, ahol Sigmoid volt, mivel ez egy bináris osztályozási probléma.
- Adam-et használtam optimalizálóként, a kereszt-entrópia pedig veszteségként.
edzés előtt a modell hasznos egy vagy több visszahívás meghatározásához. Nagyon praktikus, a következők: ModelCheckpoint
és EarlyStopping
.
- ModelCheckpoint: amikor a képzés sok időt igényel a jó eredmény eléréséhez, gyakran sok iterációra van szükség. Ebben az esetben jobb, ha a legjobban teljesítő modell másolatát csak akkor menti el, ha a mutatókat javító korszak véget ér.
- EarlyStopping: néha az edzés során észrevehetjük, hogy az általánosítási rés (azaz az edzés és az érvényesítési hiba közötti különbség) csökkenni kezd, ahelyett, hogy csökkenne. Ez a túltöltés tünete, amely sokféleképpen megoldható (a modell kapacitásának csökkentése, a képzési adatok növelése, az adatok bővítése, a szabályozás, a lemorzsolódás stb.). Gyakran praktikus és hatékony megoldás az edzés leállítása, amikor az általánosítási rés egyre rosszabb.
![](https://miro.medium.com/max/60/1*2zD7wwIwhIrHdr8F4urF2w.png?q=20)
korai leállítás
ezután 10 korszakra képeztem a modellt 32-es tételmérettel. Felhívjuk figyelmét, hogy általában a nagyobb kötegméret jobb eredményeket ad, de a nagyobb számítási terhek rovására. Egyes kutatások azt is állítják, hogy van egy optimális tételméret a legjobb eredmény érdekében, amelyet egy kis idő befektetésével lehet megtalálni hiper-paraméter hangolás.
vizualizáljuk a veszteséget és a pontosságot.
![](https://miro.medium.com/max/60/1*aNhCiZ5wrjKjqUG_JD6DwQ.png?q=20)
eddig olyan jó. A modell konvergál, ami megfigyelhető a veszteség csökkenéséből és a validációs veszteségből a korszakokkal. Szintén képes elérni a 90% – os érvényesítési pontosságot mindössze 10 korszakban.
ábrázoljuk a zavartsági mátrixot, és kapjunk néhány más eredményt is, mint a pontosság, a visszahívás, az F1 pontszám és a pontosság.
CONFUSION MATRIX ------------------
]
TEST METRICS ----------------------
Accuracy: 91.02564102564102%
Precision: 89.76190476190476%
Recall: 96.66666666666667%
F1-score: 93.08641975308642
TRAIN METRIC ----------------------
Train acc: 94.23
a modell 91,02% – os pontosságot képes elérni, ami a használt adatok méretét figyelembe véve elég jó.
következtetések
bár ez a projekt messze nem teljes, de figyelemre méltó, hogy a siker a mély tanulás ilyen változatos valós problémák. Megmutattam, hogyan lehet osztályozni a pozitív és negatív tüdőgyulladásos adatokat egy röntgenkép-gyűjteményből. A modell a semmiből készült, amely elválasztja más módszerektől, amelyek nagymértékben támaszkodnak az átviteli tanulási megközelítésre. A jövőben ez a munka kiterjeszthető a tüdőrákból és tüdőgyulladásból álló röntgenfelvételek kimutatására és osztályozására. A tüdőrákot és tüdőgyulladást tartalmazó röntgenképek megkülönböztetése az utóbbi időben nagy kérdés volt, és a következő megközelítésünk ennek a problémának a kezelése.