Return to Grokking Artificial Intelligence Algorithms
index
Symbols
-1 value, 56
A
accuracy, improving, 255–256
actions, simulating, 74–83
activation functions, 314–315, 318
adjacency lists, 56–57
adversarial problems, 72–73
adversarial searches, 72–89
algorithms for, 88–89
alpha-beta pruning, 84–88
choosing best future, 74–84
min-max search, 74–84
optimizing by exploring sensible paths, 84–88
simple adversarial problems, 72–73
simulating actions, 74–84
agents with AI algorithms, 17–18
agriculture, algorithms for, 14–15
AI (artificial intelligence)
AI algorithms
biology-inspired, 12–13
deep learning, 13–14
for agriculture, 14–15
for AI agents, 17–19
for art, 19–20
for banking, 15
for cybersecurity, 15–16
for games, 17–18
for health care, 16
for logistics, 17
for optimization, 17
for optimizing networks, 17
for routing, 17
for telecoms, 17
machine learning, 13
overview of, 2–3
role of data in, 3–4
search algorithms, 12
use cases for, 14–19
brief history of, 6–7
defining, 2
humanlike solutions, 11
new AI, 11–12
old AI, 11–12
overview of, 1
problem-solving paradigms, 8–9
problem types, 8–9
specific-purpose solutions, 10
super intelligence, 11
algorithms
biology-inspired, 12–13
evolutionary, 91–129
glossary of terms, 149
hierarchies, 144–148
life cycle of, 131–133
order encoding, 141–144
overview of, 91
problems applicable to, 95–99
real numbers, 137–141
real-value encoding, 137–141
selection strategies, 133–137
sequences, 141–144
tree encoding, 144–148
types of, 148–149
use cases for, 127–129, 150–151
algorithms (continued)
for adversarial searches, 88–89
for ant colony optimization, 153–188
ants, 160–164
paths, 160–164
problems applicable to, 156–159
representing state, 160–164
swarm intelligence, 153–156
use cases for, 187–188
for artificial intelligence
agriculture, 14–15
art, 19
banking, 15
creating agents with, 17–18
cybersecurity, 15–16
games, 17–18
health care, 16
logistics, 17
optimization with, 17
optimizing networks with, 17
role of data in, 3
routing, 17
telecoms, 17
for deep learning, 13–14
for machine learning, 13, 275
for particle swarm optimization, 189–191
optimization problems, 192–195
overview of, 189–191
problems applicable to, 195–197
use cases for, 223–226
for searching, 12, 25–27
for uninformed searches, 53
genetic configuring parameters of, 126–127
overview of, 4–5
smart algorithms, 24–25
alpha-beta pruning, 84–88
ambiguous values, 238
ANNs (artificial neural networks), 279–322
backpropagation of, 303–314
training, 305–314
defining, 287–295
designing, 316–319
activation functions, 318
bias, 317–318
cost function, 318
hidden layers, 317
inputs, 317
learning rate, 318
nodes, 317
outputs, 317
weights, 317
forward propagation of, 295–303, 305
options for activation functions, 314–315
overview of, 280–282
perceptron, 283–287
representing neurons, 283–287
training, 303–312
types of, 319–322
CNNs (convolutional neural networks), 319
GANs (generative adversarial networks), 320–322
RNNs (recurrent neural networks), 320
ant colony optimization algorithm, 153–188
ants, 160–164
paths, 160–164
problems applicable to, 156–159
representing state, 160–164
swarm intelligence, 153–156
use cases for, 187–188
arithmetic crossover, 139
arithmetic mutation, 140–141
art, AI algorithms for, 19–20
artificial neural networks (ANNs), 279–322
A* search, 63–70
B
backpropagation of ANNs, 303–314
setup, 305
training, 305–314
banking, AI algorithms for, 15
bias, 317–318
biology-inspired algorithms, 12–13
blind searches, 34–36
boundary mutations, 140
breadth-first searches, 36–45
C
categorical data, encoding, 238–239
classification
problems applicable to, 9, 256–257
with decision trees, 258–274
classifying examples with, 271–274
overview of, 258
training, 260–271
clustering, problems applicable to, 9
CNNs (convolutional neural networks), 319
collecting data, 233–235
computations, cost of, 24–25
context of data, 233–235
convolutional neural networks, 319
cost
functions, 318
of computations, 24–25
crossover
arithmetic crossover, 139
tree crossover, 146–147
cybersecurity, AI algorithms for, 15–16
D
data
categorical, 238–240
collecting, 233–235
context of, 233–235
fitting line to, 241–242
identifying patterns in, 9
in AI algorithms, 3–4
learning from patterns in, 9
missing, 235–238
preparing, 235–240
separating, 252
testing, 240
training, 240
data structures
for decision trees, 260–271
representing graphs as, 31–32
decision trees
classification with, 256–257
classifying examples with, 271–274
data structures for, 260–271
learning life cycle, 261–271
overview of, 258–260
training, 260–271
deep learning
algorithms for, 13–14
approaches to reinforcement learning, 349–350
depth-first search (DFS), 45–53
designing ANNs, 316–318
activation functions, 318
bias, 317–318
cost function, 318
hidden layers, 317
inputs, 317
learning rate, 318
nodes, 317
outputs, 317
weights, 317
deterministic models, 9
DFS (depth-first search), 45–53
E
elitism selection, 136–137
encoding
categorical data, 238–240
order encoding, 141–144
fitness functions, 142–143
order mutation, 143–144
overview of, 141
permutation encoding, 143–144
real-value encoding, 137–141
arithmetic crossover, 139
arithmetic mutation, 140–141
boundary mutation, 140
overview of, 137–138
trees, 144–148
changing node mutation, 147–148
changing values of nodes, 147–148
inheriting portions of trees, 146–147
overview of, 146
tree crossover, 146–147
evolutionary algorithms, 91–129
configuring parameters of genetic algorithms, 126–127
glossary of terms, 149
hierarchies, 144–148
changing node mutation, 147–148
changing values of nodes, 147–148
inheriting portions of trees, 146–147
tree crossover, 146–147
tree encoding, 146
life cycle of, 131–133
order encoding, 141–144
fitness functions, 142–143
order mutation, 143–144
overview of, 143
overview of, 91
evolutionary algorithms (continued)
permutation encoding, 143–144
populating next generation stopping conditions, 124–126
problems applicable to, 95–99
real-value encoding, 137–141
arithmetic crossover, 139
arithmetic mutation, 140–141
boundary mutation, 140
overview of, 138–139
selection strategies, 133–137
elitism selection, 136–137
rank selection, 133–135
tournament selection, 135–136
sequences, 141–144
fitness functions, 142–143
order encoding, 143–144
order mutation, 143–144
permutation encoding, 143–144
tree encoding, 144–148
changing node mutation, 147–148
changing values of nodes, 147–148
inheriting portions of trees, 146–147
tree crossover, 146–147
types of, 148–149
evolutionary programming, 149
genetic programming, 148–149
use cases for, 127–129, 150–151
evolutionary programming, 149
examples, classifying, 271–274
F
features, finding mean of, 242–243
financial trading, 351
fitness functions, 142–143
forward propagation of ANNs, 295–303, 305
frameworks
representing problem spaces with, 28–34
representing solutions with, 28–34
functions
activation functions, 314–315, 318
cost functions, 318
fitness functions, 142–143
future, choosing, 74–84
G
games
AI algorithms for, 17–18
playing, 351–353
GANs (generative adversarial networks), 320–322
genetic algorithms
parameters of, 126–127
genetic programming, 148–149
graphs, 29–31
categories of, 54–55
representing, 56–57
adjacency lists, 56–57
as data structures, 31–32
incidence matrix, 56
H
health care, AI algorithms for, 16–17
heuristics, 59–63
for choosing best future, 74–84
for min-max search, 74–4
for simulating actions, 74–84
hidden layers, 317
hierarchies, 144–148
changing node mutation, 147–148
changing values of nodes, 147–148
inheriting portions of trees, 146–147
tree crossover, 146–147
tree encoding, 146
humanlike solutions, 11
I
incidence matrix, 56
informed searches, 63–71
algorithms for, 71
A* search, 63–71
inheriting portions of trees, 146–147
inputs, 317
L
layers, hidden, 317
learning
decision-tree life cycle for, 261–271
from patterns in data, 9
model-based, 348–349
model-free, 348–349
rates, 318
supervised, 231
unsupervised, 231
least-squares method, 244–251
life cycle
of decision tree learning, 261–271
of evolutionary algorithms, 131–133
of reinforcement learning, 329–349
linear regression, 240–251
finding mean of features, 242–243
finding regression lines with least-squares method, 244–251
fitting line to data, 241–242
lines
fitting to data, 241–242
measuring performance of, 253–254
lists, adjacency, 56–57
logistics, AI algorithms for, 17
M
machine learning, 227–277
algorithms for, 13, 275–277
classification with decision trees, 256–274
classification problems, 256–257
classifying examples with decision trees, 271–274
overview of decision trees, 258–260
training decision trees, 260–271
overview of, 227–229
problems applicable to, 230–231
workflow of, 232–256
collecting data, 233–235
context of data, 233–235
improving accuracy, 255–256
linear regression, 240–251
preparing data, 235–240
testing models, 251–254
training models, 240–251
matrix, incidence, 56
mean of features, finding, 242–243
methods, least-squares, 244–251
min-max search, 74–84
missing data, 235–238
model-based learning, 348–349
model-free learning, 348–349
models
testing, 251–254
measuring performance of line, 253–254
separating training and testing data, 252
training, 240–251
finding mean of features, 242–243
finding regression lines with least-squares method, 244–251
fitting line to data, 241–242
mutations
arithmetic mutation, 140–141
boundary mutation, 140
of nodes, changing, 147–148
order mutation, 143–144
N
networks
optimizing with AI algorithms, 17
neurons, representing, 283–287
next generations, populating
stopping conditions, 124–126
nodes, 317
changing mutation of, 147–148
changing values of, 147–148
O
optimization
AI algorithms for, 17
ant colony optimization algorithm, 153–188
ants, 160–164
paths, 160–164
problems applicable to, 156–159
representing state, 160–164
use cases for, 187–188
optimization (continued)
exploring sensible paths for, 84–88
of networks, 17
particle swarm optimization algorithms, 189–226
overview of, 189–191
problems applicable to, 195–197
use cases for, 223–226
problems applicable to, 8–9, 192–195
order encoding, 141–144
fitness functions, 142–143
order mutation, 143–144
overview of, 142–143
order mutation, 143–144
outputs, 317
P
parameters of genetic algorithms, configuring, 126–127
particle swarm optimization algorithms, 189–191
optimization problems, 192–195
overview of, 189–191
problems applicable to, 195–197
use cases for, 223–226
patterns in data
identifying, 9
learning from, 9
performance
of lines, measuring, 253–254
of training, measuring, 348
permutation encoding, 143–144
populating next generation
stopping conditions, 124–126
prediction, problems applicable to, 9
preparing data
ambiguous values, 238
encoding categorical data, 238–240
missing data, 235–238
testing data, 240
training data, 240
probabilistic models, 9
probability, 9
problem spaces, representing, 28–34
graphs, 29–30
graphs as concrete data structures, 31–32
search problems, 29–30
search solutions with concrete structures, 32–34
solutions, 29–30
trees, 32–34
pruning, 84–88
Q
Q-learning
reinforcement learning with, 323–327
deep learning approaches to, 349–350
financial trading, 351
game playing, 351–353
life cycle of, 329–350
overview of, 323–325
problems applicable to, 327–328
recommendation engines, 351
robotics, 350–351
training with simulations, 335–346
R
rank selections, 133–135
real numbers, 137–141
arithmetic crossover, 139
arithmetic mutation, 140–141
boundary mutation, 140
real-value encoding, 138–139
real-value encoding, 137–141
arithmetic crossover, 139
arithmetic mutation, 140–141
boundary mutation, 140
overview of, 138–139
recommendation engines, 351
recurrent neural networks (RNNs), 320
reinforcement learning, 231
RL (reinforcement learning)
deep learning approaches to, 349–350
inspiration for, 325–327
life cycle of, 329–349
data, 330–335
measuring performance of training, 348
model-based learning, 348–349
model-free learning, 348–349
simulations, 330–335
testing with Q-table, 347
testing with simulations, 347
training with simulations using Q-learning, 335–346
overview of, 323–325
problems applicable to, 327–328
with Q-learning, 323–353
financial trading, 351
game playing, 351–352
recommendation engines, 351
robotics, 350
RNNs (recurrent neural networks), 320
robotics, 350–351
routing, AI algorithms for, 17
S
search
adversarial, 72–89
alpha-beta pruning, 84–88
choosing best future, 74–84
optimizing by exploring sensible paths, 84–88
simple problems, 72–73
simulating actions, 74–84
use cases for, 88–89
algorithms for, 12–14, 25–27, 53
A* search, 63–71
blind, 34–36
breadth-first, 36–45
cost of computations, 24–25
depth-first, 45–53
for solutions in changing environments, 72–89
for solutions with guidance, 63–71
frameworks to represent solutions, 28–34
graph categories, 54–55
heuristics for, 59–63
informed, 63–71
min-max, 74–84
planning, 21–23
problems applicable to, 8–9
representing graphs, 56–57
adjacency lists, 56–57
as concrete data structures, 31–32
incidence matrix, 56
representing problems, 29–30
representing solutions, 29–30, 32–34
representing state, 28–34
graphs, 29–30
trees, 32–34
smart algorithms, 24–25
uninformed, 34–36, 53
search algorithms, 12, 25–27, 53
selection
elitism selection, 136–137
rank selection, 133–135
strategies for, 133–137
tournament selection, 135–136
sequences, 141–144
fitness function, 142–143
order encoding, 143
order mutation, 143–144
permutation encoding, 143–144
simulations, 330–349
of actions, 74–84
testing with, 347
training with, 335–346
smart algorithms, 24–25
solutions
blind search for, 34–36
finding, 8
for specific-purpose, 10
humanlike, 11
in changing environments, 72–89
adversarial search algorithms, 88–89
alpha-beta pruning, 84–88
choosing best future, 74–84
min-max search, 74–84
optimizing by exploring sensible paths, 84–88
simple adversarial problems, 72–73
simulating actions, 74–84
paths to, 8
representing, 29–30
with concrete structures, 32–34
with frameworks, 28–34
with guidance, 63–71
A* search, 63–71
specific-purpose solutions, 10
state, representing, 28–34
graphs, 29–32
search problems, 29–30
solutions, 29–30, 32–34
trees, 32–34
stochastic models, 9
stopping conditions, 124–126
super intelligence, 11
supervised learning, 231
swarm intelligence, 153–188
ant colony optimization algorithms
problems applicable to, 156–159
use cases for, 187–188
ants, 160–164
overview of, 153–156
particle swarm optimization algorithms, 189–226
optimization problems, 192–195
overview of, 189–191
problems applicable to, 195–197
use cases for, 223–226
paths, 160–164
representing state, 160–164
T
telecoms, AI algorithms for, 17
testing
data, 240
models, 251–254
measuring performance of line, 253–254
separating training and testing data, 252
with Q-table, 347
with simulations, 347
tournament selection, 135–136
training
ANNs, 303–314
forward propagation, 305
setup, 305
data, 240
decision trees, 260–271
data structures for, 260–261
learning life cycle, 261–271
measuring performance of, 348
models, 240–251
finding mean of features, 242–243
finding regression lines with least-squares method, 244–251
fitting line to data, 241–242
with simulations using Q-learning, 335–346
trees, 32–34
crossover, 146–147
decision trees
classification with, 256–271
classifying examples with, 271–274
overview of, 258–260
training, 260–271
encoding, 144–148
changing node mutation, 147–148
changing values of nodes, 147–148
overview of, 146
inheriting portions of, 146–147
U
uninformed search algorithms, 53
uninformed searches, 34–36
unsupervised learning, 231
V
values
ambiguous, 238
of nodes, changing, 147–148
real-value encoding, 137–141
arithmetic crossover, 139
arithmetic mutation, 140–141
boundary mutation, 140
overview of, 138–139
W
weights, 317