算法精粹 经典计算机科学问题的Python实现 关键术语
所属分类 algo
浏览量 792
《算法精粹:经典计算机科学问题的Python实现》
面向中高级程序员的算法教程
搜索算法 常见的图算法 神经网络 遗传算法 k均值聚类算法 对抗搜索算法等
提升用Python解决实际问题的技术、编程和应用能力
激活函数(activation function)
在人工神经网络中转换神经元输出的函数,通常是为了提供非线性变换处理能力或保证将输出值限制在一定范围内
无环图(acyclic)
可接受的启发(admissible heuristic)
人工神经网络(artificial neural network)
用计算工具模拟生物神经网络,以解决那些难以简化为传统算法适用形式的难题
注意与生物学意义上的神经网络的差异
自动结果缓存(auto-memoization)
反向传播(backpropagation)
一种用来训练神经网络得出权重的技术,基于正确输出已知的一组输入来完成。
这里用偏导数计算权重对实际结果与预期结果之误差所承担的“责任”。这些delta将用于修正后续训练中的权重
回溯(backtracking)
在搜索问题中,碰到障碍后就回到之前的决策点(转向与前一次不同的方向)
位串(bit string)
一种数据结构,存储的是1和0组成的序列,每个序列值用1位内存表示。
有时也被称作位向量(bit vector)或位数组(bit array)
形心(centroid)
聚类的中心点。通常该点每个维度的值都是其他所有点在此维度的均值
染色体(chromosome)
在遗传算法中,种群中的个体被称为染色体
聚类簇(cluster)
聚类(clustering)
一种无监督学习技术,将一个数据集划分为由相关点构成的多个小组,这些小组被称作聚类簇
密码子(codon)
组成氨基酸的3种核苷酸的组合
压缩(compression)
连通(connected)
图的一种属性,表明任一顶点都存在到其他任何顶点的路径
约束(constraint)
为解决约束满足问题而必须满足的条件
交换(crossover)
在遗传算法中,将种群中的个体组合在一起创造出后代,这些后代是其父母的混合体,并将组成下一代种群
CSV comma-separated value
环(cycle) 图的路径,在没有回溯的情况下同一个顶点会被访问两次
解压缩(decompression)
深度学习(deep learning)
任何一种用高级机器学习算法分析大数据的技术都可被认为是深度学习
最常见的深度学习是用多层人工神经网络求解大数据集应用问题
delta
表示神经网络中权重的预期值与实际值之间的差距的一个值
预期值由数据的训练和反向传播进行确定
有向图(digraph) directed graph
有向图(directed graph) 也称作digraph
值域(domain) 约束满足问题中变量的可能取值范围
动态规划(dynamic programming)
动态规划不采用蛮力法直接解决大型问题,而是把大型问题分解为更可控的小型子问题
边(edge)
异或(exclusive or)
前馈(feed-forward)
一种神经网络,信号在其中朝一个方向传播
适应度函数(fitness function)
一种评分函数,对问题可能的解进行效果评价
代(generation)
遗传算法中的一轮计算,也用于表示一轮计算过程中受激活个体组成的种群
遗传编程(genetic programming)
运用选择、交换和变异操作符进行自我修改的程序,以便求解解法不明显的编程问题
梯度下降(gradient descent)
用反向传播时计算出来的delta和学习率,修改人工神经网络权重的方法
图(graph)
一种抽象的数学结构,通过将问题划分为一组相互连通的节点来对现实世界的问题进行建模
这些节点被称为顶点,顶点间的连接被称为边
贪婪算法(greedy algorithm)
一种在任一决策点都选择最优直接选项的算法,以期能导出全局的最优解
启发式算法(heuristic)
一种关于问题求解路径的直觉,认为该路径指向正确的方向
隐藏层(hidden layer)
在前馈人工神经网络中,所有位于输入层和输出层之间的层
无限循环(infinite loop)
无限递归(infinite recursion)
输入层(input layer)
前馈人工神经网络的第一层,接收来自某种外部实体的输入
学习率(learning rate)
通常是一个常数,用于根据计算得出的delta调整人工神经网络权重的修改率
结果缓存(memoization)
最小生成树(minimum spanning tree)
连接所有顶点的生成树,使得所有边的总权重最低
变异(mutate)
在遗传算法中,当个体被放入下一代种群之前随机改变该个体的某些属性
自然选择(natural selection)
生物优胜劣汰的进化过程
给定有限的环境资源,最善于利用这些资源的生物将会存活并繁衍。
经过几代之后,就会让有利的特征在种群中扩散,由此环境约束就做出了自然选择
神经网络(neural network)
由多个神经元构成的网络,神经元相互协同进行信息处理。这些神经元通常视作分层组织
神经元(neuron) 神经细胞个体,正如人类大脑中的神经细胞
归一化(normalization) 让不同类型的数据具有可比性的过程
NP困难问题(NP-hard problem)
一类没有已知的多项式时间算法能够求解的问题
核苷酸(nucleotide)
DNA的4种碱基(腺嘌呤(A)、胞嘧啶(C)、鸟嘌呤(G)和胸腺嘧啶(T)之一的实例
输出层(output layer)
前馈人工神经网络中的最后一层,用于对给定输入和问题确定神经网络的求解结果
路径(path) 连接图中两个顶点的边的集合
层(ply) 在双人游戏中的一个回合(通常可被视为一步)
种群(population)
在遗传算法中,种群是多个个体的集合(每个种群都代表问题可能的解),这些个体相互竞争以期求解问题
优先队列(priority queue)
基于“优先级”顺序弹出数据项的数据结构
队列(queue) 一种抽象数据结构,保证先进先出(First-In-First-Out,FIFO)
递归函数(recursive function) 调用自己的函数
选择(selection) 在遗传算法的一代运算中,为了繁殖而选择个体的过程,以创造下一代中的个体
sigmoid函数(sigmoid function)
流行的激活函数之一,用于人工神经网络。
名为sigmoid的函数始终会返回介于0到1之间的值。
它还有助于确保神经网络能把超出线性变换的结果表示出来
SIMD指令(SIMD instruction)
为向量计算做过优化的微处理器指令,有时也称为向量指令
SIMD代表单指令多数据(single instruction,multiple data)
生成树(spanning tree)
连接图中每个顶点的树
栈(stack) 一种抽象数据结构,保证后进先出的顺序(Last-In-First-Out,LIFO)
监督学习(supervised learning)
机器学习技术中的算法或多或少需要外部资源的指导才能得出正确解
突触(synapse)
神经元之间的间隙,神经递质充斥其中用以传导电流
用非专业的话说,这些就是神经元之间的连接
训练(training)
人工神经网络在训练阶段利用反向传播调整权重,用到的是某些给定输入的已知正确输出
树(tree)
任意两个顶点之间只有一条路径的图
树是无环(acyclic)图(
无监督学习(unsupervised learning)
不用先验知识(foreknowledge)即可得出结论的机器学习技术,这种技术无须指导而是自行运行
变量(variable)
在约束满足问题的上下文中,变量是必须作为解的一部分并求出的参数
变量的可能取值范围即为值域(domain) 解必须满足一条或多条约束条件
顶点(vertex) 图的一个节点
XOR 异或 ^ 两个值相同时,返回false,否则返回true
z分数(z-score) 数据点与数据集均值之间的距离,以标准差为计数单位
上一篇
下一篇
一些有趣的技术网站
程序数据结构与算法
Java switch tableswitch lookupswitch
二叉树的几个重要性质
关于数学的名言
冒泡选择和插入排序比较