Szukając nowych ścieżek rozwoju jako programista zacząłem ostatnio eksperymentować trochę w temacie głębokich sieci neuronowych. Nie mam jakiegoś zacięcia w kierunku matematyki czy pracy jako naukowiec, bardziej patrzę na to jako "inny sposób programowania". Przerobiłem parę kursów, udało mi się wytrenować parę prostszych sieci neuronowych, natomiast nie bardzo mam pomysł w jaki sposób tę naukę kontynuować. W odróżnieniu od nauki "tradycyjnego" programowania, gdzie stosunkowo niewielkim kosztem czasowym można osiągnąć coś oryginalnego (typu aplikację rozwiązującą jakiś problem, pozwalającą zorganizować dane w jakiś konkretny sposób) i stosunkowo łatwo znaleźć następny cel, kamień milowy w rozwoju, o tyle projektowanie modeli w TF czy PyTorch mam wrażenie pod tym względem z góry skazane jest na porażkę. Nieważne jakie modyfikacje w modelu wprowadzę, zawsze okazuje się, że istnieje już gdzieś lepszy, stworzony przez kogoś kto ma więcej czasu, zasobów sprzętowych i danych. Mam wrażenie że przeciętny model (typu jakiś Resnet, Efficientnet) ma zwykle dużo szersze i bardziej ogólne zastosowanie niż przeciętny kod źródłowy. W moich projektach zawsze koniec końców okazuje się, że bardziej opłaca się skorzystać z gotowej, skopiowanej skądś architektury, albo gotowego, wytrenowanego modelu poprzez zewnętrze API na jakimś Azure niż faktycznie napisać taką sieć samemu: bo jest zawsze lepsza.
Stąd moje pytanie: czy taki przeciętny człowiek jak ja: bez zasobów, zespołu, serwerowni pełnej kart graficznych i korporacji za plecami jest w stanie coś zdziałać na tym polu? Czy zdarzyło się komuś z was pisać kod z użyciem PyTorch'a lub Tensorflow jednocześnie będąc "zwykłym" programistą, a nie osobą na stanowisku typu "Data Scientist"? Czy może to ja źle podchodzę do tematu i to nie o projektowanie nowych architektur tu chodzi?