def reset_parameters(self) -> None:
        """
        **Overview**:
            The parameters initialization of the linear layer (i.e. weight and bias).
        """
        # In Kaiming Initialization, the mean of weights increment slowly and the std is close to 1,
        # which avoid the vanishing gradient problem and exploding gradient problem of deep models.
        # Specifically, the Kaiming Initialization funciton is as follows:
        # $$std = \sqrt{\frac{2}{(1+a^2)\times fan\_in}}$$
        # where a is the the negative slope of the rectifier used after this layer (0 for ReLU by default),
        # and fan_in is the number of input dimension.
        # For more kaiming intialization info, you can refer to the paper:
        # <link https://arxiv.org/pdf/1502.01852.pdf link>
        nn.init.kaiming_uniform_(self.weight, a=math.sqrt(5))
        if self.bias is not None:
            fan_in, _ = nn.init._calculate_fan_in_and_fan_out(self.weight)
            bound = 1 / math.sqrt(fan_in)
            nn.init.uniform_(self.bias, -bound, bound)

        **Overview**:
            The parameters initialization of the linear layer (i.e. weight and bias).
        
chapter4_reward/popart.py