Normalization Technique for Feature Level Fusion - normalization

I am currently working on Feature Level Fusion of Face and Fingerprint Modalities.
I have used Gabor wavelet (at 8 orientations and 5 scales) to extract features. Later I have used PCA and LDA.
Which technique should be used to normalize feature vectors (as they are from heterogeneous sources) for feature level fusion?
When should the normalization be applied before fusion (simple concatenation) of feature vectors or after fusion of feature vectors?

Related

How do engineered features help when they are not present in the test data

I am trying to classify between drones and birds using machine learning. I have got a big number of samples of feature vectors from a radar which generally consists of position(x,y,z), velocity(vx,vy,vz), acceleration(ax,ay,az), Noise, SNR etc plus some more features. Actual classes are known for the samples. However, These basic features are not able to distinguish between drones and birds for new(out of bag) samples. so I am going to try feature engineering to generate new features like standard deviation of speed calculated using mean-speed and then uses the difference between mean-speed and speeds obtained from individual samples(of the same track) to calculate standard deviation by averaging out the differences . Similarly, I generate new features using some other formula by using sum or difference or deviation from average(of different samples from same track) etc.
After obtaining these features we will use the same to create a trained model which will be used for classification.
However, I can apply all these feature engineering on the training dataset whereas the same engineered features will not be present in the test dataset obtained in the operational scenario where we get one sample after another. Also in operational scenario we do not know how many samples we will be getting for a track.
So, how can these engineered features be obtained so as to create a test feature vector with the same in actual operational scenario.
If these cannot be obtained while testing ,then how will the same engineered features (used for model training) be able to solve the classification problem when we do not have these in the test data?

Convolutional Neural Network for heat map kind of images

Can I use CNN architecture for binary classification on these types of images (posted below)?
Currently, I am it having 3-Conv + 2-FC layers but not getting good results. I have a sufficient amount of data as well. I tried transfer learning with Inception V3 but it is overfitting in all cases of layer locking.
Is there any separate way of classifying such images because the features to be extracted are limited here.
Semantic Segmentation converts images into a kind of pixel-wise color maps but it is total different paradigm.

Relation between CNN and gabor filter

I am learning to use gabor filters to extract orientation and scale related features from images. On the other hand, Convolution Neural Network can also extract features including orientation and scale, is there any evidence that filters in CNN performs a similar function as gabor filters? Or pros and cons of both of them.
In my personal experience, in a traditional deep learning architecture (such as AlexNet) , when the layers near the beginning are visualized, they resemble gabor filters a lot.
Take this visualization of the first two layers of a pretrained AlexNet (taken from Andrej Karpathy's cs231n.github.io ). Some of the learnt filters look exactly like the Gabor Filters. So yes, there is evidence that CNN works (partly) the same way as Gabor Filters.
One possible explanation is that since the layers towards the beginning of a deep CNN are used to extract low level features (such as changes in texture), they perform the same functions as Gabor Filters. Features such as those detecting changes in frequency are so fundamental that they are present irrespective of the type of dataset the model is trained on. (Part of the reason why transfer learning is possible) .
But if you have more more data, you could possibly make a deep CNN learn much more high-level features than Gabor Filters, which might be more useful for the task you're extracting these features for (such as classification). I hope this provides some clarification.

When to do feature scaling? Before or after extraction?

I am planning to do SVM classification on multidimensional sensor data. There are two classes and 13 sensors. Suppose that I want to extract features e.g. average, standard deviation etc. I read from somewhere that we need to do feature scaling before apply to SVM. I am wondering when I should do the scaling, before extracting features or after extracting features?
As you have read, and as already pointed out, you would:
do feature derivation
do feature normalization (scaling, deskewing if necessary, etc)
hand data to training/evaluating model(s).
For the example you mentioned, just to be clear: I assume you mean that you want to derive (the same) features for each sample, so that you have e.g. a mean feature, standard deviation feature, etc. for each sample - which is how it should be done. Normalization, in turn, has to be done per feature over all samples.

Using Weka on Images

I am new to Weka, and from the examples on how to use it, I have only seen text problems. Can I use images in Weka with the machine learning classifiers?
You can directly do pixel classification using the Trainable Weka Segmentation plugin (former Advanced Weka Segmentation plugin) from Fiji/ImageJ.
The plugin is designed for segmentation via interactive learning. This means the user is expected to select a set of features (edge detectors, texture filters, etc.), choose the number of classes (by default there are 2) and interactively draw (with the ROI tools) samples of all classes. After training the classifier based on those samples, the whole image pixels will be classified and the segmentation result will be displayed overlaying the original image. The idea is to repeat this process (drawing + training) until obtaining a satisfying segmentation.
The plugin provides as well a set of tools to save/load the samples in ARFF format and save/load the classifier in .model format, so it's completely compatible with the latest version of WEKA.
If what you want to do is image classification, you might be able to reuse some of the plugin's methods as well.
You can use open source Image processing application such as ImageJ and Fiji to extract features from your image and use it in Weka
Fiji has a plugin called Advanced Weka Segmentation which should be very useful in applying Weka classifiers to Image
Weka machine learning classifiers works with numerical and categorical features. Before using weka with images, you need to extract features from your images.
According to your needs, simple features like average, maximum, mean may be enough. Or you may need to use some other algorithms for your images.
Below wikipedia feature extraction algorithms.
Low-level
Edge detection
Corner detection
Blob detection
Ridge detection
Scale-invariant feature transform
I suggest reading a optical character recognition survey to understand how they are used. OCR is pretty simple example for you to use. Standard data sets and algorithms exists for OCR. Therefore it is very instructive to learn about it.

Resources