Setting sample weights for training of network to set the

Illustration
Ferenc_raksi - 2021-06-18T14:51:55+00:00
Question: Setting sample weights for training of network to set the

Setting sample weights for training of network to set the contribution of each sample to the network outcome What I need to do is train a classification network (like Pattern Recognition Tool) where each sample would have a different weight. The contribution of a sample to the network error would be proportional to its weight.   For example, given samples with higher and lower weights; after training the network would classify the samples with higher weights with a more success while sacrificing some correct classification of the samples with lower weights.   Does anyone know how to do this?   Currently my only idea on how to achieve this goal would be: For each iteration of a loop: 1. randomly assemble a subset of samples with a chance of picking a sample proportional to its weight. 2. train for 1 epoch

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

You will have to go thru those 5 BioID threads. I can't remember the details.
However, if the ordinary classification scheme is to have columns of eye(c) for targets, then multiplying the target for a single vector by a weight greater than 1 will improve its correct classification performance. In addition, if logsig or softmax is used, the estimated posterior will always be less than 1.
I haven't weighted single vectors, just classes.
 
Notation: The term sample implies a group of data, not a single case or measurement.
Use patternnet with 'logsig' or 'softmax' as the output transfer function
For c classes use a target matrix that has columns of the c-dimensional unit matrix eye(c).
The relationships between the target matrix, integer (1:c) class index row vector, integer assigned class row vector, {0,1} error vector etc. are
 
 
 target      = ind2vec(classind);
 classind  = vec2ind(target)               % integers 1:c
 net           = train(net, input, target);
 output      = net(input);
 assigned =  vec2ind(output)
 errors      = (assigned ~= classind )
 Nerr        = sum(errors)
Individual class performances are obtained using unique vector (NOT class) indices (1:N). If class performances are unsatisfactory,several measures can be used. For example
 
 
 1. Weight the input matrix
 2. Weight the target matrix
 3. Weight the output matrix
 4. Add noisy duplicates of poorly classified vectors to the input matrix.

I've forgotten the details. However, in Mar-May 2009 (5 threads) I did post results of comparing my choice of the duplication method with others for BioID classification

Search the Newsgroup using the searchword
BioID.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!