Rough steps:
Collecting data:
Cleaning:
Training:
Split into train, val, test, (60, 20, 20), shuffle and group into batches of 64 using a custom dataloader
Input vector i.e, 128 ranges, is our feature vector and was normalized using a StandardScalar. Standardize features by removing the mean and scaling to unit variance.
The standard score of a sample x is calculated as:
z = (x - u) / s
where u is the mean of the training samples or zero if with_mean=False, and s is the standard deviation of the training samples or one if with_std=False.
Centering and scaling happen independently on each feature by computing the relevant statistics on the samples in the training set. Mean and standard deviation are then stored to be used on later data using transform. Standardization of a dataset is a common requirement for many machine learning estimators: they might behave badly if the individual features do not more or less look like standard normally distributed data (e.g. Gaussian with 0 mean and unit variance). For instance many elements used in the objective function of a learning algorithm (such as the RBF kernel of Support Vector Machines or the L1 and L2 regularizers of linear models) assume that all features are centered around 0 and have variance in the same order. If a feature has a variance that is orders of magnitude larger than others, it might dominate the objective function and make the estimator unable to learn from other features correctly as expected.
The expert driving input i.e, pre processed speed and steering are our labels.
MLP model with dinner layers were experimented, help one was 2 hidden layer one. ReLU between each layer and Tanh()
optimizer used was Adam and SGD. Different experiments with weights decay, regularization, drop out and momentum values were used.
Initially MLP was used, due to overfitting of data for steering a custom weighted mse that priorities steering more was used.
Inferencing: