908 Chapter 20
■
Software Development Security
Machine Learning Machine learning techniques use analytic capabilities to develop knowledge from datasets
without the direct application of human insight. The core approach of machine learning
is to allow the computer to analyze and learn directly from data, developing and updating
models of activity.
Machine learning techniques fall into two major categories.
■
Supervised learning techniques use labeled data for training. The analyst creating a
machine learning model provides a dataset along with the correct answers and allows
the algorithm to develop a model that may then be applied to future cases. For exam-
ple, if an analyst would like to develop a model of malicious system logins, the analyst
would provide a dataset containing information about logins to the system over a
period of time and indicate which were malicious. The algorithm would use this infor-
mation to develop a model of malicious logins.
■
Unsupervised learning techniques use unlabeled data for training. The dataset pro-
vided to the algorithm does not contain the “correct” answers; instead, the algorithm
is asked to develop a model independently. In the case of logins, the algorithm might
be asked to identify groups of similar logins. An analyst could then look at the groups
developed by the algorithm and attempt to identify groups that may be malicious.
Neural Networks In neural networks, chains of computational units are used in an attempt to imitate the bio-
logical reasoning process of the human mind. In an expert system, a series of rules is stored
in a knowledge base, whereas in a neural network, a long chain of computational decisions
that feed into each other and eventually sum to produce the desired output is set up. Neural
networks are an extension of machine learning techniques and are also commonly referred
to as
deep learning or cognitive systems.
Keep in mind that no neural network designed to date comes close to having the rea-
soning power of the human mind. Nevertheless, neural networks show great potential to
advance the artificial intelligence field beyond its current state. Benefits of neural networks
include linearity, input-output mapping, and adaptivity. These benefits are evident in the
implementations of neural networks for voice recognition, face recognition, weather predic-
tion, and the exploration of models of thinking and consciousness.
Typical neural networks involve many layers of summation, each of which requires
weighting information to reflect the relative importance of the calculation in the overall
decision-making process. The weights must be custom-tailored for each type of decision
the neural network is expected to make. This is accomplished through the use of a training
period during which the network is provided with inputs for which the proper decision is
known. The algorithm then works backward from these decisions to determine the proper
weights for each node in the computational chain. This activity is performed using what
is known as the
Delta rule or
learning rule . Through the use of the Delta rule, neural net-
works are able to learn from experience.