Hi,
I’m trying to solve a multi label problem
I have a tensor of around 400*2000 values
The 2000 are zeros and ones, but the vectors have in average only 10 of the 2000 values with a one the others are zeros.
A one should have more importance than the zeros.
I standardize the values with a mean square algorithm.
So this is my first question. Is this good in that case?
I also have output tensors with the size of 60 classes, which are not mutual exclusive. There are always 10 classes one and the others zero.
This is my network
network = torch.nn.Sequential(
            torch.nn.Linear(len(self.getVector()), 250),
            torch.nn.ReLU(),
            torch.nn.Linear(250, 150),
            torch.nn.ReLU(),
            torch.nn.Linear(150, 60),            
        )

       loss_function = torch.nn.MultiLabelSoftMarginLoss()

       optimizer = torch.optim.Adam(network.parameters(), lr=0.0007)
       network.train()
       for i in range(500):
            predicted_value = network(test_input_tensor)
            loss = loss_function(predicted_value, test_output_tensor)
            print(i, loss.item())
            optimizer.zero_grad()
            loss.backward()
            optimizer.step()


        network.eval()
        output = network(prognostic_input_tensor)

As I have not much experience in machine learning, I want to know
if you have some advice, if this is a good approach for a multi label probelm with the
features mentioned above?
It seems to me that it predicts a lot of negative values, what I dont understand.