Viewing a single comment thread. View all comments

vannak139 t1_j7puon5 wrote

How you would approach this really depends on a few things. The most important question is, do you have the target data you want to get out of the network? It is possible, in some cases, to highlight regions of interest using only sample-level classification data. However, this usually is very context specific. If you have target data where these regions are already specified, a normal supervised learning method for wave forms should be perfectly workable, and will likely use 1D CNNs.

2

Optoplasm OP t1_j7rkrc3 wrote

I would ideally be able to go in and select a start time and end time for each event within the longer timeseries and assign it a class, like you do for YOLO training labels, but in 1D. I can assemble and label the dataset, but the labeled segments will be extremely variable in length.

1

vannak139 t1_j7w5otz wrote

So, the simple strategy here, which kind of ignores your variable length objects, is to simply classify CNN receptive fields directly, and then Max Pool the multiple classification frames.

So, lets say that your sequence is 1024. You build a CNN that has a receptive field of 32, and a stride of 16. This network applied to the sequence will offer something like 63 "frames". Typically, the CNN would expand this network representation up with a large number of channels, take the GlobalMaxPooling to merge these frame's information, and then classify the sample.

Instead, you should classify the frames directly, meaning your output looks like 63 separate sigmoid classifications associated with regions of the signal. Then, you simply take the maximum of each classification likelihood, and use this for your image-level classification.

After training, you can remove the GlobalMaxPooling layer, and look at the segment classifications directly.

1