人工智能有三驾马车:数据、算法、算力。本文重点介绍算法相关的知识。
本文将介绍算法在人工智能里的概念,算法的4个特征、6个通用方法。以及在选择算法时需要注意的3个点。
什么是算法?
简单的说,算法就是:解决问题的手段,并且是批量化解决问题的手段。
菜谱就是一种“算法”,只要按照菜谱的方法做,就能做出对应的菜。
人工智能里的算法主要是用来训练模型的。
机器学习 一共有7步,第3步就是选择合适的算法模型。通过训练得到最后的可预测模型。
算法的4个基本特征
算法具有下面4个特征:
- 可行性
- 确定性
- 有穷性
- 拥有足够的情报
关于这4项特征详细的说明请查看《算法的基本概念》
算法的6个基本方法
计算机的算法和人类计算的方式不同,大致有6种不同的思路:
- 列举法
- 归纳法
- 递推
- 递归
- 减半递推技术
- 回溯法
想要了解详情可以查看《算法的基本概念》
选择算法时的3个Tips
- 解决不同的问题可能会用到不同的算法,也可能用相同的算法。没有某种算法是万能的,只是适用的范围不同而已。
- 算法没有高级和低级之分,快速便宜的解决问题才是目的,一味追求复杂的算法(例如:深度学习),相当于“用大炮打蚊子”
- 有时候有多种算法可以解决同一个问题,用最低的成本和最短的时间解决问题才是目的。根据不同环境选择合适的算法很重要。
百度百科+维基百科
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。
在数学和计算机科学中,算法是如何解决一类问题的明确规范。算法可以执行计算,数据处理和自动推理任务。
作为一种有效的方法,算法可以在有限的空间和时间内以及用于计算函数的明确定义的形式语言中表达。从初始状态和初始输入开始,指令描述了一种计算,当执行时,通过有限个明确定义的连续状态,最终产生“输出”和终止于最终结束状态。
算法的概念已经存在了几个世纪。希腊数学家在例如Eratosthenes的筛子中使用算法来寻找素数,并使用Euclidean算法来找到两个数的最大公约数。算法这个词本身来自9世纪的数学家MuḥammadibnMūsāal-Khwārizmī,拉丁化的Algoritmi。对于现代算法概念的部分形式化始于试图解决大卫希尔伯特于1928年提出的Entscheidungsproblem(决策问题)。后来的形式化被定义为试图定义“有效可计算性”或“有效方法” 。这些形式化包括1930年,1934年和1935年的Gödel-Herbrand-Kleene递归函数,1936年的Alonzo Church的lambda演算,1936年的Emil Post的Formulation 1,以及1936-37和1939年的Alan Turing的图灵机。