学习人工智能需要掌握32种算法
奥地利符号计算研究所(RISC)的Christoph Koutschan博士在他的主页上发了一篇文章,其中提到他做了一项调查,大多数参与者都是计算机科学家。他请科学家投票选出最重要的算法。以下是本次调查的结果,按英文标题字母顺序排列。
1、A* 搜索算法 – 一种图形搜索算法,用于计算从给定起点到给定终点的路径。启发式估计用于估计每个节点的最佳路径并对位置进行排名。该算法按照收到的顺序访问这些节点。因此,A* 搜索算法是最佳优先搜索的一个示例。
2、快速搜索(也称为 Beam Search)- 最佳优先搜索算法的优化。使用启发式函数来评估正在探索的每个节点的能力。然而,波束搜索只能找到每个深度中前 m 个最合格的节点,其中 m 是一个固定数字——波束的宽度。
3、二分搜索(二分搜索)- 在线性数组中查找特定值的算法。每一步都会剔除一半不符合要求的数据。
4、分支定界算法(分支定界) - 一种用于寻找各种优化问题的特定最优解的算法,特别是对于离散和组合优化。
5、Buchberger 算法方法 - 一种数学算法,可以视为求解单变量系统最大公约数的欧几里得算法,也是高斯系统的泛化方法。
6、数据压缩——采用特定的编码方案,用较少的字节(或其他信息承载单位)对信息进行编码,也称为源代码。
7、Diffie-Hellman 密钥交换算法 - 一种加密协议,允许两方通过不安全的通信通道共同创建共享密钥,而另一方事先不知道。该密钥稍后可以与对称密码一起使用来加密后续通信。
8、Dijkstra算法——对于没有负权边的有向图,从单个起点计算最短算法。
9、离散微分算法(离散微分)。?算法)——计算两个整数的最大公约数。欧几里得的《几何原本》是最古老的算法之一,出现于公元前 300 年之前。
12、期望最大化算法(期望最大化算法,也称为 EM 训练)- 在统计计算中,期望最大化算法寻找最可能的参数估计模型。其中模型依赖于未发现的潜在变量。 EM 分两步交替计算。第一步是使用隐藏变量的可用估计来计算期望,以计算其最大可能估计;第二步是最大化,最大化第一步获得的价值。最大可能值用于计算参数值。
13、 快速傅里叶变换 (快速傅里叶变换,FFT)- 计算离散傅里叶变换 (DFT) 及其逆变换。该算法具有广泛的应用范围,从数字信号处理到求解偏微分方程,再到快速计算大整数的乘积。
14、梯度下降(梯度下降)——数学优化算法。
15、哈希计算方法(哈希)。
16、堆排序(堆)。
17、Karatsuba 乘法 - 用于需要完成数千个整数乘法的系统,例如计算机代数系统和大数库。如果使用长乘法,速度太慢。该算法于 1962 年被发现。
18、LLL 算法 (Lenstra-Lenstra-Lovasz 晶格简化)- 将晶格简化(格子)基作为输入并输出短向量基。 LLL算法广泛应用于以下公钥加密方法:背包、固定设置的RSA加密等。
19、最大流量算法 (最大流量)- 此算法尝试查找网络中的最大电流。它的优点被定义为找到这样一个流的价值。最大流问题可以被视为更复杂的网络流问题的特例。最大流量与网络中的接口有关,这就是最大流量最小割定理。 Ford-Fulkerson 可以找到电源的最大电流。
20,归并排序(归并排序)。
21、牛顿法(牛顿法)——一种寻找非线性方程(组)零点的重要迭代方法。
22、Q-Learning学习算法——是一种强化学习算法,辅以学习在给定状态下执行给定动作并计算期望效用值的动作值函数,以及然后遵循一定的策略。 Q-learning 的优点是可以比较可接受行为的预期效用,而不需要环境模型。
23、二次筛法(二次筛法)——现代整数分解算法是目前实践中第二快的此类算法(仅次于数域筛法)。对于 10 到 110 位的整数,它仍然是最快的,并且被认为比数字字段过滤方法更简单。
24、RANSAC——是“随机样本共识”的缩写。该算法根据包含异常值的观测数据系列来估计数学模型的参数值。基本假设是数据包含非特质值,即可以通过某些模型参数解释的值,而特质值是那些不适合模型的数据点。
25、RSA - 公钥加密算法。第一个适用于加密签名的算法。 RSA在电子商务中仍然广泛使用,每个人都相信它有足够安全长度的公钥。
26、Schönhage-Strassen 算法 - 在数学中,Schönhage-Strassen 算法是一种快速渐近算法,用于终止大整数的乘法。算法复杂度为:O(N log(N) log(log(N)))。该算法使用傅里叶变换。
27、单纯形算法(单纯形算法)——在数学优化理论中,单纯形算法是寻找线性规划问题数值解的常用技术。线性规划问题由一组实变量的线性不等式和要最大化(或最小化)的固定线性函数组成。
28、奇异值分解(奇异值分解,简称SVD)——在线性代数中,SVD是实数或复数矩阵的重要分解方法。信号处理和统计中有许多不同的方法。计算矩阵伪逆(用于求解最小二乘问题)、求解超定线性系统、矩阵逼近、数值天气预报等应用。
29、求解线性方程组(求解线性方程组)- 线性方程是数学中最古老的问题。它们有许多应用,例如数字信号处理和线性编程。数值分析中非线性问题的估计和预测、逼近等您可以使用 Gauss-Jordan 消去法或 Cholesky 分解来求解线性方程组。 30、结构张量算法 - 应用于模式识别领域,找到所有像素的计算方法,看某个像素是否在同质区域以及是否属于。边缘仍然是顶部。 31、并集查找算法 (并集查找)- 给定一组元素,此算法通常用于将这些元素划分为几个不同的、不重叠的组。不相交集数据结构可以跟踪此类分割方法。连接查找算法可以利用此数据结构执行两项有用的操作: 32、维特比算法(维特比算法) - 动态规划算法,可找到最可能的隐藏状态序列。该序列称为维特比路径。结果是一系列可观察事件,尤其是在隐马尔可夫模型中。 以上是 Christoph 博士 对最重要算法的研究结果。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网