1
$\begingroup$

I am working with a u-net, a variation of the more commonly known fully convolutional network for semantic segmentation. For training a u-net, I was given the suggestion that I should use a pre-trained network. But, I'm not quite sure how this makes sense.

My understanding is, in pre-training, we freeze the network up to the final classifying layers from a pre-trained network and then, we initialize random weights for the classifying layers. Then, we take our new dataset and retrain the weights through the whole network. Basically, we don't have random initialized weights for the convolutional blocks.

Now, if I'm using something like the u-net which has a very unique structure, how exactly would I do this pre-training with something like vgg16? The only thing I can think of is to share the feature maps during the upsampling layers but that's about it and that's not really pre-trained weights.

$\endgroup$
1
$\begingroup$

The procedure you described is how to do fine-tuning of a network for object classification. There are two standard techniques: (1) freeze all but the last few layers, replace the last layers with new layers of the appropriate size and random weights, and train them; or (2) train all of the layers, starting from the weights of the pre-trained model as your initial weights, but use a very low learning rate. You can also do (1) then (2). See https://datascience.stackexchange.com/q/28383/8560 for a nice overview.

I'm not an expert on u-nets, but it appears they are used for image segmentation rather than object classification. Therefore, the same approach of freezing the last few layers probably isn't suitable here. You can still use method (2), i.e., fine-tuning using stochastic gradient descent with a very low learning rate. If your task is similar enough to the task the pre-trained network was trained for, that might be effective.

I can't see any way to use a pre-trained model for object classification (like VGG16), as they use a different architecture. Rather, you'd probably have to start with a pre-trained model for segmentation (i.e., a pre-trained U-net model). The U-net paper says that they make pre-trained models available on their website, which perhaps you could use as a starting point.

$\endgroup$
  • $\begingroup$ I see, thank you. Okay, that was in line with what I suspected also. $\endgroup$ – Jonathan May 31 '18 at 2:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.