tag 标签: ai

相关帖子
相关博文
  • 热度 7
    2019-11-27 14:47
    1957 次阅读|
    3 个评论
    我想把电脑学会,但我发现根本学不会怎么办?
    小学四年级,我爸把我送去暑期“电脑培训班”。那会儿的电脑培训班就教 DOS、Windows 3.x 的操作。那时候我对信息技术的各层分工是没有概念的,总体目标就一个,就是“把电脑学会”,至于学会什么:谁能说的清楚?现在总结其实就是学操作系统的使用方法(还有如何使用 WPS)。 不过我的这个目标没变过,就是“把电脑学会”,虽然我不知道要学会什么,但总之就是要学会。初高中花了 6 年看各种信息技术书刊杂志,构建起一个大致的轮廓:这东西在我长大以前,好像是没办法学会了,因为太多了。我觉得能花 6 年建立起一个“多”的概念也不容易了。 大学期间接触简单的 web 开发和网络架构,自己还做了一家网站,但我觉得这些根本就没什么,我明明还是什么都不会。大学毕业后学网络工程(交换与路由),认认真真把思科四本很厚的教程从头到尾看完,习题一道不拉地完成,拿到证了。学习前我就在想:花这么多钱考试,这回总应该能把电脑学会了吧?结果我发现,行业内的破认证一大堆,还有什么系统工程师、软件工程师,这师那师的。四本书都掌握了,结果还跟文盲一样...所以工作间隙相对系统地学了一门高级语言,知道了什么函数、结构体......问题是,我觉得自己仍然是文盲,我好像还是毛都不会,我捉急啊。 那时候我就觉得,这辈子我恐怕是学不会电脑了,毕竟大学也不是学计算机专业:所以完全没有看过学科概论之类的东西。到二十好几了,无聊翻到《计算机科学概论》,这本书相对系统地给出了一些信息技术行业不同层级的概念;并且看《大话处理器》这种更具体的趣味读本,才逐渐发现,这个行业的分工之细密,远非我这种智商正常人士可想。 其实我在 FreeBuf 工作期间,我真正知道了什么叫“垂直”。FreeBuf 是国内一家信息安全(cyber security)媒体,所以它垂直到什么程度呢?就是覆盖上至云安全、应用安全(比如 Android app 安全)、web 安全,中至系统安全、hypervisor 安全、中间件安全、网络安全(network security),下至芯片安全、通讯安全、XX安全。如果按照场景来分类,其实还可作移动安全、企业安全、汽车安全什么的。这大概是没有一个通才能够全盘把控的了吧。 没有人能跟上这个时代 我还在 FreeBuf 的时候,信息安全仍然是个新兴行业。我们在做某些课题或行业研究的时候,并没有多少可借鉴的现成资料,而且做生产的企业也不肯给。那么在很多主题的研究上是处在一个盲人摸象、摸着石头过河的状态的。这个时候,没有一个人会告诉我,这件事你做对了或者这个方向你搞错了。在“研究”得出任何结论时,我们都无法搞清楚是否遗漏了什么重要变量,而且也没有人会告诉我们,因为系统太复杂又太新了。 几年前我采访时任 HackerOne COO 的王宁博士 。HackerOne 是美国一家从事漏洞托管服务工作的公司。王宁博士自己上世纪 80 年代念的物理学,并且随后在美国藤校深造了物理方向的宇宙学,而且她的研究方向是暗物质。我在采访中问了很多有关她博士期间的课题研究(毕竟我是个任性的人,花了一大半时间跟她聊物理,而不是聊信息安全),她研究的是Weakly Interacting Massive Particals粒子。 我觉得我从她那里获取到最有价值的一个信息是:当我们进行一些新领域的研究时,没有人能告诉你做得对不对,我们甚至连研究方法对不对都无法搞清楚。她说她在做博士论文的时候,下结论前非常害怕,因为她总觉得自己一定有什么变量没有考虑进去,生怕研究结论存在十分巨大的偏差,并且对行业产生很错误的导向。但她又说,不要害怕,因为我们能力都是有限的。 知乎上有很多从事软件、硬件、网络、成像、安全等各层面工作的工程师关注我,所以我在发言时会格外谨慎,生怕哪句话发出来就贻笑大方了。不过我后来逐渐发现,这种担忧其实十分多余,因为大部分人即便参与生产,他能懂的专业领域也不会跨超过 2 个,能跨到 3 个细分领域的——那已经可以被视作天才了。就算对着一名全栈工程师,我在 web 架构上大放厥词,他甚至都没办法找出什么大把柄。 当计算机行业,或者说信息技术、电子科技行业发展到现如今这个阶段时,随分工的细密化,以及技术的飞速发展,已经没有某一个人能够跟上时代的节奏。这个是最近参加 FreeBuf 的 CIS 2019 网络安全创新大会,微软中国首席技术官韦青说的。他说:“这个时代里,每个人都只摸到了大象的一部分,当我们以为我们能找到答案的时候,反而会感到愈加迷茫。如果我们能够意识到我们都在盲人摸象,反而心态更能沉下来。”即便专家,他能掌控的领域也十分有限,或者凭他一己之力,也根本无法解决某一个系统的问题。 我想,这里的“答案”对我而言,就是“把电脑学会”吧,所以啊,我这辈子大概都没办法达成这个目标了。 这是个软件定义一切的时代 韦青在佐证信息技术的外延不断扩展这个话题时,提到了一点,就是越来越多的东西被“软件定义”。感觉我最近写了很多“软件定义”的文章,或者至少在文章里都有提到软件定义。“我们在IT领域的都知道,IT架构中早就有了云化、虚拟化。其实质也就是把单点计算能力,虚拟化之后做平均化使用。但现在可不只是IT领域存在这种状况。” 前一阵参考麦肯锡的报告,我写了一篇文章《构建一个时代:汽车电子与软件架构的10大趋势预测》 。这篇报告大部分其实都是废话,不过有一个趋势提到了在汽车电子的软件架构中,会出现扩展的中间件对底层硬件做进一步抽象和虚拟。实际上,现有汽车的 ECU 就能够实现车内跨单元通讯,而未来的中间件则能够链接域控制器。它最终能够实现的是分布式计算,以及 SOA(service-oriented architecture),协力 ADAS、HAD 之类的东西。 这段不需要看懂,继续听我说。更早我在参加 5G 相关的活动时 ,研究 5G 网络架构布局变化了解到,C-RAN(中心化 RAN)诞生以后,BBU(基带处理单元)就集中到了一个中心机房,而且 BBU 本身开始转往 NFV 网络功能虚拟化,以及 SDN 软件定义网络技术。其实说白了,“软件定义”也就是说硬件可以采用更通用的架构,功能实现就用软件来区分就可以了。就类似于你用 PC 的通用架构做个游戏机,这肯定是没问题的,在 Windows 操作系统上搭个你自己的游戏平台 app 即可——这样一来,软件定义游戏机就诞生了。上面一段提到的汽车中间件抽象,本质与此类似,上层应用和下层硬件实现了进一步的脱藕。 “5G 通讯革新的,甚至都不是通讯技术本身,而是对数字化、软件化的使用能力,大家谈的都是 SDN,通讯的单点能力受限,所以需要虚拟化来实现硬件资源的平均。”这是韦青说的,“不光是通讯,制造行业其实也在做软件定义。” 前几天我才写了 NI(美国国家仪器)测试测量方案的软件定义 (虽然人家其实从上世纪六七十年代开始就一直就在走这个路子),我们在现场看到一个通用的硬件架构实现三种完全不同的卫星测试功能,我比较孤陋寡闻,因为以前没有接触过测试测量行业,这会儿才知道原来测试测量仪器现在都这么搞了。 我其实还可以拿出更多的例子来说明(只要我参加更多会O_o),这个时代开始越来越倾向于“软件定义一切”(SDX),这种定义不限于信息技术本身——这个不是我说的,是韦青说的。我不是专家,说了不算。 一个高级的数字复刻版世界 说上面这么多有什么用呢?其核心如果我们配合数字化来看,或者说万物互联,一个桌子、凳子将来都数字化了,都有了传说中的 digital twin——我们现在特别流行说 digital twin,行业内很时兴把它翻译成“数字孪生”。我觉得“孪生”多用于形容词,比如孪生的双胞胎,它表征名词实在不雅,所以我更倾向于用“数字复刻版”来翻译这个词。 就是桌子、椅子这些真实世界的实体,也有了自己的数字复刻版,在数字世界有一个自己的复刻版本。这里又要提我前不久写的另一篇文章了(讨厌不讨厌?),《西门子与AI技术,为Mentor带来了什么?》 ,我觉得现在最喜欢提数字复刻版的就是西门子和 Mentor。 我们仔细想一想,什么是 digtal twin 啊?其实芯片 EDA 行业每天都在搞 digital twin。EDA 的本质就是在你的芯片正式生产以前,我用软件(或者更多硬件仿真)的方法,给你先跑一遍,看看能不能跑——这不就是典型的先做个实体芯片的 digital twin 吗?这一点扩展到机械制造,也就变成了现在很流行的“智能制造”或者“智慧工厂”,针对生产环境做个 digital twin,包括产品、生产流程、生产绩效的 digital twin。有了 digital twin,我就能在数字世界模拟你这套生产流程有什么问题,或者未来可能出现什么问题。 Digital twin 在我的理解中实际上是“数字化”的某种高级阶段(这一点欢迎参见《电子工程专辑》12 月刊封面故事,没错也是我写的),就好像《黑镜》第四季的《DJ 下台》那样,现实世界以后什么东西都可以用数字来事先演练一遍,多可怕......韦青说,以后不管是物理还是流程对象,都会在 cyber(也就是数字世界)产生一个定义,再由软件去定义和优化它,“所以都会数字化、虚拟化进行软件定义”,那么一切其实都是调用功能,“就变成一个服务了”。 什么意思呢?就是说,如今的计算机行业,或者说得流行点叫数字世界,已经发生了极大的外延,你身边的一切实体物件最终都是要被数字化的。这对于整个信息技术垂直行业而言,是个巨大的机遇。不过其实说穿了,上面这一大堆的核心都是“万物互联”,只不过它看起来更高级。 当数字世界彻底侵蚀现实世界,并且双方边界都不再清晰,同时虚拟现实技术有非常高端的发展(不止是 VR 头盔,也可能是生物植入技术)你能想到有哪些事情会发生吗?除了《黑镜》,可设想的科幻影视剧探讨其实很多样。包括马斯克的 NeuroLink 脑机结合技术若有深入发展 ,则人类可能要进入一个新纪元了——大概是通过电子技术来满足人类各种心理需求的时代,咱就不深入说了。 信息安全行业的转折点 最后终于还是要说一说信息安全了。在集成融合的时代,什么 IT/CT/OT/BT 融合了,且在数字世界外延发生变化,数字与现实边界不再清晰的时候,就信息安全来看,以后可不只是在电脑上杀个毒这么简单。这种融合和数字化实际上涉及到了多行业,包括我在前文提到的制造、通讯,甚至对于生物安全的理解,那么“安全”其实就扩展到了过去不曾有过的范围内。 “未来的安全就不光是信息安全了。”以场景的角度来看,可能是“交通安全、城市安全、医疗安全”等等。 其实我在信息安全行业呆的一年多,一直在听各路安全公司讲一个概念,就是“将安全融入到开发环节中去”。我一直觉得这概念是反人类的,那些做 app 开发的人,根本不会理你:老板催我赶紧把 app 上架呢,你要我每个环节都检查安全问题?你不仅浪费我的时间,而且老板也看不到产出,我 KPI 不达标,你安全工程师付我工资吗? 在传统数字产品的开发上,几乎所有做产品的公司大概都是我提的这种想法。而且,人类的历史一路走来,从来都是先发展再治理:套用到这里,安全这种毫无实际产出,还妨碍效率的东西一定是靠边站的。可能在以往的某些领域,比如金融,毕竟是关乎钱财的,咱还稍微在意点儿安全。比如支付宝在安全方面就投了大把的钱。而在其他领域,大家照样看不上安全,这是个常态。信息安全行业从业人员的所谓“安全融入到开发环节中去”只能成为一个美好的梦。 但是!But!xikaxi!!!现在情况还真是不大一样了,比如说汽车电子化,每辆车 1、2 亿行软件代码在里面跑,如果安全出了问题,方向盘或者制动系统被劫持了,那人就挂了。一旦涉及到大规模的人身安全时,一切社会资源就来了。这时,信息安全就真正和人身安全挂钩了。前不久我去参加是德科技的活动,他们在宣传中已经开始大谈“汽车网络安全测试”了 ——这其实也是个必然趋势。 是德科技相关负责人开玩笑这么说的:“很多汽车企业老板半夜做梦都吓醒,客户开着自己的车,刹车系统、方向盘被劫持,第二天公司就被告倒闭了。”这件事现在其实还没有显现出威力。而且我从是德科技那里了解到一点:整车厂、Tier 1零部件厂一般都会成立一个团队,专门研究汽车安全问题,很多整车厂的安全部门都有自己的database,其中加入了所有已知的攻击。 而且的而且,汽车架构的每个组成部分都有自己的安全测试方案,比如辅助驾驶、引擎、娱乐系统,都是企业内部不同的人在处理安全问题,这其实是非常典型的“安全融入到开发环节中去”的初期实现。与此同时,自己做了安全测试,还要让是第三方测试测量企业再去搞一遍安全问题。 其实在汽车之外,IoT 产品未来的安全性是更令人担忧的。尤其是很多医疗设备,汽车在人身安全的问题上可能都只是件小事。如果出现一两例的汽车电子系统被劫持,固件升级和召回可能都是常规方案。但一个心脏起搏器,以及各种植入式医疗设备,在 IoT 演化之路上出现安全问题,要怎么召回呢?而且这个问题实际上正在发生,我在以前的文章里提过,参见文末给出的这一堆链接。 所以实际上我在说什么呢?就是“安全融入到开发环节中”未来会真正在我前文第 2、3 段提到的趋势过后,成为一种必然落实到位的方案,因为软件定义一切,而且数字与现实世界的边界模糊了,与此同时数字世界的安全问题开始大量关乎人身安全。这其实是信息安全这个行业提升价值天花板的重要转折点。因为如果你不这么干,“公司就被告倒闭了”(笑)。 最后一点,如果你有在仔细看文章,你应该要问本文的第 1 段有什么用。那就是,在这个盲人摸象的时代,既然我都学不会电脑,你、我也根本无法凭借一己之力来解决安全问题,甚至各种开发的问题。于是,“协力同行”会成为一个必选项。不止是安全企业间的协力,也不只是不同层级安全解决方案的协力,而是所有企业一起,就算你不做安全你也要开始在意这个问题了——因为没有一个人或者一个企业能单枪匹马解决这么复杂的问题。 不过韦青看得比我远得多,他认为,在面对这样一个时代,“安全融入到开发环节中去”都还不够,因为这句话只涉及到了技术人员。而要解决这些趋势造成的安全问题,技术人员的能力也还差得远呢。“安全的社会、安全的网络、安全的信息,不止是信息部门的事,而是大家的事。广大市民安全意识要培养,工种需要提升对于安全的认识。”“所以不光是技术,还需要意识、素质的极大提高。”有没有感觉特别老生常谈?像中学生守则。不过在上述趋势面前,这些大概还都会在未来成真呢,不过我觉得那还早。 参见本文提到的所有,我写的文章: 开源的理念做安全:FreeBuf与HackerOne COO王宁对谈安全众测 ( https://www.freebuf.com/articles/people/132072.html ) 构建一个时代:汽车电子与软件架构的10大趋势预测 ( https://www.eet-china.com/news/201911181213.html ) 从RFSoC说起,5G对赛灵思而言意味着什么? ( https://www.eet-china.com/news/201907040921.html ) NI的“软件定义自动化测试测量”策略,价值在哪里? ( https://www.eet-china.com/news/201911261410.html ) 西门子与AI技术,为Mentor带来了什么? ( https://www.eet-china.com/news/201909101537.html ) 马斯克的脑机接口技术,让世界变黑客帝国?你想多了 (https://www.eet-china.com/news/201907221133.html) 当汽车被黑客攻击成为常态,当汽车网络安全测试初露头角 ( https://www.eet-china.com/news/201910111520.html )
  • 热度 2
    2019-11-13 15:22
    1345 次阅读|
    1 个评论
    本文研究了文本分类中的反事实公平性,提出了这样一个问题:如果实例中引用的敏感属性不同,预测结果会发生什么变化?毒性分类器通过预测“有些人是同性恋”是有毒的,而“有些人是异性恋”是无毒的来证明一个反事实的公平性问题。我们提供了一种叫做,反事实令牌公平(CTF)的度量方法,用于度量文本分类器中这种特殊的公平形式,并描述了它与组内公平的关系。此外,我们还提供了三种方法,即盲法、反事实增强法和反事实逻辑配对法(CLP),用于优化训练过程中的反事实符号公平性,连接健壮性和公平性。根据经验,我们发现盲法和CLP可以处理反事实的象征公平。该方法不影响分类器的性能,并且与组内公平性的权衡方式不同。这些度量和优化方法为解决文本分类中的公平性问题提供了一条新的途径。 简介 考虑一个确定互联网论坛评论是否有毒的模型。我们希望提高模型对输入文本内容的公平性,这些内容可能引用敏感的身份属性,如性取向、种族或宗教。Dixon等人表明毒性模型在包含“gay”等身份标记的示例中具有较高的假阳性率,因为此类标记在训练集中标记为“toxic”的示例中相对频繁出现。 当引用不同身份组的几乎相同的句子收到不同的预测时,就会出现一个与用户相关的问题。例如,一个基线毒性模型预测,“有些人是同性恋”有98%可能有毒,“有些人是异性恋”只有2%可能有毒。在这项工作中,我们寻求专门解决文本分类的公平性问题的方法。 举个例子,我们问一个反事实的问题:如果示例中引用的敏感属性不同,预测会发生什么变化?如果预测分数相对于敏感属性发生变化,我们将其视为潜在问题的指标。与基于群体的公平概念(如人口均等、赔率均等)不同,这些概念寻求在统计上使整个敏感群体的模型行为均等,反事实公平要求对单个反事实对的模型行为均等;见(Kusner, 2017);Wachter、Mittelstadt&Russell 2017)。 为了评估反事实的公平性,我们考虑通过替换与身份组相关联的标记获得扰动。例如,将“同性恋”替换为“异性恋”,或将“亚洲人”替换为“美国人”。基于这些生成的反事实,我们可以定义一个公平度量,我们称之为反事实象征公平(ctf)。虽然这比一般的反事实公平更为有限,但我们相信它捕获了文本分类中最突出的问题之一,并且是更一般的文本反事实公平度量的起点。 决定反事实何时应该有相同的预测对伦理和哲学提出了难以回答的问题。由令牌替换生成的许多逻辑反事实可能不需要相同的输出。我们称这些为不对称的反事实。在毒性分类中,当评论提到与一组而不是另一组相关时,或者当评论攻击一个特别脆弱的组时,可能会出现这种情况。非对称反事实表明,从业人员在反事实公平的培训和评估中都应谨慎。我们在实验部分讨论了在毒性分类情况下解决这一问题的建议。 为了满足反事实的象征公平,我们借鉴了健壮性相关文献中的技术。我们提出了一个通过扩展逻辑配对(kannan、kurakin&goodfellow 2018)来实现任意反事实公平的通用培训方案,以惩罚模型输出中反事实对的差异。我们将此方法与简单地用反事实示例扩充训练集和盲目性进行比较,后者用一个特殊的标记替换所有敏感的标记。 存在一个问题是,上述方法只能在培训过程中对反事实所考虑的身份标记实现公平性。为了解决这个问题,我们评估了一组保留的标识令牌上泛化方法。优化反事实公平时的另一个关注点是与分类器的其他理想属性(包括总体准确性和组公平性)的潜在权衡。在实践中,我们没有发现在准确性方面的重大损害,也没有发现在真实否定和真实积极之间的权衡对群体公平的不同影响。 在这篇论文中我们做出了如下贡献: (1) 度量:我们提供了一个可跟踪的度量,即反事实的符号公平,用于在文本分类中度量反事实的公平性。 (2) 方法:我们研究了三种处理反事实符号公平的方法:(a)盲法,(b)反事实增强法,(b)反事实逻辑配对法,从稳健性和公平性领域进行桥接研究。 (3) 实证评估:我们评估了反事实象征公平、群体公平和这些方法的准确性的实证表现和权衡。 问题定义 给定文本输入x属于X,其中x是标记的序列 ,我们的任务是预测结果y。我们考虑一个由其参数化的分类器f,它产生一个预测^ y=f(x),在这里我们寻求最小化y和^ y之间的错误概念。为了简化符号,我们限制以下定义为一个二进制类,但它们可以很容易地推广到多类分类问题。分类器F可以是任意的神经网络。我们希望在保持对敏感属性(如身份组)的反事实公平性的同时,最大限度地提高模型的性能。反事实的公平性是通过使用干扰手边例子中引用的敏感属性的反事实例子来衡量的。设(x)表示与实例x相关的一组反事实实例。反事实公平要求对所有反事实模型的预测都在指定的误差内。 定义1: 反事实公平 如果 那么对于反事实生成函数f和错误率,分类器f是反事实公平的 Ø 反事实令牌公平性(CTF) 我们考虑一类狭隘的反事实,涉及在输入中替换身份令牌,例如,在输入“有些人是同性恋”中用“异性恋”代替“同性恋”。 定义2. 分类器满足反事实令牌公平性,如果它满足关于反事实生成函数A和错误率的反事实公平性,则为一组身份令牌A. 虽然有关敏感群体的内容可能会被复杂的语义所捕获,但此度量标准将显示与更一般的反事实公平性相关问题的子集。这是第一步,除了群体公平之外,还表现出对公平性的额外关注。 Ø 非对称反事实 到目前为止,我们假设所有关于身份标记的反事实都应该有相同的预测。在敏感属性确实影响预测的情况下,此假设无效。例如,考虑一个预测文本毒性的模型,反事实的一对“太同性恋了”和“太直了”。第一个例子可以说比第二个例子更有可能被认为是有害的,因为“同性恋”经常被用作互联网论坛的侮辱,而“直”不是。其他例子包括定型,其中一组比另一组更容易受到攻击。在这种情况下要求平等的预测可能会无意中伤害到更脆弱的群体。只有在规定对称预测的反事实中,才需要公平。这种限制可以通过限制反事实生成函数f(x)来在我们的框架中进行调整,以排除任何反事实,例如x可能具有不对称标签。一般来说,反事实之间的不对称程度和方向因任务的不同而不同,也因任务消费者的文化敏感性而不同。这使得很难定义一个完美的反事实生成函数。在实验中,我们提出了一种避免非对称反事实的启发式模型来预测文本的毒性。 Ø 与组公平的关系 反事实公平是对集团公平的优势均等概念的补充(Hardt、Price和Srebro 2016),这要求敏感属性的不同值的真实正利率和真实负利率均等。文本分类器可以满足其中一个,而完全不满足另一个。考虑到当两个敏感属性a和a0分别出现在不相交的上下文xa和xa0集合中时的情况。模型可以通过始终正确预测数据中出现a;a0的上下文来满足概率均等性,但决不能在数据中不存在的反事实上下文中进行预测。相反,该模型可以预测所有反事实对的相同输出,而只在xa而不是x0a上正确预测。 方法 提出了三种提高反事实公平性的方法:盲法、反事实增广法和反事实逻辑配对法。这两种方法都假定可以访问一个身份令牌列表,并希望对其进行公平处理。 Ø 盲法 盲人用一个特殊的身份标记来代替所有的身份标记,这允许预测者知道一个身份项存在,但不知道哪个身份。这类似于标准的NLP方法,例如用通用数字替换大数字。虽然这种方法保证了反事实的令牌公平性,但它有许多缺点。首先,它没有区分身份项的能力,因此必然等同于非对称反事实。第二,它不能处理复杂的反事实,这些反事实涉及到不止一个象征性的替代,例如“基督徒去教堂”和“犹太人去寺庙”。最后,模型仍然可以使用与身份术语相关的其他信号来区分(德沃克等人2011)。 Ø 反事实增强 反事实增强并不是让模型对身份项视而不见,而是用生成的反事实示例来增强模型的训练集。附加的例子旨在指导模型对扰动的恒等项保持不变。这是计算机视觉中的一种标准技术,用于使模型对目标位置、图像方向等保持不变。反事实的例子被赋予与原始示例相同的标签。 Ø 反事实逻辑对 反事实逻辑对(CLP)通过在训练损失中添加一个鲁棒性术语,鼓励模型对身份具有鲁棒性。稳健性术语由逻辑对(kannan、kurakin和goodfellow 2018)给出,该术语惩罚了成对训练示例及其反事实的逻辑差异规范。相似于反事实增加,CLP可以使用任何反事实一代功能。例如,一个限制性的反事实一代函数可以用来避免不对称反事实上的平等。此外,该方法还应用于更复杂的反事实。 实验 Ø 处理不对称反事实 我们假设,非对称反事实不太可能出现为基础真相无毒评论比有毒评论。这有两个原因。当对易受攻击群体进行定型/攻击以进行某些身份替换时,会出现不对称反事实,并且不存在其他毒性信号。在这种情况下,大多数身份替换都是无毒的,只有攻击弱势群体的才是有毒的。因此,如果基本事实示例是无毒的,那么在大多数身份替换中仍然需要反事实公平,而如果基本事实示例是有毒的,那么在大多数反事实中不需要等量预测。第二,刻板评论更可能发生在攻击刻板群体的有毒评论中,而不是引用其他身份群体的无毒评论中。基于这些原因,我们分别从事实-象征-公平性的角度对事实-无毒评论和事实-有毒评论进行了评价,并将我们的分析重点放在无毒评论上。我们还考虑将CLP损失仅应用于培训期间的无毒评论,以避免对潜在的不对称反事实强制逻辑的平等性。我们将这种变异称为CLP无毒。另外,我们还评估了简单合成输入的CTF,其中所有关于毒性的信息都在上下文中编码,所有反事实都是通过设计对称的。具体来说,我们使用一组基于模板的综合生成的句子,例如“名称是形容词”。 结果 Ø 反事实令牌公平 表1展示了评估数据集中无毒示例的CTF差距,以及合成数据集中的所有示例。 表2展示了CTF在评估数据集中无毒示例保留条款方面的差距。 Ø 总体性能 我们使用ROC曲线的AUC评估分类器的整体性能。值得注意的是,所有方法在测试集上显示出一致的AUC,范围在0.962-0.964之间。 图1比较了各种模型的真阳性率(TPR)和真阴性率(TNR),其中毒性分类的阈值设置为0.5。TPR和TNR仅在包含训练术语集的标识术语的示例上进行测量。我们发现,减少CTF差距的方法在识别无毒评论(真阴性)方面表现更好,而在识别有毒评论(真阳性)方面表现更差。在误差分析中讨论了改善CTF间隙与TPR之间的张力。 Ø 误差分析 我们研究了CTF缺口和TPR之间的权衡。我们考虑CLP=5模型,该模型获得接近零的CTF间隙,并将其毒性评论预测与基线预测进行比较。在测试集中具有标识项的示例中,有83个示例是根据基线正确分类的,而由CLP模型错误分类的。其中27位作者被贴上了不对称反事实的标签。有20例CLP模型与基线相比预测正确,没有一例具有不对称的反事实。这告诉我们,TPR损失中有很大一部分(相对于基线)是不对称反事实的毒性例子。这是因为具有不对称反事实的例子由于存在一个特定的同一项而具有毒性,而一个经过训练以忽略同一项的模型将不太可能在这些例子上正确预测。 结论与未来工作 在文本分类中,我们朝着反事实公平的方向努力,提出了一种反事实公平的具体形式,称为反事实令牌公平(CTF),它要求模型对输入中存在的不同身份令牌具有鲁棒性。我们表明,在这个指标上,具有良好总体性能的文本分类模型表现不佳。本文从鲁棒性的角度对反事实令牌公平性进行了研究,提出了模型训练过程中反事实令牌公平性度量的优化过程——反事实逻辑对。我们发现,这种方法在执行身份标记的同时也是盲目的,但也可以更好地进行归纳以保留标记。这些结果并不以牺牲整个分类器的准确性为代价,并且在假阳性和假阴性之间存在不同的权衡。 今后,我们要设计更好的启发式方法来识别具有非对称反事实的案例。排除有毒评论涵盖了许多但并非所有不对称的例子。例如,引用“黑色力量”的基本事实无毒的例子,在引用“白色力量”时,更有可能变成有毒的。在其他文本分类任务中,如情绪分类,将出现不对称的反事实,但不一定具有相同的清晰划分标签。 下一步将是通过解决身份项的多义性(可能导致不合逻辑的替换)、不对称的反事实和对身份组的多重引用等问题来改进反事实的产生。一种可能的方法是在字向量中使用类比来更改用于同一标识组的多个标记(Madan等人2018年)。另一种方法是在文本上定义生成模型,如(Hu等人2017年),它可以修改文本的某些属性,同时保持其他属性不变并保留语义。我们还可以使用标准来选择语义等效的对抗性示例,如(Ribeiro、Singh和Guestrin 2018),以评估反事实示例是否合乎逻辑。对一般反事实公平性的优化将检验反事实逻辑配对的许多独特优势。
  • 热度 5
    2019-11-10 14:02
    3707 次阅读|
    6 个评论
    AI可以诞生中国的下一个华为吗?
    11月7号,全程与了aspencore全球CEO峰会,从早上8:00几乎第一个到酒店,到晚上21:00领奖离开,无论是行业思考,外部见闻,还是职业反思或者人生启示,都是一个新的起点。而我感悟最深刻的是圆桌访谈,主题是关于AIOT,智能连接和人工智能的思考。 从访谈的Leader 来思考,除了地平线和兆易创新,其余都是传统的跨国元器件的巨头。 从访谈的过程来看,地平线为代表的新兴AI企业对于中国市场的理解要稍微高于传统的跨国巨头,之所以这样说是因为跨国公司在AI硬件生态掌握着的话语权,所以更少机会去了解最底层的AI垂直行业的应用和场景,而地平线作为AI芯片的上游厂商对于场景和应用的需求会更多,所以很开心的看到Carl Zhang 的精彩论述,也代表了新一代的中国科技管理者在国际竞争中显得更加从容和更加自信。 以Arm/赛灵思为代表的计算平台厂商在行业占据的优势地位确实更加明显,在当前的AI领域,国内厂商确实无法正面竞争,所以访谈中二位代表显得非常的自信和从容,其实也是代表着他们在行业中的一种真实地位。 AI领域的技术成功,最终还会是生态的成功,还是平台的成功,尽管AI的应用场景是碎片化的。赛灵思,ARM会利用他们的优势地位在中国市场上去拓展和巩固他们在生态链中的优势地位,唐小姐也最后广告了12月的开发者大会。 而我对于AI和AIOT的思考是如何应用到制造业,物流业等垂直行业,大湾区在制造业逐渐缺失的情况下找到新的发展机会。 在中国的高科技领域说话题,我们是逃不开华为,而提到华为,我们无法逃避的是华为创始人任正非。 任正非说过:“5G提供高带宽、低时延,支撑的是人工智能,人工智能才是大产业...人工智能是又一次改变信息社会格局的机会。” 任总的观点不能说象征着真理,但是会给科技行业的从业者一些新的思考,从消费电子,通信,ICT一路狂奔,华为在改在世界的其他行业发挥的作用比较有限,而AI不一样,AI只要是深度应用,对于改变世界是颠覆性的,所以这个观点是对于华为未来的发展是有指导意义的,但是具体华为怎么安排战略落地,就看时机了。 当前的中国AI产业表现非常不错,但是有些事情还是需要我们去警惕的,AI产业最好不能搞成第二个手机产业。 1.关键的元器件技术掌握在欧美公司里面,BOM拆开一半利润被上游国外大厂分走了; 2.操作系统,算法和协议和标准,中国企业需要掌握更多的话语权; 3.AI的方案厂商避免成为当前的手机ODM厂商,当年龙旗,华勤,闻泰早期也是只做硬件设计,到后面就成了ODM代工, 地平线也是在实践中发现了单纯的方案无法满足到下游客户的需求,也开始涉足下游硬件的产品来满足客户需求, 当然这个无可厚非,但是如果因为下游的利润丰厚而投入太多制造端,有机会损伤到前端的研发投入,最终让企业进入重资产的终端制造,确实不是一个最佳选择。 从中国当前的市场环境来看,中国最有可能诞生AI大型科技企业,企业或者受益最多的是中国的垂直产业,还有可能是衣食住行的企业,或者垂直领域的其他企业。 互联网时代,移动互联网时代,中国大陆诞生一大批世界知名的互联网企业,而其核心业务是围绕衣食住行来展开的。 阿里巴巴,之前是电商起家,最终发现了移动互联网需要大量的计算,最后在云计算取得了巨大的成就; 腾讯,之前是社交需求起家,最终也是在云计算,物联网和大数据积累巨大的科技能力; 中国移动,中国联通,中国电信则是依赖巨大的市场需求,成就了自己的市场地位和吸金能力; 而在上游的设备端,系统端,元器件等领域,除了华为技术,确实可以在全球领域参与竞争,其他中国内地没有很突出的企业。 AI时代,在制造领域,以富士康(鸿海可以看成台湾企业,富士康可以认同为中国内地企业),AI和AIOT确实可以给大型的工业制造企业带来巨大的变化,无论是效率需求,还是人工成本,人口红利消失,都是技术需要解决的行业痛点,也是工业企业的刚需,在工业领域可以大规模的标准化应用AI和AIOT技术,是非常有可能诞生一个巨大的AI科技企业,当然很多人还是以需求场景太多,需求碎片化来看衰这个未来,未来随着标准,协议和联盟等形式统一,工业领域是有机会诞生这样的巨头企业。 AI时代,在物流业或者美团类似企业会有诞生大型科技企业的机会,中国物流行业效率偏低,很多物流细分行业基本是以价格战和规模制胜,而物流行业的劳动密集未来是不可持续的,要提高物流行业的效率,解决人力未来紧缺的刚需,通过AI和AIOT是必须的选择,而京东物流,菜鸟网络和顺丰科技是最有可能转型为AI科技公司资质的企业,我这里确实和紫光展锐的楚总的观点有些不一致,物流公司是有机会转型为科技公司的可行性。 AI时代,还有机会诞生科技巨头的就是金融,从互联网金融到AI金融,以蚂蚁金服和平安科技为代表的企业,未来依旧可以继续转型为AI时代的科技翘楚。 那对于大湾区的工厂BOSS,中小企业家,未来的机会是什么?很多科技园的创业者都死在智能硬件,AIOT,用360周鸿祎先生的观点,太多的伪需求,低频的需求,自我制造的需求,并未满足客户真实的需求;另外一个是AI的标准协议未统一,无法做到有效连接,所以更多的智能硬件是个信息孤岛,根本无法互通互联,解决不了客户的真实需求;最后一个就是死在供应链上,很多研发背景的创业者不懂供应链,不重视工厂,也不懂得将方案真实落地,结果就多了一个老罗式的英雄。 现在珠三角的工厂,可以大致分为以下几类(可能有点不全面): 1.依赖全球科技供应链的生产制造工厂:代表性的是欧美台湾日本(富士康,光宝,台达,伟创力,捷普,也有TDK,村田,三星,LG),也还有中国大陆(比亚迪,华勤,闻泰,OPPO,VIVO,龙旗),以及围绕系统工厂的连接器,结构件,包装材料,还有相关辅助材料的企业。 此类企业中最大可能会迁移到东南亚的是欧美日本和台湾工厂,无论从成本,关税还是全球经营角度来看都是可行的;而中国内地厂商也最可能将工厂转移到更远的江西,河南区域。 2.依赖跨境电商订单的制造工厂:这类工厂中以原来的外贸企业的工厂为主,此类工厂的制造技术含量会更低,而且承接此类订单的业务大部分是原来外贸公司转型的所谓品牌企业,部分企业会拥有一定的品牌经营能力,但是研发能力确实是严重不足,这些工厂的规模很小,而且数量相对比较多,随着第一类工厂的转移,此类型工厂也会迁移。 3.依赖国内电商,新零售存活的工厂:拼多多,淘宝很多的中小型服装,箱包企业,大部分规模非常的小,有些电商的工厂就是家庭作坊,集中在珠三角的民房里面,比较普遍,这类工厂预计会长期存在,规模小,老板大多数是本地人,不太可能轻易搬迁。 4.还有一类是央企,国企的子公司和配套工厂,此类工厂一般对于成本敏感度比较低,更多是满足央企和国企的区域需求而存在,比如中集,国家电网,国家电力,中粮等等,数量比较少。 5.最后一类是珠三角的品牌企业的工厂,比如格力,美的,科龙,TCL,华为,中兴,此类企业大部分已经国际化了,工厂的转移和调整会比较灵活,会依据成本做战略调整。 而在未来AI里面去获取利益的企业大部分是第一类型的企业,当然也包括最后一类的企业,大部分处于产业链末端的AI产品的代工厂,他们其实获得的利润和传统消费电子,通信产品基本一致,也并不会因为AI的附加值得到更多的利益。所以AI产品的底层供应商,他们对于AI是没有多大热情的,如果让AI产品真正的得到供应链的青睐就是需要提供产品本身的附加值,包括AI芯片自研能力,其他配套的传感器,MCU,计算芯片等更多的元器件国产化,交给下游的集成商和代工厂才可以获得更多的代工费用,不然他们只是全球供应链底层的弱者,并非国际大厂给与的生态合作厂商而得到真正的改善,总而言之,还是需要技术层面有更多的话语权,中国的工厂才会有好日子过,中国的产业工人才可以像德国工人一样享受待遇。借用蒋中正先生在解放战争末期的一句话来结束本文“战场上打不赢,谈判桌上怎么谈都是一样的。”
  • 热度 3
    2019-9-28 08:45
    431 次阅读|
    1 个评论
    【零基础】深层神经网络解析
    回顾:   【零基础】AI神经元解析(含实例代码)   【零基础】浅层神经网络解析 一、序言   前面我们已经完成了单神经元、浅层神经网络(2层)的解析,其中有很多没有讲透的地方我们就暂时不要理会了,比如反向传播的原理我也没看明白呢。这里我们继续下一步,解析深层的神经网络(N层),也就是真的要“深度学习”了。   注:本文内容主要是对“床长”的系列教程进行总结,强烈推荐“床长”的人工智能系列教程(https://www.captainbed.net/) 二、深层神经网络的构成   我们再回顾一下前面做的工作,一个典型的神经元构成如下:   1)传播函数,由输入x、偏置w、阈值b计算出a   2)激活函数,将a映射到0~1之间的结果y,可理解为(是、否)的概率   3)反向传播函数,通过y、label计算出dw、db(用以更新w和b)   4)损失函数,计算y与label间的误差   在浅层神经网络中,其实主要也是实现了这四个函数,区别只是在输入与输出间多了一层计算。以反向传播函数为例:    单神经元反向传播函数:    具有两层的浅层神经网络:   可以看到整体形式上并没有太大差别,而对于神经元层数更多的深层神经网络,其实大体上也是一样,只是我们需要用一个“循环”来处理一下可自定义的网络层数。   对于深层神经网络,我们在构建模型时不限制其网络层数、神经元个数,只是在使用时根据需要写上网络结构即可。下面依然是直接上代码,文末附完整代码文件下载。   这里我们依旧是处理前面“浅层神经网络”的问题“从图片中识别出偶数和奇数“。 三、随机初始化参数 #初始化所有层的w和b def initialize_parameters(layer_dims):   np.random.seed(1)   wGroup = {}   bGroup = {}   layer = len(layer_dims)#神经网络总共有几层   #逐层初始化w、b   for i in range(1,layer): #i的值是1 2 3 到layer-1 的标号是从0开始的,其中layer_dims 是输入层     wGroup = np.random.randn(layer_dims ,layer_dims )/np.sqrt(layer_dims )     bGroup = np.zeros((layer_dims ,1))   return wGroup,bGroup   layer_dims包含了每层神经元个数,如 表示是一个三层的网络,第一层5个神经元、第二层4个神经元、第三层1个神经元。注意输入层是不算一层的,但是输入层的个数又直接影响了第一层w的初始化。   返回值wGroup,bGroup包含了每一层初始化后的w和b 四、传播函数 #传播函数 def forward(img, wGroup, bGroup):   #神经网络的实际层数与参数的层数一致   layer = len(wGroup)   #除第一层神经网络的输入是img,其他层的输入都是上一层的输出   #除最后一层的激活函数是sigmoid,其他层的激活函数都是relu   caches =   #前L-1层使用relu作为激活函数,最后一层使用sigmoid做激活函数   for i in range(1,layer+1):     if i == 1:       IN = img     else:       IN = Y#IN 就是Y_prev       w = wGroup       b = bGroup       A = np.dot(w, IN) + b       #将变量数据保存起来便于后面反向计算       caches.append((IN,w,b,A))       #下一层的输入使用激活函数转化一下       if i != layer:         Y = relu(A)       else:         Y = sigmoid(A)   return Y, caches   这里,除第一层的输入是img之外,后面都是用激活函数转化后的Y值作为输入。其中最后一层使用sigmoid作为激活函数,其他层使用relu函数(又换了个激活函数)。   这里的IN其实就是上一层的Y,caches里存储了IN:上一层的Y(其实就是本层的输入,第一层是img)、w:本层的权重、b:本层的偏置、A:激活前的乘积。将这些数据保存起来后面计算反向传播时用。最后还返回了最终的Y,其实就是神经网络最后的输出值。 五、反向传播函数 #反向传播 def backward(YLast,label,caches):   layer = len(caches)   label = label.reshape(YLast.shape)   dWGroup = {}   dbGroup = {}   Y = YLast   (Y_prev, W, b, A) = caches #取最后一个值   m = Y_prev.shape   #直接计算最后一层dY   dY = - (np.divide(label, Y) - np.divide(1 - label, 1 - Y+0.000001))#这里加上一个0.000001是为了防止1-Y=0   #最后一层dA dW db   dA = sigmoid_backward(dY, A)   dW = np.dot(dA, Y_prev.T) / m   db = np.sum(dA, axis=1, keepdims=True) / m   dWGroup = dW   dbGroup = db   #上一层的dY   dY_prev = np.dot(W.T, dA)   for c in reversed(range(1,layer)):#若layer=4则C =3 2 1     dY = dY_prev     (Y_prev, W, b, A) = caches #c-1 = 2 1 0,这里不好理解的是c是从1开始的,而caches是从0开始的     m = Y_prev.shape     dA = relu_backward(dY, A)     dW = np.dot(dA, Y_prev.T) / m     db = np.sum(dA, axis=1, keepdims=True) / m     #上一层的dA     dY_prev = np.dot(W.T, dA)     dWGroup = dW     dbGroup = db   return dWGroup,dbGroup   这里的反向传播其实本质上跟浅层神经网络差不多,只是我们将最后一层的反向传播单独拿出来计算(因为激活函数不同),而且又涉及到历史参数获取(之前直接作为参数传)只是看起来复杂。你可以自己尝试结合前面浅层网络做一个指定层数(比如3层)的代码编写,只有动起手来才好理解。下面是我自己写的一段帮助理解的伪代码。另外需要注意的是,这里计算dA时分别针对relu和sigmoid函数是不一样的,所以分别有relu_backward和sigmoid_backward函数。 六、梯度下降(更新w、b) #更新w、b参数 def update(wGroup, bGroup, dWGroup, dbGroup, learning_rate):   L = len(wGroup)   for i in range(1,L+1): #1-3     wGroup = wGroup - learning_rate * dWGroup     bGroup = bGroup - learning_rate * dbGroup   return wGroup,bGroup 七、损失函数 #损失函数 def costCAL(Y, label):   m = label.shape   cost = np.multiply(label,np.log(Y))+np.multiply(1-label, np.log(1-Y+0.000001))#这里加个很小的数是为了防止1-Y=0的情况   cost = -np.sum(cost)/m   cost = np.squeeze(cost)   return cost 八、预测函数 #预测函数 def predict(img,wGroup,bGroup):   m = img.shape   L = len(wGroup)   p = np.zeros((1,m))   #向前传播做预测   probas,caches = forward(img, wGroup, bGroup)   # 将预测结果转化成0和1的形式,即大于0.5的就是1,否则就是0   for i in range(0, probas.shape ): 0.5:     p = 1   else:     p = 0   return p 九、训练模型并预测 #组成训练model def model(img, label, layers_dims, learning_rate=0.0075, num_iterations=3000, print_cost=False):   np.random.seed(1)   costs = wGroup,bGroup = model(train_img, train_label, layers_dims,learning_rate=0.1, num_iterations=2000, print_cost=True) # 对训练数据集进行预测 pred_train = predict(train_img,wGroup,bGroup) print("预测准确率是: " + str(np.sum((pred_train == train_label) / train_img.shape ))) # 对测试数据集进行预测 pred_test = predict(test_img,wGroup,bGroup) print("预测准确率是: " + str(np.sum((pred_test == test_label) / test_img.shape ))) 运行最后结果: 十、总结回顾   预测准确率较之前浅层神经网络又有了大幅的提升(之前是94%)。   其实从浅层神经网络开始,大部分都只是贴上代码了,有点”只可意会不可言传“的感觉,其实整体框架一直都没变,所以也不知道有啥可说的。后面我会继续花时间搞明白传播函数、反向传播函数的具体原理,到时再写深度解析的文章。   关注公众号“零基础爱学习”回复"AI6"可获得完整代码 。后面我们还会继续更新“传播函数、反向传播函数的具体含义”,以及各种激活函数的区别。
  • 热度 2
    2019-7-7 11:33
    1621 次阅读|
    3 个评论
    【零基础】speech driven animation中文安装使用指南
    注:原项目名叫Speech-Driven Animation,所以我这里就简称为SDA 开局一张图,后面自动编   相信前段时间爆火的DeepNude(AI扒衣)让很多人惊掉了大牙,AI还能干这个?!如果你还不知道什么是DeepNude现在可以百度一下了,关注公众号“零基础爱学习”回复“DeepNude”也可以获取更多信息。   现在长江后浪推前浪,一浪更比一浪强啊,来自伦敦帝国学院的iBUG小组近日开源了一个AI项目SDA(Speech-Driven Animation),只需要一张图片,唱歌说话视频自动生成!比如:   施瓦辛格:      开始说话:      除了自动根据语音对口型,SDA还可以指定情绪,比如:   开心:      难过:      如果只是介绍下SDA就太没意思了,所以各位喜爱学习的程序员们有福了,本文其实是一篇完整的SDA安装和使用指南!(耗时一周整理完成!)。虽然本文已非常详细,不过开始之前还是有一点小小的要求:   1、必须要会用linux,熟悉Ubuntu最好   2、必须要会编程,熟悉python更好 Ubuntu与基础环境   使用SDA最大的坑就是操作系统一定要用Ubuntu!我一开始用centos来着,各种报错!换了Ubuntu各种顺利!比如项目需要用python3.6,而centos默认是2.7,安装的话一般会装3.8,结果就是不得行!必须是python3.6!项目也没啥文档,全靠自己摸索的!基础环境就两个重点:   1、操作系统:Ubuntu(重要!)     我下载的版本是这个“ubuntu-18.04.2-live-server-amd64.iso”   2、python3.6(Ubuntu默认自带python3.6) git与git lfs安装   SDA项目发布在git,其中AI训练生成的数据包大概有2G左右,所以需要使用git lfs(大文件专用)来下载项目源码    1、安装git   sudoapt install git    2、安装git lfs   sudo apt install git-lfs   sudogit init   sudo git lfs install 依赖包安装   SDA项目使用了大量的python扩展包,比如torch、scikit、opencv等等,这里我们先安装一些依赖包    1、pip,先安装pip,后面一些依赖包需要使用pip   sudo apt install python3-pip    2、setuptools,安装python扩展包必备工具   sudo apt install python3-setuptools    3、一些建议先安装的包(文末附下载方式)    这几个包是安装SDA时会自动下载安装的,如果你发现下载比较慢的话(torch有600多M)可以试试先从百度云下载(文末附下载链接)自行安装。    1)opencv     sudo pip3 install opencv_python-4.1.0.25-cp36-cp36m-manylinux1_x86_64.whl    2)torch     sudo pip3 installtorch-1.1.0-cp36-cp36m-manylinux1_x86_64.whl    3)scikit     sudo pip3 installscikit_image-0.15.0-cp36-cp36m-manylinux1_x86_64.whl    4)scipy     sudo pip3 installscipy-1.3.0-cp36-cp36m-manylinux1_x86_64.whl    4、ffmpeg, SDA涉及视频操作,所以ffmpeg是必须安装的,这里我们直接从git获取安装包     sudogit clone https://git.ffmpeg.org/ffmpeg.git ffmpeg   到下载的ffmpeg包中依次执行./configure、make、make install 安装SDA(speech-driven-animation)   SDA安装包可以通过git lfs直接获取(2G左右),也可以从云盘下载(文末附下载链接)。这里演示的是从git lfs下载。    1、获取SDA安装包   sudo git lfs clone https://github.com/DinoMan/speech-driven-animation.git    2、git会下载一个目录speech-driven-animation,进入该目录执行如下指令   sudopython3 setup.py build   sudo python3 setup.py install   (会自动下载一些依赖包)   SDA就算是安装好了,看似简简单单数个命令,却是辛苦一周试出来的啊! 依赖包安装2   前面安装的几个依赖包只是SDA安装需要的,想要使用SDA来干活儿还得继续安装!    1、libXrender   sudo apt install libxrender1    2、libSM   sudo apt install libsm6    3、torchaudio   sudo pip3 install git+https://github.com/pytorch/audio@d92de5b  //下载并安装老版本的torchaudio   (这里又是个坑,SDA需要torch和torchaudio,但是最新版torchaudio与torch有兼容性问题,所以需要使用老版本的torchaudio!)    4、sox   sudo aptinstall sox libsox-dev libsox-fmt-all   (这里也是个坑,只有Ubuntu能正常安装sox,centos不得行!)    5、torchvision   sudo pip3 install torchvision 编写测试代码   找到前面下载的speech-driven-animation目录,进入之,可以看到一个“example”目录,进入之,能看到audio.wav、image.bmp两个文件,是项目组提供测试的图片和音频文件,我们就在这里写一段测试代码:   vi test.py  //然后输入下列代码:    import sda   va = sda.VideoAnimator()   vid, aud = va("image.bmp", "audio.wav")   va.save_video(vid, aud, "/home/XXX(这里根据实际情况填写)/speech-driven-animation/example/test.mp4") //这里要写完整的路径,不要问为什么,反正不这么写就报错   保存后使用下列指令测试:   sudo python3 test.py   运行成功了吗?是不是又卡主了...应该会提示:   Downloading the face detection CNN. Please wait...   Downloading the Face Alignment Network(FAN). Please wait...   因为face_alignment这个扩展包的训练数据还没下载呢...你需要将:   s3fd_convert.pth、2DFAN-4.pth.tar这两个文件放到“/home/XXX(这里根据实际情况填写)/.face_alignment/data/”目录下(可搜索.face_alignment找到此目录),文末附下载方式。   好啦,现在再次执行测试:   sudo python3 test.py   没有报错的话,可以看看目录下是不是生成了一个test.mp4,赶紧下载到电脑上看看吧! 各种包下载方式   因为很多包从git、pypi下载很慢,所以我这里提供了几个比较大的包、关键文件的百度云下载。 关注公众号“零基础爱学习”,回复“SDA”获取下面的资料 :   1、speech-driven-animation.tar.gz  SDA源码包,已包含了训练文件(2G)   2、scipy-1.3.0-cp36-cp36m-manylinux1_x86_64.whl  SDA依赖包   3、scikit_image-0.15.0-cp36-cp36m-manylinux1_x86_64.whl  SDA依赖包   4、torch-1.1.0-cp36-cp36m-manylinux1_x86_64.whl  SDA依赖包   5、opencv_python-4.1.0.25-cp36-cp36m-manylinux1_x86_64.whl  SDA依赖包   6、s3fd_convert.pth、2DFAN-4.pth.tar  face_alignment训练文件   7、audio-d92de5b97fc6204db4b1e3ed20c03ac06f5d53f0.zip  老版本的torchaudio 常见报错   针对一些常见的报错现象,最后总结一下给大家   1、ModuleNotFoundError: No module named 'setuptools'   需要安装setuptools  sudo apt install python3-setuptools   2、torchaudio/torch_sox.cpp:3:10: fatal error: sox.h: No such file or directory   没有安装sox  sudo apt install sox libsox-dev libsox-fmt-all(需要是Ubuntu操作系统)   3、RuntimeError: Failed to parse the argument list of a type annotation: name 'Optional' is not defined   你可能是最新版torchaudio的受害者(新版torchaudio与torch间有bug),所以你需要的是老版本:sudo pip3 install git+https://github.com/pytorch/audio@d92de5b   4、libSM.so.6: cannot open shared object file: No such file or directory   缺包  sudo apt install libsm6   5、ImportError: libXrender.so.1: cannot open shared object file: No such file or directory   缺包  sudo apt install libxrender1   6、_pickle.UnpicklingError: invalid load key, 'v'.   如果你遇到这报错,最大的可能性是你直接在git上下载源码了吧,不得行的,项目使用了git lfs,所以需要使用lfs下载源码(将项目中的大文件一起下载了)   先装git和git lfs:sudo apt install git、sudo apt install git-lfs、git init、sudogit lfs install   再获取项目源码:git lfs clone https://github.com/DinoMan/speech-driven-animation.git   7、Error: Failed to call git rev-parse --git-dir --show-toplevel: "fatal: not a git repository (or any of theparent directories): .git\n"   git lfs install之前要先执行git init   8、speech-driven-animation测试时没有视频文件输出   va.save_video(vid, aud, "/home/XXX(这里根据实际情况填写)/speech-driven-animation/example/test.mp4") 这里需要填写完整的路径   9、ModuleNotFoundError: No module named 'torchvision'   缺少torchvision包  sudo pip3 install torchvision   10、ModuleNotFoundError: No module named 'torchaudio'   缺少torchaudio包  sudo pip3 install git+https://github.com/pytorch/audio@d92de5b   11、ImportError: libsox.so.2: cannot open shared object file: No such file or directory   没有安装sox,而且你可能正在使用非Ubuntu系统  sudo aptinstall sox libsox-dev libsox-fmt-all(需要是Ubuntu操作系统)   12、ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found    gcc版本低,而且你可能正在使用非Ubuntu系统 。使用Ubuntu就没有这个问题。当然你也可以下载最新的gcc来安装...   13、ImportError: /usr/local/lib/python3.6/site-packages/_torch_sox.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN2at19UndefinedTensorImpl10_singletonE   还是sox的问题,而且你可能正在使用非Ubuntu系统,换用Ubuntu就没这个问题了
相关资源
  • 所需E币: 5
    时间: 2020-5-20 18:16
    大小: 3.32MB
    上传者: samewell
    智能连接:如何将5G,AI,大数据和物联网组合和改变一切.pdf
  • 所需E币: 0
    时间: 2020-5-16 17:01
    大小: 5.73MB
    上传者: samewell
    百度医疗AI白皮书.pdf
  • 所需E币: 5
    时间: 2020-5-16 17:07
    大小: 969.63KB
    上传者: samewell
    悬而未决的AI竞赛——全球企业人工智能发展现状.pdf
  • 所需E币: 5
    时间: 2020-5-16 17:09
    大小: 5.1MB
    上传者: samewell
    中国医学影像AI白皮书.pdf
  • 所需E币: 0
    时间: 2020-5-14 18:12
    大小: 1.67MB
    上传者: Argent
    5G时代开启智慧生活,关于5G技术,你知道多少呢?来吧,通过该资料文档的学习,您将收获5G前沿技术,了解5G核心网络知识。
  • 所需E币: 3
    时间: 2020-5-8 18:19
    大小: 395KB
    上传者: 十次方
    GPU和NNA(神经网络加速器)正在迅速成为AI应用的关键要素。随着不同企业开始挖掘神经网络在各种任务(比如自然语言处理、图片分类)中的潜力,集成人工智能元素的产品数量正在稳步的增长。与此同时,对于这些任务的处理也正在从传统的云端架构转移到设备本身上来,嵌入式芯
  • 所需E币: 2
    时间: 2020-5-7 18:09
    大小: 567KB
    上传者: 十次方
    多年来,半导体行业一直致力于将越来越多的组件紧密的集成到单个片上系统中(SoC)。毕竟这对于庞大的应用而言是非常实用的解决方案。通过优化处理器的定位,存储器和外部设备芯片厂商能够将数据路径调整到最短,从而提高功率效率并取得更高的性能,此外还能够显著的降低成本。通过这些方法,该行业已经取得了巨大的成功,SoC几乎是我们所有消费电子产品的标准组件。
  • 所需E币: 0
    时间: 2020-4-28 17:11
    大小: 558KB
    上传者: 十次方
    在对人工智能(AI)而非提高像素的需求推动下,特别是在由计算机视觉和数据驱动的决策制定方面,GPU(图形处理单元)领域已出现一场革命。神经网络的到来已使视觉处理成为现代世界的关键因素。因此,机器人处理操作、智能监控摄像头以及汽车高级驾驶辅助系统(ADAS)等相关行业都发生了变化
  • 所需E币: 1
    时间: 2020-4-24 17:09
    大小: 17KB
    上传者: 十次方
    在过去的几年中,信息安全一直都是基于防病毒方案、隔离技术和加密技术的组合。政府机构和信息安全公司愿意采用跟踪互联网流量的方法,并根据其签名查找可疑材料。这些技术重点是在出现问题后去检测恶意软件,并去实现良好数据与恶意软件之间的隔离。但是,如果恶意软件未被检测到,它可能会在系统后台中潜伏数月甚至数年,并在以后变得活跃。
  • 所需E币: 2
    时间: 2020-3-25 16:05
    大小: 14KB
    上传者: 十次方
    现代数字革命过程中出现了许多企业技术,一些技术甚至能够改变企业未来,人工智能(AI)就是其中之一。2020年也是企业实现数字化转型的关键一年。人工智能和机器学习的进步正在为企业的技术进步提供助力,实时数据和分析也使得建立更强大的业务成为可能。
  • 所需E币: 0
    时间: 2020-3-20 15:09
    大小: 21KB
    上传者: 十次方
    传统行业AI化是人工智能产业发展的未来,是“冰山的水下部分”,这一观点正在变成现实,也就是在人工智能形成产业以后,迎来了“产业AI化”的发展时期。人工智能正在驱动前所未有的社会变革,人工智能计算作为主要计算形态,正在成为未来的核心动力。
  • 所需E币: 0
    时间: 2020-2-16 16:29
    大小: 123.02KB
    上传者: 十次方
    如今,人工智能早已不是什么新鲜词汇,从癌症的发现,到理解各国人种语言,到无人驾驶汽车,人工智能早已渗透到我们技术、生活的方方面面。现在也有越来越多的DCIM系统与业务系统、IT系统相结合,而人工智能在其中扮演着重要角色。它可以让DCIM系统进行自我优化,让数据中心可以自我优化。AI在整个的IDC管理中都可以得到运用,从BMS系统到动力管理,再到生命周期管理,AI可以帮助我们把搜集到的数据转化为行动或解决办法。可以说IDC与人工智能是能相辅相成的。
  • 所需E币: 3
    时间: 2019-12-19 13:53
    大小: 354.8KB
    上传者: 微风DS
    BTCommand:使用VoiceAI,语音助理的蓝牙耳机。BTCommandTM–Alexa让你蓝牙耳机蓝牙音箱成为行动智能语音助手……
  • 所需E币: 1
    时间: 2019-11-12 08:42
    大小: 1.48MB
    上传者: sense1999
    人工智能作为第四次工业革命的重要抓手之一,已经成为各国科技领域争夺的焦点。中美两国在该领域各有千秋,竞争日趋激烈。国内人工智能政策环境较好,产业基础初步具备,市场需求十分旺盛。按照中央规划,未来人工智能核心产业、“AI+”(AI与传统产业融合)均是战略发展重点。我们预计,到2020年我国人工智能核心产业市场规模将超过1600亿元,带动相关产业市场规模将超过万亿元。    
  • 所需E币: 3
    时间: 2019-10-26 15:49
    大小: 781.27KB
    上传者: Kayla
    Zion:FacebookNextGenerationLargeMemoryTrainingPlatformZion平台作为AI训练系统,主要分为8插槽服务器、8加速器平台和OCP加速器模块三个主要部分。同时,它采用了Facebook的OAM模块(OCPAcceleratorModule),在设计上还能够处理一系列神经网络,包括CNN、LSTM和SparseNN等。Conclusions•ZionisFBnextgenerationflexibletrainingplatform•Co-designedtotargetdemandingrecommendationmodels•Adoptsnewvendor-agnosticOCPacceleratormodule•Buildingblockthatcanscaleouttoabiggersystem
广告