<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Deep Networks in Online Malware Detection</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jirˇí Tumpach</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marek Krcˇál</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Martin Holenˇa</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Mathematics and Physics, Charles University</institution>
          ,
          <addr-line>Malostranské nám. 2, Prague</addr-line>
          ,
          <country country="CZ">Czech Republic</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Institute of Computer Science, Czech Academy of Sciences</institution>
          ,
          <addr-line>Pod vodárenskou veˇží 2, Prague</addr-line>
          ,
          <country country="CZ">Czech Republic</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Rossum Czech Republic</institution>
          ,
          <addr-line>Dobratická 523, Prague</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Deep learning is usually applied to static datasets. If used for classification based on data streams, it is not easy to take into account a non-stationarity. This paper presents work in progress on a new method for online deep classification learning in data streams with slow or moderate drift, highly relevant for the application domain of malware detection. The method uses a combination of multilayer perceptron and variational autoencoder to achieve constant memory consumption by encoding past data to a generative model. This can make online learning of neural networks more accessible for independent adaptive systems with limited memory. First results for real-world malware stream data are presented.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>Deep network architectures have many benefits. The most
obvious one is the lack of need for comprehensive
preparation of data. A large enough network probably finds
relevant features automatically. So it is easier to pass data to
training than to guess about the correct match in the triple
problem-transformation-classifier.</p>
      <p>However, deep network needs a lot of training data to
perform in this way. Fortunately, many areas constantly
generate large amounts of data.</p>
      <p>Too much data may be a problem because parallel
training for deep neural networks can be expensive. Some
training examples may be unnecessary and contain only
repeating relevant information with some random noise.
In this case, they function as a weight for the relevant
information.</p>
      <p>Consider a situation where there is no expected change
of the target function during its use (offline training). In
this case, one can save similarity filtered latent features
of the trained network. For example, latent features can
be outputs of some middle layer. One application can be
transfer learning where some trade-off between network
performance and speed of training is already expected.</p>
      <p>Online problems are specific because they are intended
for situations, when some drift of information is expected.
So training on all available data can be harmful. One easy
solution is to train a model only on the most recent subset
of training examples. This method reduces the need for
parallel training, however, discarding a large proportion
of data can cause quick overtraining, especially in case of
slow drift.</p>
      <p>This paper investigates faster retraining of neural
networks on data with slow drift. Such a research is highly
relevant for the application domain of malware
detection because most of the malware is evolving, entailing
a drift in data. The main idea is to have multiple pairs of
generator-discriminator for each time interval. The
current generator is trained with the last subset of training
data (moving window) with the addition of generated
samples based on the previous generator. Its job is to
estimate the distribution of past data points and to use that
distribution for generating new examples. A discriminator
uses also labels generated by the previous discriminator if
labels are not provided explicitly. The generative model
stores some information about the importance of different
training cases (weights) and acts as an implicit decay. For
the generative model, we currently use variational
autoencoders (VAEs) and intend to include also deep belief
networks (DBN) soon. However, this idea can be generalized
to any suitable classifier and generative model.</p>
      <p>In Section 2, we present the state of the art in online
malware detection. The used methods are described in
Section 3. In Section 4, strategies for training and
evaluation are proposed. In Section 5, our data and experiments
on a real word malware dataset are presented.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Online Malware Detection</title>
      <p>
        Malware is continuously evolving by exploiting new
vulnerabilities and examining evading techniques [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
Moreover, detection has to deal with significant data drift. It can
make use of a signature database of previously detected
malware. When the file is scanned, at first its is compared
with the items in the database. So only modified and new
malware needs to be detected giving high priority to
generalization. Therefore, online detection methods, capable
of keeping up with and adapt to such evolution, are
desirable.
      </p>
      <p>
        Malware detection techniques can be divided into static
and dynamic methods [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The static methods focus on
an analysis of program code while dynamic methods infer
from program behaviour. They can log used resources and
privileges, system or APIs calls or track sensitive data an
inside application [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In connection with online learning,
DroidOL [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] uses the analysis of inter-procedural
controlflow graphs to achieve robustness against hiding attempts.
f
o j
      </p>
      <p>It is trained with a fast online linear algorithm adapted
to growing dimensionality. On real Android applications,
DroidOL outperforms state-of-the-art malware detectors
with 84.29% accuracy.</p>
      <p>
        Another dynamic online method [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] reports using
online learned Support Vector Machines with RBF kernel to
detect malware from application behavior.
      </p>
      <p>
        Users can have different sensitivity to give their data
like location, contacts, or files to an author of a
specific application. Antimalware programs then need to
profile each user to not restrict them or overly bother.
XDroid [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] tackles this problem by online hidden Markov
model (HMM) learning.
3
3.1
      </p>
    </sec>
    <sec id="sec-3">
      <title>Methodological Background</title>
      <sec id="sec-3-1">
        <title>Multilayer Perceptron (MLP)</title>
        <p>
          A multilayer perceptron is composed of neurons (Figure 1)
arranged into layers (Figure 2) [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. The first layer is called
input layer, and its function is to receive values of the
inputs. The last layer is called output layer and it has a
similar structure as the remaining, aka hidden layers. Their
neurons are connected to the output of each neuron in the
previous layer. Figure 2 depicts a two layer MLP. It is a
non-linear regression or discrimination model because its
neurons use non-linear activation functions (Figure 3).
        </p>
        <p>MLP is learned through minimizing some loss function
usually by some kind of smooth optimization. The most
simple, but still used kind of smooth optimization is
gradient descent, in the area of neural networks also known
as backpropagation, due to the flow of gradient
computation. In high-dimensional spaces, its stochastic variant is
commonly used, stochastic gradient descent. Exact
second order methods like such as the Gauss-Newton method</p>
        <sec id="sec-3-1-1">
          <title>Output layer</title>
        </sec>
        <sec id="sec-3-1-2">
          <title>Hidden layer</title>
        </sec>
        <sec id="sec-3-1-3">
          <title>Input layer</title>
          <p>
            are usually inefficient [
            <xref ref-type="bibr" rid="ref17 ref2">2, 17</xref>
            ]. On the other hand, more
successful methods are attempting to approximate second
order behavior. One of the strategies is to have
different learning rates (sizes of steps) for each learned
variable (Adam, AdaGrad, RMSProp, SGD with Nestorov
momentum, ...) [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]. Alternatively, some methods
approximate second order derivatives from gradients history
(Adam) [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ].
          </p>
          <p>
            One of the most popular loss functions used in
regression problems is the Mean Square Error (MSE) loss [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]
LMSE = N1 åiN=1(yi yˆi)2 where yˆi is output of MLP given
sample xi from feature space with corresponding correct
value yi, N is the number of samples in one training cycle.
In classification, to be able to learn probabilities of labels,
one can employ cross-entropy loss. For classification into
G classes, it is defined as N1 åiN=1 ålG=1 yil log(yˆil ) and the
predicted probability yˆil of the label l is given by the
softG
max activation function yˆil = exp(yˆil )=ås=1 exp yˆis.
Autoencoders are neural networks capable of learning data
representations called codings, usually with a much lower
dimension than is the dimension of the input data [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]. They
learn to copy the input to its output and are consisted of
two parts: an encoder and a decoder, cf. the example in
Figure 4. By restricting the flow of information, one can
achieve interesting properties, for example denoising,
detecting anomalies, generating unseen samples with a
similar distribution as the training one and so on.
m2
m1
s3
s2
s1
+
+
+
encoder
decoder
Codings in basic autoencoders can have nonstandard
distributions [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ]. This property makes it difficult to generate
samples similar to the training dataset. VAEs solve this
problem by employing the Kullback-Leibler (KL)
divergence. KL divergence between two distributions p and q
is defined as:
          </p>
          <p>DKL(pjjq) = H(p; q)</p>
          <p>Z ¥</p>
          <p>H(p)
¥
=
p(x) ln q(x)dx +</p>
          <p>p(x) ln p(x)dx
Z ¥
Z ¥
¥
¥
=
p(x) ln
p(x)
q(x)
dx;
where H(p; q) is cross-entropy and H(p) is entropy. The
KL divergence is a measure of difference between two
distributions. If p(x) and q(x) are the same, the divergence
equals 0, otherwise it is positive value.</p>
          <p>
            Because codings in AEs are deterministic, it is not
possible to define KL divergence. The important idea in [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ]
is to map the codings to normal distributions, using a
suitable neural network. The i-th coding now corresponds to
one pair of output neurons of the network, and their
activities represent a normal distribution for the i-th codding. So
the first neuron defines the mean (mi) and the second one
the standard deviation (si) of that normal distribution. The
normal distributions for different codings are mutually
independent.
          </p>
          <p>
            VAEs learn to minimize LVAE where LVAE =
DKL (N (m ;s )jjN (0; 1)) + LMSE. So they are learned to
copy their inputs to the outputs, while maintaining
approximately a normal distributions in the codings. In [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ] has
been proven that this divergence can be computed as
          </p>
          <p>The VAE encoder input is now ~m +~e ~v, where ~e is a
vector of samples from standard normal random
distribution. VAEs backpropagation is unchanged, all operations
should be considered without any skipping.</p>
          <p>
            If VAE is properly learned, sampling becomes easy. We
can expect a normal distribution of its codings if we
sample from a real learned distribution. The encoding part is
then redundant and can be skipped. The result is only a
random sampler which gives inputs to the decoder.
A support vector machine will be tested as an alternative
to a multilayer perceptron for the starting classification of
available data, due to a frequent use of SVMs in malware
detection [
            <xref ref-type="bibr" rid="ref10 ref16 ref7 ref9">7, 9, 10, 16</xref>
            ].
          </p>
          <p>
            A SVM is constructed with the objective of best
generalization, i.e., maximal probability that the classifier f
classifies correctly with respect to the random variables X
and Y producing the inputs and outputs, respectively,
max P(f (X ) = Y ):
(1)
For our high-dimensional feature space X Rn, it is
sufficient to consider only a linear SVM, which classifies
according to some hyperplane Hw = fx 2 Rnjx&gt;w + b = 0g
with w 2 Rn; b 2 R,
(8x 2 X ) f (x) = fw(x) =
( 1
-1
if x&gt;w + b &lt; 0;
if x&gt;w + b
It can be shown [
            <xref ref-type="bibr" rid="ref1 ref14">1, 14</xref>
            ] that on quite weak conditions,
searching for maximal generalization (1) is equivalent to
searching for maximal margin between the representatives
of both classes in the training data,
r
kwk
max
with constraints ckxk&gt;w
          </p>
          <p>; k = 1; : : : ; p;
where r is the scaled margin and
(xk; ck) 2 Rn</p>
          <p>f 1; 1g are the training samples; (3)
and that using the standard Lagrangian approach for
inequality constraints, (3) can be transformed into the dual
task
Due to KKT, the classifier (2) in terms of the solution
a1 ; : : : ;a p;r of (4) turns to
(8x 2 X ) fw(x) =
( 1
-1
if åxk2S ak ckx&gt;xk + r
if åxk2S ak ckx&gt;xk + r &lt; 0;
(6)
0;
where S = fxkjak &gt; 0g. The vectors in S lie in the
support hyperplanes of the representatives of both classes in
the training data. Therefore, they are called support
vectors.</p>
          <p>Because the size of input features is 540, and at least
40% of them are binary or look almost as constants, we
decided to use a linear SVM. Moreover when polynomial
kernel (p = 2) was used, the speed of convergence was too
slow.
3.5</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Linear Regression</title>
        <p>
          To estimate the trend of a time series of model accuracies,
we need to perform a linear regression [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] for C points in
two dimensions (x0; y0); (x1; y1); : : : ; (xC; yC). More
precisely, the trend of the time series is described by the slope
a of the line yˆi = axi + b where
a =
xy
        </p>
        <p>x y
x2 + x2
b = y
ax
with t = C1 åCi=1 ti.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Proposed Strategy for Online Learning with VAEs</title>
      <p>We propose an online learning strategy which focuses on
more effective learning and a constant memory
requirements of fetures. The strategy uses two deep learning
architectures: MLP and VAE. While a MLP is trained
to replicate labels, a VAE is used as a feature generator.
Hence, a VAE can generate new unseen samples for a MLP
representing the history. The pseudocode of the algorithm
can be found in Algorithm 1 and a diagram of training data
paths is depicted in Figure 6.</p>
      <p>In the first week of training, the VAE is trained on
current moving window, which act as a memory limit. The
same applies for the MLP, but it also uses label
information. Next weeks are different. The VAEs use also data
sampled from previous weeks VAE, this provides
something like a moving average. The problem is in
choosing the right 1. time to update, 2. size of the generated
data, 3. relative importance of generated data. All MLPs
are also trained from VAEs generated data; because
generated data lacks label information, the previous weeks MLP
must be employed to add them.</p>
      <p>week 1
week 2
week 3
VAE</p>
      <p>VAE</p>
      <p>VAE
MLP</p>
      <p>MLP</p>
      <p>MLP
We use real-word anonimized data, which feature malware
and clean software in several categories, but we consider
only two by merging some of them. The semantics of
the individual features has not been made available by the
company. The feature space is very complex, there are
540 features with various distributions. This makes
particularly difficult to choose the correct data scaling. In Figure
7, several groups of features are differentiated:
Algorithm 1 Proposed online learning algorithm
Require:
number N . N is the number of inputs generated by
the previous generator.
number M . M is the size of the considered most
recent training data.
function data_for_iteration(number)
. It gives access to stored data for some</p>
      <p>iteration with provided number.
function labels_for_iteration(number)
. Same as previous function, but for
la</p>
      <p>bels.</p>
      <sec id="sec-4-1">
        <title>Ensure:</title>
        <p>Provides discriminator updates for each client
. Discriminator can predict labels for new</p>
        <p>data.
1: procedure CLIENT
2: discriminator function(x){return default class}
3: while workstation runs do
4: if exists new version of discriminator then
5: discriminator update_discriminator()
6: end if
7: if new undecided file exists then
8: input get_features(x)
9: label discriminator(input)
10: send_to_server(x)
11: do task specific operation with file as label.
12: end if
13: end while
14: end procedure
15: procedure SERVER
16: iteration 0
17: while not last iteration do
18: iteration iteration + 1
19: data most_recent_data(M)
20: labels most_recent_labels(M)
21: if iteration &gt; 1 then
22: gen_data generator(N)
23: gen_labels discriminator(gen_data)
24: data [data; gen_data]
25: labels [labels; gen_labels]
26: end if
27: generator
28: discriminator
learn_generator(data)</p>
        <p>learn_discriminator(data,
lapublish_discriminator(discriminator)
while updating the discriminator is not needed
29:
30:
bels)
do
31: wait()
32: end while
33: end while
34: end procedure</p>
        <sec id="sec-4-1-1">
          <title>Almost constant</title>
        </sec>
        <sec id="sec-4-1-2">
          <title>Binary 21% 19% 10%</title>
          <p>Normally distributed feature: both absolute skewness
and kurtosis is less than 2
Highly skewed feature: skewness &gt; 30
Almost constant feature: more than 99.9 % values are
identical</p>
        </sec>
        <sec id="sec-4-1-3">
          <title>Other unknown distributions</title>
          <p>The data are initially divided by week. We decided to
keep this natural division even though some of the weeks
are mostly empty. We have used 375 weeks in our
experiments, the number of files and proportion of malware files
are for them depicted in Figure 8.</p>
          <p>[p]
5.2</p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>Performed Experiments and Their Results</title>
        <p>To be able to decide if a neural network is a good model for
this task, we compare it with a linear SVM. The number of
recent training examples is chosen M = 150:000; it
corresponds to about 5.5 average weeksand at least 309 MiB of
RAM. In order to evaluate the full dataset, one must
process 113 GiB of data, and train, sample and evaluate about
370 SVMs and VAEs.</p>
        <p>
          Both the MLP and the SVM models are Bayesian
optimized on first week following the first M of excluded
data points by the GpyOpt library [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] using the
maximum probability of improvement as acquisition function
and mixed sequential and local penalization evaluation.
The MLP model is using the Adam algorithm with early
stopping after 10 unimproved evaluation of the validation
data (25 % of the actual training data). The MLP uses
only densely connected layers with cross entropy loss, the
SVM uses squared hinge loss. The resulting
hyperparameters are in Tables 1 and 2. Table 1 shows a noticeably
larger network size together with a lot of regularization.
        </p>
        <p>We have applied the Bayesian optimization also to the
VAE, but the results were not conclusive. Layers prefer
to be as large as possible because the LMSE part of the loss
can be reduced more with larger layers. Unfortunately, this
does not reveal whether some increase in history size (M)</p>
        <sec id="sec-4-2-1">
          <title>Proportion of malware files Number of files 100% 80%</title>
          <p>60%
40%
0:9
y 0:8
c
a
u 0:7
r
c
c
fa 0:6
o
ian 0:5
d
eM 0:4
0:3
0:2
0:95
0:9
y
c
a
r
ccu 0:85
a
f
o
an 0:8
i
d
e
M 0:75
0:7</p>
          <p>Significant result
MLP1 median accuracy
MLP1 linear regression
SVM median accuracy
SVM linear regression
0
50
100</p>
        </sec>
        <sec id="sec-4-2-2">
          <title>Significant SVM</title>
          <p>MLP1
MLP2
150
200</p>
        </sec>
        <sec id="sec-4-2-3">
          <title>Week number 250 300 350</title>
          <p>helps more than the appropriate extension of a network.
Layers also tend to have elu as the most suitable activation
function together with batch normalization.</p>
          <p>Altogether for baselines, we were using MLP1,
representing a small slightly regularized MLP, MLP2 with
optimal hyperparameters (Table 1), representing a large and
highly regularized network, and a SVM.</p>
          <p>In Figure 9, we see a data drift is indeed present and
both models are similarly penalized in time. This
observation is confirmed by Figure 10 where learning is done for</p>
        </sec>
        <sec id="sec-4-2-4">
          <title>Name</title>
        </sec>
        <sec id="sec-4-2-5">
          <title>Penalty Penalty type</title>
        </sec>
        <sec id="sec-4-2-6">
          <title>Data scaling</title>
        </sec>
        <sec id="sec-4-2-7">
          <title>Selected value 64.44 l1</title>
        </sec>
        <sec id="sec-4-2-8">
          <title>Standard</title>
        </sec>
        <sec id="sec-4-2-9">
          <title>Possibilities</title>
          <p>0.001-80</p>
          <p>l1/l2
Standard Robust</p>
          <p>
            MinMax
each week and it does not seem that the difficulty of the
problem is increasing. The models are not clearly
overtrained because both achieved a rather high accuracy with
a rather small training dataset. The results were
statistically analyzed by the Wilcoxon ranksum test with Holm
correction on the 5% family-wise significance level [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ].
For models trained only once, the results showed that the
SVM was better 88.3% of weeks while being significantly
better 45.9% of them. MLP1 was significantly better only
in 0.8% of weeks. It is important to say that the MLP1 in
this test does not have optimal hyperparameters we, only
want to see if its behaviour is evolving with time. The
results of this comparison can be seen in Figure 9.
          </p>
          <p>Subsequently, MLP1, MLP2 and SVM were trained
repeatedly each week with a corresponding history of size M
and then tested on the next week. The results are depicted
in Figure 10, whereas a summary is in Table 3.</p>
          <p>Our VAE-MLP algorithm is rather slow, due to inherent
sequential training. For the VAE, we used the
540-200200-10-200-200-540 fully connected architecture with elu
activations and LMSE. The network is updated with data
from each week with M = N = 150:000. Figure 11
depicts an interesting property. The previously clearly
inferior MLP1 is improved by VAE to the point of matching
baselines performance. It clearly shows the potential of
this algorithm, not only we do not optimize MLP and VAE
together, but also we do not tune the vaues M and N.
Table 4 further confirms the findings from Figure 11 as a nice
summary.</p>
          <p>If you are interested, you can try our model or help with
development at the following links:</p>
          <p>Bayesian hyperparameter optimization framework
https://github.com/tumpji/Bayesian-optimizer.git
Implementation of the proposed method
https://github.com/tumpji/VAE-NN-Tensorflow.git
Deep belief networks in Tensorflow
https://github.com/tumpji/DBN-Tensorflow.git
6</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>This paper presented work in progress on a new approach
to online deep classification learning in data streams with
slow or moderate drift. Such kind of learning is highly
relevant for the application domain of malware detection. In
the paper, the employed methods have been recalled and
the principles of the proposed approach has been outlined.
In ongoing experiments, the approach is currently being
validated on a large set of real-world malware-detection
data. This dataset contains Windows executable files from
375 weeks, in the amount up to 30.000 binary files from
each week. Due to the large size of the dataset, only the
baseline detection using a MLP alone has been tested up
to now, and also compared to classification based on linear
SVMs, frequently used in malware detection. The
computational demands of testing the proposed new approach
allowed to accomplish it so far for only 55 weeks. Results
of the ongoing experiment will be available and presented
at the workshop.</p>
      <sec id="sec-5-1">
        <title>Acknowledgement</title>
        <p>The research reported in this paper has been supported by
the Czech Science Foundation (GACˇ R) grant 18-18080S.
Access to computing and storage facilities owned by
parties and projects contributing to the National Grid
Infrastructure MetaCentrum provided under the programme
"Projects of Large Research, Development, and
Innovations Infrastructures" (CESNET LM2015042), is greatly
appreciated.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P.J.</given-names>
            <surname>Bartlett</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Shawe-Taylor</surname>
          </string-name>
          .
          <article-title>Generalization performance of support vector machines and other pattern classifiers</article-title>
          . In B.
          <string-name>
            <surname>Schölkopf</surname>
            ,
            <given-names>C.J.C.</given-names>
          </string-name>
          <string-name>
            <surname>Burges</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A.J</surname>
          </string-name>
          . Smola, editors,
          <source>Advances in Kernel Methods - Support Vector Learning</source>
          , pages
          <fpage>43</fpage>
          -
          <lpage>54</lpage>
          . MIT Press, Cambridge,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>W. L.</given-names>
            <surname>Buntine</surname>
          </string-name>
          and
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Weigend</surname>
          </string-name>
          .
          <article-title>Computing second derivatives in feed-forward networks: a review</article-title>
          .
          <source>IEEE Transactions on Neural Networks</source>
          ,
          <volume>5</volume>
          (
          <issue>3</issue>
          ):
          <fpage>480</fpage>
          -
          <lpage>488</lpage>
          , May
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Aurélien</given-names>
            <surname>Géron</surname>
          </string-name>
          .
          <article-title>Hands-on machine learning with ScikitLearn and TensorFlow: concepts, tools, and techniques to build intelligent systems</article-title>
          .
          <source>O'Reilly Media</source>
          , Boston,
          <source>first edition edition</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S.</given-names>
            <surname>Holm</surname>
          </string-name>
          .
          <article-title>A simple sequentially rejective multiple test procedure</article-title>
          .
          <source>Scandinavian Journal of Statistics</source>
          ,
          <volume>6</volume>
          :
          <fpage>65</fpage>
          -
          <lpage>70</lpage>
          ,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Diederik</surname>
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Kingma</surname>
            and
            <given-names>Jimmy</given-names>
          </string-name>
          <string-name>
            <surname>Ba</surname>
          </string-name>
          .
          <article-title>Adam: A Method for Stochastic Optimization</article-title>
          . arXiv:
          <volume>1412</volume>
          .6980 [cs],
          <year>December 2014</year>
          . arXiv:
          <volume>1412</volume>
          .
          <fpage>6980</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Diederik</surname>
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Kingma</surname>
            and
            <given-names>Max</given-names>
          </string-name>
          <string-name>
            <surname>Welling</surname>
          </string-name>
          .
          <article-title>Auto-Encoding Variational Bayes</article-title>
          . arXiv:
          <volume>1312</volume>
          .6114 [cs, stat],
          <year>December 2013</year>
          . arXiv:
          <volume>1312</volume>
          .
          <fpage>6114</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mursleen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.S.</given-names>
            <surname>Bist</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Kishore</surname>
          </string-name>
          .
          <article-title>A support vector machine water wave optimization algorithm based prediction model for metamorphic malware detection</article-title>
          .
          <source>International Journal of Recent Technology and Engineering</source>
          ,
          <volume>7</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Narayanan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Chen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Jinliang</surname>
          </string-name>
          .
          <article-title>Adaptive and scalable Android malware detection through online learning</article-title>
          .
          <source>In 2016 International Joint Conference on Neural Networks (IJCNN)</source>
          , pages
          <fpage>2484</fpage>
          -
          <lpage>2491</lpage>
          ,
          <year>July 2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>N.</given-names>
            <surname>Nissim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Moskowitch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Rokach</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Elovici.</surname>
          </string-name>
          <article-title>Novel active learning methods for enhanced PC malware detection in windows OS</article-title>
          .
          <source>Expert Systems with Applications</source>
          ,
          <volume>41</volume>
          :
          <fpage>5843</fpage>
          -
          <lpage>5857</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>H.H.</given-names>
            <surname>Pajouh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Dehghantanha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Khayami</surname>
          </string-name>
          , and
          <string-name>
            <surname>K.K.R. Choo</surname>
          </string-name>
          .
          <article-title>Intelligent OS X malware threat detection with code inspection</article-title>
          .
          <source>Journal of Computer Virology and Hacking Techniques</source>
          ,
          <volume>14</volume>
          :
          <fpage>212</fpage>
          -
          <lpage>223</lpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>B.</given-names>
            <surname>Rashidi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Fung</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Bertino</surname>
          </string-name>
          .
          <article-title>Android malicious application detection using support vector machine and active learning</article-title>
          .
          <source>In 2017 13th International Conference on Network and Service Management (CNSM)</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>9</lpage>
          ,
          <year>November 2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Bahman</surname>
            <given-names>Rashidi</given-names>
          </string-name>
          , Carol Fung, and
          <string-name>
            <given-names>Elisa</given-names>
            <surname>Bertino</surname>
          </string-name>
          .
          <article-title>Android Resource Usage Risk Assessment using Hidden Markov Model and Online Learning</article-title>
          .
          <source>Computers &amp; Security</source>
          , 65,
          <year>November 2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Mathieu</surname>
            <given-names>ROUAUD</given-names>
          </string-name>
          . Probability, Statistics and Estimation:
          <article-title>Propagation of Uncertainties in Experimental Measurement</article-title>
          .
          <source>Mathieu ROUAUD</source>
          ,
          <year>June 2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>B.</given-names>
            <surname>Schölkopf</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.J.</given-names>
            <surname>Smola</surname>
          </string-name>
          .
          <article-title>Learning with Kernels</article-title>
          . MIT Press, Cambridge,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Machine</given-names>
            <surname>Learning</surname>
          </string-name>
          Group-University of Sheffield. GPyOpt.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Stamp</surname>
          </string-name>
          .
          <article-title>Introduction to Machine Learning with Applications in Information Security</article-title>
          . CRC Press, Boca Raton,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>William</surname>
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Vetterling</surname>
            ,
            <given-names>Brian P.</given-names>
          </string-name>
          <string-name>
            <surname>Flannery</surname>
          </string-name>
          , William H. Press, and
          <string-name>
            <surname>Saul</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Teukolsky</surname>
          </string-name>
          . Numerical Recipes:
          <article-title>The art of scientific computing</article-title>
          . Cambridge University Press, Cambridge, 3nd ed edition,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>