4 ms·
My approach: * The Python scientific stack for prototyping, data manipulation, etc. (Ipython, matplotlib, numpy, scipy, pandas, scikit-learn). * Tensorflow fo
by antognini 10y ago
My approach:
* The Python scientific stack for prototyping, data manipulation, etc. (Ipython, matplotlib, numpy, scipy, pandas, scikit-learn).
* Tensorflow for training NNs.
* Everything gets ported to C++ once it's ready to be integrated into the codebase.
* I work on the automated interpretation of EEGs, so I use our software (Persyst) to actually visualize the EEGs and see what's going on in the data at the ground level.
My boss is a big fan of Statistica for data manipulation and NN training. I've been learning it, but I have a natural affinity for Python.
I think you'll find that the tools you need will be pretty dependent on what you're doing, though. I deal with relatively small datasets (~100 EEG records, ~dozens GB total) and the NNs need to be well understood. So we use small NNs and spend a lot of time poking and prodding them to make sure that they're behaving the way we expect them to. If you're working on much larger datasets and are more willing to tolerate the NN acting as a black box you'd have to use a different set of tools (bigger NNs, more complicated NN architectures, GPUs for training, etc.).
- aprao 10y agoIf you don't mind, can you tell me which C++ matrix manipulation library you use at your startup?
- antognini 10y agoI'm using boost, but we also have our own NN library that we use. Once I have everything working using boost, I then swap that out for the in-house NN library to make it consistent with the rest of the codebase. (I'm fairly new to the company so I'm still getting accustomed to the existing code.)
- neurotech1 10y agoWhat kind of data are you trying to get from the EEGs with NNs? Epileptiform activity?
- antognini 10y agoLots of different things. The software already uses NNs to detect the following: * Epileptogenic spikes * Seizures * Eyeblink artifacts * Muscle artifacts * Movement artifacts * Electrode artifacts * QRS complexes We are working on many more features: * Sleep staging * Other artifacts * Bringing seizure detection to human-level performance * K-complexes, sleep spindles and other features of sleep The ultimate goal is to analyze and mark an EEG record the same way that an expert neurologist woul neurologist would.
- jason_slack 10y agoWhere do you get data to train the NNs for these items?
- antognini 10y agoWe have a network of neurologists who provide anonymized EEG records to us from a variety of hospitals and epilepsy monitoring units around the country. We then have an ever-shifting group of neurologists who mark the records for us so that we have labels we can train against. It's a little tricky in practice because EEG interpretations aren't always cut-and-dried. Some neurologists will mark a section as a seizure and others won't, or they'll mark the starting times and ending times differently, so you have to score the seizure with a "perception index" that varies from 0 to 1 instead of just being a binary yes/no. Sometimes a record has a very large number of spikes, so the neurologists will often miss a lot of them, so you also don't want to penalize your NN for catching real spikes that were mislabeled, etc. We have to spend a fair amount of time thinking about the specific cost function we want to optimize.
- deleted 10y ago[deleted]