【Technovation官方中文教程】人工智能2 - 人工智能与app
本帖最后由 szjuliet 于 2021-3-12 08:21 编辑教程地址:https://bit.ly/TGirlsCN-AI2
返回教程目录:https://mc.dfrobot.com.cn/thread-308465-1-1.html
人工智能2:人工智能与您的应用程序
这是一节补充课,可以丰富您关于人工智能及其工作原理的知识。本节课不计分,但可能有助于您了解如何将人工智能应用于所开发应用程序中。若需复习人工智能工作原理,请查看人工智能1:关于人工智能。
本节课中,您将……●思考人工智能需遵守的道德标准;●确定人工智能是否适用于您的应用程序;●了解如何借助AppInventor和Thunkable运用部分人工智能元素。
关键术语与概念
●道德准则 – 对大众判断是非的方式具有影响的一套道德原则。●偏见– 某人对一些人或群体的、通常不公正的先入之见。
启发
今天,我们将更深入地了解人工智能应用与您的应用程序。若需复习,请查看人工智能1:关于人工智能。 最重要的,是要记住人工智能的4个基本组成部分:
到目前为止,您可能已经对于希望应用程序具备哪些功能有了很多想法。那么,人工智能对您的应用程序重要吗?回答此问题前,让我们先思考几件事。 道德准则与行动道德准则属于哲学范畴,与孰是孰非有关。由于诸多原因,它成为了当今人工智能领域的重要议题!您希望确保所开发的应用程序做出有助于大众和社会,而非造成损害,哪怕是意外损害的决策。 与偏见有关的性别图谱示例 我们从思考“优质”数据开始。删除偏见数据,这有助于让您的模型更具功效,从而做出更恰当的决策。我们已经了解了训练数据偏差的一些相关细节。观看以下视频,您还可以了解更多:Code.orgData Bias 但对于人工智能而言,数据并非唯一能引起我们思考道德准则的内容。我们还可以思考人工智能运用或其用途需要遵守的道德准则。想象有一项名为Weed Puller的人工智能技术,可用以预测哪些植物是杂草,并将其拔除。从该技术出发,思考以下问题: ●如何删除数据集偏见?○数据应能反应应用程序用户的特征。数据若存在偏差,人工智能就可能犯错。○想象一下,当WeedPuller仅针对荒野中找到的杂草建立了图片数据集时的情形。若希望在水源附近使用Weed Puller,会出现什么结果?可能的结果是,因为没有帮助识别水源附近所发现杂草的数据进行训练,所以Weed Puller无法识别杂草并将其拔除。因此,Weedpuller对于荒原中的植物存在偏见!○
荒原中找到的杂草
野莴苣水源附近发现的杂草
香蒲
○明白二者间差异有多大了吧!荒原中杂草的特点完全不同于水源附近杂草的特点。 ●您的人工智能模型做出了哪些决策呢?○一些人工智能模型可以做出一种决策,其他则能做出更多决策!想一想您通过编程应用程序能做出的每种决策。模型可能做出您原本并未试图做出的任何决策吗?○设想一下,当WeedPuller尝试预测能否看到杂草时的情形。杂草只有一种类型吗?杂草会被掩盖或自我伪装吗?这可能导致WeedPuller做出错误决策,比如拔除非杂草植株。○您能分辨以下哪种是杂草吗?若不能,怎么办?
○ ●您的人工智能模型可能采取的一切行动包括哪些?○针对应用程序模型可能采取(或不采取)的一切行动画一张图。您计划如何影响这些行动?您还能想到尚未考虑到的其他影响吗?○Weed Puller正尝试拔除杂草。接受充分训练后,这款人工智能模型可以像人一样,顺利拔除杂草,但无法像人一样对环境具有认识。人工智能只懂得完成编程设定的任务。它可能做出错误决策,比如拔除了有助于生态系统保护濒危动物的草类。○ ●若您的人工智能模型出错了,怎么办?○您能减少数据中的偏见,帮助做出更恰当的决策吗……■找出更有代表性的数据集。■依据模型对其决策的确定程度,改变应用程序行动。■不要公开应用程序的决策,仅让明确需要获知的人知晓。○若WeedPuller犯错,确定西红柿植株是杂草,将拔除该植株。而这,可能对计划使用西红柿的人或生活在菜园中的昆虫造成负面影响。 ●您的应用程序使用或共享了敏感数据吗?○对于人工智能技术的成功而言,数据很重要。尽管建立一个具备功能的人工智能模型很重要,但也需要仔细考虑共享信息的重要性。若用户向您提供了信息,说明他们认可您会尊重其信息,不会滥用。若陌生人知晓了您的隐私,您作何感想?○Weed Puller设计用于利用数据做出与杂草有关的决策。或许它会收集与人员住宅位置有关的数据,以帮助草坪除草。若询问目的地,它可能会共享与人员住宅位置有关的敏感信息,而这可能成为问题! ●您的人工智能模型如何与人互动或做出与人有关的预测?○应先仔细考虑借助人工智能做出的与人有关或对人有影响的预测后,再进行预测。想一想自己。要让陌生人或人工智能在不耗费大量时间的前提下,真正了解作为一个复杂个体的您,这并非易事!○http://www.envisioningcards.com/envision_pdfs/EC_Sample_Cards_Set.pdf 虽然本节课可能主要以人工智能为课题,但这些道德准则问题适用于您整个应用程序。 作为技术开发者,我们对所开发技术与大众互动的方式负有责任,因此应始终关注所开发技术的潜在影响。
哪些解决方案需要运用人工智能?并非任何问题都需要运用技术或人工智能加以解决。思考哪些类型的问题最适合运用人工智能,比如:●无法编程的情形(比如 – Google Maps)●提供新信息才可做出预测的情形(比如 – 使用新型X光后,人工智能技术就能识别癌症。 )●通常与行动相关的情形(比如 – 智能吸尘器)
认真考虑所开发的应用程序是否应采用人工智能技术。人工智能技术能否极大地提升所设计关键功能的有效性?
App Inventor 和Thunkable可以实现的人工智能功能App Inventor 和Thunkable运用人工智能可以实现的主要功能如下所示:
图片识别语音识别语言翻译
App Inventor*LookExtension PersonalImageClassifierPersonalAudioClassifier
Thunkable微软图片与表情识别语音识别语言翻译
*App Inventor平台原本不包含人工智能代码块。因此,需要下载其作为扩展代码块。点此查看可供下载的官方扩展代码块。 点此 即可了解如何在App Inventor平台中使用扩展代码块。
正如您所见, AppInventor 与 Thunkable仅能让应用程序具有基本功能,无法对人工智能模型进行训练。但在编码13: 云储存与应用程序界面 中,您将了解什么是应用程序界面,以及如何将其他资源运用于所开发程序中。您能从中找到其他程序,更充分地控制所建立的人工智能模型,而无需将其运用于所开发程序。您可以在本节课其他资源章节中,找到更多资源。
活动:图片识别
我们来编码一个简单的图片识别应用程序:
App InventorThunkable
[*]首先,让我们将界面组件全部罗列到
位。
[*]首先,让我们将界面组件全部罗列到位。
我们设置了1个图片、1个按键、2个标签、1个相机和1个图片识别器组件。
[*]您会看到其中有App Inventor常用代码块中未包含的LookExtension1代码块。请参见前述章节内容,了解如何将扩展代码块导入应用程序。链接
[*]现在,我们开始编码。
供用户使用的一个按键是:分类键。
点击分类键后,相机应先拍照。
然后,图片识别器应分析相机拍摄的图片。
最后,应用程序应向用户展示照片,将图片识别器预测的照片内容,以及应用程序对于预测的把握性通知用户。我们希望采用设置所显示图片,并变更图片文本标签的方式通知用户。
--
点击分类键后,相机应首先拍照。
提示:点击按键,希望某种效果出现时,我们应看哪里?
解决方案:
--
然后,图片识别器应分析相机所拍摄的图片。
提示:看图片识别器下方的代码块。该操作中,哪一个代码块发挥了作用?需要输入哪些数据?
解决方案:
--
最后,应用程序应向用户展示照片,将图片识别器预测的照片内容,以及应用程序对于预测的把握性通知用户。我们希望采用设置所显示图片,并变更图片文本标签的方式通知用户。
提示:我们正在通过该操作修改2个标签和1张图片。使用适当区段中的代码块。
解决方案:
该解决方案将“Prediction:”和“Confidence:”分别放入各自字段中,从而提升了用户在阅读标签时的便捷性。注意冒号后的空格!
--
全部完成后的编码应看似如下所示:
[*]现在,我们开始编码。
供用户使用的按键有两个:分类键与切换键。
点击分类键后,程序应调用LookExtension代码块分析相机呈现的影像。
但应知道,LookExtension加载与完成准备时需要一些时间的。因此,我们应避免用户在LookExtension完成准备前点击分类键。
点击切换键后,应用程序使用的相机应切换至设备配置的另一个可供使用的相机。
最后,LookExtension完成相机所拍摄图片的分析后,应用程序应调用StatusLabel,告诉用户预测内容。
--
我们来按照以下顺序编码: 防止用户在LookExtension完成准备前点击分类键。
提示:查看LookExtension中可供使用的代码块,从而确认是否有可供使用的任何代码块。
解决方案
--
点击分类键后,程序应调用LookExtension分析相机呈现的影像。
提示:这一步编程并无所谓玄妙。不过是“点击按键,完成操作而已。”
解决方案:
您可能注意到我们使用了“ClassifyVideoData”,而非“ClassifyImageData”。您认为差别何在?您可以稍后尝试分别使用两个代码块!现在,继续使用“ClassifyVideoData”编码。
--
点击切换键后,应用程序使用的相机应切换至设备配置供使用的另一个相机。
提示:另一个按键!记住查看LookExtension中可供使用的代码块。
解决方案:
--
LookExtension完成对相机所拍摄图片的分析后,应用程序应调用StatusLabel通知用户预测内容。
提示:LookExtension将预测存储为可能答案列表。该列表被命名为“result”,把握性最高的预测排列在列表的第一项。
解决方案:
若之前对LookExtension没有了解,准确完成该步骤会面临一些困难。
--
全部完成后的编码应看似如下所示:
[*]您已经为程序验证做好了准备!那就联机您的移动设备和App Inventor后开始验证吧!
[*]我们还需要设置这款应用程序处理出错的方式。
许多应用程序都设置了处理出错的方式。比如:想一想您输入错误密码登陆时。大多数时候,程序会提示“无效密码,请重试。” 该文本纯粹为了便于人类理解应用程序认为的错误是什么。即便编码错误,知道错在哪里也是很重要的!
将以下编码复制粘贴到您的应用程序中。通看编码,努力理解表述内容。
[*]您已经为验证程序做好准备了!将您的移动设备联机App Inventor后开始验证吧!
举一反三
先用新开发的图片识别应用程序拍摄几张照片,再花时间反思如下问题:
●您可以对这款应用程序的哪些方面加以完善?●采用图片识别技术可以解决您所在社区的问题吗?使用语音识别或其他类型的人工智能技术呢?●使用您针对前述问题给出的任何答案,思考一下解决方案设计的道德准则。谁会因您的解决方案而受到影响?可能带来哪些有利影响?可能导致哪些不利影响?您如何能最大限度地让解决方案为直接,以及间接用户带来有利影响并减少不利影响?
其他资源
Technovation提供的系列教程:●跟随巴提亚·弗雷德曼使用想象卡创建符合道德准则的技术●如何跟随构思42中的麦克·波什丁一起,满足科技人士的需求和需要!●巴提亚·弗雷德曼论道德与技术设想
查看麻省理工学院人工智能道德准则课程 ,即可获取与道德准则有关的更多资讯。
高级人工智能整合记住复习编码13: 云储存与应用程序界面 ,了解与将外部服务应用于所开发应用程序的更多资讯。其中,部分外部服务仅可用于使用更高级编码语言(比如Java或Swift)编写的应用程序,但无论是否计划将其用于所开发的应用程序,都绝对值得了解一番。- Dialogflow- 非常适用于创建会话类人工智能应用程序- TensorFlow- 提供大量工具,比如transcribing handwritten numbers、 pose guessing及其他!- Google- 谷歌建立有庞大并可供使用的一个人工智能工具库。查看用于获取完整概况的该概要视频 。注意:若决定使用这些工具,一定要反复确认价格。部分工具依据使用您应用程序的用户数量,可免费使用。
VianAIhttps://www.youtube.com/watch?v=kzJI2vgOyhI
DialogFlow https://www.youtube.com/watch?v=Fk6xtjceF5A
页:
[1]