Introduction to Empty Nodes¶
A blank node is a type of node in the decision flow chart that has a clear meaning but is missing in the historical data. It allows us to flexibly introduce new variables or features in the virtual environment during the training and optimization of the model to improve its performance and accuracy. By introducing blank nodes in the decision flow chart, we can describe previously unconsidered factors, making the model more accurate and comprehensive.
When using a blank node in a .yaml
file,
we need to introduce this node in the decision flow chart and define its data type and dimension.
In addition, we also need to describe the data type of this new node and make the corresponding declaration in columns
.
During the training process, the blank node can be initialized as a learnable node to optimize our training strategy.
By using the functionality of blank nodes, we can better cope with incomplete or inconsistent training data and introduce more expert knowledge in the training to improve the quality of the model and decisions.
In most cases, blank nodes are outputs of a neural network node and are input to another or multiple neural network nodes.
It should be noted that although the .yaml
file describes the information of blank nodes, there is no need to have blank node data in the data file.
That is, nodes that exist in the decision flow chart but not in the data will be parsed as blank nodes by default.
In autonomous driving tasks, a common scenario is to use speed and acceleration to control the vehicle’s motion. In this task, the speed node is a node with a clear meaning, but the acceleration node may be missing in historical data. Therefore, we can use acceleration as a blank node to expand the features of this task. Suppose we want to consider the impact of acceleration on the direction control of the vehicle when controlling the vehicle’s driving direction, but there is no acceleration data in historical data. In this case, we can introduce a blank node in the decision flow chart to represent acceleration and achieve more accurate prediction of the vehicle’s state.
The following is an example of how to implement an acceleration blank node in a .yaml
file:
metadata:
graph:
velocity:
- observation
acceleration:
- velocity
- observation
next_observation:
- velocity
- acceleration
- observation
columns:
...
- velocity_0:
type : continuous
dim : velocity
min : 0
max : 1000
- acceleration_0:
type : continuous
dim : acceleration
min : 0
max : 10000
In the above .yaml
file, we defined an empty node called “acceleration” with a data type of continuous
and a dimension of acceleration
.
We also connected the acceleration
node to the velocity
node and observation
node in the decision flow graph to infer the acceleration variable from velocity and observation.
In the columns, we defined two variables, velocity_0
and acceleration_0
, representing the initial values of velocity and acceleration, and specified their data types, dimensions, minimum and maximum values.