What is the difference between using backbone architecture and transfer learning? - deep-learning

hi im super new to this field(deep learning, computer vision)
so this question may sound dumb.
In this link (https://github.com/GeorgeSeif/Semantic-Segmentation-Suite), there are pre-trained models (eg, ResNet101) called front end models. And they are used for Feature Extractor. I found these models are called backbone models/architectures generally. And the link says some of main models(eg. DeepLabV3, PSPNet) rely on pre-trained ResNet.
Also, Transfer Learning is to take a model trained on a large dataset and transfer its knowledge to a smaller dataset, right ?
Then my question is ,
1.Do the models that rely on pre-trained ResNet do transfer learning basically ?
2.if i use pretrained network like ResNet101 as backbone architecture of main model(like U-Net,SegNet) for image segmentation, is it considered as transfer learning ?
Sorry for my bad english,and i would highly appreiate if you answer this questin. Thank you.

Related

Creating a dataset of images for object detection for extremely specific task

Even though I am quite familiar with the concepts of Machine Learning & Deep Learning, I never needed to create my own dataset before.
Now, for my thesis, I have to create my own dataset with images of an object that there are no datasets available on the internet(just assume that this is ground-truth).
I have limited computational power so I want to use YOLO, SSD or efficientdet.
Do I need to go over every single image I have in my dataset by my human eyes and create bounding box center coordinates and dimensions to log them with their labels?
Thanks
Yes, you will need to do that.
At the same time, though the task is niche, you could benefit from the concept of transfer learning. That is, you can use a pre-trained backbone in order to help your model to learn faster/achieve better results/need fewer annotations example, but you will still need to annotate the new dataset on your own.
You can use software such as LabelBox, as a starting point, it is very good since it allows you to output the format in Pascal(VOC) format, YOLO and COCO format, so it is a matter of choice/what is more suitable for you.

How to Save RL Model after Training

I'm new to this forum. I viewed this simple reinforcement learning sarsa code This is code link
What i am unable to see is how to store its model, like we used to store weights in CNN in deep learning, so we can just load the model and work it without needing it to train everytime. Is it possible to achieve in this? Thanks a lot
Hi and welcome #BetaLearner. In the example of the link, the Q-function is stored as a table instead of using a neural network or other kind of function approximator. So, you can simply save the table (actually stored as a defaultdict) and load it later without need to train again.

Where to find deep learning based prediction model

I need to find a deep learning based prediction model, where can I find it?
You can use Pytorch and Tensorflow pretrained models.
https://pytorch.org/docs/stable/torchvision/models.html
They can be automatically downloaded. There are some sample codes, that you can try:
https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#sphx-glr-beginner-blitz-cifar10-tutorial-py
If you are interested in deep learning, I suggest you review the basics of it in cs231n stanford. Your question is a bit odd, because you first need to define your task specifically. Prediction is not a good description. You could look for models for classification, segmentation, object detection, sequence2sequence(like translation), and so on...
Then you need to know how to search through projects on github, and then you need to know python (in most cases), and then use a pretrained model or use your own dataset to train or fine-tune the model for that task. Then you could pray that you have found a good model for your task, after that you need to validate the results on a test set. However, implementation of a model for real-life scenarios is another thing that you need to consider many other things, and you usually need some online-learning strategy, like Federated Learning. I hope that I could help you.

Model free or model based deep reinforcement learning for car racing?

I'm new in the field of reinforcement learning. So I'm quite confused with "model based" or "model free" terms.
For example, in a video game, if I want to train an agent (a car) to drive on a racetrack.
If my input is a 256x256x3 first person image of the game, should I use a model free RL algorithm ?
And if I want to do the same, but with a 3rd person view above the racetrack, knowing coordinates, speed of the car and all obstacles, etc..., should I use model based RL ?
Thank you for your time.
In model-based you learn a model of the dynamics of your system and use it for planning or for generating "fake" samples. If you can learn the dynamics well, it can be extremely helpful, but if your model is wrong then it can me disastrous.
That said, there is no general rule for when to use model-free or model-based. Usually it depends on how much prior knowledge you have that can help you learning a good dynamics model.

How to creat CNN model in Image Recognition with Tensorflow to compare with Inception v3

I'm studying Image Recognition with Tensorflow. I already read about the topic How to retrain Inception's Layer for new categories on Tensorflow.org, which utilize the Inception v3 training model.
Now, I desire to creat my own CNN model in order to compare with Inception v3, but I don't know how can I begin with.
Anyone knows some guides step-by-step on this problem?
I'd appreciate any your suggestion
Thanks in advance
First baby steps
The gold standard for getting started in image recognition is processing MNIST images. Tensorflow has a great tutorial on how to get started and also how to move to convolutional networks.
From there it is a long hard road to compete with Inception without just copying someone else's graph. You'll probably want to get a feel for what the different layers of convolution do. I created a basic Tensorflow Tutorial which contains an example python file that demos different convolution graphs and their resulting accuracy.
Going deeper
After conquering MNIST you'll need a lot of images (you can get them from imageNet) and a lot of GPU (to run all your training) and a software setup so that you can not only run and test your model, but dozens (if not hundreds) of variations to explore your hyper parameters (like learning rate, convolution size, dropout, etc). Remember, it took a team of leading edge Machine Learning experts to create something like Inception, many many months (possibly years) of iteration to find the model they use today, and thousands of CPU/GPU hours.
If you are trying to understand what is going on and what makes a good graph, then trying to recreate Inception is a great idea. If you just want an excellent Image recognition model, then reuse an existing one.
If you are trying to have fun, just do it!
Cheers-