Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>There are several things you can try to increase the accuracy of your neural network.</p> <ul> <li><p><strong>Use more of your data for training.</strong> This will permit the network to learn from a larger set of training samples. The drawback of this is that having a smaller test set will make your error measurements more noisy. As a rule of thumb, however, I find that 80%-90% of your data can be used in the training set, with the rest for test.</p></li> <li><p><strong>Augment your feature representation.</strong> I'm not familiar with PDFid.py, but it only returns ~40 values for a given PDF file. It's possible that there are many more than 40 features that might be relevant in determining whether a PDF is malicious, so you could conceivably use a different feature representation that includes more values to increase the accuracy of your model.</p> <p>Note that this can potentially involve a lot of work -- feature engineering is difficult! One suggestion I have if you decide to go this route is to look at the PDF files that your model misclassifies, and try to get an intuitive idea of what went wrong with those files. If you can identify a common feature that they all share, you could try adding that feature to your input representation (giving you a vector of 43 values) and re-train your model.</p></li> <li><p><strong>Optimize the model hyperparameters.</strong> You could try training several different models using training parameters (momentum, learning rate, etc.) and architecture parameters (weight decay, number of hidden units, etc.) chosen randomly from some reasonable intervals. This is one way to do what is called "hyperparameter optimization" and, like feature engineering, it can involve a lot of work. However, unlike feature engineering, hyperparameter optimization can largely be done automatically and in parallel, provided you have access to a lot of processing cores.</p></li> <li><p><strong>Try a deeper model.</strong> Deep models have become quite "hot" in the machine learning literature recently, especially for speech processing and some types of image classification. By using stacked RBMs, a <a href="http://machinelearning.wustl.edu/mlpapers/paper_files/icml2010_Martens10.pdf" rel="nofollow">second-order learning method (PDF)</a>, or a different nonlinearity like a <a href="http://en.wikipedia.org/wiki/Rectifier_%28neural_networks%29" rel="nofollow">rectified linear activation function</a>, then you can add multiple layers of hidden units to your model, and sometimes this will help improve your error rate.</p></li> </ul> <p>These are the ones that come to mind right off the bat. Good luck !</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload