人工智能内部原理(二)(5)

简介: 人工智能内部原理(二)

人工智能内部原理(二)(4)https://developer.aliyun.com/article/1525486

附录 B:算法和编程语言

本附录奠定了理解 AI 概念的基础,并介绍了两个关键原则,即算法和编程语言,它们是计算机科学和 AI 发展的重要组成部分。

B.1 算法

计算机程序是以可执行的形式表达的一组指令。主要地,计算机程序可以分类为操作系统或应用程序。操作系统管理计算机的内部功能,而应用程序允许计算机用户做诸如玩视频游戏或打字文档的事情。操作系统和应用程序都使用算法来定义它们的逻辑,并描述计算机执行特定任务时需要遵循的步骤。因此,算法是计算机科学的核心。

算法 一词是波斯数学家 Al-Khwarizmi 的名字的拉丁化,他在公元 813 年至 833 年间写了《通过补充和平衡进行计算的简明书》。这本历史性的著作的唯一剩余副本保存在牛津大学,Al-Khwarizmi 在其中介绍了解决各种类型问题的逐步过程。例如,他是第一个正式引入像二次方程解 ax2 + bx + c = 0 这种类型问题的方法的人。

算法对计算机的运行方式就像食谱对烹饪的作用一样重要。为了创建所需的结果,我们必须预先定义一组特定的操作,以固定的顺序应用。算法使计算机能够无疲倦地、准确地重复长序列的逻辑操作,只要它的逻辑和输入是正确的。创建算法通常涉及将问题解决过程分解为离散步骤。设计算法需要理解问题的结构、解决方案所需的属性、可能的输入和期望的输出。

一个创建和实现算法的方法是从使用流程图来勾勒解决方案的逻辑开始。图 B.1 显示了我在与根据内容的词汇表进行的语境分析相关的专利中提交的一个流程图之一。


图 B.1 显示了一个流程图的示例,描述了算法中的各个步骤。

众所周知,互联网已经彻底改变了信息传播和共享的方式。在任何给定时间,全球数百万人,包括儿童、学生、教育工作者、商人和政府官员,通过电子方式交换大量的数字数据,他们有各种不同的背景和个性。尽管这些信息可以轻松地分发给任何有电脑或网页访问权限的人,但它可能包含不适合所有用户的令人反感和冒犯的材料。特别是,成人或暴力的在线内容可能不适合儿童。

我们将使用基于上下文的方法推断单词使用的上下文。上下文可能基于内置词库或其他技术。内置词库可以是单词及其上下文的数据库。例如,单词苹果的上下文可能是水果纽约计算机。我们通过计算其与不良材料的相关度值来评估特定内容的适当性。

一旦确定了高级流程,就可以设计模块来解决特定的任务。将算法形式化为逻辑和模块后,我们必须选择适当的编程语言在计算机上编码。每个模块可以由不同的团队编写和测试,以提高实现的效率。

B.2 编程语言

人们通常通过口语或书面语言与其他人交流,如英语或法语。然而,与计算机的交流可能需要使用计算机编程语言。这些语言涉及通过键入的符号传递思想,尽管像我们熟悉的语言一样,这些符号根据语法、句法和语义规则组合。编程语言用于将算法从人类的言语和书写转换为计算机可以解释和执行的符号和指令。

计算机编程语言在许多方面比人类语言简单得多。例如,它们使用非常有限的词汇量,只能表达概念,例如“如果这样,那么就这样做;否则,就那样做”或“检查条件 X 是否成立,并且语句 Y 是否为真。”使用编程语言表达某事需要严格遵循规则;不允许偏离。将这种严格性与英语或法语进行比较,尽管它们要求词语和句子遵循句法和语义规则组合,但可以以极其灵活的方式表达无限多的概念。

在 1951 年,由威尔克斯、惠勒和吉尔[1]编写的《用于电子数字计算机程序的准备》成为有史以来第一本关于计算机编程的书,它激发了许多第一代语言的创造。例如,Flow-Matic 是第一种类似英语的编程语言,于 20 世纪 50 年代后期由格雷斯·霍普领导为 UNIVAC I 创建。用“类似英语”这样的术语描述编程语言,可以让人了解程序代码的可理解程度。例如,与其不得不输入明确的指令让计算机从其内存的某个部分检索数据并通过特定通道传输,不如输入一个简单的指令“打印 X”来完成相同的任务。

为了使编程语言更加用户友好,促使了 1959 年通用商业导向语言(COBOL)的出现。它被设计用于处理业务数据,并提供了自然语言风格的编程。它重视数据描述,并引入了数据结构的概念,这是存储和检索特定类型信息的特殊格式。COBOL 还将一般程序的结构分为几个部分——标识部分、环境部分、数据部分和过程部分。

当 COBOL 成为美国国防部计算机的强制性语言时,它在编程界的影响力显著增加。尽管自那时以来语言已经发展,但 COBOL 仍然是一种广泛使用的编程语言。根据哈特曼[2]的说法,截至 2022 年,超过 2200 亿行 COBOL 代码仍在联邦政府机构和金融机构的计算机上运行。大约 95%的 ATM 刷卡交易使用 COBOL 代码处理,而每天 80%的面对面交易都由 COBOL 编写的程序处理。

另一种重要的编程语言 Fortran,是由约翰·贝克斯(John Backus)及其团队于 20 世纪 50 年代末发明的。回顾他的动机,贝克斯写道:“当我在 IBM 701 上(一台早期计算机)工作,为计算导弹轨迹编写程序时,我开始着手设计一个编程系统,以使编写程序更容易”[3]。Fortran 的目的是使编程变得更易于实现,而在很大程度上,它做到了。

曾经繁琐、困难和昂贵的为单个问题打字数千条程序指令的任务可以通过几十条 Fortran 指令完成。因此,自 1957 年商业发布以来,Fortran 成为第一个计算机语言标准。它通过向普通大众开放计算机科学领域极大地帮助了现代计算。像 COBOL 一样,Fortran 在创建后 60 多年仍在使用。

在人工智能领域,我们需要用于建模学习和推理等智能过程的编程语言。这些要求超出了设计用于执行数值计算的语言的能力,例如 Fortran。AI 需要能够操作程序和数据、处理和解释符号,并表示在语言处理、计算机视觉和推理系统等应用中出现的不同对象和格式的特征的语言。为了满足这些要求,约翰·麦卡锡在 20 世纪 50 年代末设计了 Lisp。他描述了语言的目标如下[4]:

作为一种编程语言,LISP 的特点包括以下几点:使用符号表达式而不是数字进行计算,在计算机的内存中通过列表结构表示符号表达式和其他信息。

Lisp 在计算机科学中开创了许多思想,包括树数据结构,自动存储管理,动态类型,条件,高阶函数,递归等。

源代码是用于编写计算机程序的一组指令,使用其中一种语言,并且大多数计算机语言都是编译的或解释的。编译语言,如 C 和 C ++,使用另一种称为编译器的软件在程序执行之前将源代码转换为目标代码。编译器将源代码转换为特定的机器指令,可以直接由微处理器执行(图 B.2)。


编译器实现图 B.2

解释语言的源代码,如 Lisp,可以直接执行,无需编译(图 B.3)。因此,应用程序可以更快地开发。此外,解释语言与硬件无关,因为它们可以在解释器支持的任何体系结构上运行。解释器的缺点是,例如在 Lisp 中编写的相同代码将比使用编译语言(如 C 或 C ++)编写的代码慢一个数量级。当解释器执行程序时,必须逐行阅读源代码并即时将其转换为机器代码;相比之下,编译代码在执行程序之前已经被翻译成机器代码。


解释器实现图 B.3

其他语言,如 Java,采用混合方法。如果计算机程序可以在各种类型的计算机上执行,则将其分类为可移植的。即使可以在不同类型的计算机上编译高级语言,例如 C ++,但由此生成的目标代码通常只能在一种类型的计算机上执行。用解释语言编写的源代码只要安装了解释器语言,就可以在任何计算机上执行。Java 被称为可移植,因为源代码被转换为虚拟机代码,以便不限制编译器生成的代码到特定的处理器架构。

Lisp 是第一种引入“垃圾收集”的语言。此术语是指一种自动过程,可以释放曾用于存储程序数据但不再需要的内存,以供其他用途使用。

另一个广泛使用的语言是 BASIC,是初学者全用途符号指令代码的首字母缩写。由约翰·凯门尼(John Kemeny)和托马斯·库尔兹(Thomas Kurtz)于 1964 年开发,这种简单直接的语言,与 Fortran 一样,专门设计用于易用性。凯门尼和库尔兹希望使科学和非科学领域的学生都能在工作中使用计算机。

在 Fortran 和 BASIC 等高级语言引入之前,编程计算机通常是相当困难的,因为这些语言更抽象,硬件独立,更贴近人类语言,使用起来更容易。通常,唯一可用的选项是汇编语言,它比直接写一串 1 和 0 稍微简单一点,需要为计算机必须遵循的每条指令编写语句。除了复杂、困难和耗时外,汇编代码通常引用计算机上的特定方面,这意味着为一台计算机编写的程序可能在另一台计算机上无法正常工作。

尽管每种编程语言都可以实现大多数算法,正如我们刚刚学到的那样,但通常情况下,编程语言都是针对特定领域设计的。有些语言适用于特定应用,而有些则不太适合。例如,COBOL 非常适合用于业务数据处理,Fortran 更适合用于科学应用,而 Lisp 则是为人工智能而设计的。还有一些语言,比如 C 语言,更适用于计算机系统,因为它们包含了操纵存储在计算机上的二进制信息的元素。还有一些语言,比如结构化查询语言(SQL)用于操作数据库,R 语言用于数据分析。如今,有数以百计的编程语言。

如果你以前没见过计算机代码,下面是一个示例。该程序是用 C 编程语言编写的,运行它将使计算机在屏幕上打印“你好吗?”。这段文本将被一个名为编译器的程序转换成汇编代码,然后被计算机处理为指令并执行:

#include <stdio.h>
int main( )
{
 printf("How are you?");
 return 0;
}

结语

当我们结束对人工智能迷人世界的探索时,我们需要反思我们一起走过的旅程。在本书的各章中,我们探讨了各种人工智能技术,追溯了它们从专家系统早期到深度学习的当代时代的演变。我们发现的是,所有这些技术都依赖于代码和数学公式。在其核心,人工智能是一种利用算法处理和分析大量数据的工具,从而赋予机器检测模式、做出预测和执行传统上需要人类智慧的任务的能力。从数据中学习的能力是人工智能力量的核心。不幸的是,由于耸人听闻的报道,误导了公众的看法,培养了不切实际的期望和投机的恐惧,而忽视了它可以提升我们生活的显著方式。

人工智能作为一种强大的工具,具有显著改善我们生活质量的潜力。然而,其深远影响的实现取决于我们如何有效地利用它。以一种细致理解其能力和局限性的方式来部署它至关重要。通过全面的视角,我们可以释放人工智能的真正潜力,负责任和道德地引导其复杂性,确保其好处最大化,同时减轻潜在的缺点。

三十多年来,我对人工智能的热情一直是推动我将人工智能应用于现实世界使命关键应用的动力。在撰写本书时,我的主要愿望是为那些对这一领域新手的人揭开人工智能的神秘面纱。我希望通过这些页面,你们获得了辨别围绕人工智能的神话和其实际现实的知识。

约瑟夫·魏岑鲍姆,第一个聊天机器人 ELIZA 的创造者,似乎避免了夸大自己成就的常见倾向。他对人工智能的以下精彩但冷静的描述如下[1]:

机器被制造成以奇妙的方式行为,往往足以使即使是最有经验的观察者也感到眼花缭乱。但是一旦一个特定的程序被揭示,一旦它的内部运作被用足以引起理解的简单语言解释出来,它的魔力就会崩溃;它被揭示为一组简单易懂的程序。

1965 年约瑟夫·魏岑鲍姆的描述在 2024 年仍然如此准确。人工智能系统仍然没有推理能力,它们不会很快在需要智力、身体敏捷、常识、判断力、创造力、社交关系或复杂推理的任务中取代我们。

我在人工智能领域工作多年,大大增加了我对人类情感和智慧的欣赏和尊重。我们大多数的心智能力超出了我们的自省和理解能力。如果我们将我们的身体看作硬件,我们的思维看作软件,我们代表着一种比我们所希望创造的任何东西都要先进得多的技术。

新兴的人工智能技术有潜力以深远方式赋予人类力量,超越医疗保健、教育、工程、农业和其他领域的界限。然而,必须承认人工智能并非万能良药。它是一个强大的工具,其使用将反映人类智慧的高贵和卑鄙的两面。

AI 的发展轨迹将涉及军事应用、监控机制、网络战、虚假信息宣传,甚至压迫性用途。然而,我相信人工智能的智慧增强将通过人类智慧和机器惊人的速度的结合,增加经济繁荣,为研究人员和创业者创造新的机会,创造更多的就业机会,并为更大的利益而应用新产品。

相关文章
|
30天前
|
机器学习/深度学习 算法 数据建模
计算机前沿技术-人工智能算法-生成对抗网络-算法原理及应用实践
计算机前沿技术-人工智能算法-生成对抗网络-算法原理及应用实践
25 0
|
30天前
|
机器学习/深度学习 人工智能 算法
人工智能-大语言模型-微调技术-LoRA及背后原理简介
人工智能-大语言模型-微调技术-LoRA及背后原理简介
37 0
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能:从原理到实践
【10月更文挑战第6天】在这篇文章中,我们将深入探讨人工智能的基本原理,并展示如何将这些理论应用到实际编程中。无论你是AI新手还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。我们将从基础概念开始,逐步深入到复杂的编程示例,最后总结出一些关于人工智能未来发展的思考。让我们一起踏上这段探索之旅吧!
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能:原理、应用与Python代码示例
人工智能:原理、应用与Python代码示例
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能】深度解读 ChatGPT基本原理
ChatGPT是OpenAI开发的一种基于人工智能技术的自然语言处理工具,它代表了自然语言处理(NLP)技术的前沿进展。ChatGPT的基本原理建立在一系列先进技术和方法之上,主要包括GPT(Generative Pre-trained Transformer)模型架构、预训练与微调技术、以及可能采用的RLHF(Reinforcement Learning from Human Feedback)等高级训练策略。下面将详细解读ChatGPT的基本原理和关键技术:
85 1
|
6月前
|
机器学习/深度学习 人工智能 并行计算
人工智能平台PAI产品使用合集之机器学习PAI中特征重要性的原理不知道如何解决
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6月前
|
机器学习/深度学习 人工智能 自动驾驶
人工智能:原理、应用与Python代码实现
人工智能:原理、应用与Python代码实现
|
2月前
|
机器学习/深度学习 人工智能 算法
探索人工智能:机器学习的基本原理与Python代码实践
【9月更文挑战第6天】本文深入探讨了人工智能领域中的机器学习技术,旨在通过简明的语言和实际的编码示例,为初学者提供一条清晰的学习路径。文章不仅阐述了机器学习的基本概念、主要算法及其应用场景,还通过Python语言展示了如何实现一个简单的线性回归模型。此外,本文还讨论了机器学习面临的挑战和未来发展趋势,以期激发读者对这一前沿技术的兴趣和思考。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能算法原理
人工智能(AI)属计算机科学,聚焦于模拟人类智慧的技术与系统的研发。本文概览常见AI算法原理:机器学习含监督(如决策树、支持向量机)、无监督(如聚类、主成分分析)及强化学习算法;深度学习涉及卷积神经网络、循环神经网络和生成对抗网络;自然语言处理涵盖词袋模型、循环神经网络语言模型及命名实体识别等。这些算法支撑着AI技术的广泛应用与发展。
114 0
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能之原理概述
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等
57 1

热门文章

最新文章