Podręcznik
3. Sieci neuronowe głębokie
3.3. Transfer Learning
Ważnym elementem procesów zachodzących w CNN jest duża niezależność wyniku od rodzaju przetwarzanych obrazów, gdyż niezależnie od typu obrazu system przetwarzania koncentruje się na elementach prymitywnych występujących w każdym obrazie. Stało się to przyczyną powstania specjalnego sposobu wstępnego uczenia sieci CNN, tzw. Transfer Learning na dowolnie dobranym zestawie danych uczących, który podlega jedynie douczeniu na danych użytkownika [30,45]. Dzięki takiemu rozwiązaniu możliwe jest ogromne skrócenie czasu uczenia, a przy tym znaczące polepszenie zdolności generalizacji sieci.
Takim pierwszym prototypem (dostępnym również w Matlabie poczynając od wersji z roku 2017) jest AlexNet [34], zaprojektowany przez grupę naukowców: Alex Krizhevsky, Ilya Sutskever and Geoff Hinton. W implementacji Matlaba struktura sieci AlexNet jest następująca [43]
1 'data' Image Input 227x227x3 images with 'zerocenter' normalization
2 'conv1' Convolution 96 11x11x3 convolutions with stride [4 4] and padding [0 0]
3 'relu1' ReLU
4 'norm1' Cross Channel Normalization with 5 channels per element
5 'pool1' Max Pooling 3x3 max pooling with stride [2 2] and padding [0 0]
6 'conv2' Convolution 256 5x5x48 convolutions with stride [1 1] and padding [2 2]
7 'relu2' ReLU
8 'norm2' Cross Channel Normalization with 5 channels per element
9 'pool2' Max Pooling 3x3 max pooling with stride [2 2] and padding [0 0]
10 'conv3' Convolution 384 3x3x256 convolutions with stride [1 1] and padding [1 1]
11 'relu3' ReLU
12 'conv4' Convolution 384 3x3x192 convolutions with stride [1 1] and padding [1 1]
13 'relu4' ReLU
14 'conv5' Convolution 256 3x3x192 convolutions with stride [1 1] and padding [1 1]
15 'relu5' ReLU
16 'pool5' Max Pooling 3x3 max pooling with stride [2 2] and padding [0 0]
17 'fc6' Fully Connected 4096 fully connected layer
18 'relu6' ReLU
19 'drop6' Dropout 50% dropout
20 'fc7' Fully Connected 4096 fully connected layer
21 'relu7' ReLU
22 'drop7' Dropout 50% dropout
23 'fc8' Fully Connected 1000 fully connected output layer
24 'prob' Softmax softmax
25 'output' Classification 1000 classes
W sumie można wyróżnić w niej 25 podwarstw (włączając w nie konwolucję liniową, operację ReLU, normalizację i pooling). Sieć zawiera 5 warstw konwolucyjnych i 3 warstwy FC. Pierwsza warstwa FC połączona z operacją ReLU jest warstwą zawierającą 4096 cech diagnostycznych. Druga warstwa FC (również połączona z operacją ReLU jest warstwą ukrytą klasyfikatora końcowego zasilająca warstwę wyjściową 1000 neuronów (pozwala na rozpoznanie 1000 klas). Zastosowany w strukturze klasyfikator to softmax. Stosując transfer learning można wyodrębnić sygnały z pierwszej warstwy FC jako cechy diagnostyczne i zasilić nimi dowolnie wybrany inny rodzaj klasyfikatora, np. SVM czy MLP. W wielu współczesnych rozwiązaniach sieci CNN rezygnuje się z warstwy ukrytej w strukturze w pełni połączonej, łącząc bezpośrednio wektor cech (elementy wypłaszczonych tensorów) z neuronami wyjściowymi softmaxu.