心理学考研312必备知识点梳理 ——By Tensor麻麻麻

心理学考研312必备知识点梳理 ——By Tensor麻麻麻,第1张

写给自己的话:

只能说这个表是适合自己的,但不一定适合所有人,有的知识点掌握好,就没放上来,有的掌握差,就列的多一些。大体上是这些。7个学科加起来一共251条,比我预想的还少了(不过有可能是因为合并了,比如:“论述动机的主要理论”,这一条就有好多理论的。)

结合艾宾浩斯表一起食用

第一章:心理学概述

第二章:心理和行为的生物学基础

第三章:意识和注意

第四章:感觉

第五章:知觉

第六章:记忆

第七章:思维

第八章:语言

第九章:情绪和情感

第十章:动机、需要和意志

第十一章:能力

第十二章:人格

第一章:发展心理学概述

第二章:发展心理学的基本理论

第四章:婴儿心理发展

第五章:幼儿心理发展

第六章:童年期儿童心理发展

第七章:青少年的心理发展

第八章:成年期心理发展

第一章:教育心理学概述

第二章:学习与心理发展

第三章:学习心理

第五章:知识的学习

第一章:实验心理学概述

第二章:心理学实验的变量与设计

第三章:反应时

第五章:主要的心理学实验

第一章:描述统计

第二章:推断统计

第一章:经典测量理论

第二章:心理测验的编制与实施

第三章:常用的心理测验

第一章:社会认知

第二章:社会关系

第三章:社会影响

第四章:应用

import tensorflow as tf
# 创建一个常量op, 产生一个1x2矩阵,这个op被作为一个节点
# 加到默认视图中
# 构造器的返回值代表该常量op的返回值
matrix1 = trconstant([[3, 3]])
# 创建另一个常量op, 产生一个2x1的矩阵
matrix2 = trconstant([[2], [2]])
# 创建一个矩阵乘法matmul op,把matrix1和matrix2作为输入:
product = tfmatmul(matrix1, matrix2)

成都的千锋教育很不错,就业率也高。人工智能行业的火爆,让Python从业人员的春天也来了,优秀的Python人才不仅被企业争抢,年薪更是非常可观,Python的前景如此好,自然是吸引了不少人的加入。
选择一个口碑好、师资力量强的培训班,就能随时解决你在学习过程中遇到的任何问题。接下来,为大家讲一下参加成都千锋教育培训班学习Python的三大优势。就业指导,顺利入职:千锋教育Python培训配有专业的就业指导课程,有针对性地对学员在面试中可能会遇到的问题进行分析和解答。让你在学好Python专业知识的同时,掌握面试技巧,成功获得面试官的欣赏和认可。师资力量:千锋教育老师实战经验多。老师不断的推陈出新,探索更新的教学方式,结合时代所需不断更新课程大纲,加强学生对于知识的理解和运用。培训课程:有严格、科学、负责的教学就业管理制度,全程跟班,把握每位学员的学习状态,确保教学质量。千锋教育拥有多年Python培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。

TensorFlow提供Switch和Merge两种operator,可以根据某个布尔值跳过某段子图,然后把两段子图的结果合并,实现if-else的功能。同时还提供了Enter、Leave和NextIteration用来实现循环和迭代。在使用高阶语言(比如Python)的if-else、while、for控制计算流程时,这些控制流会被自动编译为上述那些operator,方便了用户。
StackOverflow
Merge

删除数值为1的维度
Squeeze

根据给定的参数重排数据
Permute

插入一个值为1的维度
ExpandDims

批规范化,在每次SGD时,通过mini-batch来对相应的activation做规范化 *** 作,使得结果(输出信号各个维度)的均值为0,方差为1
知乎

逆卷积,卷积的反向 *** 作
知乎

矩阵乘
Matmul

将bias和value相加,其中bias为一维书局,value为n维数据
BiasAdd

在指定方向上相加,reduce方向的维度数字会变为1
Reduce

将数据打包 / 解包

Stack

沿某一维度连接所有输入tensor

Concat

condition判断语句
z = tfmultiply(a, b)
result = tfcond(x < y, lambda: tfadd(x, z), lambda: tfsquare(y))
Cond

softmax = tfexp(logits) / tfreduce_sum(tfexp(logits), axis)
突出最大值,抑制远小于最大值的输出
Wiki
Softmax

2021年了,竟然还有人写关于Faster R-CNN的文章?我的原因主要有两点:

我们先从全局上了解Faster R-CNN-FPN,然后再关注其中涉及的细节。下面是Faster R-CNN-FPN的网络框架图(或称为tensor流动图)。

众所周知,Faster R-CNN-FPN(主要是Faster R-CNN)是个两阶段的对象检测方法,主要由两部分网络组成,RPN和Fast R-CNN。

RPN的作用是以bouding box(后简称为box)的方式预测出中对象可能的位置,并过滤掉中绝大部分的背景区域,目标是达到尽量召回图像中感兴趣的对象,预测box尽量能够与实际对象的box贴合,并且保证一定的预测精度(Precision)。另外,RPN并不需要指出预测的box中对象具体的类别,RPN预测的box称为RoI(Region of Interest),由于是以box的方式输出,所以后面我们统一将其称为proposal box。

Fast R-CNN则是在FPN预测的proposal box基础上进一步预测box中对象具体的类别,并对proposal box进行微调,使得最终预测的box尽量贴合目标对象。大致的做法是根据RPN预测的proposal box,从原图backbone的feature map上通过RoIPooling或RoIAlign(Faster R-CNN-FPN使用RoIAlign)提取每个proposal box对应区域的feature map,在这些区域feature map上进一步预测box的类别和相对proposal box的偏移量(微调)。另外,RPN和Fast R-CNN共用同一个backbone网络提取图像的feature map,大大减少了推理耗时。

从上面的介绍可以看出,RPN和Fast R-CNN的配合作用其实可以理解为一种注意力机制,先大致确定目标在视野中的位置,然后再锁定目标仔细观察,确定目标的类别和更加精确的位置,简单来说就是look twice,相比单阶段的look once,当然是比较耗时的,但也换来了更好的效果(虽然很多单阶段方法号称已经获得相当或好于两阶段的效果)。

下面以Faster R-CNN-FPN发展顺序的汇总介绍每个改进的核心思想。

在R-CNN中,CNN只被用来作为特征抽取,后接SVM和线性回归模型分别用于分类和box修正回归。在此基础上,Fast R-CNN直接对原输入图进行特征抽取,然后在整张的特征图上分别对每个RoI使用RoIPooling提取(后面会介绍RoIPooling的原理)特定长度的特征向量(论文中空降尺寸为77),去掉SVM和线性回归模型,在特征向量上直接使用若干FC层进行回归,然后分别使用两个FC分支预测RoI相关的类别和box,从而显著提升速度和预测效果。 整体框架图如下:

在Fast RCNN的基础上进一步优化,用CNN网络代替Fast R-CNN中的region proposal模块(使用传统Selective Search方法),从而实现了全神经网络的检测方法,在召回和速度上都超过了传统的Selective Search。作者将提供proposal region的网络称为RPN(Region Proposal Network),与检测网络Fast RCNN共享同一backbone,大大缩减了推理速度。

RPN在backbone产生的feature map(图中的conv feature map)之上执行 的滑窗 *** 作,每个滑窗范围内的feature map会被映射为多个proposal box(图中的reg layer分支)以及每个box对应是否存在对象的类别信息(图中的cls layer分支)。由于CNN天然就是滑窗 *** 作,所以RPN使用CNN作为窗口内特征的提取器(对应图中的intermediate layer,后面简称为“新增CNN层”),窗口大小 ,将feature map映射为较低维的feature map以节省计算量(论文中为256)。虽然只使用了 的卷积,但是在原图上的有效的感受野还是很大的,感受野大小不等于网络的降采样率,对于VGG网络,降采样率为16,但是感受野为228像素。类似于Fast-RCNN,为了分别得到box和box对应的类别(此处类别只是表示有没有目标,不识别具体类别),CNN *** 作之后会分为两个子网络,它们的输入都是新增CNN层输出的feature map,一个子网络负责box回归,一个负责类别回归。由于新增CNN层产生的feature map的每个空间位置的特征(包括通道方向,shape为 )都被用来预测映射前窗口对应位置是否存在对象(类别)和对象的box,那么使用 的CNN进行计算正合适(等效于FC层),这便是RPN的做法。综上所述,所有滑窗位置共享一个新增CNN层和后续的分类和box回归分支网络。下图是RPN在一个窗口位置上执行计算的原理示意。

由于滑窗 *** 作是通过正方形的CNN卷积实现的,为了训练网络适应不同长宽比和尺寸的对象,RPN引入了anchor box的概念。每个滑窗位置会预置k个anchor box,每个anchor box的位置便是滑窗的中心点,k个anchor box的长宽比和尺寸不同,作者使用了9种,分别是长宽比为 、 和 ,尺寸为 , 和 的9种不同组合。分类分支和box回归分支会将新增CNN层输出的feature map的每个空间位置的tensor(shape为 )映射为k个box和与之对应的类别,假设每个位置的anchor box数量为k(如前所述, ),则分类分支输出的特征向量为2k(两个类别),box回归分支输出为4k(4为box信息,box中心点x坐标、box中心点y坐标、box宽w和box高h)。box分支预测的位置(x,y,w,h)都是相对anchor box的偏移量。从功能上来看,anchor box的作用有点类似于提供给Fast RCNN的propsal box的作用,也表示目标可能出现的位置box,但是anchor box是均匀采样的,而proposal box是通过特征抽取(或包含训练)回归得到的。由此可以看出,anchor box与预测的box是一一对应的。从后文将会了解到,通过anchor box与gt box的IoU的关系,可以确定每个预测box的正负样本类别。通过监督的方式让特定的box负责特定位置、特定尺寸和特定长宽比的对象,模型就学会了拟合不同尺寸和大小的对象。另外,由于预测的box是相对anchor box的偏移量,而anchor box是均匀分布在feature map上的,只有距离和尺寸与gt box接近(IoU较大)的anchor box对应的预测box才会与gt box计算损失,这大大简化了训练,不然会有大量的预测box与gt box计算损失,尤其是在训练初始阶段,当一切都是瞎猜的时候。

在Faster RCNN基础上,将backbone替换为ResNet50或ResNet101,涉及部分细节的改动,我们放在本文的细节部分进行描述。

在Faster RCNN-ResNet基础上,引入FPN(特征金字塔网络)模块,利用CNN网络天然的特征金字塔特点,模拟图像金字塔功能,使得RPN和Fast RCNN可以在多个尺度级别(scale level)的feature map上分别预测不同尺寸的对象,大大提高了Faster RCNN的检测能力。相比图像金字塔大大节省了推理时间。原理如下图所示:

从上图中可以看出,FPN并不是简单地使用backbone的多个CNN层输出的feature map进行box回归和分类,而是将不同层的feature map进行了top-down和lateral connection形式的融合后使用。这样便将CNN网络前向传播(bottom-up)产生的深层语义低分辨率特征与浅层的浅语义高分辨率的特征进行融合,从而弥补低层特征语义抽象不足的问题,类似增加上下文信息。其中,top-down过程只是简单地使用最近邻插值将低分辨率的feature map上采样到即将与之融合的下层feature map相同的尺寸(尺寸上采样到2倍),lateral connection则是先将低层的feature map使用 的卷积缩放为即将与之融合的上层feature map相同的通道数(减少计算量),然后执行像素级相加。融合后的feature map不仅会用于预测,还会继续沿着top-down方向向下传播用于下层的特征融合,直到最后一层。

mask R-CNN提出的RoI Align缓解了RoIPooling的缺陷,能够显著提升小目标物体的检测能力。网上介绍RoIPooling和RoIAlign的文章很多,此处不再赘述,推荐阅读个人觉得比较好的两篇博客: RoIPooling 和 RoIAlign 。

此处稍微啰嗦下个人对RoIPooling的思考: 为什么RoIPooling不使用自适应的池化 *** 作,即根据输入的feature map的尺寸和希望输出的feature map尺寸,自动调整池化窗口的大小和步长以计算想要尺寸的feature map,类似于自适应池化 *** 作,而不是将输入的feature map划分成均匀的小区域(bins,论文中划分为 个bins),然后每个小区域中分别计算MaxPooling。不管计算上是否高效,至少这种做法在输入的feature map尺寸(比如 )小于期望的输出feature map尺寸(比如 )时会失效,因为在33的feature map上如果不使用padding的话是无法得到 的特征的,而使用padding又是很低效的 *** 作,因为要扩展局部feature map的尺寸,而使用划分bins的方法,即使输出的feature map尺寸远小于要输出的feature map尺寸,也仅仅是在同一位置采样多次而已。

本人之前介绍YOLOv3的 文章 也介绍过anchor box的作用,再加上本文112节中的介绍应该比较全面了,不再赘述。

此处的绝大部分细节来自论文,论文中未提及的部分,主要参考了mmdetection中的 实现 。

整个模型的网络结构可以划分为四个部分,分别为backbone、FPN、RPN head和Fast RCNN head。

1backbone: 原图短边被resize到800像素,这里值得注意的是,如此resize后一个batch内的每张的大小很有可能并不一致,所以还无法合并为一个输入矩阵,普遍的做法是将batch内的每张的左上角对齐,然后计算resize后batch内所有的最大宽和高,最后按照最大宽或高分别对每张的宽或高进行0值padding;输出为4个不同尺寸的feature map(C2、C3、C4、C5)。

2FPN: ResNet backbone产生的4个不同尺寸的feature map(C2、C3、C4、C5)作为输入,输出5个不同尺寸的feature map(P2、P3、P4、P5、P6),P6是对P5进行2倍降采样得到,每个feature map的通道数为固定的256;使用P6的原因是为了预测更大尺寸的对象。

3RPN:输入为FPN产生的feature map(P2、P3、P4、P5、P6);由于RPN是在5个输入feature map上进行独立的预测,则每个feature map都会输出 proposal box,因此不可能将所有的proposal box都提供给Fast R-CNN,这里的做法是对每个feature map上产生的proposal box按类别概率进行排序(每个feature map上的proposal box独立进行),然后选择前k个proposal box, 5个feature map一共会 产生 个proposal box,训练时 ,推理时 。最后,将所有的 个proposal box合并后统一进行NMS(IoU threshold=07)去掉冗余的box,最后选择前m个输出给Fast R-CNN,训练和测试时m都取1000。

训练时将gt box通过下面的公式转换为相对anchor box的偏移值,与网络的预测计算loss,至于将每个gt与具体的哪个anchor box计算偏移,则需要根据231节中的正负样本方法来确定。测试时将预测的box通过该公式中的逆运算计算出当前box相对原图的位置和大小, , , , 指相对全图的box中心点坐标以及宽和高, , , , 指每个anchor相对全图的box中心点坐标以及宽和高。由此可以看出,box回归分支直接预测的便是相对anchor的偏移值,即公式中的 、 、 和 。

以上提到的2000和1000是作为Fast R-CNN的输入proposal box,在训练时参与RPN loss计算的anchor boxs数量为256个,正负样本数量为 ,正样本不足128的用负样本补足。这里的256是从所有feature map中的anchor box中选择的,并非每个feature map都独立取得256个正负样本。这也是合理的,因为每个gt box由于尺寸的原因,几乎不可能与所有feature map上的anchor box的IoU都大于一定的阈值(原因参考231节)。注意选择前并未进行NMS处理,而是直接根据231节中确定正负样本的方式确定每个预测box正负类别,然后分别在正样本中随机选择128个正样本,在负样本中随机选择128个负样本。

4Fast R-CNN:输入为FPN产生的前4个feature map和RPN输出的proposal box,4个feature map为P2、P3、P4、P5,与backbone对应,不使用P6。那么,如何确定在哪个feature map上执行每个proposal box对应的RoIAlign *** 作并得到 大大小的feature map呢?论文中的做法是通过下面的公式将特定尺寸的proposal box与FPN产生的4个feature map中尺寸最适合的对应起来,即让感受野更接近对象尺寸的feature map预测该对象 ,其中224为backbone在ImageNet上预训练的尺寸,w和h为proposal box的长和宽,k表示适合尺寸为w和h的propsal box的feature map的位置,即4个feature map为P2、P3、P4、P5的下标,k_0为proposal box大致为224224时对应feature map位置值( ),表示proposal box大致为 时在P4上执行RoIAlign,小于 时,在P2或P3上执行,大于则在P5上。

网络都会针对每个RoI会输出一个类别概率分布(包括背景类别)和一个相对RoI box的长度为4的box偏移向量。概率分支由softmax激活函数得到。与RPN的类似,训练时,如242节loss计算中所述,会将gt box通过下面的公式转换为相对proposal box(前提是该RoI是正样本)的偏移量,然后使用loss计算公式直接与预测的相对偏移量进行loss计算;测试时,会通过下列公式的逆运算将偏移值换算回相对原图的位置box,然后使用NMS去掉冗余的box,最终输出。

训练时,通过232中的方式确定每个proposal box属于正样本或负样本后,随机选择512个样本,其中正负比例为1:3进行loss计算,正样本不足的由负样本补足。

在RPN中,由于每个feature map的每个滑窗位置上的张量( 维张量,C为feature map的通道数)会被用来预测k个box和每个box对应的类别概率,那么具体哪个box才能参与gt box的损失计算(包括类别和box回归损失)?这便需要在所有预测的box中确定正负样本,因为一个anchor对应一个预测的box和类别,那么确定预测的box是正例还是负例等价于确定anchor box的是正例还是反例。为了便于训练,RPN中使用双IoU阈值的方式确定正负样本,与gt box的IoU为最大或者大于07的anchor box被设置为正样本,这会导致一个gt box与多个预测box计算损失,即允许多个box预测同一对象,与gt box的IoU小于03的anchor box被设置为负样本,其余的忽略掉,即不参与loss计算。在此基础上,如22节中所述,会对正负样本进行随机采样,总数为256,其他不参与损失函数计算。

与gt box的IoU大于05的proposal box作为正样本,注意,是将proposal box与gt box计算IoU,Fast-RCNN中的proposal box的作用与anchor box有些类似,即确定正负样本和预测的box 都是针对它们的偏移值 ,其余IoU在 之间的作为负样本,低于01的作为难例挖掘时的启发式样本(mmdetection中的做法是单阈值方式,与gt box的IoU大于05的proposal box作为正样本,小于的都是负样本)。

Faster R-CNN中是以分步的方式联合训练RPN和Fast R-CNN,大致的过程为:

但在mmdetection中,已经将RPN和Fast R-CNN的loss进行权重加和,从而进行联合训练,训练流程简化很多,且能够达到相同的效果。

确定了每个预测box或anchor box的正负类别后,便可以计算损失函数了,类似于Fast RCNN的做法,只有正样本的box才会参与box损失计算,损失函数如下:

为类别损失为类别损失函数,使用交叉熵损失, 为box回归损失,使用smooth L1损失,论文中平衡因子lambda为10。 表示第i个anchor box对应的gt 类别(背景为0,对象为1), 为gt box相对anchor box的偏移量(如果该anchor box被确定为正样本),通过下面的公式计算得到, 即表示只有 ,即为正样本时才会计算box的损失。

Fast R-CNN的loss类似于RPN,只有proposal box为非背景类别(正样本)时才计算box损失, 为类别损失, 为box损失, 表示proposal box的 , 时表示背景(通过232的方式确定proposal box的类别)。 为平衡因子,作者所有实验中 。为了防止box回归的L2 loss放大噪声(异常loss)从而影响训练,作者将L2 loss修改为 loss,当box尺寸的差异较大时使用L1 loss,抑制异常值对梯度的贡献。

其中v是通过下面的公式将gt box( , , , )转换得到,其中,( , , , )为proposal box的在原图中的中心点坐标和宽与高。

在Faster R-CNN和Faster R-CNN-ResNet中,由于RPN只是在单尺寸的feature map上进行滑窗,为了缓解多尺寸的问题,每个滑窗位置会设计多个尺寸的anchor,但是在Faster R-CNN-FPN中使用了FPN,则天然就具有了适应对象多尺寸的问题,因此不用再为每个滑窗设计多个尺寸的anchor。即在Faster RCNN-FPN中,为每种尺寸feature map上的滑窗只设计了单一尺寸多种长宽比的anchor,长宽比有 、 和 ,不同feature map上anchor的尺寸为: , , , 和 ,依次对应P2、P3、P4、P5和P6。

COCO上的训练细节:RPN的weight decay为00001,SGD的 ,初始学习率为0002,学习率调整使用step decay方式。

本节是自动求导框架技术的第一节,本系列其余文章包括

自动求导框架综述

2 链式法则与计算图

3 控制流与其实现思路

4 自动求导框架的架构

5 使用自动求导框架实现RNN

    本节内容主要介绍矩阵求导的相关知识主要参考了知乎的 矩阵求导术 这系列文章。由于自动求导框架是建立在张量(tensor)运算上的,张量在这里理解为一种多维的矩阵,因此矩阵求导的概念是自动求导框架的基础。

    矩阵求导是针对于参数是矩阵的函数,比如函数

其中X,Y,Z都是矩阵。矩阵求导可以看做是单一变量求导的推广,以上面的函数为例,  Z 对 X 求导就是 Z 矩阵中的每个元素对 X 矩阵中的每个元素求导,然后做一下简单的合并。 假设矩阵 Z 是一个尺寸为 a×b 的矩阵,矩阵 X 是一个 c×d 的矩阵,矩阵 Z 对矩阵 X 的导数矩阵 G_zx 的求解分成了两步: 1求导  2合并 。在求导的时候矩阵G_zx是一个尺寸为 (ab) × (cd) 的二维矩阵,其中第 i 行中的第 j 个元素表示 Z 矩阵中的 i 号元素对 X 矩阵的 j 号元素进行求导,这样就把矩阵求导转化为了单个变量的求导过程:

观察上图中的 G_zx 矩阵,可知对于每一列而言实际上是 Z 矩阵中每个元素对于 X 矩阵的某个元素的导数,则 Z 矩阵整体对于 X 矩阵中某个元素的导数即是把 G_zx 在求导步骤的结果按行相加,得到 尺寸为1 × (cd) 的矩阵,表示 Z 矩阵整体对于 X 矩阵中的 cd 个元素分别求导的结果,这就是合并步骤需要做的事情:

    上面介绍了矩阵之间的求导方法,这个方法可以较为容易的推广到多维矩阵——张量上。

    下面采用矩阵乘法作为例子,回顾一下上述过程。这时候 X 矩阵是一个 2×2 的矩阵,Y 是一个 2×2 的矩阵,Z是一个 2×2 的矩阵,f 函数表示 X 矩阵和 Y 矩阵乘法。通过上述过程我们可以得到以下结果:

奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出最重要的算法,以下是这次调查的结果,按照英文名称字母顺序排序。
大数据等最核心的关键技术:32个算法
1、A 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的最佳路径,并以之为各个地点排定次序。算法以得到的次序访问这些节点。因此,A搜索算法是最佳优先搜索的范例。
2、集束搜索(又名定向搜索,Beam Search)——最佳优先搜索算法的优化。使用启发式函数评估它检查的每个节点的能力。不过,集束搜索只能在每个深度中发现最前面的m个最符合条件的节点,m是固定数字——集束的宽度。
3、二分查找(Binary Search)——在线性数组中找特定值的算法,每个步骤去掉一半不符合要求的数据。
4、分支界定算法(Branch and Bound)——在多种最优化问题中寻找特定最优化解决方案的算法,特别是针对离散、组合的最优化。
5、Buchberger算法——一种数学算法,可将其视为针对单变量最大公约数求解的欧几里得算法和线性系统中高斯消元法的泛化。
6、数据压缩——采取特定编码方案,使用更少的字节数(或是其他信息承载单元)对信息编码的过程,又叫来源编码。
7、Diffie-Hellman密钥交换算法——一种加密协议,允许双方在事先不了解对方的情况下,在不安全的通信信道中,共同建立共享密钥。该密钥以后可与一个对称密码一起,加密后续通讯。
8、Dijkstra算法——针对没有负值权重边的有向图,计算其中的单一起点最短算法。
9、离散微分算法(Discrete differentiation)。
10、动态规划算法(Dynamic Programming)——展示互相覆盖的子问题和最优子架构算法
11、欧几里得算法(Euclidean algorithm)——计算两个整数的最大公约数。最古老的算法之一,出现在公元前300前欧几里得的《几何原本》。
12、期望-最大算法(Expectation-maximization algorithm,又名EM-Training)——在统计计算中,期望-最大算法在概率模型中寻找可能性最大的参数估算值,其中模型依赖于未发现的潜在变量。EM在两个步骤中交替计算,第一步是计算期望,利用对隐藏变量的现有估计值,计算其最大可能估计值;第二步是最大化,最大化在第一步上求得的最大可能值来计算参数的值。
13、快速傅里叶变换(Fast Fourier transform,FFT)——计算离散的傅里叶变换(DFT)及其反转。该算法应用范围很广,从数字信号处理到解决偏微分方程,到快速计算大整数乘积。
14、梯度下降(Gradient descent)——一种数学上的最优化算法。
15、哈希算法(Hashing)。
16、堆排序(Heaps)。
17、Karatsuba乘法——需要完成上千位整数的乘法的系统中使用,比如计算机代数系统和大数程序库,如果使用长乘法,速度太慢。该算法发现于1962年。
18、LLL算法(Lenstra-Lenstra-Lovasz lattice reduction)——以格规约(lattice)基数为输入,输出短正交向量基数。LLL算法在以下公共密钥加密方法中有大量使用:背包加密系统(knapsack)、有特定设置的RSA加密等等。
19、最大流量算法(Maximum flow)——该算法试图从一个流量网络中找到最大的流。它优势被定义为找到这样一个流的值。最大流问题可以看作更复杂的网络流问题的特定情况。最大流与网络中的界面有关,这就是最大流-最小截定理(Max-flow min-cut theorem)。Ford-Fulkerson 能找到一个流网络中的最大流。
20、合并排序(Merge Sort)。
21、牛顿法(Newton’s method)——求非线性方程(组)零点的一种重要的迭代法。
22、Q-learning学习算法——这是一种通过学习动作值函数(action-value function)完成的强化学习算法,函数采取在给定状态的给定动作,并计算出期望的效用价值,在此后遵循固定的策略。Q-leanring的优势是,在不需要环境模型的情况下,可以对比可采纳行动的期望效用。
23、两次筛法(Quadratic Sieve)——现代整数因子分解算法,在实践中,是目前已知第二快的此类算法(仅次于数域筛法Number Field Sieve)。对于110位以下的十位整数,它仍是最快的,而且都认为它比数域筛法更简单。
24、RANSAC——是“RANdom SAmple Consensus”的缩写。该算法根据一系列观察得到的数据,数据中包含异常值,估算一个数学模型的参数值。其基本假设是:数据包含非异化值,也就是能够通过某些模型参数解释的值,异化值就是那些不符合模型的数据点。
25、RSA——公钥加密算法。首个适用于以签名作为加密的算法。RSA在电商行业中仍大规模使用,大家也相信它有足够安全长度的公钥。
26、Schnhage-Strassen算法——在数学中,Schnhage-Strassen算法是用来完成大整数的乘法的快速渐近算法。其算法复杂度为:O(N log(N) log(log(N))),该算法使用了傅里叶变换。
27、单纯型算法(Simplex Algorithm)——在数学的优化理论中,单纯型算法是常用的技术,用来找到线性规划问题的数值解。线性规划问题包括在一组实变量上的一系列线性不等式组,以及一个等待最大化(或最小化)的固定线性函数。
28、奇异值分解(Singular value decomposition,简称SVD)——在线性代数中,SVD是重要的实数或复数矩阵的分解方法,在信号处理和统计中有多种应用,比如计算矩阵的伪逆矩阵(以求解最小二乘法问题)、解决超定线性系统(overdetermined linear systems)、矩阵逼近、数值天气预报等等。
29、求解线性方程组(Solving a system of linear equations)——线性方程组是数学中最古老的问题,它们有很多应用,比如在数字信号处理、线性规划中的估算和预测、数值分析中的非线性问题逼近等等。求解线性方程组,可以使用高斯—约当消去法(Gauss-Jordan elimination),或是柯列斯基分解( Cholesky decomposition)。
30、Strukturtensor算法——应用于模式识别领域,为所有像素找出一种计算方法,看看该像素是否处于同质区域( homogenous region),看看它是否属于边缘,还是是一个顶点。
31、合并查找算法(Union-find)——给定一组元素,该算法常常用来把这些元素分为多个分离的、彼此不重合的组。不相交集(disjoint-set)的数据结构可以跟踪这样的切分方法。合并查找算法可以在此种数据结构上完成两个有用的 *** 作:
查找:判断某特定元素属于哪个组。
合并:联合或合并两个组为一个组。
32、维特比算法(Viterbi algorithm)——寻找隐藏状态最有可能序列的动态规划算法,这种序列被称为维特比路径,其结果是一系列可以观察到的事件,特别是在隐藏的Markov模型中。
以上就是Christoph博士对于最重要的算法的调查结果。你们熟悉哪些算法又有哪些算法是你们经常使用的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13398710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-28
下一篇 2023-07-28

发表评论

登录后才能评论

评论列表(0条)

保存