Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is normalization useful/necessary in optimization?

I am trying to optimize a device design using Matlab optimization toolbox (using the fmincon function to be precise). To get my point across quickly I am providing a small variable set {l_m, r_m, l_c, r_c} which at it's starting value is equal to {4mm, 2mm, 1mm, 0.5mm}.

Though Matlab doesn't specifically recommend normalizing the input variables, my professor advised me to normalize the variables to the maximum value of {l_m , r_m, l_c, r_c}. Thus the variables will now take values from 0 to 1 (instead of say 3mm to 4.5mm in the case of l_m). Of course I have to modify my objective function to convert it back to the proper values and then do the calculations.

My question is: do optimization functions like fmincon care if the input variables are normalized? Is it reasonable to expect change in performance on account of normalization? The point to be considered is how the optimizer varies variables like say l_m — in one case it can change it from 4mm to 4.1mm and in the other case it can change it from 0.75 to 0.76.

like image 517
Shashank Sawant Avatar asked Sep 10 '12 16:09

Shashank Sawant


People also ask

Is normalization always necessary?

The goal of normalization is to change the values of numeric columns in the dataset to a common scale, without distorting differences in the ranges of values. For machine learning, every dataset does not require normalization. It is required only when features have different ranges.

What is normalization in optimization?

The normalization plays an impor- tant role in ensuring the consistency of optimal solutions with the preferences expressed by the decision maker. We also compare several approaches to solve the problem assuming that a linear or a mixed integer programming solver, such as CPLEX, is available.

Why is Normalisation necessary?

Normalization is a technique for organizing data in a database. It is important that a database is normalized to minimize redundancy (duplicate data) and to ensure only related data is stored in each table. It also prevents any issues stemming from database modifications such as insertions, deletions, and updates.

Does normalization improve performance?

Full normalisation will generally not improve performance, in fact it can often make it worse but it will keep your data duplicate free.


1 Answers

It is usually much easier to optimize when the input is normalized. You can expect an improvement in both speed of convergence and in the accuracy of the output.

For instance, As you can see on this article ( http://www-personal.umich.edu/~mepelman/teaching/IOE511/Handouts/511notes07-7.pdf ), the convergence rate of gradient descent is better bounded when the ratio of largest and smallest eigenvalues of the Hessian is small. Typically, when your data is normalized, this ratio is 1 (optimal).

like image 180
Oli Avatar answered Sep 22 '22 10:09

Oli