当前位置:首页 > 产品中心

AI 产品经理的 7 堂必修课:必备的 AI 基础知识

发布时间: 2021-09-28 07:27:07  来源:火狐平台开户 

  导语:随着 AI 产品近年在市场上的热门,AI 产品经理也变得抢手了。然而入门 AI 产品经理除了基本的技能外,还必须具备基础的 AI 知识。本篇文章,作者将向我们分享基础的 AI 知识,助你入门了解 AI 行业。

  这些年大家都常常听到人工智能有三大马车,即:数据、算法和算力,其实这个是拆解任何一个人工智能项目或者是问题非常有效的方法,大家务必记住这三个要素,缺一不可,我们后面的实战章节会拿来反复进行验证使用。我们接下来就从基础理论看看这三大要素的组成。

  数据:任何 AI 模型训练都需要数据,AI 深度学习模型不可能无中生有。包括我们人类的高等智能学习也需要有输入,才能进行输出,因此数据就是 AI 模型的重中之重。

  其中训练集占全部数据集的绝大部分,数量从万级到千万级甚至更多,且对于算法模型来说,一定是数据越多算法模型越好,即可以理解为算法跟人一样 见多识广 ,见的数据多了自然模型更加鲁棒和强大。

  验证集主要用来调整模型参数从而选择最优模型,验证集可以理解成我们学习时候的教参书,用来验证我们是否对于所学习知识已经掌握;但是最终用来评价模型的好坏是测试集,这部分数据对于模型一定之前是 保密的 ,可以理解对于模型要进行一次 考试 。

  考试范围包含之前训练集的 知识点 ,看看那其中训练集:验证集:测试集 =6:2:2;验证集并不是必须的,因此训练集与测试集的比例一般为 8:2。

  人工智能的快速发展与其开源的氛围密不可分,很多大型的组织和机构都愿意把其最新的研究结果的数据开源,供其他人共同研究、推进学术进步。

  比如海外的 google dataset search、kaggle、data.gov(美国政府)、各种国内外的比赛赛事主办方会开源数据集、包括有一些专业的公司做公开数据集的聚合业务。

  对于自建数据集,分为两部分:一是可以通过互联网进行爬取,另一方面可以进行自行采集,除了组织周围同事进行小规模数据采集、通过已有产品埋点回流数据,也可以通过找专业公司组织大规模的采集。

  构建自建数据集,需要产品经理与算法同学一同构建数据集的规格 specification,即通过分析拆解目标任务,对数据集的构成进行 MECE(互相独立、完全穷尽)的拆解,为了更好的拆解,建议大家可以通过构建思维导图的方式来创建。如图 1:

  构建完成数据集要求后,可以进行数据集的试采,通过试采一个完整的被试者,来预估采集项目的完整周期,如果时间远远超于预期时间,是否可以考虑简化数据集的标准、多采集设备并行又或是减少采集人数规模、将数据采集项目分成两期。

  由于对于深度学习需要结构化的数据进行训练,因此我们采集完的数据还要同步进行标注。数据标签种类众多,比如分类、拉框、注释、标记(画点)等等。标注之后的结构化数据输入深度学习模型之中才可以进行训练。

  很多同学可能觉得这样的操作前期成本太高了,是否可以不标注就进行训练呢?比如最近大火的自监督学习,自监督学习的核心,在于如何自动为数据产生标签。例如输入一张图片,把图片随机旋转一个角度,然后把旋转后的图片作为输入,随机旋转的角度作为标签。

  再例如,把输入的图片均匀分割成 3*3 的格子,每个格子里面的内容作为一个 patch,随机打乱 patch 的排列顺序,然后用打乱顺序的 patch 作为输入,正确的排列顺序作为 label。类似这种自动产生的标注,完全无需人工参与。

  但是目前大部分任务,还是需要人类标注(label)大量数据之后再送给机器进行学习。所以之前很多人提到人工智能中都是 人工 这种说法还是十分正确的。

  但其实现在很多互联网数据产生的过程中就自带了标签,比如说近些年很火的图片社交网站 Instagram,用户上传图片、视频的同时会增加很多 #,# 美食 # 聚餐 # 海滩等等,这些其实就是用户自己手动为图片或者视频打标签的过程,省去了统一再打一次标签的过程,Instagram 的后台模型就可以利用每天用户上传分享的海量数据对图片、场景进行分类、检测、识别,甚至模型可以理解这张图片代表了什么,看图说话。

  反之亦然,可以根据用户的一句话组织相应的素材,一句话成片,图文成片等。这里便是利用了众包的思想,其实除了社交媒体之外,平常大家登陆网站输入验证码的时候会让大家选择下面哪张图片包含 自行车 ?其实也是一个人工标签不断帮助模型训练的过程。类似的思路大家可以借鉴并融入到自己产品的设计中。

  而深度学习是实现机器学习的技术,即人工智能>

  机器学习>

  深度学习,最初的深度学习是利用深度神经网络来解决特征表达的一种学习过程。

  深度神经网络本身并不是一个全新的概念,可大致理解为包含多个隐含层的神经网络结构。为了提高深层神经网络的训练效果,人们对神经元的连接方法和激活函数等方面做出相应的调整。

  目标识别:物体识别是得到一个原始的图像,任务是给出目标位置和识别物体属于哪个类,另外还有人脸识别,行为识别等;

  图像分割:图像分割是一项复杂的任务,目标是将每个像素映射到它的合法类,例如语义分割、实例分割。

  RNN 适合应用跟序列有关系的任务,比如时间序列,预测股票行情,比如文本序列,其衍生的诸多变体在自然语言处理领域应用广泛,其中 LSTM 更是在 NLP 领域鼎鼎大名。

  CNN 的 C 代表卷积,是一种很好对目标图像降维的数学运算,主要用于提取特征,因此很多图像分类任务应用较多。

  DNN 会在搜索中进行应用,可以对于转化率进行预估,这个数据是互联网产品应用频率最高的一个指标,且其转化率预估对应的输入特征包含各个不同域的特征。

  如用户域,宝贝域,query 域等,各种特征的维度都能高达千万,甚至上亿级别,如何在模型中处理超高维度的特征,成为了一个亟待解决的问题,如何考虑多维高阶信息的同时兼顾计算量和效率,DNN 是一个非常合适的方法。

  深度神经网络通过构造稀疏 id 特征的稠密向量表示,使得模型能有更好的泛化性,同时,为了让模型能更好的拟合大促期间商品特征数据的剧烈变化,在深度网络的最后一层增加商品 id 类特征,id 组合特征和实时的统计量特征,使得整个网络同时兼顾泛化性和实时性的特点。

  无监督学习我们提一下最近非常火的 GAN(生成对抗网络),通过无监督学习同时训练两个模型,其内在的原理可以化身为西方的博弈论或者是东方的道家思想,我还记得我上信息对抗的第一节课老教授就讲了《道德经》中的 反者道之动,弱者道之用 ,这其中的内涵读者可以细品。

  判别式网络用于判断生成网络中得到的图片是否是真的是训练数据还是伪装的数据。生成网络一般有逆卷积层 ( deconvolutional layer ) 而判别网络一般就是上文介绍的 CNN。

  深度学习算法根据模型的大小以及最后实际应用的场景会选择部署在端侧还是云侧又或是端云结合的方案。

  随着智能手机不断的发展,现在端侧的算力也不断提升,比如最新的高通骁龙 888 处理器,算力可以达到 26TOPS,TOPS 是算力的单位,即每秒钟进行 1T(10 的 12 次方)次操作。

  而大家还有印象的是几年前的英伟达显卡还是 2000G 算力,换算一下只是 2TOPS 左右,因此可以看到摩尔定律发展下的半导体制程的进步直接影响着深度学习的算力进步。

  比如说自动驾驶,特斯拉的每台汽车搭载一个超算中心,具备 144TOPS 的算力,可以实时处理运算各种复杂的路面情况,道路标识,检测人物和各种车辆,这些是机器视觉的算法都依赖于强大的算力予以支持。

  综上,我们可知,端侧的算力具备实时性好、安全性好(离线),但是很大程度上依赖于半导体处理的制程以及能效的利用。

  比如说移动端设备手机上就不太可能配备一台算力巨大的超算中心,最核心的一方面就是就是电量有限,算力越高相应的能耗也越高,再一点越大的能耗对应了着需要配备更大体积的电池和运算单元,无论如何这对于人们日常随身携带的物品设定来讲都不是十分合适;

  因此人们就把这个算力单元放到了车上,尤其是新能源电车,有充沛的电力、足够的空间、车身配备很多传感器,平常可以一边采集数据,一边输入算力单元进行快速计算,同时还有一位经验丰富的 人类老司机 进行教学。

  平时我们开车的行为:打方向盘、踩刹车、加速、变道,下雨天怎么驾驶、夜间、雪天、雾霾天如何驾驶等等都是对于深度学习模型进行一次次人为 标注 监督训练的过程,如此往复,车这个 智能体 就会不断的迭代演进,直到可以替代人,完成自动驾驶。

  而以上就是特斯拉 AI 高级总监 Andrej Kaparthy 在 2019 年的特斯拉发布会上提到影子模式 (shadow mode),了解这背后原理的我当时不禁感叹特斯拉将机器视觉和深度学习的能力发挥到极致,在商业模式上也十分巧妙,将数据、算力和算法在一台车上就形成了闭环,关键是这个车还能进化,越开越 聪明 。

  沿着这个思路想下去,如果说未来手机的算力和电力已经到天花板(因为重量一般在 200g 左右,屏幕尺寸 6-7 寸左右,算力上限和能耗上限可知),而车才是离我们最近的算力单元,那么未来真正了解你的是车,他可以存储你日常行为的数据,具备强大的算力可以不断优化模型,手机最后是否只是沦为一个车中心的延展传感器,离你最近的那个。

  这就很好解释为什么苹果以及国内的华为等手机大厂都选择纷纷躬身入局,卷入 造车运动 。未来,如果不是特斯拉收编了手机,就是手机厂商颠覆了特斯拉,这么讲的话,我更看好前者。

  讲完端侧的算力,我们在看下云端的算力。云端一般指大型的服务器及其集群,也就是我们平常讲的 机房 。基于上文提到的体积和能效,云端是完全没有这方面限制的,甚至可以理解成理论上算力无上限的算力平台,只要机器够多。云端常用来进行模型的训练,而端测用来模型的部署与推理。

  当然,云端也可以进行模型部署和推理,比如一些对于算力要求比较高的算法就会跑到云端,比如大家常用的语音助手,需要在联网状态下使用。云端优势是算力强大、方便部署迭代,可以做到训推一体,对于产品化来讲非常的便捷无缝衔接,非常适合于互联网的 快速迭代 模式。

  且这个本质上就是一个暴力美学的过程,通过量变来引发质变,比如近年来广受讨论的 GPT-3,他是一个具备 1750 亿个参数的自然语言模型,该模型经过了 45TB 的数据进行预训练,并且在不进行微调的情况下,可以在多个 NLP 基准上达到最先进的性能,训练这个模型需要 355 个 GPU 年,耗费成本在百万 - 千万级别美金。

  神经网络之父 Geoffrey Hinton 在 GPT-3 出现后,曾这样感慨: 生命、宇宙和万物的答案,其实只是 4.398 万亿个参数而已。

  讲完云端模型,现在市面上还广泛存在一种端云结合的部署方式,即取各家之所长,在端侧模型进行预处理,再把复杂的任务需要大量运算的部分传到云端,在云端计算完毕之后再返回到端侧。

  这种方式,有效的解决了信息隐私问题,因为上传到云端的数据可以是经过特征提取之后的数据对于人类来讲并没有任何意义但是对于机器来讲可以进行后续的计算。同时,也解决了云端模型不断迭代而端侧推理部分迭代较慢的不均衡问题。

  泛化能力是指机器学习算法对新鲜样本的适应能力,简而言之是在原有的数据集上添加新的数据集,通过训练输出一个合理的结果。学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。

  在机器学习中,模型的典型产出过程是由机器学习算法在训练集上进行训练,希望得到的模型能够在训练过程中不可见的验证集上表现良好。而当引入相较数据集而言过多的参数时,或使用相较据集而言过于复杂的模型时,则就出现了过拟合现象,违反了奥卡姆剃刀原则。

  过拟合造成的一个恶果就包含上述所说的泛化能力较差。其反义词是欠拟合(主要原因是数据量较少)。

  鲁棒性亦称健壮性、稳健性、强健性,是系统的健壮性,它是在异常和危险情况下系统生存的关键,是指系统在一定 ( 结构、大小 ) 的参数摄动下,维持某些性能的特性。

  主干网络,用来做特征提取的网络,代表网络的一部分,一般是用于前端提取图片信息,生成特征图 feature map, 供后面的网络使用。

  时期,一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一个 / 次 epoch。即,所有训练样本在神经网络中都进行了一次正向传播 FP(forward propagation)和一次反向传播 BP(back propagation) 。简而言之,一个 epoch 就是将所有训练样本训练一次的过程。

  batch size 大小是一个超参数,用于定义在更新内部模型参数之前要处理的训练数据集样本量。训练数据集可以分为一个或多个 Batch(组)。