2021-3-12 08:21:52 [显示全部楼层]
648浏览
查看: 648|回复: 0

[Technovation] 【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:关于人工智能
  
  
本节课中,您将……
  
●  思考人工智能需遵守的道德标准;
  
●  确定人工智能是否适用于您的应用程序;
  
●  了解如何借助App  Inventor和Thunkable运用部分人工智能元素。
  
  
  
关键术语与概念
  
●  道德准则 – 对大众判断是非的方式具有影响的一套道德原则。
  
●  偏见  – 某人对一些人或群体的、通常不公正的先入之见。
  
启发
  
今天,我们将更深入地了解人工智能应用与您的应用程序。若需复习,请查看人工智能1:关于人工智能
  
  
最重要的,是要记住人工智能的4个基本组成部分:
  
  
image001.png
  
到目前为止,您可能已经对于希望应用程序具备哪些功能有了很多想法。那么,人工智能对您的应用程序重要吗?回答此问题前,让我们先思考几件事。
  
  
道德准则与行动
  
道德准则属于哲学范畴,与孰是孰非有关。由于诸多原因,它成为了当今人工智能领域的重要议题!您希望确保所开发的应用程序做出有助于大众和社会,而非造成损害,哪怕是意外损害的决策。
  
  
与偏见有关的性别图谱示例
  
  
我们从思考“优质”数据开始。删除偏见数据,这有助于让您的模型更具功效,从而做出更恰当的决策。我们已经了解了训练数据偏差的一些相关细节。观看以下视频,您还可以了解更多:
    
  
但对于人工智能而言,数据并非唯一能引起我们思考道德准则的内容。我们还可以思考人工智能运用或其用途需要遵守的道德准则。想象有一项名为Weed Puller的人工智能技术,可用以预测哪些植物是杂草,并将其拔除。从该技术出发,思考以下问题:
  
  
●  如何删除数据集偏见
  
○  数据应能反应应用程序用户的特征。数据若存在偏差,人工智能就可能犯错。
  
○  想象一下,当Weed  Puller仅针对荒野中找到的杂草建立了图片数据集时的情形。若希望在水源附近使用Weed Puller,会出现什么结果?可能的结果是,因为没有帮助识别水源附近所发现杂草的数据进行训练,所以Weed Puller无法识别杂草并将其拔除。因此,Weedpuller对于荒原中的植物存在偏见!
  
○   
  
   
荒原中找到的杂草
image002.jpg
   
   
野莴苣
水源附近发现的杂草
image003.jpg
   
   
香蒲
  
○  明白二者间差异有多大了吧!荒原中杂草的特点完全不同于水源附近杂草的特点。
  
  
●  您的人工智能模型做出了哪些决策呢?
  
○  一些人工智能模型可以做出一种决策,其他则能做出更多决策!想一想您通过编程应用程序能做出的每种决策。模型可能做出您原本并未试图做出的任何决策吗?
  
○  设想一下,当Weed  Puller尝试预测能否看到杂草时的情形。杂草只有一种类型吗?杂草会被掩盖或自我伪装吗?这可能导致Weed  Puller做出错误决策,比如拔除非杂草植株。
  
○  您能分辨以下哪种是杂草吗?若不能,怎么办?
  
image004.jpg    
   
image005.jpg    
image006.jpg    
image007.jpg    
image008.jpg    
  
○   
  
  
●  您的人工智能模型可能采取的一切行动包括哪些?
  
○  针对应用程序模型可能采取(或不采取)的一切行动画一张图。您计划如何影响这些行动?您还能想到尚未考虑到的其他影响吗?
  
○  Weed Puller正尝试拔除杂草。接受充分训练后,这款人工智能模型可以像人一样,顺利拔除杂草,但无法像人一样对环境具有认识。人工智能只懂得完成编程设定的任务。它可能做出错误决策,比如拔除了有助于生态系统保护濒危动物的草类。
  
○      
  
MonMarch-202103084532..png
  
●  若您的人工智能模型出错了,怎么办?
  
○  您能减少数据中的偏见,帮助做出更恰当的决策吗……
  
■  找出更有代表性的数据集。
  
■  依据模型对其决策的确定程度,改变应用程序行动。
  
■  不要公开应用程序的决策,仅让明确需要获知的人知晓。
  
○  若Weed  Puller犯错,确定西红柿植株是杂草,将拔除该植株。而这,可能对计划使用西红柿的或生活在菜园中的昆虫造成负面影响
  
  
●  您的应用程序使用或共享了敏感数据吗?
  
○  对于人工智能技术的成功而言,数据很重要。尽管建立一个具备功能的人工智能模型很重要,但也需要仔细考虑共享信息的重要性。若用户向您提供了信息,说明他们认可您会尊重其信息,不会滥用。若陌生人知晓了您的隐私,您作何感想?
  
○  Weed Puller设计用于利用数据做出与杂草有关的决策。或许它会收集与人员住宅位置有关的数据,以帮助草坪除草。若询问目的地,它可能会共享与人员住宅位置有关的敏感信息,而这可能成为问题!
  
  
●  您的人工智能模型如何与人互动或做出与人有关的预测?
  
○  应先仔细考虑借助人工智能做出的与人有关或对人有影响的预测后,再进行预测。想一想自己。要让陌生人或人工智能在不耗费大量时间的前提下,真正了解作为一个复杂个体的您,这并非易事!
    
  
虽然本节课可能主要以人工智能为课题,但这些道德准则问题适用于您整个应用程序
  
  
作为技术开发者,我们对所开发技术与大众互动的方式负有责任,因此应始终关注所开发技术的潜在影响。
  
  
哪些解决方案需要运用人工智能?
  
并非任何问题都需要运用技术或人工智能加以解决。思考哪些类型的问题最适合运用人工智能,比如:
  
●  无法编程的情形(比如 – Google Maps)
  
●  提供新信息才可做出预测的情形(比如 – 使用新型X光后,人工智能技术就能识别癌症。 )
  
●  通常与行动相关的情形(比如 – 智能吸尘器)
  
  
认真考虑所开发的应用程序是否应采用人工智能技术。人工智能技术能否极大地提升所设计关键功能的有效性?
  
  
App Inventor 和Thunkable可以实现的人工智能功能
  
App Inventor 和  Thunkable运用人工智能可以实现的主要功能如下所示
  
  
   
   
图片识别
语音识别
语言翻译
App    Inventor*
LookExtension
   
PersonalImageClassifier
PersonalAudioClassifier

Thunkable
  
*App Inventor平台原本不包含人工智能代码块。因此,需要下载其作为扩展代码块。点此查看可供下载的官方扩展代码块。 点此 即可了解如何在App Inventor平台中使用扩展代码块。
  
  
正如您所见, App  Inventor 与 Thunkable仅能让应用程序具有基本功能,无法对人工智能模型进行训练。但在编码13: 云储存与应用程序界面 中,您将了解什么是应用程序界面,以及如何将其他资源运用于所开发程序中。您能从中找到其他程序,更充分地控制所建立的人工智能模型,而无需将其运用于所开发程序。您可以在本节课其他资源章节中,找到更多资源。
  
  
活动:图片识别
  

  
我们来编码一个简单的图片识别应用程序:
  
  
   
App    Inventor
Thunkable


       
  • 首先,让我们将界面组件全部罗列到
   
位。
   
   
   
image010.png
image011.png
   


       
  • 首先,让我们将界面组件全部罗列到位。
   
   
   
   
image012.png
image014.png
   
我们设置了1个图片、1个按键、2个标签、1个相机和1个图片识别器组件。


       
  • 您会看到其中有App Inventor常用代码块中未包含的LookExtension1代码块。请参见前述章节内容,了解如何将扩展代码块导入应用程序。链接
   
   
   
   
image015.png


       
  • 现在,我们开始编码。
   
   
供用户使用的一个按键是:分类键
   
   
点击分类键后,相机应先拍照。
   
   
然后,图片识别器应分析相机拍摄的图片。
   
   
最后,应用程序应向用户展示照片,将图片识别器预测的照片内容,以及应用程序对于预测的把握性通知用户。我们希望采用设置所显示图片,并变更图片文本标签的方式通知用户。
   
   
--
   
   
点击分类键后,相机应首先拍照。
   
   
提示:点击按键,希望某种效果出现时,我们应看哪里?
   
   
解决方案:
   
   
image016.png
   
--
   
   
然后,图片识别器应分析相机所拍摄的图片。
   
   
提示:看图片识别器下方的代码块。该操作中,哪一个代码块发挥了作用?需要输入哪些数据?
   
   
解决方案:
   
   
image017.png
   
--
   
   
最后,应用程序应向用户展示照片,将图片识别器预测的照片内容,以及应用程序对于预测的把握性通知用户。我们希望采用设置所显示图片,并变更图片文本标签的方式通知用户。
   
   
提示:我们正在通过该操作修改2个标签和1张图片。使用适当区段中的代码块。
   
   
解决方案:
image018.png
   
   
该解决方案将“Prediction:”和“Confidence:”分别放入各自字段中,从而提升了用户在阅读标签时的便捷性。注意冒号后的空格!
   
   
--
   
   
全部完成后的编码应看似如下所示:           
   
image019.png


       
  • 现在,我们开始编码。
   
   
供用户使用的按键有两个:分类键切换键
   
   
点击分类键后,程序应调用LookExtension代码块分析相机呈现的影像。
   
   
但应知道,LookExtension加载与完成准备时需要一些时间的。因此,我们应避免用户在LookExtension完成准备前点击分类键。
   
   
点击切换键后,应用程序使用的相机应切换至设备配置的另一个可供使用的相机。
   
   
最后,LookExtension完成相机所拍摄图片的分析后,应用程序应调用StatusLabel,告诉用户预测内容。
   
   
--
   
   
我们来按照以下顺序编码:
   
防止用户在LookExtension完成准备前点击分类键。
   
   
提示:查看LookExtension中可供使用的代码块,从而确认是否有可供使用的任何代码块。
   
   
解决方案
   
   
image020.png
   
--
   
   
点击分类键后,程序应调用LookExtension分析相机呈现的影像。
   
   
提示:这一步编程并无所谓玄妙。不过是“点击按键,完成操作而已。”
   
   
解决方案:
image021.png
   
   
您可能注意到我们使用了“ClassifyVideoData”,而非“ClassifyImageData”。您认为差别何在?您可以稍后尝试分别使用两个代码块!现在,继续使用“ClassifyVideoData”编码。
   
   
--
   
   
点击切换键后,应用程序使用的相机应切换至设备配置供使用的另一个相机。
   
   
提示:另一个按键!记住查看LookExtension中可供使用的代码块。
   
   
解决方案:
   
   
image022.png
   
--
   
   
LookExtension完成对相机所拍摄图片的分析后,应用程序应调用StatusLabel通知用户预测内容。
   
   
提示:LookExtension将预测存储为可能答案列表。该列表被命名为“result”,把握性最高的预测排列在列表的第一项。
   
   
解决方案:
image023.png
   
   
若之前对LookExtension没有了解,准确完成该步骤会面临一些困难。
   
   
--
   
   
全部完成后的编码应看似如下所示:
image024.png
   


       
  • 您已经为程序验证做好了准备!那就联机您的移动设备和App Inventor后开始验证吧!


       
  • 我们还需要设置这款应用程序处理出错的方式。
   
   
许多应用程序都设置了处理出错的方式。比如:想一想您输入错误密码登陆时。大多数时候,程序会提示“无效密码,请重试。”
   
该文本纯粹为了便于人类理解应用程序认为的错误是什么。即便编码错误,知道错在哪里也是很重要的!
   
   
将以下编码复制粘贴到您的应用程序中。通看编码,努力理解表述内容。
   
image025.png
image026.png
   
   



       
  • 您已经为验证程序做好准备了!将您的移动设备联机App Inventor后开始验证吧!

  
  
  
  
举一反三
  
先用新开发的图片识别应用程序拍摄几张照片,再花时间反思如下问题:
  
  
●  您可以对这款应用程序的哪些方面加以完善?
  
●  采用图片识别技术可以解决您所在社区的问题吗?使用语音识别或其他类型的人工智能技术呢?
  
●  使用您针对前述问题给出的任何答案,思考一下解决方案设计的道德准则。谁会因您的解决方案而受到影响?可能带来哪些有利影响?可能导致哪些不利影响?您如何能最大限度地让解决方案为直接,以及间接用户带来有利影响并减少不利影响?
  
其他资源
  
Technovation提供的系列教程:
        
  
查看麻省理工学院人工智能道德准则课程 ,即可获取与道德准则有关的更多资讯。
  
  
高级人工智能整合
  
记住复习编码13: 云储存与应用程序界面 ,了解与将外部服务应用于所开发应用程序的更多资讯。其中,部分外部服务仅可用于使用更高级编码语言(比如Java或Swift)编写的应用程序,但无论是否计划将其用于所开发的应用程序,都绝对值得了解一番。
  
-     Dialogflow
  
-     非常适用于创建会话类人工智能应用程序
  
-     TensorFlow
  
-     提供大量工具,比如transcribing handwritten numbers、 pose guessing及其他!
  
-     Google
  
-     谷歌建立有庞大并可供使用的一个人工智能工具库。查看用于获取完整概况的该概要视频 。注意:若决定使用这些工具,一定要反复确认价格。部分工具依据使用您应用程序的用户数量,可免费使用。
  
  
VianAI
    
  
DialogFlow
    


image013.png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail