8. A system for detecting malware, the system comprising: an identification module, stored in memory, that identifies a plurality of programs represented in machine code; a derivation module, stored in memory, that derives a plurality of opcode n-grams from opcode sequences within the plurality of programs, each opcode n-gram within the plurality of opcode n-grams representing a sequence of opcodes extracted from a program within the plurality of programs; a training module, stored in memory, that trains an autoencoder by using the plurality of opcode n-grams as input; a discovery module, stored in memory, that discovers a set of features within the autoencoder after training the autoencoder, each feature within the set of features comprising a linear combination of opcode n-grams from the plurality of opcode n-grams; a classification module, stored in memory, that classifies a potentially malicious program as malicious by using the set of features discovered within the autoencoder to analyze the potentially malicious program by: initializing a neural network with the set of features discovered within the autoencoder; training the neural network with supervision using a training set labeled to indicate whether each sample within the training set is malicious; and classifying the potentially malicious program using the trained neural network; and at least one physical processor configured to execute the identification module, the derivation module, the training module, the discovery module, and the classification module.
8. A system for detecting malware, the system comprising: an identification module, stored in memory, that identifies a plurality of programs represented in machine code; a derivation module, stored in memory, that derives a plurality of opcode n-grams from opcode sequences within the plurality of programs, each opcode n-gram within the plurality of opcode n-grams representing a sequence of opcodes extracted from a program within the plurality of programs; a training module, stored in memory, that trains an autoencoder by using the plurality of opcode n-grams as input; a discovery module, stored in memory, that discovers a set of features within the autoencoder after training the autoencoder, each feature within the set of features comprising a linear combination of opcode n-grams from the plurality of opcode n-grams; a classification module, stored in memory, that classifies a potentially malicious program as malicious by using the set of features discovered within the autoencoder to analyze the potentially malicious program by: initializing a neural network with the set of features discovered within the autoencoder; training the neural network with supervision using a training set labeled to indicate whether each sample within the training set is malicious; and classifying the potentially malicious program using the trained neural network; and at least one physical processor configured to execute the identification module, the derivation module, the training module, the discovery module, and the classification module. 11. The system of claim 8 , wherein the plurality of opcode n-grams comprises machine code opcodes and not mnemonic-based instructions.