Z góry przepraszam za to, że wciąż przyspieszam. Próbuję zrozumieć zalety i wady używania tanh (mapa -1 do 1) vs. sigmoid (mapa 0 do 1) dla mojej funkcji aktywacji neuronu. Z mojego czytania zabrzmiało to jak drobna rzecz z marginalnymi różnicami. W praktyce dla moich problemów uważam, że sigmoid jest łatwiejszy do trenowania i dziwnie, wydaje się, że sigmoid znajduje lepsze ogólne rozwiązanie. Rozumiem przez to, że kiedy sigmoid jest wykonywany, robi to dobrze na referencyjnym (nieprzeszkolonym) zbiorze danych, gdzie wersja tanh wydaje się być w stanie uzyskać poprawne odpowiedzi na temat danych treningowych, słabo radząc sobie z referencją. Dotyczy to tej samej architektury sieci.
Jedną z moich intuicji jest to, że dzięki sigmoidowi neuronowi łatwiej się prawie całkowicie wyłącza, nie zapewniając w ten sposób danych wejściowych dla kolejnych warstw. Tanh ma tutaj trudniejszy czas, ponieważ musi doskonale anulować wprowadzone dane, w przeciwnym razie zawsze daje wartość kolejnej warstwie. Może ta intuicja jest błędna.
Długi post. Podsumowując, jaki jest handel i czy to powinno mieć duże znaczenie?
źródło
Te dwie funkcje aktywacji są bardzo podobne, ale są przesunięte. Moja oryginalna sieć nie miała stronniczości. Od czasu dodania uprzedzeń wszystko jest znacznie bardziej stabilne. Opierając się na moim doświadczeniu, powiedziałbym, że jedno lub drugie może działać lepiej dla konkretnej aplikacji ze złożonych, być może niepoznawalnych powodów, ale poprawnym podejściem jest uwzględnienie warunków stronniczości, aby zależność od przesunięcia aktywacji mogła zostać zmniejszona lub wyeliminowana.
źródło
źródło