标签 人工智能 下的文章

在本系列的第五篇文章中,我们将继续介绍概率和统计中的概念。

在本系列的 前一篇文章 中,我们首先介绍了使用 TensorFlow。它是一个非常强大的开发人工智能和机器学习应用程序的库。然后我们讨论了概率论的相关知识,为我们后面的讨论打下基础。在本系列的第五篇文章中,我们将继续介绍概率和统计中的概念。

在本文中我将首先介绍 Anaconda,一个用于科学计算的 Python 发行版。它对于开发人工智能、机器学习和数据科学的程序特别有用。稍后我们将介绍一个名为 Theano 的 Python 库。但在此之前,让我们下讨论一下人工智能的未来。

在回顾和修订之前的文章时,我发觉我偶尔对人工智能前景的怀疑语气和在一些话题上毫不留情的诚实态度可能在无意中使部分读者产生了消极情绪。

这促使我开始从金融角度研究人工智能和机器学习。我想确定涉足人工智能市场的公司类型,是否有重量级的公司大力参与其中?还是只有一些初创公司在努力推动?这些公司未来会向人工智能市场投入多少资金?是几百万美元,几十亿美元还是几万亿美元?

我通过于最近知名报纸上的的预测和数据来理解基于人工智能的经济发展背后的复杂动态性。2020 年《福布斯》上的一篇文章就预测 2020 年企业在人工智能上投入的投入将达到 500 亿美元的规模。这是一笔巨大的投资。《财富》杂志上发表的一篇文章称,风险投资者正将部分关注力从人工智能转移到 Web3 和 去中心化金融 decentralised finance (DeFi)等更新潮的领域上。但《华尔街日报》在 2022 年自信地预测,“大型科技公司正在花费数十亿美元进行人工智能研究。投资者应该密切关注。”

印度《商业标准报》在 2022 年报道称,87% 的印度公司将在未来 3 年将人工智能支出提高 10%。总的来说,人工智能的未来看起来是非常安全和光明的。 令人惊讶的是,除了亚马逊、Meta(Facebook 的母公司)、Alphabet(谷歌的母公司)、微软、IBM 等顶级科技巨头在投资人工智能外,壳牌、强生、联合利华、沃尔玛等非 IT 科技类公司也在大举投资人工智能。

很明显众多世界级大公司都认为人工智能将在不久的将来发挥重要作用。但是未来的变化和新趋势是什么呢?我通过新闻文章和采访找到一些答案。在人工智能未来趋势的背景下,经常提到的术语包括 负责任的人工智能 Responsible AI 、量子人工智能、人工智能物联网、人工智能和伦理、自动机器学习等。我相信这些都是需要深入探讨的话题,在上一篇文章中我们已经讨论过人工智能和伦理,在后续的文章中我们将详细讨论一些其它的话题。

Anaconda 入门

现在让我们讨论人工智能的必要技术。Anaconda 是用于科学计算的 Python 和 R 语言的发行版。它极大地简化了包管理过程。从本文开始,我们将在有需要时使用 Anaconda。第一步,让我们安装 Anaconda。访问 安装程序下载页面 下载最新版本的 Anaconda 发行版安装程序。在撰写本文时(2022 年 10 月),64 位处理器上最新的 Anaconda 安装程序是 Anaconda3-2022.05-Linux-x86_64.sh。如果你下载了不同版本的安装程序,将后面命令中的文件名换成你实际下载的安装文件名就行。下载完成后需要检查安装程序的完整性。在安装程序目录中打开一个终端,运行以下命令:

shasum -a 256 Anaconda3-2022.05-Linux-x86_64.sh

终端上会输出哈希值和文件名。我的输出显示是:

a7c0afe862f6ea19a596801fc138bde0463abcbce1b753e8d5c474b506a2db2d Anaconda3-2022.05-Linux-x86_64.sh

然后访问 Anaconda 安装程序哈希值页面,比对下载安装文件的哈希值。如果哈希值匹配,说明下载文件完整无误,否则请重新下载。然后在终端上执行以下命令开始安装:

bash Anaconda3-2022.05-Linux-x86_64.sh

按回车键后,向下滚动查看并接受用户协议。最后,输入 yes 开始安装。出现用户交互提示时,一般直接使用 Anaconda 的默认选项就行。现在 Anaconda 就安装完成了。

默认情况下,Anaconda 会安装 Conda。这是一个包管理器和环境管理系统。Anaconda 发行版会自动安装超过 250 个软件包,并可选择安装超过 7500 个额外的开源软件包。而且使用 Anaconda 安装的任何包或库都可以在 Jupyter Notebook 中使用。在安装新包的过程中, Anaconda 会自动处理它的依赖项的更新。

至此之后我们终于不用再担心安装软件包和库的问题了,可以继续我们的人工智能和机器学习程序的开发。注意,Anaconda 只有一个命令行界面。好在我们的安装项中包括 Anaconda Navigator。这是一个用于 Anaconda 的图形用户界面。在终端上执行命令 anaconda-navigator 运行 Anaconda Navigator(图 1)。我们马上会通过例子看到它的强大功能。

图 1:Anaconda Navigator

Theano 介绍

Theano 是一个用于数学表达式计算的优化编译的 Python 库。在 Anaconda Navigator 中安装Theano 非常容易。打开 Anaconda Navigator 后点击 “ 环境 Environments ” 按钮(图 1 中用红框标记)。在打开的窗口中会显示当前安装的所有软件包的列表。在顶部的下拉列表中选择“ 尚未安装 Not installed ”选项。向下滚动并找到 Theano,然后勾选左侧的复选框。点击窗口右下角的绿色 “ 应用 Apply ” 按钮。Anaconda 会在弹出菜单中显示安装 Theano 的所有依赖项。图 2 是我安装 Theano 时的弹出菜单。可以看到,除了 Theano 之外,还安装了一个新的包,并修改了 8 个包。

想象一下,如果要手动安装 Theano,这将是多么麻烦。有了 Anaconda,我们只需要点几个按钮就行了。只需要等待一会儿,Theano 就安装好了。现在我们可以在 Jupyter Notebook 中使用 Theano 了。

图 2:安装 Theano

我们已经熟悉了用于符号计算的 Python 库 SymPy,但 Theano 将符号计算提升到了一个新的水平。图 3 是一个使用 Theano 的例子。第 1 行代码导入 Theano。第 2 行导入 theano.tensor 并将其命名为 T。我们在介绍 TensorFlow 时已经介绍过 张量 tensor 了。

图 3:使用 Theano 的代码例子

在数学上,可以将张量看作多维数组。张量是 Theano 的关键数据结构之一,它可用于存储和操作标量(数字)、向量(一维数组)、矩阵(二维数组)、张量(多维数组)等。在第 3 行中,从 Theano 导入了 function() 的函数。第 4 行导入名为 pp() 的 Theano 函数,该函数用于格式化打印。第 5 行创建了一个名为 xdouble 类型的标量符号变量。你可能会在理解符号变量这个概念上遇到一些困难。这里你可以把它看作是没有绑定具体值的 double 类型的对象。类似地,第 6 行创建了另一个名为 y 的标量符号变量。第 7 行告诉 Python 解释器,当符号变量 xy 得到值时,将这些值相加并存储在 a 里面。

为了进一步解释符号操作,仔细看第 8 行的输出是 (x+y)。这表明两个数字的实际相加还没有发生。第 9 到 11 行类似地分别定义了符号减法、乘法和除法。你可以自己使用函数 pp() 来查找 bcd 的值。第 12 行非常关键。它使用 Theano 的 function() 函数定义了一个名为 f() 的新函数。 函数 f() 的输入是 xy,输出是 [a b c d]。最后在第 13 行中,给函数 f() 提供了实际值来调用该函数。该操作的输出也显示在图 3 中。我们很容易验证所显示的输出是正确的。

图 4:用 Theano 处理矩阵

下面让我们通过图 4 的代码来看看如何使用 Theano 创建和操作矩阵。需要注意的是,图中我省略了导入代码。如果你要直接运行图 4 的代码,需要自己添加上这几行导入代码(图 3 中的前三行)。第 1 行创建了两个符号矩阵 xy。这里我使用了 复数构造函数 plural constructor imatrices,它可以同时构造多个矩阵。第 2 行到第 4 行分别对符号矩阵 xy 执行符号加法、减法和乘法。这里你可以使用 print(pp(a))print(pp(b))print(pp(c)) 来帮助理解符号操作的性质。第 5 行创建了一个函数 f(),它的输入是两个符号矩阵 xy,输出是 [a b c],它们分别表示符号加法、减法和乘法。最后,在第 6 行中,为函数 f() 提供实际的值来调用该函数。该操作的输出也显示在图 4 中。很容易验证所示的三个输出矩阵是否正确。注意,除了标量和矩阵,张量还提供了向量、行、列类型张量的构造函数。Theano 暂时就介绍到这里了,在讨论概率和统计的进阶话题时我们还会提到它。

再来一点概率论

图 5:算术平均值和标准偏差

现在我们继续讨论概率论和统计。我在上一篇文章中我建议你仔细阅读三篇维基百科文章,然后介绍了正态分布。在我们开始开发人工智能和机器学习程序之前,有必要回顾一些概率论和统计的基本概念。我们首先要介绍的是 算术平均值 arithmetic mean 标准差 standard deviation

算术平均值可以看作是一组数的平均值。标准差可以被认为是一组数的分散程度。如果标准差较小,则表示集合中的元素都接近平均值。相反,如果标准差很大,则表示集合的中的元素分布在较大的范围内。如何使用 Python 计算算术平均值和标准差呢?Python 中有一个名为 statistics 的模块,可用于求平均值和标准差。但专家用户认为这个模块太慢,因此我们选择 NumPy。

图 5 所示的代码打印两个列表 C1C2 的平均值和标准差(我暂时隐藏了两个列表的实际内容)。你能从这些值中看出什么呢?目前它们对你来说只是一些数字而已。现在我告诉你,这些列表分别包含学校 A 和学校 B 的 6 名学生的数学考试成绩(满分 50 分,及格 20 分)。均值告诉我们,两所学校的学生平均成绩都较差,但学校 B 的成绩略好于学校 A。标准差值告诉我们什么呢?学校 B 的巨大的标准差值虽然隐藏在平均值之下,但却清楚地反映了学校 B 的的教学失败。为了进一步加深理解,我将给出两个列表的值,C1 =[20,22,20,22,22,20]C2 =[18,16,17,16,15,48]。这个例子清楚地告诉我们,我们需要更复杂的参数来处理问题的复杂性。概率和统计将提供更复杂的模型来描述复杂和混乱的数据。

随机数生成是概率论的重要组成部分。但实际上我们只能生成伪随机数。伪随机数序列具有和真随机数序列近似的性质。在图 6 中我们介绍了几个生成伪随机数的函数。第 1 行导入 Python 的 random 包。第 2 行代码生成两个随机数,并将它们存储在名为 new_list 的列表中。其中函数 random.random() 生成随机数,代码 new_list = [random.random() for i in range(2)] 使用了 Python 的 列表推导 list comprehension 语法。第 3 行将此列表打印输出。注意,每次执行代码打印出的两个随机数会变化,并且连续两次打印出相同数字的概率理论上为 0。图 6 的第二个代码单元中使用了 random.choice() 函数。这个函数从给定的选项中等概率地选择数据。代码片 random.choice(["Heads", "Tails"]) 将等概率地在“Heads”和“Tails”之间选择。注意,该行代码也使用了列表推导,它会连续执行 3 次选择操作。从图 6 的输出可以看到,三次都选中了“Tails”。

图 6:伪随机数生成

现在,我们用一个简单的例子来说明概率论中著名的 大数定理 xxx 。大数定理表明从大量试验中获得的结果的平均值应该接近期望值,并且随着试验次数的增加这个平均值会越来越接近期望值。我们都知道,投掷一个均匀的骰子得到数字 6 的概率是 1/6。我们用图 7 中的 Python 代码来模拟这个实验。第 1 行导入 Python 的 random 包。第 2 行设置重复试验的次数为 1000。第 3 行将计数器 ct 初始化为 0。第 4 行是一个循环,它将迭代 1000 次。第 5 行的 random.randint(1, 6) 随机生成 1 到 6 之间的整数(包括 1 和 6)。然后检查生成的数字是否等于 6;如果是,则转到第 7 行,将计数器 ct 增加 1。循环迭代 1000 次后,第 8 行打印数字 6 出现的次数与总试验次数之间的比例。图 7 显示该比例为 0.179,略高于期望值 1/6 = 0.1666…。这与期望值的差异还是比较大的。将第 2 行中 n 的值设置为 10000,再次运行代码并观察打印的输出。很可能你会得到一个更接近期望值的数字(它也可能是一个小于期望值的数字)。不断增加第 2 行中 n 的值,你将看到输出越来越接近期望值。

图 7:大数定理

虽然大数定理的描述朴实简单,但如果你了解到哪些数学家证明了大数定理或改进了原有的证明,你一定会大吃一惊的。他们包括卡尔达诺、雅各布·伯努利、丹尼尔·伯努利、泊松、切比雪夫、马尔科夫、博雷尔、坎特利、科尔莫戈罗夫、钦钦等。这些都是各自领域的数学巨匠。

目前我们还没有涵盖概率的随机变量、概率分布等主题,它们对开发人工智能和机器学习程序是必不可少的。我们对概率和统计的讨论仍处于初级阶段,在下一篇文章中还会加强这些知识。与此同时,我们将重逢两个老朋友,Pandas 和 TensorFlow。另外我们还将介绍一个与 TensorFlow 关系密切的库 Keras。

(题图:DA/ea8d9b6a-5282-41ad-a84f-3e3815e359fb)


via: https://www.opensourceforu.com/2022/12/ai-anaconda-and-more-on-probability/

作者:Deepu Benson 选题:lujun9972 译者:toknow-gh 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

libjpeg-turbo 3.0 发布,开发者表示无力继续

这个开源的 JPEG 图像编解码器每天有数十亿人通过浏览器、操作系统和图像查看器/编辑器使用,并且它是 ISO/ITU-T 的参考实现,经过了严格的审查。它的主要开发者 DRC 在 3.0 发布公告中说,这可能是功能开发的结束,很可能不会有 3.1 版本。DRC 表示,目前该项目只有每月约 8-10 小时的一般资金支持。而完成 3.0 测试版需要借用 2023 年所有预期的一般资金,而修复错误需要借用到 2024 年 9 月的所有资金,也就是说该项目未来 15 个月实际上将处于 “维护模式”。它的开发者 DRC 的大部分收入来自他的另外两个项目 VirtualGL 和 TurboVNC,而从 2010-2018 年,DRC 投入了相当于几十万美元的时间来开发 libjpeg-turbo 2.0,甚至导致负债时,不得不停止在该项目上投入。

消息来源:Phoronix
老王点评:很多开源开发者花费了自己的时间金钱来贡献给开源,但是他们也需要钱来生活。不知道那些嫌弃别人白嫖他们的开源代码的人,是不是也白嫖过其它的上游项目呢?

Valve 拒绝发布带有人工智能生成内容的游戏

一位独立开发者在论坛上发帖说,Valve “不再愿意发布有人工智能生成内容的游戏”。他们提交的游戏有 “一些相当明显的 AI 生成的素材”。Valve 在给开发者回复中称,“我们不能发布开发者没有所有必要权利的游戏。目前,我们拒绝分发你的游戏,因为我们不清楚用于创建素材的底层人工智能技术是否对训练数据有足够的权利。”考虑到大多数人工智能工具不能真正声称对其所有的训练数据有合法权利(即使它们有,也可能不是对该数据的道德使用),这一政策的陈述基本上相当于对游戏中人工智能生成的资产的全面禁止。Valve 表示,他们的政策更多的是 “法律上的要求”,而不是对人工智能的任何特定立场,其审查过程“是对现行版权法和政策的反映,而不是我们意见的附加层。”

消息来源:Tech Crunch
老王点评:这件事凸显了现有的版权法律无法适应人工智能的需要。究竟什么样的内容可以被人工智能刮取并生成内容,然后这些内容的版权归属于谁。如果要归属于原内容提供者,人工智能是否有可能、有意义地明确地指出来源?

谷歌将用网络上公开的所有信息训练人工智能

谷歌上周末更新了其隐私政策,明确表示该公司保留刮取你在网上发布的所有信息以建立其人工智能工具的权利。谷歌举例说,将“使用公开的信息来帮助训练谷歌的人工智能模型,并建立产品和功能,如谷歌翻译、Bard 和云人工智能功能”。以前,谷歌说这些数据将被用于 “语言模型”,而不是 “人工智能模型”,而旧政策只提到谷歌翻译,现在也包括 Bard 和云人工智能。

消息来源:Gizmodo
老王点评:和上一条对应,谷歌利用互联网“公开”的信息训练的人工智能,其输出的内容的版权如何界定?现在大家都黑不提白不提的就这样糊涂着,是想造成既成事实倒逼法律认可,还是需要更多的实践和探讨?

我们经常交替使用人工智能(AI)、机器学习(ML)和深度学习(DL)这些术语,尽管我们几乎每天都阅读或听到它们。本文解释了这些技术是如何演变的以及它们有何不同。

AI ML and DL What’s the Difference

人工智能 Artificial Intelligence (AI)、 机器学习 Machine Learning (ML)和 深度学习 Deep Learning (DL)通常可以互换使用。但是,它们并不完全相同。人工智能是最广泛的概念,它赋予机器模仿人类行为的能力。机器学习是将人工智能应用到系统或机器中,帮助其自我学习和不断改进。最后,深度学习使用复杂的算法和深度神经网络来重复训练特定的模型或模式。

让我们看看每个术语的演变和历程,以更好地理解人工智能、机器学习和深度学习实际指的是什么。

人工智能

自过去 70 多年以来,人工智能已经取得了长足的进步。无论我们是否知道,也不管喜欢与否,,它已经渗透到了我们生活的方方面面。在过去十年中,机器学习和深度学习的进步已经在各种规模的行业和组织中创造了人工智能热潮。云服务提供商通过开发免费的开源服务和提供新的场景进一步推动的这种势头。

Figure 1: Overview of AI, ML and DL

人工智能可能是自 1956 年以来最受关注的概念。到 2015 年,GPU 的广泛使用使并行处理更快、更强大、更便宜。而愈加廉价的存储可以大规模地存储大数据(从纯文本到图像、映射等)。这产生了对数据分析的需求,它被更普遍地称为 数据科学 data science ,导致机器学习发展为实现人工智能的方法。

机器学习

机器学习是使用算法来处理、学习和理解或预测可用数据的模式。最近,软件开发的低代码和无代码概念被用作机器学习中的自学习过程,它给出了完成特定任务的特定指令。通过使用数据和算法对机器进行“训练”,使其能够学习如何执行任务,更重要的是,将学习应用到不断发展的过程中。

Figure 2: Evolution of AI, ML and DL

机器学习是在开发者社区专注于 AI 时发展起来的,然后发展了算法决策树学习、逻辑编程、聚类、并行处理和强化学习。这些都是朝着正确方向迈出的良好一步,但不足以解决世界感兴趣的场景。

深度学习

深度学习是神经网络和机器学习的进化,是人工智能社区的创意。它学习了人类思维在特定场景中的工作方式,然后在这项工作上比人类做得更好!例如,IBM 的 Watson 与自己下国际象棋,并在游戏中取得了很大进步,最终击败了世界冠军。谷歌的 AlphaGo 也学会了如何玩围棋游戏,一遍又一遍地玩它以提高自己,并成为冠军。

人工智能、机器学习和深度学习正在不断发展。参与数据科学的每个人都希望推进这些概念以改善我们的日常生活。而开源社区、私营企业、科学家和政府机构都在为此共同努力。

Figure 3: Types of AI, ML and DL

总而言之,虽然 AI 有助于创建智能机器,但机器学习有助于构建 AI 驱动的应用。深度学习是机器学习的一个子集。它通过利用复杂算法处理大量数据来训练特定模型。由于狭义 AI 极难开发,机器学习正在通过刚性计算解决这一领域的机遇。至少对于实现通用 AI,深度学习有助于将 AI 和机器学习结合在一起。


via: https://www.opensourceforu.com/2022/08/ai-ml-and-dl-whats-the-difference/

作者:Bala Kalavala 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在你开始从事人工智能之前,你需要先了解人类的智能。

我曾经问过别人、也被别人问过关于学习人工智能(AI)最好的方式是什么?我应该去阅读什么书?我应该去看什么视频?后面我将讲到这些,但是,考虑到人工智能涉及很多领域,我把这个问题分开来讲可能更好理解。

学习人工智能很重要的一点是区别开研究方面和应用方面。Google 的 Cassie Kozyrkov 在近日于伦敦举行的 O'Reilly 人工智能会议的一个演讲中 描述了这个区别,并且这是一个很好的演讲。

人工智能研究在本质上是学术性的,在你能够获得人工智能的某些细节之前,需要大量的跨各类学科的数学知识。这部分的人工智能关注于算法和驱动人工智能发展的工具。比如,什么样的神经网络结构能够改善视觉识别的结果?我们如何使无监督学习成为更有用的方法?我们能否找到一个更好的方法,去理解深度学习流水线是如何得出答案的?

另一方面,人工智能应用更多是关于使用现有工具去获取有用的结果。开源在这里发挥了一个重要的作用,那就是免费提供了易于使用的、各种语言的软件。公有云提供商也致力于提供大量的机器学习、模型、以及数据集,这使得人工智能的入门比其它的要简单的多。

在这个问题上我想补充一点,那就是人工智能的从业者不应该将他们的工具视为神秘地输出答案的黑匣子。至少,他们应该去了解不同技术、模型、和数据采集方法的限制和潜在偏差。只是不需要去深入研究他们工具链中每个部分的理论基础。

虽然在日常工作中人工智能可能并不那么重要,但理解人工智能的大量的背景知识还是很有用的。人工智能已经超越了神经网络上深度学习的狭窄范围,目前神经网络上的强化学习和监督学习已经取得重要成就。例如,人工智能经常被视为是增强(而不是替代)人类判断和决策的一种方法。但是在机器和人类之间交换信息还有其自身的缺陷。

有了这些背景知识,下面是的一些研究领域和资源,你可能发现会很有用。

研究人工智能

在很多方面,用于人工智能研究的一个资源清单,可以反映出本科(甚至是研究生)的计算机科学项目都是专注于人工智能。最主要的区别是,你起草的教学大纲比起传统的大纲更关注于跨学科。

你的计算机科学和数学背景知识决定了你的起点。

如果你的计算机科学和数据背景知识很差或已经荒芜了,但你还希望能够深入了解人工智能的基本原理,那么从一些数学课程开始将会让你受益。MOOC 上像非盈利的 edX 平台和 Coursera 上都有许多可供你选择的课程(这两个平台都对认证收费,但 edX 上所有的课程,对旁听者是全免费的)。

典型的基础课程包括:

从一个研究的角度去深入人工智能,你可能需要深入所有的这些数据领域,甚至更多。但是上面的内容应该让您在深入研究机器学习和AI之前大致了解可能是最重要的研究分支。

除了 MOOC 之外,像 MIT OpenCourseWare 这样的资源也提供了大量的数学和计算机科学课程的大纲和各种支持材料。

有了这些基础,你就可以学习更专业的人工智能课程了。吴恩达从他在斯坦福大学时教的 “AI MOOC” 就是整个在线课程领域中最早流行起来的课程之一。今天,他的 神经网络和深度学习 也是 Coursera 深度学习专业的一部分。在 edX 上也有相关的一些项目,比如,哥伦比亚大学提供的一个 人工智能 MicroMasters

除了课程之外,也可以在网上找到各种范例和其它学习材料。这些包括:

应用人工智能

人工智能应用更关注于使用可用的工具,而不是去构建新工具。对一些底层的数学,尤其是统计学的了解仍然是非常有用的 —— 甚至可以说是必需的 —— 但对这些知识的了解程度不像研究人工智能的要求那么高。

在这里编程是核心技能。虽然可以使用不同的编程语言去做,但是一些库和工具集 —— 比如 Python 的 PyTorch,依赖于 Python,所以这是一个应该掌握的好技能。尤其是,如果你有某种程度上的编程背景,MIT 的 计算机科学入门和使用 Python 编程,它是基于 MIT 的 6.001 在校课程,是一个非常好的启蒙课程。如果你编程零基础,来自密歇根大学的 Charles Severance 的 人人学编程(Python 使用入门) 是个很好的开端,它不会像 MIT 的课程那样,把你一下子扔进代码的汪洋大海。

R 编程语言 也是一个应该增加到你的技能库中的很有用的技能。虽然它在机器学习(ML)中使用的很少,但它在其它数据科学任务中很常见,并且经常与人工智能/机器学习和数据科学的应用实践结合在一起。例如,与组织和清理数据相关的许多任务同样适用于您最终使用的任何分析技术。像哈佛的 数据科学认证 这样的一个 MOOC 系列就是一整套课程的一个例子,这些课程介绍了如何去很好地处理数据。

如果你从事人工智能方面的工作,那么你很可能会遇到的另一个开源软件库就是 TensorFlow。它最初是由 Google 人工智能团队中的 Google 大脑团队的研发工程师开发的。Google 提供了许多教程 让你通过高级 Keras API 去开始使用 TensorFlow。你既可以在 Google 云上也可以在本地运行 TensorFlow。

通常,大的公有云提供商都提供在线数据集和易于使用的机器学习服务。但是,在你开始去 “玩” 数据集和应用之前,你需要考虑清楚,一旦开始选定一个提供商,你将被它们 “锁定” 的程度。

你的探索学习项目所需的数据集可以从许多不同的源获得。除了公有云提供商之外,Kaggle 是另一个受欢迎的源,总体来看,它也是一个比较好的学习源。以数字形式提供的政府数据也越来越多了。美国联邦政府的 Data.gov 声称它提供超过 300,000 个数据集。各州和地方政府也发布从餐馆健康评级到狗的名字的所有数据。

研究和应用人工智能兼而有之

最后我想说明的一点是,人工智能不仅是与数学、编程、数据有关的一个宽泛主题。人工智能作为一个综合体涉及到了许多其它的领域,包括心理学、语言学、博弈论、运筹学和控制系统。确实,现在有一些人工智能研究者担心,由于处理能力和大数据的结合,使得该领域过于关注最近才变得强大和有趣的少数几个技术。在了解人类如何学习和推理方面,许多长期存在的问题仍未解决。不管怎样,对这些广泛存在的问题有一个了解,将更好地让你在更广泛的背景中评估人工智能。

我比较喜欢的其中一个示例是杜克大学的 人类和自治实验室。这个实验室的工作涉及人机协同所面临的各种挑战,比如,如果自动化设备失效,自动驾驶仪如何设计才能让那些“洋红色的孩子“ 快速取得控制。有一个基础的大脑科学课程,比如 MIT 的 心理学导论,它提供了关于人类智能和机器智能之间关系的一些很有用的内容。另一个类似的课程是,MIT 电子工程与计算机科学系已故教授 Marvin Minsky 的 心灵的社会

关于学习人工智能,假如说有一个最重要的挑战,那它不是原材料和工具不易获得,因为它们有如此之多。我的目标并不是给你一个全面的指导,相反,而是指出了你可以去学习的不同路径,以及为你提供一些可能的起点。祝你学习愉快!


via: https://opensource.com/article/18/12/how-get-started-ai

作者:Gordon Haff 选题:lujun9972 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我们又能通过开源社区做些什么?

在我们的世界里,算法无处不在,偏见也是一样。从社会媒体新闻的提供到流式媒体服务的推荐到线上购物,计算机算法,尤其是机器学习算法,已经渗透到我们日常生活的每一个角落。至于偏见,我们只需要参考 2016 年美国大选就可以知道,偏见是怎样在明处与暗处影响着我们的社会。

很难想像,我们经常忽略的一点是这二者的交集:计算机算法中存在的偏见。

与我们大多数人的认知相反,科技并不是客观的。 AI 算法和它们的决策程序是由它们的研发者塑造的,他们写入的代码,使用的“训练”数据还有他们对算法进行应力测试 的过程,都会影响这些算法今后的选择。这意味着研发者的价值观、偏见和人类缺陷都会反映在软件上。如果我只给实验室中的人脸识别算法提供白人的照片,当遇到不是白人照片时,它不会认为照片中的是人类 。这结论并不意味着 AI 是“愚蠢的”或是“天真的”,它显示的是训练数据的分布偏差:缺乏多种的脸部照片。这会引来非常严重的后果。

这样的例子并不少。全美范围内的州法院系统 都使用“黑盒”对罪犯进行宣判。由于训练数据的问题,这些算法对黑人有偏见 ,他们对黑人罪犯会选择更长的服刑期,因此监狱中的种族差异会一直存在。而这些都发生在科技的客观性伪装下,这是“科学的”选择。

美国联邦政府使用机器学习算法来计算福利性支出和各类政府补贴。但这些算法中的信息,例如它们的创造者和训练信息,都很难找到。这增加了政府工作人员进行不平等补助金分发操作的几率。

算法偏见情况还不止这些。从 Facebook 的新闻算法到医疗系统再到警用携带相机,我们作为社会的一部分极有可能对这些算法输入各式各样的偏见、性别歧视、仇外思想、社会经济地位歧视、确认偏误等等。这些被输入了偏见的机器会大量生产分配,将种种社会偏见潜藏于科技客观性的面纱之下。

这种状况绝对不能再继续下去了。

在我们对人工智能进行不断开发研究的同时,需要降低它的开发速度,小心仔细地开发。算法偏见的危害已经足够大了。

我们能怎样减少算法偏见?

最好的方式是从算法训练的数据开始审查,根据 微软的研究人员 所说,这方法很有效。

数据分布本身就带有一定的偏见性。编程者手中的美国公民数据分布并不均衡,本地居民的数据多于移民者,富人的数据多于穷人,这是极有可能出现的情况。这种数据的不平均会使 AI 对我们是社会组成得出错误的结论。例如机器学习算法仅仅通过统计分析,就得出“大多数美国人都是富有的白人”这个结论。

即使男性和女性的样本在训练数据中等量分布,也可能出现偏见的结果。如果训练数据中所有男性的职业都是 CEO,而所有女性的职业都是秘书(即使现实中男性 CEO 的数量要多于女性),AI 也可能得出女性天生不适合做 CEO 的结论。

同样的,大量研究表明,用于执法部门的 AI 在检测新闻中出现的罪犯照片时,结果会 惊人地偏向 黑人及拉丁美洲裔居民。

在训练数据中存在的偏见还有很多其他形式,不幸的是比这里提到的要多得多。但是训练数据只是审查方式的一种,通过“应力测验”找出人类存在的偏见也同样重要。

如果提供一张印度人的照片,我们自己的相机能够识别吗?在两名同样水平的应聘者中,我们的 AI 是否会倾向于推荐住在市区的应聘者呢?对于情报中本地白人恐怖分子和伊拉克籍恐怖分子,反恐算法会怎样选择呢?急诊室的相机可以调出儿童的病历吗?

这些对于 AI 来说是十分复杂的数据,但我们可以通过多项测试对它们进行定义和传达。

为什么开源很适合这项任务?

开源方法和开源技术都有着极大的潜力改变算法偏见。

现代人工智能已经被开源软件占领,TensorFlow、IBM Watson 还有 scikit-learn 这类的程序包都是开源软件。开源社区已经证明它能够开发出强健的,经得住严酷测试的机器学习工具。同样的,我相信,开源社区也能开发出消除偏见的测试程序,并将其应用于这些软件中。

调试工具如哥伦比亚大学和理海大学推出的 DeepXplore,增强了 AI 应力测试的强度,同时提高了其操控性。还有 麻省理工学院的计算机科学和人工智能实验室完成的项目,它开发出敏捷快速的样机研究软件,这些应该会被开源社区采纳。

开源技术也已经证明了其在审查和分类大组数据方面的能力。最明显的体现在开源工具在数据分析市场的占有率上(Weka、Rapid Miner 等等)。应当由开源社区来设计识别数据偏见的工具,已经在网上发布的大量训练数据组比如 Kaggle 也应当使用这种技术进行识别筛选。

开源方法本身十分适合消除偏见程序的设计。内部谈话、私人软件开发及非民主的决策制定引起了很多问题。开源社区能够进行软件公开的谈话,进行大众化,维持好与大众的关系,这对于处理以上问题是十分重要的。如果线上社团,组织和院校能够接受这些开源特质,那么由开源社区进行消除算法偏见的机器设计也会顺利很多。

我们怎样才能够参与其中?

教育是一个很重要的环节。我们身边有很多还没意识到算法偏见的人,但算法偏见在立法、社会公正、政策及更多领域产生的影响与他们息息相关。让这些人知道算法偏见是怎样形成的和它们带来的重要影响是很重要的,因为想要改变目前的局面,从我们自身做起是唯一的方法。

对于我们中间那些与人工智能一起工作的人来说,这种沟通尤其重要。不论是人工智能的研发者、警方或是科研人员,当他们为今后设计人工智能时,应当格外意识到现今这种偏见存在的危险性,很明显,想要消除人工智能中存在的偏见,就要从意识到偏见的存在开始。

最后,我们需要围绕 AI 伦理化建立并加强开源社区。不论是需要建立应力实验训练模型、软件工具,或是从千兆字节的训练数据中筛选,现在已经到了我们利用开源方法来应对数字化时代最大的威胁的时间了。


via: https://opensource.com/article/18/1/how-open-source-can-fight-algorithmic-bias

作者:Justin Sherman 译者:Valoniakim 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

今年人工智能决策将变得更加透明?

无论你的 IT 业务现在使用了多少人工智能,预计你将会在 2018 年使用更多。即便你从来没有涉猎过 AI 项目,这也可能是将谈论转变为行动的一年,德勤董事总经理 David Schatsky 说。他说:“与 AI 开展合作的公司数量正在上升。”

看看他对未来一年的AI预测:

1、预期更多的企业 AI 试点项目

如今我们经常使用的许多现成的应用程序和平台都将 AI 结合在一起。 Schatsky 说:“除此之外,越来越多的公司正在试验机器学习或自然语言处理来解决特定的问题,或者帮助理解他们的数据,或者使内部流程自动化,或者改进他们自己的产品和服务。

“除此之外,公司与人工智能的合作强度将会上升。”他说,“早期采纳它的公司已经有五个或略少的项目正在进行中,但是我们认为这个数字会上升到十个或有更多正在进行的计划。” 他说,这个预测的一个原因是人工智能技术正在变得越来越好,也越来越容易使用。

2、人工智能将缓解数据科学人才紧缺的现状

人才是数据科学中的一个大问题,大多数大公司都在努力聘用他们所需要的数据科学家。 Schatsky 说,AI 可以承担一些负担。他说:“数据科学的实践,逐渐成为由创业公司和大型成熟的技术供应商提供的自动化的工具。”他解释说,大量的数据科学工作是重复的、乏味的,自动化的时机已经成熟。 “数据科学家不会消亡,但他们将会获得更高的生产力,所以一家只能做一些数据科学项目而没有自动化的公司将能够使用自动化来做更多的事情,虽然它不能雇用更多的数据科学家”。

3、合成数据模型将缓解瓶颈

Schatsky 指出,在你训练机器学习模型之前,你必须得到数据来训练它。 这并不容易,他说:“这通常是一个商业瓶颈,而不是生产瓶颈。 在某些情况下,由于有关健康记录和财务信息的规定,你无法获取数据。”

他说,合成数据模型可以采集一小部分数据,并用它来生成可能需要的较大集合。 “如果你以前需要 10000 个数据点来训练一个模型,但是只能得到 2000 个,那么现在就可以产生缺少的 8000 个数据点,然后继续训练你的模型。”

4、人工智能决策将变得更加透明

AI 的业务问题之一就是它经常作为一个黑匣子来操作。也就是说,一旦你训练了一个模型,它就会吐出你不能解释的答案。 Schatsky 说:“机器学习可以自动发现人类无法看到的数据模式,因为数据太多或太复杂。 “发现了这些模式后,它可以预测未见的新数据。”

问题是,有时你确实需要知道 AI 发现或预测背后的原因。 “以医学图像为例子来说,模型说根据你给我的数据,这个图像中有 90% 的可能性是肿瘤。 “Schatsky 说,“你说,‘你为什么这么认为?’ 模型说:‘我不知道,这是数据给的建议。’”

Schatsky 说,如果你遵循这些数据,你将不得不对患者进行探查手术。 当你无法解释为什么时,这是一个艰难的请求。 “但在很多情况下,即使模型产生了非常准确的结果,如果不能解释为什么,也没有人愿意相信它。”

还有一些情况是由于规定,你确实不能使用你无法解释的数据。 Schatsky 说:“如果一家银行拒绝贷款申请,就需要能够解释为什么。 这是一个法规,至少在美国是这样。传统上来说,人类分销商会打个电话做回访。一个机器学习模式可能会更准确,但如果不能解释它的答案,就不能使用。”

大多数算法不是为了解释他们的推理而设计的。 他说:“所以研究人员正在找到聪明的方法来让 AI 泄漏秘密,并解释哪些变量使得这个病人更可能患有肿瘤。 一旦他们这样做,人们可以发现答案,看看为什么会有这样的结论。”

他说,这意味着人工智能的发现和决定可以用在许多今天不可能的领域。 “这将使这些模型更加值得信赖,在商业世界中更具可用性。”


via: https://enterprisersproject.com/article/2018/1/4-ai-trends-watch

作者:Minda Zetlin 译者:Wuod3n 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出