Must read – lista publikacji o sieciach konwolucyjnych 2016

Do wpisu zmotywowało mnie kilka osób z Instagram’a oraz Facebook’a, pytając o moją listę publikacji, które przeczytałem, czytam lub mam zamiar przeczytać. Chciałbym się z Wami podzielić tylko tymi, które przeczytałem w 2016 roku i które uważam za istotne i dobrze napisane.

Pierwotnie miałem zamiar opisać wszystkie publikacje jednak w trakcie pisania zorientowałem się, że jest ich zbyt dużo na jeden wpis. Postanowiłem zawęzić tę listę tylko do tych związanych z sieciami konwolucyjnymi, w kolejnym przedstawię listę związaną z rekurencyjnymi sieciami neuronowymi.

[bibshow file=https://ksopyla.com/wp-content/uploads/2017/02/deeplearning_publications2016.txt show_links=1 group=year group_order=desc]

Lista publikacji wprowadzających do Convolutional Networks

Zanim zaczniecie zagłębiać się w listę, chciałbym przytoczyć jedną moim zdaniem bardzo wartościową publikację. Jest ona moim punktem wyjścia do zgłębiania kolejnych artykułów,  obecnie wałkuję ją w kółko.

Recent Advances in Convolutional Neural Networks [bibcite key=DBLP:journals/corr/GuWKMSSLWW15] – jest to artykuł podsumowujący ostatnie 4 lata prac z dziedziny deep learning. W rozdziale 2 znajdziecie wprowadzenie do ConvNet wraz krótkim opisem podstawowych komponentów sieci. Natomiast rozdział 3 „Improvements on CNNs” – zawiera opis architektur sieci neuronowych (AlexNet, VGG, ResNet, Inception ipt). Opisuje także zestawienie najnowszych technik wspomagających uczenie (deconvolution, max pooling, Relu, Elu, dropout, Xavier initialization, batch normalization itp.).  Wart przeczytania jest także rozdział 5 „Aplications of CNNs” pokazujący jak szerokie zastosowanie znalazły sieci konwolucyjne. Autorzy poświęcili oddzielne podrozdziały opisujące wykorzystanie convnets w :

  • Image classification
  • Object detection
  • Object tracking
  • Pose estimation
  • Text detection and recognition
  • Action recognition
  • Scene labeling
  • Speech Processing
  • Natural language processing

Tak naprawdę to mógłby skończyć wpis i resztę publikacji wyciągnęlibyście z referencji, ale mam nadzieję, że mój komentarz uznacie za wartościowy.

Lista publikacji:

Poniżej moja lista publikacji, które przeczytałem w 2016 związana z tematem sieci neuronowych. Tak jak zaznaczyłem na wstępie, prezentuję tutaj tylko te najbardziej wartościowe (wedle mojej skromnej opinii). Lista ułożona jest według przydatności, dla osób które wgryzają się w temat.

  1. Recent Advances in Convolutional Neural Networks [bibcite key=DBLP:journals/corr/GuWKMSSLWW15]
  2. Very Deep Convolutional Networks for Large-Scale Image Recognition [bibcite key=DBLP:journals/corr/SimonyanZ14a] – publikacja w zwarty sposób prezentuje architekturę VGG. Jej nieskomplikowana architektura oraz skuteczność spowodowały że jest jedną z bardziej popularnych oraz łatwych w implementacji. W mojej ocenie zawsze warto zacząć od tej architektury i zobaczyć jakie daje wyniki. Jako pierwsza praca pokazała że filtry 3×3 połączone ze sobą są wystarczające.
  3. Deep Residual Learning for Image Recognition [bibcite key=DBLP:journals/corr/HeZRS15] – publikacja, której idea bardzo przemawia do mnie, architektura w której mamy połączenia przeskakujące daną warstwę w sieci jakoś intuicyjnie kojarzą mi się z architekturą naszego mózgu (nie wiem skąd to wziąłem). Dodanie takich połączeń pozwoliło na uczenie bardzo dużych modeli ok 152 warstw w sieci. Autorzy w 2015 roku wygrali konkusy ILSVRC oraz COCO
  4. Imagenet classification with deep convolutional neural networks [bibcite key=Krizhevsky_imagenetclassification] – Można by powiedzieć, że jest to już klasyczna publikacja, od niej wszystko się zaczęło. Przedstawia architekturę AlexNet. Warto przeczytać aby mieć odpowiedni kontekst oraz móc porównać jak z czasem ewoluowały poszczególne architektury. Gdzie z czasem zaczęto odchodzić od różnej wielkości filtrów (7×7,5×5), które w pracy Alexa stanowiły trzon sieci.
  5. Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification [bibcite key=DBLP:journals/corr/HeZR015] – publikacja, która wprowadza PReLU – parametric rectified linear units. Jednak nie to dla mnie jest najbardziej wartościowe w tej publikacji. Pan Kaiming He wraz z kolegami wprowadzają pewne reguły jak należy poprawnie inicjalizować parametry sieci,  podają konkretny wzór do zastosowania.
  6. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift [bibcite key=DBLP:journals/corr/IoffeS15] – wprowadza technikę batch normalization, wspomagającą uczenie i zbieżność sieci. Więc jeżeli macie problemy z wyuczeniem sieci można spróbować zastosować batch normalization. Przyznam się, że jeszcze nie zastosowałem tej techniki i nie wiem czy działa czy nie. Niektórzy autorzy sugerują, że nie daje za wiele. Obecnie sam się zmagam z siecią, która nie chce się wyuczyć więc mam teraz sposobność aby tę technikę zastosować, dam znać czy działa.
  7. Going Deeper with Convolutions [bibcite key=DBLP:journals/corr/SzegedyLJSRAEVR14] – pierwsza publikacja wprowadzająca Inception module, jej głównym wkładem było odpowiednie zastosowanie połączenia warstw konwolucyjnych w celu zminimalizowania ilości obliczeń i parametrów przy jednoczesnym zachowaniu mocy dyskryminacyjnej sieci.  Zastosowali filtry o rozmiarach 1×1, 3×3 i 5×5 w równoległych ścieżkach w sieci wraz z warstwą łączącą poszczególne filtry. Dla mnie jest to jedna z najtrudniejszych architektur do zrozumienia i zaimplementowania. Niestety ciągle nie rozumiem do końca jak to wszystko razem działa. Chyba muszę jeszcze raz przeczytać tę publikację.
  8. Network in Network [bibcite key=DBLP:journals/corr/LinCY13] – przedstawia koncept sieci w sieci, zamiast warstwy konwolucyjnej zastosowali mini sieć neuronową, którą podobnie jak w tradycyjnej warstwie konwolucyjnej skanują część obrazu i działa jako filtr. Raportują, że zwiększa to dokładność sieci na zbiorach MNIST, CIFAR i SVHN.
  9. Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs) [bibcite key=DBLP:journals/corr/ClevertUH15] – tutaj opis jest prosty, publikacja wprowadza nową funkcję aktywacji ELU, wykorzystującą funkcję eksponencjalną. Ma ona dwie pozytywne cechy: z jednej strony dla wartości dodatnich zachowuje się podobnie jak ReLU. Z drugiej dla wartości mniejszych od zera jej gradient zwraca ujemne wartości, co jak sugerują autorzy pozwala na osiągnięcie efektów takie jak daje batch normalization. Sądzę, że jest to dobry zamiennik do ReLU. Niedużym kosztem obliczeniowym zapewnia nam lepszą normalizację wyjścia z poszczególnych węzłów. Autorzy sugerują, że skutkuje szybszym uczeniem sieci.
  10. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks [bibcite key=DBLP:journals/corr/RenHG015] – jeżeli interesuje was detekcja obiektów na obrazach, to powinniście przeczytać tę publikację. Jest ona rozszerzeniem idei z poniższej publikacji. Łączy ona w jedną sieć dwa etapy: poszukiwania kandydatów regionów w obrazie (okien) wraz z klasyfikacją tego co się w nim znajduje.
  11. Fast R-CNN [bibcite key=DBLP:journals/corr/Girshick15] – prezentuje wykorzystanie convnets do detekcji obiektów na obrazach. Prezentuje dwa oddzielne etapy: poszukiwania potencjalnych regionów, w których może być obiekt. Oraz rozpoznawania tego co znajduje się w danym oknie.
  12. Fully Convolutional Networks for Semantic Segmentation [bibcite key=DBLP:journals/corr/ShelhamerLD16] – autorzy stworzyli sieć, która służy do segmentacji obrazu. Wprowadzają pojęcie w pełni połączonej sieci konwolucyjnej. Zaletą tej sieci jest to, że wejście sieci nie jest z góry określone, możemy przekazać jej obrazy o dowolnej wielkości. Wyniki zaprezentowane są na zbiorze Pascal VOC.
  13. ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation [bibcite key=DBLP:journals/corr/PaszkeCKC16] – sieć służąca do segmentacji obrazu z naciskiem na przetwarzanie w czasie rzeczywistym. Sieć ma być prosta i szybka tak aby można było ją uruchomić na urządzeniu mobilnym. Zadanie jakie postawili sobie autorzy nie polega na osiągnięciu jak największej dokładności. Poszli oni na pewien kompromis: jak najlepsza dokładność przy zmniejszonych zasobach obliczeniowych.

Podsumowanie

Powyższ publikacje pozwoliły mi nauczyć się wielu technik, które pozwalają na uczenie sieci znacznie skuteczniej i efektywniej. Wybierałem je po kątem przydatności, aktualności ale także czytelności i przystępności w sposobie prezentowania materiału.

Edit 1.03.2017 Po opublikowaniu tego wpisu, jedna z osób na profilu FB podrzuciła mi linka do listy najlepszych publikacji z dziedziny deep leraning, polecam część publikacji się pokrywa ale jest wiele których sam nie czytałem.

 

2 Comments Must read – lista publikacji o sieciach konwolucyjnych 2016

Ciekawe, wartościowe, podziel się proszę opinią!

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.