Prototyp badawczy AI do wspierania diagnostyki onkologicznej, który ma działać lokalnie na urządzeniu. Poniżej to, co zostało zmierzone w repozytorium, razem z tym, co nie wyszło.
dane publiczne TCGAwalidacja po placówkachnie jest wyrobem medycznym
SKAN · fragmenty 224×224ilustracja
Ilustracja generowana w kodzie, nie prawdziwy preparat i nie wynik modelu. Najedź kursorem na fragment.
72placówek w danych
2 163fragmentów obrazu
0,829trafność, test po placówkach
−51 %parametrów, kosztem trafności
9,3×szybciej w Core ML
3metody oceny pewności
Jak to działa
Od preparatu do fragmentów i pewności
Preparat jest cięty na fragmenty 224×224 px. Każdy dostaje klasę (rak piersi albo płuca) i ocenę pewności. Przy małej pewności model powinien się wstrzymać, tu oznaczone kółkiem. Przeciągnij suwak.
przedpo: klasa i pewność
rak piersirak płuca○ wstrzymanie przy niskiej pewności
Ilustracja. Który fragment dostał jaki kolor i które mają kółko, jest wylosowane, to nie jest wynik modelu.
01 · Liczby
Co jest zmierzone
Każda liczba ma źródło w skrypcie z repozytorium. Kliknij „skąd to”, żeby zobaczyć które.
72 · 74 · 2163
Placówki, preparaty i fragmenty obrazu (224×224 px) z publicznego archiwum TCGA, rak piersi i płuca. To komplet placówek dostępnych w tym archiwum dla tych dwóch nowotworów.
data/tcga/download.py
data/tcga/extract_patches.py
0,93 · AUC 0,96
Trafność i AUC na poziomie całego preparatu (średnia z około 30 fragmentów, 74 preparaty, walidacja po placówkach). Na pojedynczym fragmencie AUC wynosi 0,91. Mała próba: przedział ufności trafności 0,87 do 0,99.
research/mulakan/baseline_metrics.py
0,829 ± 0,040
Trafność rozpoznania typu tkanki. Średnia z 5 grup placówek, z których każda w całości trafia do testu i nie była widziana przy uczeniu.
research/mulakan/cross_validate.py
−51 %
Parametrów modelu (11,2 mln → 5,5 mln). Na 30 placówkach trafność się nie zmieniła (0,846 → 0,849), ale na pełnych 72 przycięcie kosztuje około 5,5 punktu: 0,840 przed i 0,785 po.
research/mulakan/mulakan_v0_pruned.py
9,3×
Szybciej po uruchomieniu w Core ML niż w PyTorch: 7,0 ms → 0,75 ms na fragment obrazu. Komputer Mac, nie telefon.
research/mulakan/coreml_benchmark.py
5 z 5
Grup placówek, w których model jest mniej pewny przy błędnych odpowiedziach niż przy trafnych. Dotyczy trzech metod oceny pewności i pełnych 72 placówek.
calibration_benchmark.py
temperature_scaling.py
deep_ensemble_calibration.py
To jest
Działający łańcuch od danych, przez model i ocenę pewności, po redukcję rozmiaru.
Wyniki z walidacji, w której do testu odkładana jest cała placówka, nie pojedyncze obrazy.
Pełny dziennik eksperymentów, także tych, które nie wyszły.
Tego nie ma
Produkt kliniczny ani wyrób medyczny w rozumieniu MDR.
Wykrywanie chorób rzadkich. Zadanie testowe to odróżnienie raka piersi od raka płuca na danych publicznych.
Pomiar na telefonie. Szybkość mierzono na komputerze Mac.
02 · Jak mierzymy
Cała placówka zostaje w teście
Preparaty z jednej placówki mają wspólny sposób barwienia i skanowania. Gdyby fragmenty z tej samej placówki trafiły i do uczenia, i do testu, model mógłby „rozpoznawać” placówkę zamiast nowotworu. Dlatego do testu odkładamy całe placówki.
rak piersi (39 placówek)rak płuca (33 placówek)każdy kwadrat to jedna placówka
Wybierz grupę. Jej placówki w danej rundzie są wyłącznie testem, model uczy się na pozostałych czterech.
Czy to ma znaczenie? Test A/B
Ten sam model, trzy sposoby podziału, po 20 losowych przydziałów każdy. Oś zaczyna się od poziomu losowego (0,5).
A Losowo po fragmentachte same placówki w treningu i teście (przeciek)
0,915 ± 0,003
B Po preparaciecałe preparaty w jednej grupie
0,823 ± 0,012
C Po placówcecałe placówki w jednej grupie, nasz protokół
0,820 ± 0,010
Podział po preparacie i po placówce dają to samo, bo w danych jest 74 preparatów i 72 placówki (tylko dwie placówki mają po dwa preparaty). Prawdziwy skok jest przy losowaniu fragmentów: +9,4 punktu (przedział 9,0 do 9,9), czyli sam przeciek zawyża wynik bardziej niż różnica między modelami. Ponadto liczba „najsłabszej grupy” zależy od losowego przydziału: w tych 20 przydziałach wynosiła od 0,70 do 0,83.
Podział po obrazach
Zawyża wynik
Model widzi inne fragmenty z tej samej placówki i zapamiętuje jej cechy techniczne.
Podział po placówkach
Mierzy to, o co chodzi
Test na placówkach, których model nigdy nie widział, czyli przybliżenie wdrożenia w nowym szpitalu.
03 · Stabilność
Więcej placówek, mniejszy rozrzut
Ten sam model i ta sama metoda, tylko zmieniamy liczbę placówek w danych. Każda kropka to jedna z 5 grup testowych. Kliknij kolumnę.
72placówek w danych 74 preparatów · 2163 fragmentów · 28.07.2026
Średnia
0,829
Odchylenie
0,040
Najsłabsza grupa
0,757
Najlepsza grupa
0,874
W porównaniu z 52 placówkami średnia wzrosła o 0,011, a rozrzut zmalał z 0,045 do 0,040.
Uwaga: przy 8 placówkach średnia wynosiła 0,716 z rozrzutem 0,128, czyli wynik zależał od tego, które placówki wylosowano. Dopiero przy 52 i 72 placówkach kolumny się stabilizują. Przy 72 najsłabsza grupa nadal ma 0,757.
04 · Pewność
Czy model wie, kiedy się myli?
Dobra ocena pewności oznacza, że model jest mniej pewny przy błędnych odpowiedziach niż przy trafnych. Zielona kropka to średnia pewność przy trafnych, czerwona przy błędnych. Im dalej zielona na prawo od czerwonej, tym lepiej.
przy odpowiedziach trafnychprzy odpowiedziach błędnych
Przy 14 placówkach w danych
Grupa placówek z najniższą trafnością w tym eksperymencie.
Dropout z wielokrotnym losowaniem trafność w tej grupie 0,430 · placówki 5L, AC, AO
0,8590,929
Poprawny kierunekróżnica +0,070
Skalowanie temperaturą (pewność surowa) trafność w tej grupie 0,686 · placówki 5L, AC, AO
0,9030,944
Poprawny kierunek, odstęp małyróżnica +0,041
Zespół 3 modeli trafność w tej grupie 0,709 · placówki 5L, AC, AO
0,9240,904
Odwrócone: pewniejszy przy błędachróżnica −0,020
ECE: dropout 0,073 · temperatura 0,043 → 0,029 · zespół 0,085
Przy 30 placówkach w danych
Grupa placówek z najniższą trafnością w tym eksperymencie.
Dropout z wielokrotnym losowaniem trafność w tej grupie 0,728 · placówki 05, 44, 64, 97, C8, OL
0,8990,939
Poprawny kierunek, odstęp małyróżnica +0,040
Skalowanie temperaturą (pewność surowa) trafność w tej grupie 0,694 · placówki 69, 86, A2, E9, PL
0,8810,921
Poprawny kierunek, odstęp małyróżnica +0,040
Zespół 3 modeli trafność w tej grupie 0,728 · placówki 05, 44, 64, 97, C8, OL
0,8440,906
Poprawny kierunekróżnica +0,062
ECE: dropout 0,082 · temperatura 0,124 → 0,084 · zespół 0,046
Przy 72 placówkach w danych
Grupa placówek z najniższą trafnością w tym eksperymencie.
Dropout z wielokrotnym losowaniem trafność w tej grupie 0,782 · grupa 3 z 5
0,8880,953
Poprawny kierunekróżnica +0,065
Skalowanie temperaturą (pewność surowa) trafność w tej grupie 0,744 · grupa 5 z 5
0,8290,925
Poprawny kierunekróżnica +0,096
Zespół 3 modeli trafność w tej grupie 0,769 · grupa 5 z 5
0,7550,896
Poprawny kierunekróżnica +0,141
ECE: dropout 0,099 · temperatura 0,102 → 0,066 · zespół 0,068
Zespół 3 modeli przy 14 placówkach w najtrudniejszej grupie jest odwrócony: pewność przy błędach (0,924) jest wyższa niż przy trafnych (0,904). Przy 30 placówkach kierunek jest poprawny we wszystkich trzech metodach, ale odstęp w najtrudniejszej grupie bywa mały (0,04).
Predykcja konforemna: pokrycie 0,910 przy celu 0,900, ale w trudnej grupie tylko 0,839.
Wstrzymanie się od odpowiedzi
Odrzuć połowę najmniej pewnych, a trafność rośnie
Model odpowiada tylko tam, gdzie jest dość pewny, resztę oddaje człowiekowi. Na 72 placówkach, na predykcjach spoza próby (placówki niewidziane przy uczeniu), trafność rośnie z 0,83 do 0,94 przy odpowiedzi na połowie fragmentów.
wszystkie placówki5 grup osobnokreskowana: odrzucanie idealne (tylko błędy)
Każda z 5 grup rośnie, także najtrudniejsza (0,757 → 0,872). Cena: przy 50% pokrycia połowę fragmentów trzeba obejrzeć człowiekowi. To pomiar prostego modelu (zamrożony ResNet18 i regresja logistyczna) z surową pewnością. Nie porównywaliśmy tu jeszcze metod z sekcji o pewności.
Na co patrzy model
Mapy uwagi na losowych fragmentach
Mapa pokazuje, które okolice fragmentu najmocniej przemawiały za wybraną klasą (ciepłe kolory). Fragmenty wylosowano, nie wybierano: trzy z poprawną odpowiedzią i trzy z błędną. Kliknij fragment, żeby przełączyć obraz i mapę.
Mapa pokazuje, na co patrzy model, a nie czy ma rację. Przy błędach widać, że uwaga też bywa skupiona i pewna, więc sama mapa nie zastąpi oceny pewności. Fragmenty pochodzą z publicznych danych TCGA (otwarty dostęp), bez oznaczeń pacjentów i preparatów. Przy pokazywaniu publicznie warto jeszcze sprawdzić warunki GDC.
05 · Rozmiar i szybkość
Mniejszy nie znaczy szybszy
Zadanie z grantu zakłada działanie na urządzeniu. Sprawdziliśmy kilka dróg zmniejszania modelu i dwie z nich nie dały nic albo pogorszyły wynik.
Czas na jeden fragment obrazu
PyTorch (punkt odniesienia)
7,0 ms
MobileNetV3-Small w PyTorch12× mniej parametrów, a 4× wolniej
29,2 ms
Kwantyzacja INT8 w PyTorchplik 4× mniejszy, ale wolniej
10,6 ms
Core ML
0,70 ms
Core ML, natywny Swiftto samo bez pośrednictwa Pythona
0,93 ms
Core ML, model przycięty
0,44 ms
Komputer Mac z Apple Silicon. Telefon i tablet nie były mierzone.
Co nie zadziałało
MobileNetV3-Small ma 12 razy mniej parametrów, ale w PyTorch był 4 razy wolniejszy (29 ms wobec 7 ms).
Kwantyzacja dynamiczna nic nie zmieniła. Statyczna INT8 zmniejszyła plik z 42,7 do 10,7 MB, ale model działał wolniej (10,6 ms wobec 7,0 ms).
Przyspieszenie dało dopiero uruchomienie w Core ML. Wcześniejsze wolne wyniki wynikały ze sposobu pomiaru w PyTorch.
06 · Architektury
Sześć podejść, jeden punkt odniesienia
Pionowa kreska to najprostsze rozwiązanie (0,829). Każde inne podejście ma sens tylko wtedy, gdy je pobije albo da coś innego, na przykład mniejszy rozmiar. Oś zaczyna się od poziomu losowego, 0,5.
0,5 (los)1,0
Ten sam model co poniżej, ale bez przycinania. Nieznacznie przewyższa punkt odniesienia (0,840 wobec 0,829), przy znacznie większej liczbie uczonych parametrów.
11,18 mln · 72 placówek
Najprostsze rozwiązanie: gotowe cechy z ImageNet i jedna warstwa liniowa. Każde inne podejście trzeba z nim porównywać.
1 tys. uczonych · 72 placówek
Własna warstwa KAN (B-spline) zamiast warstwy liniowej. Głowica ma 74 tys. parametrów wobec 1 tys. dla liniowej, więc to jeszcze nie redukcja.
74 tys. uczonych, 11,2 mln zamrożonych · 72 placówek
Wagi z ImageNet, przycięte o 30 % kanałów i douczone. Na 30 placówkach 0,849, na 72 już tylko 0,785. Ten sam model bez przycinania ma na 72 placówkach 0,840, więc spadek wynika z przycinania.
5,46 mln · 72 placówek
121 razy mniej parametrów niż ResNet18. Uczenie od zera na ok. 2 tys. fragmentów nie dorównuje wagom z ImageNet.
92 tys. · 72 placówek
Gorzej niż bez wstępnego uczenia. Zdjęcia ogólne najpewniej nie pasują do obrazów tkanki. Pojedyncze uruchomienie.
92 tys. · 72 placówek
Wszystkie wyniki na tych samych 72 placówkach i tej samej walidacji. Ten sam v0 przed przycięciem ma 0,840, po przycięciu 0,785, więc redukcja rozmiaru kosztuje tu około 5,5 punktu trafności.
07 · Zadania grantu
Gdzie jesteśmy względem planu
Status dotyczy wyłącznie tego repozytorium, nie realizacji całego projektu. Zadania prowadzone gdzie indziej są oznaczone jako poza zakresem.
Z1Pierwszy krok
Redukcja modeli MLP do sieci MuLaKAN (KAN)
Własna warstwa KAN (B-spline) i głowica KAN na zamrożonym ResNet18, trafność 0,794. Ma 74 tys. parametrów wobec 1 tys. dla głowicy liniowej, więc to jeszcze nie redukcja.
Z2 · Z3Brak
Ocena i optymalizacja dyspersji MLP wobec KAN
Brak. Są pomiary niepewności innymi metodami.
Z4 · Z5 · Z10Szkic dokumentów
Personalizacja z zabezpieczeniami, generalizacja, anonimizacja
Brak implementacji. Jest szkic analizy ryzyka PII i polityki danych oraz plan narzędzi z grantu (ARX, Pryv, DataFog).
Z6Brak
Reprezentacja wiedzy, język dziedzinowy
Brak.
Z7Eksperymenty
Redukcja i integracja w środowisku docelowym
Eksperymenty z przycinaniem, kwantyzacją i Core ML, bez sieci KAN.
Z8 · Z11Poza zakresem
Interfejsy użytkownika (partner krajowy)
Poza tym repozytorium.
Z9 · Z12Czeka na partnera
Testy w środowisku klinicznym (partner zagraniczny)
Wymagają partnera. Umowa i zakres danych do potwierdzenia.
Pilot
Rzadkie nowotwory: czy prosty model je rozpoznaje?
Do piersi i płuca dodaliśmy rzadkie nowotwory z TCGA (łącznie 7), po około 10 preparatów każdy, i powtórzyliśmy ten sam test z odkładaniem całych placówek. Wykres pokazuje, jaki odsetek fragmentów danego typu model rozpoznał poprawnie (czułość), z przedziałem ufności. Przy 9 klasach zgadywanie dałoby około 0,11.
BRCA Pierś · czułość 0,60LUAD Płuco (gruczolakorak) · czułość 0,54MESO Międzybłoniak · czułość 0,05UVM Czerniak błony naczyniowej oka · czułość 0,28CHOL Drogi żółciowe · czułość 0,16UCS Mięsak macicy · czułość 0,22KICH Nerka (chromofobowy) · czułość 0,36DLBC Chłoniak rozlany z dużych komórek B · czułość 0,19THYM Grasica · czułość 0,32
Ilustracje są schematyczne i rysowane programowo: pokazują, że typy tkanek mają inną strukturę (gruczoły, wrzecionowate komórki, pigment, arkusze limfocytów, zrazikowa budowa grasicy). To nie są prawdziwe preparaty ani dane pacjentów, a prawdziwa histologia jest bardziej zróżnicowana. Złote ramki symbolizują fragmenty 224 × 224 px wycinane przez skaner.
DLBC Chłoniak rozlany z dużych komórek B9 preparatów, 7 placówek · AUC 0,74
0,190,05 do 0,43
THYM Grasica10 preparatów, 10 placówek · AUC 0,72
0,320,18 do 0,47
Wniosek wprost: czułość dla rzadkich nowotworów waha się od 0,05 (międzybłoniak) do 0,36 (nerka (chromofobowy)), przy 0,57 dla piersi i płuca. Przedziały są szerokie, bo na klasę przypada 6 do 10 placówek, więc liczby są orientacyjne, a pojedyncza placówka może zmienić wynik. To nie jest wada metody pomiaru, tylko pokazuje, że przy tak małej liczbie preparatów ten sposób nie wystarcza. Potrzebne są inne podejścia: więcej danych, modele wstępnie uczone na tkankach, wykrywanie odstępstw.
Kontrola zaufania
Kiedy model nie powinien odpowiadać?
Model, który zawsze odpowiada, jest zły, gdy często się myli. Dlatego obudowaliśmy go czterema kontrolami: jakością fragmentu (ostrość, ilość tkanki), pewnością modelu, drugim, niezależnym modelem na innym koderze (musi wskazać tę samą klasę) oraz detektorem nieznanej tkanki. Każdy fragment dostaje jeden z trzech stanów: potwierdzony, niepewny albo odrzucony.
potwierdzone1666 fragmentów · trafność w tym stanie 0,61
40%
niepewne1743 fragmentów · trafność w tym stanie 0,23
42%
odrzucone762 fragmentów · trafność w tym stanie 0,36
18%
Wniosek wprost: wśród potwierdzonych fragmentów trafność rośnie z 0,41 do 0,61 (przedział 0,53 do 0,69), ale kosztem odpowiedzi na 40% fragmentów. Błędów, które mimo kontroli przeszły: 26%. Poprawnych odpowiedzi, które niesłusznie wstrzymano: 40%. Działa głównie zgoda drugiego modelu (trafność 0,61 przy zgodzie i 0,21 przy niezgodzie). Detektor nieznanej tkanki nie działa (AUROC 0,53, czyli losowo) i zostanie wymieniony. Warstwa nie ratuje trudnych klas: międzybłoniak ma około 1% czułości nawet wśród potwierdzonych, bo model jest tam pewny i się myli.
Poprawka po dokładniejszym teście: najlepszym sygnałem błędu okazała się pewność zespołu dwóch modeli (AUROC 0,71), a nie sama zgoda (0,65). Drugi detektor nieznanej tkanki (odległość do najbliższych sąsiadów) też nie działa (0,52). Na poziomie całego preparatu (uśrednienie fragmentów) trafność wynosi 0,57 (przedział 0,47 do 0,66, 143 preparatów), przy 0,46 na fragmentach. Pierś i płuco rozpoznajemy w 83% preparatów, a międzybłoniaka w 0%. Rzadkich klas mamy 7 do 10 preparatów, więc to są wyniki orientacyjne.
Co dalej
Dane na kolejne badania
Dziś używamy dwóch typów nowotworów i 74 preparatów. Publiczne archiwum TCGA udostępnia 11 901 preparatów w 32 typach nowotworów, czyli 30 kolejnych typów i 10 227 preparatów, których jeszcze nie ruszyliśmy.
BRCA Pierś użyte
1133
GBM Glejak wielopostaciowy
860
LGG Glejak niskiego stopnia
844
SARC Mięsaki
600
UCEC Trzon macicy
566
LUAD Płuco, gruczolakorak użyte
541
KIRC Nerka, jasnokomórkowy
519
THCA Tarczyca
519
LUSC Płuco, płaskonabłonkowy
512
SKCM Czerniak skóry
475
HNSC Głowa i szyja
472
COAD Jelito grube
459
BLCA Pęcherz moczowy
457
PRAD Prostata
449
STAD Żołądek
442
TGCT Jądro
390
LIHC Wątroba
379
KIRP Nerka, brodawkowaty
299
CESC Szyjka macicy
279
ACC Kora nadnerczy
227
PAAD Trzustka
209
PCPG Przyzwojaki i guzy chromochłonne
196
THYM Grasica
181
READ Odbytnica
166
ESCA Przełyk
158
KICH Nerka, chromofobowy
121
OV Jajnik
107
UCS Mięsak macicy
91
MESO Międzybłoniak
87
UVM Czerniak błony naczyniowej oka
80
DLBC Chłoniak rozlany z dużych komórek B
44
CHOL Drogi żółciowe
39
To plan, nie wyniki. Każdy typ to potencjalne osobne badanie, a kombinacji typów i zadań (rozpoznanie, wykrywanie odstępstw, ocena pewności) jest więcej niż typów. Nie wiemy jeszcze, czy metoda zadziała przy małej liczbie przykładów, to trzeba zmierzyć. Rzadkie nowotwory w TCGA mają dziesiątki preparatów i nie zastępują danych klinicznych o chorobach rzadkich, do których potrzebny jest partner kliniczny. Liczby: API GDC, 21.10.2026.
Plan
Najbliższe tygodnie
Dwie ścieżki spotykają się na wspólnym protokole oceny (72 placówki, punkt odniesienia 0,829). Podział jest propozycją do uzgodnienia, zadania i kryteria ukończenia są w repozytorium.
Ścieżka naukowa (zadanie Z1)
Głowica KAN dopasowana liczbą parametrów do głowicy liniowej i porównana z punktem odniesienia.
Notatka projektowa: jak redukować głębiej niż głowica (blok KAN, destylacja) i kiedy przestać.
Ocena pewności modelu KAN wobec czterech metod, które już mamy.
Metody dla rzadkich nowotworów (modele wstępnie uczone, mało przykładów, wykrywanie odstępstw).
Przegląd protokołu oceny z punktu widzenia recenzenta.
Ścieżka techniczna
Ziarna losowości we wszystkich skryptach i pomiar rozrzutu między uruchomieniami (5 ziaren).
Test obciążenia wyborem fragmentów: losowe kafelki zamiast pierwszych 30.
Automatyczne testy przy każdym wysłaniu zmian i aktualność dokumentacji.
Eksport warstwy KAN do Core ML i pomiar na prawdziwym telefonie lub tablecie.
Dane: dokończyć trzy przerwane pobrania, rozszerzyć rzadkie klasy.
Kamienie milowe: do 29.10 uruchomienie kodu i odtworzenie wyniku 0,829 na danych z paczki oraz ziarna w skryptach; do 05.11 głowica KAN porównana z punktem odniesienia, tabela rozrzutu i notatka o redukcji głębszej; w połowie listopada decyzja, jak daleko iść z redukcją KAN.
08 · Na spotkanie
Co trzeba ustalić
Kto i gdzie prowadzi prace nad architekturą KAN (Z1 do Z3) i jak podłączamy do nich to, co już jest: dane z 72 placówek, walidację po placówkach i pomiary niepewności.
Status umowy z partnerem klinicznym (Ainostics GmbH) i docelowy typ danych. Im wcześniej, tym łatwiej zaplanować anonimizację i zgody etyczne.
Czy następny krok to redukcja całej sieci do KAN (większa i kosztowniejsza praca), czy najpierw dopracowanie tego, co już działa.