七月在线公开课笔记-三十一-

七月在线公开课笔记(三十一)

人工智能—计算广告公开课(七月在线出品) - P9:计算广告及搜索广告入门 - 七月在线-julyedu - BV1SA411H7Se

那我们就开始今天的公开课。现在可以开始了。好,大家好,今天给大家简单介绍一下计算广告相关的内容,主要是介绍一下广告算法工程师所需要的技能。然后我是一呃现在是在BAT的某家公司做那个广告算法。

我的名字叫邓凯,大家可以叫我邓凯。然后主要是分成3块内容向大家介绍一下。第一块是认识一下什么样的广告是互联网广告。另外一个是对互联网广告中的拍卖机制和竞价排序的相关内容。

最后一个是对计算广告中涉及到的计算机忆学习和深度学习的相关的技能做一个简单的介绍。首先。咱们先看一下什么是互联网广告,在PC的。门户网站时代。比如说雅虎、搜狐、新浪、网易这些门户网站上面有很多班的广告。

比如说截图里面的这个新浪网和网易。会有一些大的banner。这种广告呢一般是在PC的门户网站时代去售卖媒媒体资源和之前的电视广告和。和呃报纸上的广告比较相似。然后后来是PC的搜索引擎时代的广告。

比如说谷歌、百度是通过售卖关键词。比如说搜索酒店的时候,可能会出呃酒店相关的一些广告。然后可能有很多广告主通过竞价排名的机制来获取广告的展现。然后在移动的互联网时代呢。又又分成好几种。

比如说移动的社交广告,在朋友圈QQ空间中,我们经常会看到一些呃。广告广告的推广。然后在今日头条、抖音这方面也可以看到。一些移动媒体类型的广告,然后在淘宝、京东上面也会有一些。商品类的宝宝贝的一些推广。

好,那么为什么互联网公司这么热衷于广告呢?原因很简单,因为赚钱。比如说谷歌的母公司alphabet,它的营收营业收入中大概84%的钱都是来自于广告收入。然后百度的收入中。

大概有82%的钱是来自于广告收入。所以说这也是为什么作为一个广告算法工程师呃,对于一个应届生来说,刚开始都可能达到年薪30到50万。这也是一个广告算法工程师的一个价值的体现。然后另外我们看一下。

就是说互联网广告的商业模式主要有几种。比如说呃CPMCPM呢是什么意思呢?就是说按签字展现收费。就是展示广告给一次,给到用户看到一次广告就会扣费。CBC呢是按照点击。

点击收费是目前的一种比较流行的一种广告付费方式。只有当用户发生了点击。你的推广链接的行为之后才会发生扣费。CPA呢是按照行动成本来来扣费。CPA是一种按照广告投放的实际效果计费方式的广告。

即按照有效的注册激活来进行计费,而不限制广告的投放量。这是三种主要的。出价广告出价和计费的方式。后面我们会针对这三种再做一个展开。互联网广告呢怎么去卖这些资源外卖给谁?然后采用的是一种拍卖的手候法。

比如说常见的一种拍卖方式,荷兰式拍卖公开荷兰式拍卖是这样一种形式,就是呃电视上面经常见的那种拍卖。每个人每个参与人去。呃,依次加价,直到没有人再次加价的时候,这次拍卖的地位就达成。

而荷兰氏拍卖呢是一种公开减价的拍卖。他是在在拍卖的时候会主持人会设一个比较高的一个价格起始点,然后依次去去降低它的拍卖价格。直到有人愿意以这个价格付费的时候,这个拍卖的 deal由达成。

然后下面是第一价格密蜂拍卖和第二价格密蜂拍卖。首先什么是密蜂拍卖?密蜂拍卖是每个参与人不知道互相之间的出价。比如说招投标的时候,招投标的时候就是一种呃密蜂拍卖。

每个每不知道每一个投标人的出价是什么样的情况。然后第一价格的密蜂拍卖是说。中标的人就是出价最高的人。同时它的结算的价格就是它的自己的出价,而第二价格密蜂拍卖。是说。胜出的人是出价最高的人。

按说结算的时候是按照出价第二高的人的价格去结算。这是互联网广告中普遍采用的一种。出价和结算的拍卖形式就是第二价格密封拍卖。下面我们看一个博弈均衡的一个一个小小智力体。

比如说现在假设猪圈里面有一头大猪和一头小猪。猪圈的一头有猪食槽,另一头安装着控制猪食公用的按钮,按一下按钮会有10个单位的猪食进槽。但是谁按按钮就会首先付出两个单位的成本。比如说大猪先按先走到槽边。

大小猪如果是大猪先走到桥边,意思就是小猪去按了那个按钮。这时候大小猪吃到的食物的比例是9比1。如果同时走到草边,收益的比例是7比3。小猪如果先走到草边,收益比例是6比4。如果这个小猪是有一个。

智慧的是一个有智慧的,而且是一个理智的小猪。这时候他会做一个什么样的选择呢?在这种博弈下面的一个均衡的条件是什么?大家可以简单思考一下。好,这时候。我们去看一下每个小猪的一个收益情况。从比如说这时候呃。

如果是大珠去按了按钮,大猪的收益将是。6个收益减去两个单位的成本是4,而小猪的收益也是直接是4。如果同时按的话,大猪的收益是7减2七是它的收益,二是它的成本。然后它最终收益是5。

而小猪的收益也是需要付出两个单位的,是它的成本。然后它最终收益是5,而小猪的收益也是需要付出两个单位的。可以。那么为什么选择呃为什么互联网广告中使用我们之前提到的第二价格密封拍卖呢?也就是GSP的形式。

然后首先我们考虑一下第一价格拍卖。第一价格格拍卖假设P这个变量代表某个广告主的出价。V代表该广告主对这个广告的认可的价值。P2代表其余广告主的最高价。当P大于P2。

也就是该广告主的出价高于其他所有广告主的出价的时候,广告主的收益就是他自己认为的认可的那个价值,减去他自己的出价,这是第一价格拍卖。然后如果是。P小于等于P2的时候,它的收它的收益就是。

他他就是没有竞得这个广告,他的收益就是0。所以说在这种。机制的设计下面,广告主有不断调整降低出价的动力。广告主,而且广告主关心其他人的出价,原因是他的收益是微减P。当他不断调整P的不断去降低P的时候。

他自己的收益是越来越高的。大家可以考虑思考一下这个关系,这是第一价格拍卖。就是当自当他的出价是胜出了这个广告,它的结算就是他自己的出价的时候。他就有动力去不断降低自己的出价。

从而使自己的付出的成本越来越低。这时候会造成一个状况,就是说整个的拍卖系统都是不稳定的,每个广告主都在不断的调整自己的出价。这时候我们看。第二价格拍卖,同样P还是某个广告主的出价。

无非是这个广告主对广告资源位的一个认可的价值。P2是其余广告主的最高价。在这种条件下,我们看下面这个表。这个纵坐标是P2和V的一个关系,就是其域广告主的出价和该广告主的心理价位的一个关系。

横横坐标里面呢是横坐标里面就这一块。这一块是。是该广告主可以可以采用的策略。比如说他采用的策略是。它的出价是小于自己的心理价位。就是P小于V。当自己当它的出价等于自己的心理价位的时候,就P等于V。

当它的出价大于心理价位的时候,就P大于V。当其他广告主的出价都小于该广告主的认可价值,就是V的时候,有两种情况。当当P当自己的出价小于自己的认可价值,比如说P小于V的时候,有两种情况。当这个P甚至更小。

就是这个广告主就非常吝啬,他出的价格就非常低,甚至少于了其余广告主的出价。这时候会导致进价失败,进价失败,它的收益就是零,就什么也没得到,也没有出现广告,就这次就完全没有没有广告展现,所以说它收益是0。

另外一种情况是,它出的价格虽然很低,低于自己的认可价值,但是呢还是高于还是高于P2,就是其余广告主的出价的时候,这时候它的广告会得到展现,它的收益就是V减P2,因为是二价。所以说V是它自己的认可的价值。

P2是。第二高价,所以说它的收益是微减P2。然后再然后这是一种情况,当这个广告主采取是P等于V,就是说直接出自己的认可价值的。出价的时候,他这时候他的。它的出价是可以竞得这个广告的首权。

因为是P2小于小于P2小于等于V嘛。这时候。V它的收益也就是说广广告得到的展现,然后同时以PR的价格去结算,它的收益就是微减PR。然后然后当这个广告主非常慷慨,他出的价格高于自己的任何价值的时候。

他的收益呢同样是。按照P2去扣费,因为是二价扣费。就是不管广告主的出价有多高,始终是按照其他广告主的一个最高价去结算,它的收益还是不变的。另外一种情况就是说其他广告主的出价高于了该广告主的认可价值。

这时候其实是呃对于这广告主来说,他的最好的策略其实是就是说我放弃这个这次广告展现。因为它已经超出了我的认可价值。这时候同样我们分成三种情况去考虑。他自己的出价,比如说自己的出价小于自己的认可价值的时候。

这时候的是得不到广告展现的。这时候呃收益就是0。当他同样是按照自己的认可价值去出价的时候,收益也是0,这时候也是没有得到广告展现竞价失败。然后当他如果是强行把自己的出价高于了自己的认可价值。同时。

同时也就是否则这一块,同时它的它的出价高于了其他广告主的最高价。这时候它其实是一个亏本的状态的,它就是一个高于自己的认可价值的时候赢得了广告产现,这是其实是不划算的。所以说综合这三种广告主的策略来看。

比如说。每每一列每一列都相对于左右两列都是一个呃较优的选择,就是说它不会比两边的差。比如说。比如说PP等于V的时候,V减P2是U于这边的零或者V减P2,同时和右边的V减P2相相等。当当。这第二行的时候。

当这个其他广告主的售价比较高的时候。它的它的收益是0,然后和左边的收益零和右边的比左边的收益零的呃策略要优,比右边的收益零或者小于零的策略也要优。所以说综合来看。在第二价格密封拍卖中。

广告主的对于一个广告主,他的最优策略都是出价等于V,就是他自己的认可价值。也就是这这也就是城市出价。广告主没有必要去不断的调整降低出价来获得收益,他也不会获得收益。而所以他也不再去关心其他人的出价。

这时候竞价系统也比较稳定。我看一下有没有。什么问题啊?这是这是为什么宣算广告中通常选择第二价格密封拍卖来作为拍卖机制。然后在广告主在互联网广告中,通常有很多个这样的候选广告主。

然后他们之间的广告到底展现谁呢?这时候是按照一种竞价排序的机制。进价排序也就是。呃,有很多种形式。之前我们也提到有CPMCPC和CPA的出价。他们在一起相互竞价的这种形式叫做混合竞价。

比如说在CPM的时候。它的ECPMECPM就是我们把每一种出价都折算到同一种同一个维度去比较。ECPM就是签字展现的一个呃预估成本。然后当CPM出价的时候。

ECPM就等于CPMCPM就是签字展现的一个出价。展一个广告展现1000字,他愿意付出多少多多少的价格。这时候它的ECPM就直接等于ECCPM。当CPC出价的时候,CPC就是按点击付费。

就是当广告发生了点击行为的时候,才会才会扣费。这时候ECPM就等于。他的点击的成本乘以它的预估的点击率还乘以1000。然后这时候就有一个就有一个变量,这个PCTRPCTR就是预估点击率。

就是说系统会预估这一条广告在展现的时候会有多大的概率被点击,被用户点击。当他的成本。当它的点击成本乘以点击概率,再乘以1000,就是说它在1000次展现中有多少次点发生了点击。

然后每一次点击的成本是多少,相乘之后就得到了CPC出甲箱里面的1个ECPM。然后CPA出价呢,CPA就是按照转化去出价。

ECPM就等于CPA乘以。

好,现在应该是可以了,我们继续。

就是说CP出价出价的情况下。广告主广告主会设一个转化,他为每一次转化所愿意付出的花的钱,诚意他在这1000次展现中有可能发生的点击的次数。从而得到这一从而折算成这1000次展现所能得到的一个总花费。

就是ECPM。从这三种出价方式都可以折算到一种ECPM上进行排名。比如说这里举个例子。某个汽车广告主,他的汽车广告主因为一般喜欢做品牌广告,品牌广告他追求的是曝光是广告的曝光。

然后有一个广告主餐饮广告主,他是可能是家饭店,他可能会通过呃网上的APP发一些优惠券。他的目标呢是希望用户的点击就是领点击或者领取优惠券。然后对于有些手游的广告,比如说我们经常看到一些手游的一些广告。

呃,他们的目标呢是获得这个游戏的下载,游戏APP的下载和激活。这这三个广告主同时去敬德去参订一个广告资源的时候,他们会采取不同的出价方式。比如说汽车广告主他的目标是曝光。

这时候他会可能会选择CPM的出价方式,就是按展示扣费。然后餐与广告主B呢,他可能是目标是呃点击这时候他按照CBC点击的出价方式去出价。然后对于手游广告主呢,他的目标是获得APP的下载和激活。

这时候他的出价方式可能会选择CPA按转化去出价。对于广告主A呢,他为千每千次展现付出40块钱的一个出价。对于广告主B,他为一次的点击付出1块钱,就只要发生了一次点击,他愿意付出1块钱的一个出价。

然后对于广告主C呢,他是当发生了一次下载激活。当有一个用户发生下通过这个广告下载了一个游戏,并且把这个游戏打开激活。这时候他的愿意付出的价格是10块钱。通过折算到ECPM,我们通过点击率和转化率的预估。

呃,比如说对于广告主B,它的PCTR就是呃广告主B的B的广告的点击率,可能是预估的这条广告的点击率可能是6%,就是说它有6%的概率发生点击行为。这时候我们通过刚才那个公式。

可能这边的CPC乘以PCTR乘以1000的公式。折算到它的ECPM是60块钱。然后对于手游广告主来说,他的他的PCTR就点击率可能是10%,但是它的转化率只有5%。

这时候把他们同样按照CPC出价的方式去计算出来,它的ECPM连乘下来可能是50块钱。然后对于广告主A呢,它的ECPM就是他自己的本身的出价就是40块钱。这时候这三三广主在参竞同一条广告流量的时候。

由于广告主B的出价是60,ECPM出价是60,所以说广告主B胜出。但是呢扣费是扣的是二甲,就是第二最高价,就是广告主C的出价是50,可能就是对于一条一条展线来说,可能就是千次展现是50块钱。

对于一条展线可能就是0。05。这样是一个呃各个广告在一起混合竞价的这样一种情况。其实大家可以看到,在这个过程中,我们主要用了两两个变量,一个是PCDR。

一个是PCVR对于CTR当一当一个广告还没有发生展示的时候,去预估它的点击率。去预估它的转化率,这是一个比较呃关键在广告广告排排序中比较关键的一个算法的一个步骤。

所以说这里我们先看一个呃广告界的一个歌德巴赫猜想。就是说广告主有一半的钱发生了。浪费。但是现在问题就是我不知道是哪一半的钱是浪费掉了。嗯,这也是各位广告主的一个痛点吧。然后我们算法我们做算法的工程师呢。

可能就是尽量去帮助他们解决这个痛点。在一个广告的我们看一个广告的播放流程,对于一个用户进来,可能有一个用户的画像,然后同时去召回广告,对召回的广告进行一个呃竞价排序,然后再对排序胜出的广告进行广告展现。

同时去转化跟踪它的转化情况。这里面涉及到的系统的难点,就包括比如说复杂的定向规则,不同的类型的定价,以及同类型下定向条件的不同定向规则进行实时的一个组合。后面我们会展开看这一块。

然后同样有海量的用户数据,对于像BAT这种公司来说,他们可能有百万级别的广告,可能有11级别的用户,千亿级别的关系链。数据是非常庞大的。同时是请求量也是非常多的。

高并是时候就需要我们提供一个高并发的在线广告的播放。播放请求的一个系统。同时,延迟的要求非常低。比如说我们平时我们使用百度或者使用。其他的呃朋友圈的时候,它的它的延迟要求非常低。

后台的整个处理流程通常是需要控制10毫秒级别。然后在这过程中呢,涉及到的技术广告算法的基入点,主要就是包括这么几块。呃,第一块就是我们之前提到的在呃竞价排名的时候。

我们需要去预估某一条广告的点击率和预估它的转化率。然后在这个预估这个点击率预估过程呢,就是一个典型的一个继续学习的呃分类任务。二分类任务就是预估在这样一个场景,这样一个广告。

这样一个媒体和这样一个用户的这样一个呃条件下,会不会发生点击行为的一个二分类问题。他所使用的特征呢,就包括当时的。呃,广告展现的场景在何时何地使看到的这个广告使用的含有什么样的设备。

什么使用什么样的浏览器等等。同时还有一些广告本身的特征,比如说创意类型和一些定向的一些规则。同时还有一些媒体类的特征。比如说你是APP广告位是在哪里?这些特征。嗯,还有一些用户特征,包括对用户的画像。

用户的历史的浏览行为。啊,通过这些特征的一些交叉组合,我们在使用一些基础模型。比如说LR逻辑回归模型,或者使用一些呃更更复杂的一些模型。GBDT呃一些数模型。

就是GBDT像MLRWDRDNDINDIEN这种神经网络的呃神经网络的模型都可以。比如说这里列出了一个例子。

就是谷歌他们之前发了一篇文章是讲那个 deep model就是左边有一个比较宽的一个呃model是Y的mod,它会学习一些呃dance的一些feature。然后右边呢是一些dep model。

它可能经过两层的一个全连接。这样的它会它会主要是针对一些spa的 featureature。然后这里呢我们就不针对这些模型进行一个展开了。这次本次呢就是一个呃概述,就一难而过了。

然后这一块呢就是一个呃比较经典的一个经济学习任务。所以说呃算法工程师的它的它的能力的体现就主要是在在广告中中体现,可能是在点击率预估是一个方面。嗯。这一块点击率预估这一块做的好呢。

比如说在那个一些说一个额外的一些例子啊,比如说这个点击率预估,可能你提高个一个百分点。在BT这种公司里面,可能呃能够直接带来一天上百万的消耗。所以说呃各个公司为什么这么重视这个点击率预估这一块的工作。

也是这么一个原因。嗯,另外呢广告中还会涉及到自然源处理的相关的东西。比如说在搜索广告中,可能会涉及到一些query的改写。query的,比如说query改写像就是什么呢?

就是比就是你搜搜一些各种关键词的时候,它可能呃都会都会映射到同一个改写后的词上面,从而能更方便的召回广告。然后还有一些呃query的分析和召回,query和item的这种inbedding的方式。

还有语义的一些相关性。还有一些在创意方面,在广告创意方面会涉及到一些呃自动标题的生成,自动文本摘要的一些生成的一些工作。然后现在右边呢就是。现在业界嗯最新最火热的一些自然源源处理的技术嘛,就是bt。

bot的话它是。可以听到吗?现在可以听到吗?😊,好了好,那我们继续。不好意思啊,今天的网络情况可能有点不太好。就是说前面我们是看了那个点击预估这个经典的机忆学习二分类问题。

然后这里我们看一下自然源处理的相关的内容。然后同时呢在计算广告中也会涉及到一些。图像处理的一些内容。比如说图像分类。比如说我们图像生成和智能创意和图像inbedding。

然后这一块呢主要是用在呃一个是创意相关的内容。就是说广告的创意。对于广告主来说,特别是一些中小型的广告主,他可能没有那么多的成本去请4A公司去做一些很很fancy的一些创意出来。

这时候需要我们系统平台去提供一种简简单的创意的制作方式。就比如说谷歌他们一直在提取自动自动的网页抓取。就比如说你现要推广一个网页的话,他可以可能去直接抓取你网页里面的文本内容和一些图像的内容。

这时候就要求我们去判断什么样的图片,是有利于点击的,同时是蛮是符合广告法的。然后同样的内容的话,我们需要从。网站的呃文章里面去自动的抓取到呃更简练的符合广告的标准的一些标题和我美专要的内容。

同时呢对于图像这一块的话呃。因为图像本身其实是一个非常影响用户的点击行为的一个呃元素。呃,我们可以通过对图像提取它的特征的方式。

就图像inbidding的方式去作为意维特征加入到刚才我们提到的点击预估里面。作为点击率的一维一维特征,这时候可能会改善那个点击率预估的一个结果。

然后这一块呢有可能就使用到比如说ressonnetVGG这种传统的图像分类的一些模型。然后同时呢对于ressonnet来说,它本身也是可以去做呃图像em的提取的。

就比如说我们把最后一层的一个全链接的分类给去掉之后,最后一层的输出,其实是就是一种呃可能1024维的一个图像的embedding。然后从这可以看到,就是说在计算广告这一个大的呃任务下面。

其实是有很多算法的优化点的。我们。另外呢还有一些在广计算广告中呃,与一般的技忆学习或深度学习任务比较呃有区别的一些一些技术点。比如说在机制设计方面,机制设计的方面。

我们就比如说我们刚才提到的二价拍卖里面嗯,如何去优化每个广告主的出价。因为广告主自身可能也不是很清楚自己的目标价位是什么,如何去呃根据目标,根据广告主自身的出价去做一个智能的调价。

是是一个机器设计需要关心的内容。比如说头条呃今日头条,像百度,像呃腾讯阿里都做了一些OCPM和OCBC的工作,就是说就是说考虑考虑目标的一个广告目标和用户的一个转换的价值,去智能的调高或者调低出价。

这时候可能会带来一个呃在广告主接受的情况下更优的一个结果,同时提高呃平台系统的一个收益。然后同时呢广告的售卖也不都是呃。RTB就是实时竞价的一种形式。

也有一种呃也有对于大广告主可能会呃用合约广告就签了个合同,告诉他呃,一天给你展现多少个量这种形式去售卖。在这种时这种方式下售卖的广告呃,如何去做python。

就是说呃在时间段上去在什么时间段投放多少量的广告。这是也是一个算法可以优化的点。同时呢对于广告主的出价行为来说,其实是一个呃增强学习的可以用增强学习去模拟这样一个过程。

从而来提高呃每个广告主敬得自己想要目想要广告的一个可能性。啊,这一块呢是计算广告比较独特的一个地方,需要机机制设计。这一块。然后另外呢,现在的广告中越越现在的呃计算广告越来越强调一个精准定向的能力。

就是说我可以允许广告主去圈定一部分人人群。对于人群的圈定来说,可以使用一些呃基础的属性去定向。比如说呃年龄、性别呃呃省份,他的他的家乡是哪里?这种基术水性去做定向。然后另外呢。

就是说我们作为算法公程师可以去提供的一些人人群的根据人群的一个一些历史的行为。比如说淘宝里面可能会根据它的历史的一些购物浏览、收藏、加购一些行为去发现它的商业兴趣,从而做一些更精准的一些定向。

同时可以可以根据。客户广这个用户的消费能力做定向。然后另外呢在一些社交广告,比如说腾讯的呃朋友圈广告或者呃QQ空间的广告里面可能会。对于人相似人群的要求可能更高一些。呃,比如说呃因为因为人群是有圈子的。

比如说呃你对一个广告呃可能是一个一款汽车的推广比较感兴趣。很可能你所生活的圈子里面的人。也同样具有相相同的消费能力,同时对这一块广告也比较感兴趣,更容易发生点击和转化。

然后这里又涉及到一个如何去圈定相似人群looklike的一个计算过程。通常他们使用的都是一种graphra emdding的方式,就是一种图计算的方式。

比如说右边呢这个网络结构就是一个呃graphra embedding的方法SDNE的一个一种方法。然后这里我们就也这次我们也先不展开了。然后之然后之前我们现在就提到了。

比如说一些经典的经典的点击预估的二分类问题,包括自然源处理的呃NLP的相关的呃算法算法技术,然后包括一些图像相关的算法技术,包括一些呃。机制设计相关的。算法技术,这可能涉及到一些增强学习的相关内容。

然后同时包括人群定向人群的一些呃looklike的一些发现。这些操作呢都是对是对于算对于一个计算广告的算法工程师来说呃可以具有的能力。但是不要求说每一项能力都具备,只要有一项比较擅长就可以了。

比如说我就是点击率预估做的特别好,这时候你就可以去呃应聘各个公司的一个点击率预估的相关的一个算法工程师。然后比如说你LLP相关的,可能原来做什么对话系统,呃,做一些呃我们理解的相关的工作的。

也可以去应聘计算广告中,特别是搜索广告,因为搜索都是用用query去用关键词去搜索的,也可以去应聘搜索广告相关的一些呃职位。然后对于图像处理,可能你原来比较擅长呃图像分类或者图像人脸检测。

这这部分内容可以去也同样可以去应聘计算广告计算广告相关的算法职位。包括一些呃更就是本身就是符合这个呃计算广告特点的一些技术设计和人际定向的相关的工作。

也是可以去呃作为计计算广告算法工程师的一个技术技术亮点的。所以说对于计算广告算法工程师来说呃。嗯范围要了解的范围比较广,同时有一项比较精深就可以了。这次呢我们就对于这些呃技术点就不做一个详细的展开。

然后通过呢这次。然后这次呢主要是介绍了一些呃主要是简单认识了一下那个计算广告的内容。然后对于广告的一些二价拍卖的机制做了一个介绍。

另外是介绍了一下涉及到一些呃记学习二分类的点击预估和NLRP图像和机制设计人均定向相关的一些简单的介绍。呃,所以说这次的话就不不不会不会详细展开。呃。

后面呢可能会呃在平台上可能会开一台关于计算广告的一个系列课程,是更详细的介绍每一个技术点。然后希望就是大家如果感兴趣的话,可以来来报名参加。然后现在是呃大概留个5分钟到10分钟的问答时间吧。

大家有什么问题吗?可以在里面发言提问。PPT呃。PPT可以下载吗?PPT嗯,我可以发发给工作人员,就是有需要的话,嗯,因为我现在也不知道怎么去共享给你们。我可以发给工工作人员,然后他们会提供给你吧。对。

PPD。之后的课程,我现在呃因为这这今后的课程可以上线时间,可以主要跟那个呃工作人员联系一下。我不知道现在现在呃听课的里面有没有工作人员啊。之后网站上面应该也会有通知,这里应该不可以。

计算广告和推荐系统的区别是什么?嗯,他们之间就是说技术上嗯有很多相似的地方。又比如说在那个信息流广告中,信息流广告中,嗯,比如说今日头条的推荐的新闻信息流本身对于广告和推荐的内容来说。

所用到的算法算法工作都是相似的,就是点力预估呃。呃,这些转化率预估这些这些内容。但说他们的优化目标是不一样的。对于用户类的呃推荐系统来说,他可能会更关注于用户的停留时间。

和用户的呃一个对文章的一个浏览的概率。然后但是对于广告来说。对于广告平台的。平台来说,它的最大的优化目标是呃每天赚更多的钱,就是消耗更多。这时候它的从而带来的一些行为也是不一定的。

就是说可能有的广告它的。呃,有的广告它的呃点击率很低,但是由于广告主的出价很高,这时候我会把它给展现。所以说这可能是那个计算广告和就是用户类型的推荐系统的一个主要区别。主要是优化目标不一样。

然后底层使用的算法其实也有很大的一个相通之处的。就比如说你之前可能是做用户类型的呃推荐系统,呃,转行的做计算广告也是非常容易的。现在BAT里面做算法的,是不是在以前同事的基础上进行改进?嗯。

这个我了解到就是说呃。怎么说呢?呃,不可能就是说直接照搬别人的工作,这是也是行不通的。嗯,BT里面呢嗯可能有面临的一些算法任务,是呃也是别人也解没解决,或者说之前别人也遇到就是发现不了的一些问题。

在这些方面呢,也只能去呃自己去解决。比如说呃在那个阿里里面嗯。做做那个电商类的一些广告,可能业界只有阿里是呃。遇到的这个用户和广告主的这个规模是最最大的。所以说他面临的问题可能也是和其他的地方不一样。

从而他使用的一些呃技术的一些算法,也需要自己去做,也连系到他们呃开发了一些比如说DIN深度兴趣网络DIEN这种这种特殊的呃点击预估的方案。对,所以说呃但是呢对于其他一些。诶。

因为因为不可能说主要是精力问题嘛,就是对于一些优化点来说,可能是优化的重点。然后对于一些一些优化没那么呃重要的时候,可能是呃达到业务的商业要求就可以了。也可能就是说呃在同事的基础上进行改进。

差不多就这个意思了。但是总有一些是别人解决不了的问题需要去解决的。现在BET里的算法平台都是自己开发的,还是就是tflow spark之类。嗯。这个回答一下吧,就是说嗯我了了解到在那个呃首先。

像tanerflow spark这种。嗯,他能fo这种深度学习框架呢,是各公司都在用。但是说每个公司呢也有自己的东西,呃,像像那个呃。腾讯的话,他们也有自己的自己的深度学习框架。

百度呢就是那个paddlepedddle。呃,像阿里呢可能就是基于tentflow上面做了一个派th flow。呃,然后像嗯这种深度学习框架呢,肯定每个公司都有自己的平台。

然后呃开发的话呃其实是呃就是熟悉tflow之后,都可以很快上手。其他的框架。同样对于spark来说,呃,各公司也没有说直接去用spark都会做一些相应的改进。但说本质的思想都是一样的。呃。

所以说对于这个问题,BET里面算法平台都是自己开发的,还是tflow斯巴和这些呃。呃,这个回答就是说呃都会有基于tanfer勒或者斯par克的一个改进,一个一个搭建。呃,同时也可能会有自己的版本。

但是只要掌握了,就是说tford或者spk都可以应付。助教在吗?班级群号是多少?PPT资料,这个我问一下吧,这个问一下问一下那个主教。稍等一下啊,我问一下怎么去共享那个PPT还有班级的群。🎼。

哦,我我把那个。PPT先发给助教啊。现在还有点问题啊,课后我再发一下吧。现在TF使用的多还是拍套姐用的多?嗯,这个主要是看呃所需要解决的算法任务和个人习惯问题。嗯,我了解是tflow相微多一点。

然后拍套学的话,主要是在那个呃像文本相关的一些工作上比较用的比较多。因为t flow它本身呢是一个呃静态的网络执行框架。然后拍套选呢是一个动态的动态的网络图。

所以说对于文本这种不定长数据结构不确定的呃任务来说,可能拍套角更方便一点。但说对于像一些图像分类啊这些内容来说,因为本身有一些用户基础,像tflow可能用的多一些。

然后t flow现在可能也在像那个兼容呃拍套姐这种嗯。命令式编程的方式也在做。EESM也在做CDRRC吧。是的,之前也有。对。嗯,有人说这个仓法是在做PR,不太了解。嗯。12SM那11SMMM能是。

也不能说是做PR的话,就是呃肯定是在公司里面是在用的。呃,具体效果也文章里面也提到了,嗯,包括DIN和DIEN和ESMM都是呃针对不同的任务去做的一个呃CDR的预估。嗯。

应该不是说是做PR的这种单纯的做PR。因为公司里面也不会去。因为像算法公司的,因为本身的待遇也比较高嘛,不可能说养着这一批人专门去做PR的,就以说也是本身是解决呃解决那个呃。也有问题的。

现在计算广告方向主流的算法叫先进的算法是什么呢?扫码进这个群,然后我后面会把那个课件发到这个群里面。大家可以可以需要课件或者需要讨论的,可以进这个群。嗯。

现在哈回回答一下那个现在主流现在计算广告的主流的算法,叫新应的算法是什么?这个问题呢其实是比较泛,就是说计算广告本身涉及到的面也比较宽,包括和之前我们也讲到了。

就是呃点击预估和NLP图像都有一些相关的工作。呃,点击率预估这块呢,可能是计算广告一个。呃,比较重要的内容啊,这一块呢之前我们在不同的业务场景下也有不同的工作。

比如说之前我们讨论的一些阿里的一些ESMM和DIN和DIEN的工作。嗯。然后像那个呃LP里面的话,可能关注一些呃word emdding或者graph emdding的一种方法。呃。

所以说这个问题嗯也确实很难回答,因为比较泛啊。呃,是否用过?师否用过是EMM啊,这EMM我我确实没有尝试过。大家还有什么问题吗?嗯,是有的是有计算广告这块不同的算法本质的区别是有的。系。就比如说做那个。

呃,就比如说点击预估这块吧,呃,用不同的。模型结构其实。嗯。包括不同的组合特征来说,嗯,首先它可能带来的区别不是说直接的一个效果的提升。因为在业务上的话,考虑的问题可能比单纯的指标的提升更多一些。

包括一个线上的inference的一个效率问题,包括本身的这个框架本身能不能嗯通用,能不能解决其他的子产品就是其他的业务线的问题。在在在公司里面呢,可能嗯关注的问题更需要的解决的问题可能更多一些。

除了指标问题。所以说呃一个好用的一个模型来说,呃,需要去呃。可以自动化的组合一些特征,减少一些人工的特征组合的一些操作。这也是那个现在的比如点击预这块的一个方向。

然后另外呢也有一些online learning的操作。就是在线学习。因为比如说像嗯阿里的双十一大促,像618大促这种嗯大促的时候,可能会呃有一些样本的一些一些呃样本的不均衡。

或者包括样本量都会有一个呃预估空间和一个呃样本空间的一个区别。所以说可能会呃在那个训练方法上做一些做一些那个改进。就是本身呃确实不同的算法会有会有区别,会有。呃,本质的区别效率效率和效果指标上会有提升。

嗯,对,就是这样。在线学习通常实现的技术战是什么样的?嗯。专线学习的话,你可以了解一下呃,像F link blink这种流逝的。首先。呃。呃,FTL呢现在其实我了解到。呃,我了解到的用的比较少。

主要还是呃一个流式的样本的生成,同时去呃呃分批的去训练这样一个过程。模型可能是15分钟更新或者1小时更新。嗯。对,这是一种优化方法嘛。

然后本身 onlineline learningning涉及到的一些呃训练方法呃也比较多,主要是了解一下流式学习的东西。然后对于呃FTRL也可以简单了解一下。好,今天时间就这样了。She。好。

大家有需要讨论的,可以在群里面在群里面交流,谢谢大家。

人工智能—计算机视觉CV公开课(七月在线出品) - P1:阿水水哥:2小时杀入视觉赛题前10% - 七月在线-julyedu - BV17z4y167dq

呃,对,大家也可以提前呃预热一下。因为我们这个公开课啊都是讲的比较轻松的一些呃,就是说不会太难的些题目。呃,如果大家就是说有有什么相关的一些疑问啊,或者说嗯大家如果自己之前听过我者讲课呢。

有什么想学习的东西啊,也可以在我们的聊天框里面跟我进行沟通啊。对。对,因为我们的课程啊还是比较轻松的,不会说呃就是说讲的很入嗯很就是说不会讲很多呃深入的,就是说很有难度的东西。

还是会想让在大家在一定的一个时间内,比如说一个小时或两个小时的时间内把一个东西给大家讲清楚。对。声音有点小吗?呃,我声音有点小吗?你可以尝试把音量调调大一点,因为我自己也在听自己的讲的。呃。

其他同学其他同学觉得声音有点小吗?嗯,对对,其他同学也也觉得声音小吗?嗯嗯,这样还行是吧?那我们我稍微声音大一点啊,稍微声音大一点。那么呃那我们就开始啊开始也正式就是说呃快到8点了。

那么我们这次呢是呃7月在线的一次公开课。我们公开课的一个内容呢是开狗,对吧?其实这个其实大家之前可能就已经接触过,现在竞赛很多啊,就是说我们还是以开口的这种竞赛,就是说比较典型的竞赛来给大家讲。

那么我们的一个公开课呢,这个是让大家在2小时以内就是说能够掌握一些知识点。然后我在这个知识点里面呢,我这个地方是只讲视觉赛题的。就是说其实开狗有很多赛题。比如说呃CV的NRP的有结构化的对吧?

还有结构化的。还有这个语音的,但是呢我们就单独挑一个赛题给大家讲。因为呢这样呢可能就是大家嗯掌握的会更加清楚,直白一些。那么我们今天的一个直播的公开课的直播的时长呢是一个半小时啊,就是一个半小时哎呦。

一个半小时到一个半的一个半小时到2个小时。对,然后大家嗯就是说一定要安排一下自己的时间。好的,那么我们就开始今天的一个课程啊。那么我们今天的一个课程呢,主要分为这四部分。嗯。

然后最后第五部分是一个总结与回顾。第一部分呢,我会简单介绍一下凯竞赛,因为还是怕有很的选手呃,也就是说我们的嗯听众啊,有的同学不知道cover的一个竞赛或者竞赛是什么。第二部分呢我我会讲以我的视角。

或者说从竞赛的视角看一看计算机视觉它是如何入门的,或者是它相关的一些知识点。第三个呢我会讲视觉赛题的一个案例啊,比如很典型的是imagineate这个数语集和它相关的比赛。那么在第四部分呢。

我会讲一个就是说几个三个啊,就是我们那个大纲上面写的一个首写呃涂鸦涂鸦识别,一个是孟加拉语的,还有一个谷歌图像检索的这三个比赛。那么总共就是说还是呃主要。

内容还是从第二部分从第二部分到第四部分,这是我们的主要的内容,主要的内容主要的内容。那么我们再看第一部分啊,嗯不知道大家对开go之前认识多少呢?那么大家也可以在那个呃聊天框里面给我呃打字嗯说一下。

你之前知道开过吗?那么其实开go其实也是现在比较流行的,就是说国外的啊,它现在被谷歌说过了。

他现在被谷歌收购了这个竞彩平台。那么开go它到底是什么呢?我们嗯对于大家来说,参加的开go有什么意义呢?我在第一部分想要给大家介绍一下这个。

那么其实啊数据竞赛呃可能就是说嗯嗯叫又叫这个datacomp,对吧?也是数据科学的中间的一个竞赛啊,它是以工业学术问题,就是说为导向的。

就是说这个地方它是以问题为导向的聚合广泛跨学科人才的利用数据研发算法模型和探索解决方案的研发模式。那么这个地方嗯这一句有点长啊,其实大家重点关注一下这几个点。第一个点就是说数据竞赛是以问题为导向的。

它是有一个具体的问题,就是说是。具体有一个tsask对吧?这个taskk呢是我们具体是学术的,OK是嗯工业也O。其次呢这个呃竞赛呢它是聚合广泛跨学科人才参与的。就是说这个参与的门槛。

就是所有的人嗯就是说呃这些参与的门槛,就是说你不管是学什么学科的,你只要想参加这些比赛,你都可以进行参加。然后呢这个数据竞赛它和普通的竞赛有什么不同呢?

它是这个数据竞赛是际用数据研发算法模型或探索解决方案的研分模式。那这个是不是就是一种众包,对吧?众包的一种机制,就是说所有人都可以提出它的一个解决方案,然后把这个呃看在一个排行榜上来看一个成绩的优劣。

那么其实啊数据竞赛它是一个很典型的一个众包的竞赛的一种方式啊,就是说呃所有的参赛选手可以在一定的规范时间的,就是规定时间内,同时提交自己的一个算法模型,然后来进行一个评比打分。嗯,一般情况下。

这个对参赛的人员是没有限制的。它这种一般都是面向公开的,就是公开的啊,一般是公开的,一般是公开的。也有一也有一些比赛是现。学生啊,也有一些比赛是限定学生的对,然后大部分的比赛呢开过上面。

大部分比赛呢都是公开的,就是所有的社会人员,社会人员,不管你是社会人员啊,还是呃就是还是在校学生都是可以参加的。而且呢数据竞赛我们刚才也讲了,它是一个具体问题为导向。

而且有明确的业务背景的这个问题背景呢就是我们这个呃我们这个问题它具体是怎么产生的,或他具体的一个呃要解决的一个呃目标或者他的损失函数。那么这个呢其实因为现在现有的一些竞赛都是有强的业务背景或者数据背景。

它不是说这个数据完完全全是随机想到的,它其实是有一个业务背景在里面的。那么这这个地方啊一般的竞赛它有可能都是某个公司比如说这个嗯开上面有很多这种美国的公司,比如说谷歌啊,然后这种嗯格玛这种这种公司啊。

大公司啊,都是在开上面就是说呃举办一些比赛国内的。天池啊都是有这种阿里巴巴,或者说。一些大公司啊,他都都是在这上面有一个具体的业务背景,不是说随随便便的数据都能弄竞赛的。不是的。

是有一个特定的特定的一个业务和特定的数据,然后构定了一个特定的竞赛。所以说呢不同的一个竞赛可能有说嗯有不同的背景,有不同的一个数据。那么与普通的一些竞赛,这个地方我是以在校学生为特定的说的。

就是说与普通的在校的同学他参加的之前参加的一些比赛相比呢。数据竞赛有这些特点。数据竞赛呢和英语竞赛,这种竞赛和数学建模不一样。这个地方可能大家学计算机的可能对数学建模稍微了解一,对吧?

那么数学建模它是呃他是和数据竞赛不太一样的。数学建模他还是强调这个理论,他并不是这个并不是这个呃就是CS的人现在参加的比较少,或者说它也不属于这个data science数据科学里面。但是数据竞赛呢。

它是以一个具体问题和数据为比赛的一个内容,使用定定量和交互式的评分。这个地方有两个点,就是说第一个是定量的,一第二个是交互式的。第一个定量是这样的,就是说所有的这种评分机制它都是一个定量的打分。

不是说定性的,不是说定性的啊,不是说定性,比如说是人工进行打分。有的是作文竞赛,或者说英语竞赛都是有一个人工的打分机制。其次呢这个定令定定量啊,它是能够精确到小数位及多少位的。

比如说我们嗯是一个嗯嗯文本分类比赛。那么我们可以统计这个准确率,统计到最后多少位。对,所以说这个就是说是一个完全定量的打分,就是说完全有一个评分标准。其次呃这种竞赛啊它都是有一个交互式的。什么是交互式?

就是说我们可以就是说提交自己的代码,然后提交自己的模型。这个呢它会提供一个打分。这个交互式一个打分,就是反馈的机制,就是给你一个啊feedback,就是说我们这个模型到底是精度是怎么样。

这个就是说是其他竞赛不不具备的。比如说我在一场竞赛里面可以每天提交几次,对吧?这种比如说在KY比赛里面,我们一般可以每天提交5次。我们每天每提交的次数的时候,我们都可以得到我们每次提交的一个得分的优嗯。

到底有没有提高有没有下降或者具体的得分。这个是其他竞赛所具不具备的对。所以说数据竞赛它可能说在特点就是说在一些特点上或者说特点上都是和传统竞赛不太一样。那么就是说具体来说啊,就是这有这些不一样。

有这些不一样的。第一个是从内容上就是说数据竞赛,它其实是关注于数据挖掘和机器学习算法,或者说相关的数据相关的一些业务背景。那么学科竞赛呢可能是关注学科知识点。对,那么其实数据竞赛它并不限定于学科啊。

它有可能是跨学科的。这个地方嗯你可能这个地方的内容,这个数据竞赛,某一场数据竞赛里面可能是医学的,可能是呃天文的,可能是什么呃嗯NRP的,可能是C位的都有可能。所以说数据竞赛它并不限定一个学科知识点。

其实数据竞赛它的打分机制是一个有反馈的。就是说你每天可以提交打分,比如说一天5次,你这个打分是你可以知道的。但是这种学科竞赛都是一锤子买卖,它是不支持这种打分反馈的。

还有一个呢就是数据竞赛它是定量打分的。就是说具体错在哪,错了多少,它都可以反馈出来。还有一个呢数据竞赛其实是一个交互式的,就是你去提交这个代码提交这个模型,然后去嗯有一个打分的反馈。

这个是以普通的学科竞赛,也是不具备的。所以说数据竞赛是更加符合数据挖掘流程和机器学习的一种嗯就是说建模方式吧。因为你在建模一个数据挖掘或者是机器学习算法的时候,其实本质也要这种这种流程,对吧?

就是说你在构建这个模型的时候,也本质需要这种打分的反馈的。对。那么在嗯国外呢最主要的是kego的平台。那么这个地方截图呢是kego上面的一个呃就是说呃比赛,这个比赛应该是嗯已经结刚结束不久啊。

刚结束不久。就是说在开go上的比赛,它会给出一个比赛的一个名字,这是名称,这是它的一个副标题。然后在这个比赛的页面啊,它会给出比就比如说这个比赛的一个详细的介绍。

数据及notebook discuss你的排行榜和一些规则组队信息。然后这个地方它其实会给出啊会给出一些详细的呃就是说赛题的一些介绍,就是说你能够通过这个赛题的页面,知道这个赛题到底是什么业务背景的。

它到底是呃解决什么问题。比如说在这个截图的这个嗯比嗯这个比赛呢,其实就是讲讲的是呃一个图片的引写的一个就是说嗯识别,就是说有一些隐含的水印,然后藏在这个图片里面。那么在这个kego里面啊。

其实提供的非常完。的一个竞赛机制啊,就是说比如说在这个nbook里面,大家如果用过这个ipad notebook book,或者说Gpy的 notebookbook,对这个应该不陌生。

就是说因为现在开过被谷歌收购了嘛,所以说它的一些语音计存资源还是比较比较就是说友好的。这个呢有CPU有GPU啊。这个它提供了有CPU的免费的CPU或CPU资源。对,所以还是对新手比较友好的。然后呢。

在这个讨论区呢,你可以沟通,就是说。跟嗯跟其他选手沟通一下你这个比赛的一些想法。在这个排行榜呢可以看到嗯所有人的一个排行道的一个打打分。所以说呢开go呢它其实是把一个任务啊,比如说这是一个具体的比赛。

它是单独抽象成的一个页面,然后把这这些具体的业务背景数据notebook排行榜都弄在这个比赛页面里面的。所以说这种啊是嗯开go现在是国内外最成熟的竞赛平台,而且是呃就是说含金量也是最高的一个平台了。

那么其实啊嗯如果大家作了解一个竞赛,可能就是说你可能会问到,那么老师有哪些竞赛呢?其实这个地方啊,我这个地方写按照竞赛其实进一场竞赛可以按照这个竞赛的任务啊,竞赛的数据啊,或者说竞赛的一个反馈啊。

以及它的一个目的啊进行一个具体分类。那么最简单的呢,其实是可以根据这个具体的任务和数据来进行划分的。我们先看任务,其实呢嗯如果按照任务来划分的,这个可能就跟业务背景相关的。比如说在结构化的数据里面。

我们可以把一场竞赛具体把它划分成金融风控消费预测行为预测或者说推荐系统相关的。那么如果是图像类的呢,我们可以把它分成图像分类、图像检索物体识别语音分割,这种人体关系跟检测。如果是文本类型的呢。

我们可以把它分成文本分类、文本呃翻译或者说实体识别。如果语音的呢,也可能是这种语音分类语音识别,对吧?那么这个是具体的任务。那么。其实啊我们还可以根据赛题的数据来划分,就右边这张嗯扇形图。

其实啊在现在的很多的比赛,这是20这是2019年的2018年到2019年的统计数据啊。就是说在2018年到19年的期间呢,其实大部分的竞赛都是结构化的,就是嗯你可能会用到什么是结构化,结构化就是表格。

就是假如这个数据是用表格。存的。那么它就是结构化的数据。那么你也可以把这非表格的数据,我们把它称为非结构化的数据。那么其实啊在2018年到2019年的期间。

大部分的比赛都是应该是百分之接近60%的比赛都是结构化的数据。但是到2019年开始啊,从去年开始,其实现在非结构化的数据,应该是就是说非结构化数据的比赛,嗯,反而占据了60%以上。这个是这样的。

就是说现在有很多结构化的结构化的数据挖掘的比赛,它都可以通过auto美奥这种自动机器学习来进行完成了。所以嗯啊。sorry啊,把它翻翻过来。所以说这种啊就是说结构化的比赛。

现在就是参加的人稍微少了一点稍微少了一点。然后现在这种非结构化的数据啊,比如说计算机视觉的这种比赛反而会更多一点。对,那么其实大家我嗯我们今天讲呢就是这种计算机视觉这个任务下面的比赛。

那么其实这种语音分类或者说自然语言处理下面的比赛呢,现在这个也挺多的对。然后这是对赛题的一个数据,或者说它这些任务来进行划分。那么我们再来看一看嗯这个计算机视觉的入门吧。或者说我们进行一个简单的介绍吧。

因为我们今天还是一个以这种计算机视觉为专场讲一些相应的视觉的比赛。那不知道大家对于计算机视觉有什么了解呢?或者说之前有接触过计算机视觉或者说数字图像处理嘛,啊,其实啊计算机视觉现在是比较火的一个方向。

而且是不管是在啊就是说学术上还是在就业上都是嗯就是说非常火的一个方向,计算机视觉对吧?computerationV那么其实现在很多算法工程师都是说它是搞CV的,对吧?

或者特别嗯特别是说啊我很多深度学习的呃算法工程师都说它是搞CV的。其实那么计算机视觉里面到底怎么进行划分呢,或者说大家如果之前没有学过学习过计算机视觉。大家怎么进行入门呢?对,那么我们今天就来看一下。

呃,那么计算机视觉啊,它是就是computeration简称CVA啊,它是让机器能够理解并应有看的能力的科学啊,或者说一个学科。那么其实我们本质的一些计算机啊,它都是二进制。

只能处理二进制01的这种图形的这种嗯架构啊,对吧?但是你想让一个计算机去理解一个视觉,或者说理解一张图片,其实是很难的一件事情。因为呢原始的我们输入就是说我们数字图像啊,其实本质就是一个矩阵,对吧?

一个长啊,就是个高乘以宽,还有一个呃还有一个china,就是说这个呃这个通道数,对吧?一般我们三通道的对RGB的图像,对吧?RGB的。

那么其实我们一张图像就是一个H乘W乘C的一个呃三维的一个tensor,对吧?三维的一个矩阵。那么我们对计算机来说啊,对于计算机来说,它其实并不理解这里面每个像素是什么?但是呢人它其实是能够理解这每个像。

是什么含义的,或者说这个图片有什么含义的。因为即使啊这个原始的一个像素啊,就是RGB,它是0到25这个像素值。但是呢人并不是说理解,比如说这个地方有有一个截图,对吧?

人并不是说理解这每个像素值的一个含义,它往往会以某个区域,比如说这个地方有一些文字,对吧?这个地方是一个眼睛,对吧?然后中间还有一些文字,那么其实啊人的一个肉眼并不是完完全全理解这每个像素值的一个取值。

它往往会理解这个这个区域到底是什么语义信息,或者整或者说这个整体是什么含义的。那么这就是一个语义鸿沟线语义鸿沟,就是说人啊它其实没办法去呃它不就是说它理解计算机视觉,它理解图像啊。

并不是说从RGB这个方式开始的。它是从这种人的视觉感知开始的,但是呢计算机它并不具备这种能力。所以说计算机啊它本质就是说只能说我们怎么让从这个。处理让他理解这个图片。那么这就是需要我们让机器拥有这种。

视觉理解的一个技能,或者说有一个信号提取的一个技能。那么这个地方呢需要注意的是,就是说你想让一个呃一一个计算机,或者说想让设计一个算法去理解一个理解一个图像,其实是很难的。

因为我们现实生活中的图片啊千奇百怪的对吧?有可能是呃什么我就以这种艺术画来举例啊,有的是素描的,有的是这种水彩的对吧?有的是泼墨的,那可能就人都在看这种画的时候,其实都要啊犹豫,或者说思考很长时间。

那么你其实让计算机来识别,或者说去理解,其实更加难。因为计算机很难,或者说现在还没有一个通用的呃人工智能的算法出现。所以说你想让计算机拥有这种视觉理解,或者说让想让它有这种视觉的呃语义提取的一个功能啊。

还是非常难的,非常难的对,非常难的。就是说这是一个很难的任务。那么如果我们机器本身不具备理解的技能,那么我们只能让它完成特定的运算啊。

就是说现有的一些计算机视觉的算法都是你可以理解成它都是拆拆分成了一些具体的算法。比如说有一些算法是完完成这种人脸识别的。有一些算法是完成呃这种身份证识别的。有的身算法是完成呃这种车牌识别的。

那么比如说比如说我们现在有一种。嗯,有有有这个这种东西,有一种数据data一。有第二种数据data2。比如说很很多种数据,比如data3,这分别是不同类型的数据。比如说第一种是人脸的。

第二种是这种车牌的,第三种是什么身份证的。那么你想要对着分别建模呢?现在的情况是这样的,它现有的一些深度学习,或者说人工智能技术,它是分别对不同的数据来分别进行建模的。

它不是说构建了一个得到一个通用的一个模型啊。不是的,现在不是的,就是说现在的一些计算机视觉或者说深度学习算法,只能说是完成特定的一个运算,只能说在特定场景下,比如说在一个人脸识别的场景下。

它能够完成人脸识别的一个呃操作。比如说在车牌识别的一个场景下,它能够完成完成车牌识别的一个嗯呃任务啊。所以说现在的一些计算机视觉,还是嗯就是说只能说是领域或者说具体到某个任务啊,某个tsk来用的。

那么如如何让计算机去理解这个视觉数据呢,或者说如何让计算机能够呃理解这个图片里面具体的内容呢。其实是非常难的一件事情。那么我们在嗯签海园的一就是说这个课程呢会讲一些具体的就是说解决流程。

然后嗯就是说看计算机是怎么解决这个呃难点的,或者解决具体的问题的对。那么首先呢给大家看一个例子,就是说现在计算机视觉其实还是有很广泛的应用应用场景的,比较典型的这种是呃安防对吧?

安全防控以及智慧城市和自动驾驶。哦,比如说我们这个地方有一张图啊,这个图呢它里面它有一个算法,它是把人进行标注出来了。就是说它可能够识别行人,然后呢这个图片里面的所有的车也被识别出来了。

比如说这个车到底到底是什么车型的,然后它的颜色对吧?都是识别出来。但是呢其实啊这个其实就是很典型的这种安防,就是说我们有一个摄像头,比如是天网的摄像头,它可以识别在街道上可以识别嗯这种行人。

然后进行抓拍,比如说对这个呃强呃这种超速的啊,或者说闯红灯啊都可以进行抓拍。或者说对我们的一个车辆进行一个呃流量流量的控制。对,那么其实啊大家可以看出来,在这个图片里面还有很多的一些人都是没有被标注的。

他都没有识别出来的对吧?比如说有一些人还有一些人群,他都没有识别出来。为什么呢?其实是这样的,就是说现有的一些计算机视觉算法啊,还是就是说很难进行一个嗯你不能说它很难进行一个落地啊。

它这个精度啊还是达不到百分之百的,还是很难达到百分之百的。因为嗯你就是说这种数据啊还是千奇百怪的。比如说你从这个地方我是从一个摄像头,比如说这个地方有个摄像头。

一个摄像头去看这个就是说一个呃就是说俯瞰这些人,那其实啊其实你在不管是多大多清晰或者分辨率多少分辨率,你的多少分辨率的一个摄像头啊,你人离远了,对吧?人离远呢,就是说离这个摄像头远呢。

他其实就比如这个这个人啊,其实可能就10乘以20这个像素,就是像素很小,就是很小的一个区域。你再让这个摄像头去理解,或者说让计三机器识别这个人啊,其实非常困难的一件事情,其实非常困难的一件事情。

而且呢其实啊这种啊他不可能就是说完完全全把所有的人都识别出来了。有的人可能就穿的,假如有一个人他穿的衣服就跟这个地板,对吧?也是偏灰色的呃,肉灰色的,就跟这个呃地板颜色很近。

那么你摄像头其实也是很难识别的。所以说现现有的一些嗯计算机视觉的算法,还是很难达到这个百分之百精度的,这个是嗯需要指道一点,就是说还是只能说是在特定领域下完成一些特定的任务。对。

而且他这个精度啊还是有一定上限的对,并不是说即使有了也不是说有了深度学习啊,人工智能之后,这种这种问题都能够解决。对。呃,那么如何学习计算机视觉呢?这个地方我是给大家推荐了一个路线。

就是说分别分为五阶段。第一个阶段是学习计算机视觉的基础。第二阶段是学习积极学习与深度学习基础。第三阶段是学习深度学习的一些高阶技巧。第四阶段呢是学习一下目标跟踪和语义嗯啊这个这个地方打错了。

这是语义分割啊,语义分割。语义分割。然后第五阶段呢是这个视觉项目实战啊。呃就是说如果是在按照这个路线来学呢,其实还是比较顺畅的。那么第一阶段呢,我们就是说推荐大家学习一下计算机视觉基础。

比如说你学习一下嗯图字就是说数字图像处理,比如说如何读取一张图片嗯,图片里面的颜色空间是什么?图片它有哪些底层特征,嗯,比如说图片的边缘信息怎么提取的,它的一些关键点怎么提取的。

然后呢还可以做一些进阶的一些知识点掌握。比如说有哪些这种嗯传统的一些图像的特征提取算法,或者说有哪些嗯就是说传统的嗯图像检索算法,就是说在深度学习之前啊。

然后这一部分呢可能会让大家就是说对这种图像的一些数字图像处理有一定基础。然后还有一些就是说计算机视觉里面的,其实计算机视觉和数字图像处理啊,会有一点差别啊,因为计算机视觉它可能会包括的范围会更大一些。

比如说还有这种。维成像,还有这种视频啊,或者说呃这种嗯3D的啊,都可以算作计算机视觉里面的领域范畴。但是如果是呃图像处理呢,可能它的范围会稍微窄一点。你你可以理解图像处理。

它就是只针对于这种单张的2D的图像。那么以这种阶段来学习呢,第一阶段你就是对计算机视觉和数字图像处理的一个基础进行一个了解。第二阶段呢就建议大家学习一下机器学习和深度学习基础。

这个呢就是需要大家掌握一下机器学习的基础和神经网络的一个原理。特别是卷积神经网络的一个原理实战,这个地方就是CNN对吧?考 neural networkCNN。那么为什么要掌握CNN?

为什么我们不掌握深度学习的其他网络呢?也就是说在我们现有的深度学习网嗯,现有的呃计算机视觉任务中啊,还是以这种卷积神经网络,它用到的呃用途比较多。因为它是能够对我们的图像进行一个有效的建模的,对吧?

它也是有就是说提取的方法,就是说它的一个特征提取提取啊还是非常有效的。还有嗯第三点呢就是要学这个嗯机忆学习和于深度学习基础啊。其实啊深度学习还是有一些契节的,并不是说深度学习只是一个黑盒。

它也是有一些具体的嗯,就是说理论知识的。比如说有哪些实践技巧,以哪些就是说网络层啊,哪些学习率啊,或者说哪些优化器啊,这都是在嗯第二阶段要学习的啊,第三阶段呢就要学习一些高阶的技巧。

就是说以第二阶段在第二阶段基础之上嗯,那么就是学习一下网深度学习模型的发展。比如说CNN它到底是以什么脉络发展到现在的它这个发展呢可能就是说也是不是不是很很长那个时间。

比如说从131年的这个alex一直到现在,就是说一直到20年的这个发展的脉络啊,然后呢就以这个为基础呢?就可以掌握一些比较基础应用呢。

比如说大规模这种嗯就是说车辆检索的车辆检索的应用和这种行N从事别的应用,还可以掌握。在物体检测的一些嗯就是说基础,比如说one stagetday,这是第三阶段学习。

那么在第四阶段呢可以掌握一些目标跟踪和这种语义分割。这个呢可以就是说做这种嗯目标跟踪。比如说我们在做无人驾驶的时候,在做一些呃这种人脸的这种视频的追踪的时候,都是有一些很常见应用。嗯,对。

然后呢在第五阶段呢就可以做一些具体的项目,比如说做一些视觉项目的实战,比如说呃强化学习啊或者模型的部署啊部署啊。对,那么这个呢是比较嗯我就是说比较推荐的一个计算机视觉的学习路线啊。

那么正好呢我们现在在7月在线有一个计算机视觉的一个就业班,那么也是下嗯下方的这个链接啊,这个链接呢就是以我们刚才讲解的这个学习路线,就是说为主的,也是非常适合大家嗯就业找工作的一个呃就业课程。

那么如果大大家感兴趣呢,一定不要不不能错过啊,现在就是还是有一些优惠在。这个报名的期间呢,对,还是在报名期间还是有优惠的。如果大家感对这个计算机视觉找工作感兴趣的啊,一定不能错过这个CV的就业班。

那么这个是我们的一个学习的路线。那么其实啊我这个地方其实这一页就是把我们刚才讲的这些呃具体的流程给大家列举出来了。就是说呃首先学一下计算机视觉的基础。接下来是计算机视觉的深度学习基础。

然后是呃深度学习的进阶,然后是目标检测和语分割,然后是视觉技术的实战和落地啊。其实在我们计算机视觉里面,其实有很多的一些应用啊,并不是说只包括我们刚才讲就是说这个地方嗯这些阶段里面的一些。呃。

任务它包括很多的任务,嗯具体包括哪些呢?比如说嗯它包括一个图像分类,呃,物物体检测呃,然后这种实力分割,对吧?其实啊我们现实生活中大或者说大家遇到的很多的一些呃。呃。

任务啊都可以把它抽象成这这些嗯很典型的计算机视觉的任务。比如说这种动物分类,对吧?动物分类、手表分类,或者说这种对这个人脸进行一个分类,其实本质上就是一个分类任务。

然后这种呃这种单目标的单目标的这种物体检测其实也是用到的也比较多,对吧?比如说识别这个呃就是说这个车牌的一个具体的位置,对吧?但是更多的是这种多目标的检测,就是比如说我们同一张图片里面既有多个物体。

那么我们怎么把这多个物体进行识别出来了,其实这个这种object detection物体检测,它可能用到的范围更广一点。比如说在我们的现在行检测,呃,人脸检测,对。

或者说我们的字符检测都是用到这种字符检测呃,物体检测模型。还有一种呢,比如说我们这种嗯嗯就语义分割语义分割呢,它是就是说把这种物体检测和这种呃物体检测。和这种呃嗯。哦。

语义分割把它结合得到这个实力分割inst就是说它能够识别出具体这个图片里面哪,这是第一只狗。dog dogg one这是dog two,就是说它能识别出这个里面到底是多少只狗。

然后每个狗的一个具体的位置,像素啊都能抠出来。这个和前面的一个呃物体检测和这个呃嗯嗯这个语义分割,它是结合起来做的,结合起来做的对,然后你可以基本上理解成一个实例分割。

就是把这个object detection再加上一个嗯语义分割,再加上一个语义分割。也加上语域风割。对,所以说现在这些技术都发展的非常快啊嗯,但是呢现在嗯就是说。一些大家常见的一些计算器视觉的应用啊。

都逃不出这些常见。比如说我们这现有的一些呃行冲检测VID它本质上就是一个图像分类和图像检索的一个任务。比如说我们现在有的这种什么安安检,比如说我们刷脸的时候,有这种呃人脸检测,对吧?

也是这种物体检测的模型。比如说还有这种嗯更高阶更更好看的一点的这种呃就是说呃呃就是说在电影里面放到的,就是说通过一个人来找到什么犯罪的呃凶手啊,这都是可以从这种人脸呃就是说这种技术来实现的。

还有一种比较典型的这种这种红绿灯识别,它其实就是一种物体检测。比如说我们现在自动驾驶里面的很多的一些算法,比如说呃就是这个道路线的识别斑马线识别,或者说这种呃就是说。呃。

道路通行的这种什么交通符号的事别都是用物体检测来做的。其实现在很多的一些场景,大家其实嗯细想一下,都是以我们这些具体的一个算法,就是说呃支撑的为支撑的。只不过再加上特定领域的一些呃就是说具体的操作吧。

对,这是这一部分。那么其实啊嗯深度学习和卷积神经网络是我们学习计算机视学里面必备的一个呃知识点。我们刚才讲的5个学习阶段,其实很多都是在讲嗯深度学习和卷积神经网络很相关的。为什么这么说呢?

因为嗯现有的呃现有的嗯在现有的机忆学习里面啊,深度学习其实是占据了很大一部分应用场景。因为嗯第一个深度学习它的一个精度就是说稍微它会比嗯传统的记忆学习会更高一点。嗯,就是说它的第一个是它的精度高。

就是说它的精度精度会更高一点。其次呢深度学习啊它的。它的一个应用范围会更会更广一点,因为它是非常适合非结构化的数据,就是说非表格的数据。嗯,就是说深度学习是非常适合非非结构化的数据。

这种是嗯就是说传统机器学习所不具备的。其实深度学习还有一种迁移的思路。就是说我们之前在某一个数据集上训年得到的模型可以很方便的迁移到其他的一个新的一个任务上。

这也是呃就是说机就是普通机器学习算法所不具备的。那么深度学习它其实是机器学习的一个分支啊,这个其实是大家需要注意的,就是说呃可能机器学习是一个大圈,但是深度学习只是其中的一个小圈啊。

但是呢这一部分这个是深度学习啊,并不是说呃这这一小部分深度学习和呃就是说呃dep learning对吧?DL和这个 learning它并不是说完完完全把它分隔开了。

其实dep learning和 learning就是说深度学习和机器学习有很多相似之处,也有很多区别之处。呃,比如说他们在这个模型的一个学习的过程,比如说到底是呃过理和。和一个。

模型的阶段以及这个呃这种数据划分方法,或者说嗯机器学习的一些基础概念都是相同的。或者说模型嗯有一些模型的超参数啊,都是在一些其他机器学习算法能够找到的。就是说深度学习只是嗯机忆学习的一个分支。

大家在学习的过程中呢,你可以把它看作成其中的一个发展方向嘛。然后其实嗯其次呢就是深度学习,它其实是一种表征学习。我们给大家举个例子,就是这张图片,其实啊这是一个卷积神经网络,或者说是一个全接网络。

那么当你输入一张图片的时候,其实啊这它有很多这是输入层,这是应就是说输入层对吧?这是input,那么这是黑的 layer,对吧?这是隐含层。那么最终呢这是输出层。其实啊这中间的层啊。

比如说这个这这是第一层第二层第三层其实第二层它的一个输入就是第一层就是说我们输入层,就是input这个层的一个输输入,对吧?那么第三层它的个输入呢就是前面一层的一个输出,大家可以看到。

就是说它它是层一层进行堆叠的。就是说这个呢你可以认为这层一层它有一个相互的表示,或者说机器学习的过程。那么这也是传统机器学习所不具备的深成学习它是一种表征学习,它有表征学习的一种学习思度的里面。

那么还有一点呢,就是说在计算机视卷里面啊,其实呃卷积它其实卷积深经网络CNN其实是用到的最多的一种为什么呢?因为对于对于一张图像来说啊,它如果用卷积来说,如果用卷积核。

它其实是能够有效的提取到这个图像的一些边缘啊,或者说嗯这种关键的。的呃,那么卷积盒呢或者说卷积神经网络呢也是特别的非常适合用于嗯计算机视觉或者图像的一些领域。对,或者说比比如只要跟图像沾边的一些数据。

比如说。嗯,视频。嗯,或者说我们的一些呃连续的呃连续的多帧的这种音频,就是说多帧呃,就是说音频也可以用新来做。因为音频它如果提取一个MFCCC的特征,也最终得到一个矩阵,所以说很多的一些数据啊。

只要它是使用得到一种用用一种矩阵的一种方式表示呢,那么我们就可以用这种卷值神经网络来提取。嗯,它的特征,然后对它进行建模。这是呃计算视觉与卷值神经网络。那么其实嗯深度学习与机器学习啊有很多的一些区别。

但是呃我以这张老图来讲解它们具体的区别。就是对于机器学习来说啊,其实它的一个嗯流程是呃对于我们的输入,它首先做一个特征的提取提取得到一个特征。然后输入到我们的传统的机器学习模型里面,然后得到一个输出。

对吧?也就是说它是把这个特征的提取,和我们的模型其实是分开的。但是呢在我们的现有的深度学习里面,它这个地方是end to end对吧?哦。sorry,又调走了,这个地方是N to,就是说它是端到端的。

端到端的。也就是说它是直接从输入到输出的,他把这个特征提取和这个模型的一个训练过程都在这个网络里面所包含的。为什么这么说呢?呃,因为在我们深度学习的表征的过程中啊,其实它有前层对浅层的。

就是说后面层对前面层的一个数据的表示。所以说呢它会对我们的数据有一个更深层次的一个特征特征表示啊。这个地方你可以理解它是一个特征提取啊,对吧?我们刚才在这种图片里面,其实你在有一些层啊。

其实它是它其实它提取到的一些特征啊,都是对我们原始图片的一个呃比如说提取到一些边缘信息啊,提取到一些具体的一些焦点啊或者形状啊,都都是嗯这都是在嗯越深的层可能提取到的一个信息会越多。那么这种嗯深度学习。

他还会把这种具体的一个机忆学习算法把它包进去。因为深度学习,或者说这种深圳网络其实有很大的学习能力,很强的学习能力。

它会学习到这种嗯比如说我们从input到output这种映射方式或者映射方法它都能学习到。但是呢呃即使是深度学习,它就是说还是嗯非常非常简洁,对吧?只要输入,然后通过一个深度学习模型就得到最终输出。

但是呢深度学习和机忆学习还是有很多的相似之处,或者说深度学习有它独特之处的。首先深度学习它是可以自行提取一些特征,就是说你不需要人工经验知识,它能够帮你提取一些特征。但是呢你是需要设计具体的网络结构的。

这个网络结构可能和具体的任务相关。比如说我们做一个人脸的识别的一个任务和作为一个图像分的内容,它的网络结构就不一样。但是呢这个只是说结构不一样,这个结构,比如说有的结构是呃有。

这种回归层有的结构就只有这种全连阶层。嗯,其次呢深度学习。由于它的网络结构就是说它的学习能力实在是太强了,所以说需要特定的一个数据扩通方法。

d augmentation以及特定的政策化方法来缓解这个过滤盒的。这也是在传统机器学习里面就是说所不具备的。所以说呢嗯在学习深度学习的时候,大家就是说优先看一看,就是深度学习与机器学习有什么相同点。

就说看他们有什么相同点。那们然后看他们有什么不同点,你就是以这两个方面来进行学习啊,就是说会更加。M。就是说精细里。嗯,由于啊我们其实深机器学习啊里面还有很多具体的分支啊。那么如果大家想具体学习呢。

其实也可以。但是你如果就想学计算机视觉,其实没必要再去把嗯机器学习里面的其他的学一下。你就优先把深度学习学一下。然后你如果之后再用到其他的一些机器学计算法。然后你再回过头来学。对。

这是第二部分对于我们的一个计算机视觉的一个基本的介绍,对吧?或者说给大家一个学习的路径。对大家有问题吗?如果有问题呢,可以在我们的讨论的一个聊天框里和我进行沟通哦。对,好的。

那么我们接下来呢就看一个视觉案例啊,imnet,然后看一看这个图像分类的一个流程。有同学问到结构化的数据,用auom如何理解,我有我也做过结构化的数据。比如说用netGBM没见过用auom的嗯。

其实是这样,我其实是这个意思我往前翻一下啊,不好意思呃,其实是这样的,嗯,现有的一些结构化的数据。比如说这种表格数据。

对,表格数据、结构化数据啊都适用于这数模型。比如说。来是GBM或者XG boosts的对吧?嗯,其实也可以,但是现有的呢嗯在很多企业里面就是说自动继续学习啊,就是说已经在一定程度上可以代替人类。

或者说在一小部分可以代替人的。我这个地方举个例子就是说现有的一些结构化的比赛会越来越少。这种非结构化的比赛。比如说图像的啊语音的NRP的比赛会越来越多。因为这也是我统计得到。

就是说现在2019年以及啊就是说从去年到今年来很多的一些比赛。不管你在开过上面找啊,待会也会给大家看。其实现在开过上的一半以上的比赛都是图像的或者NRP的。现在结构化的比赛会越越来越少越来越少的。呃。

就是说因为你人工的一些特工特征工程啊,其实也。也肯定是比奥特美要强的,就是人肯定比机器来做这种机呃,就是人啊肯定是比这种自动机器学机会强的。但是呢现在的一些呃结构化的数据啊,其实。通过一些特定的流程啊。

就是能够解决的差不多了。或者说你用一些比如说现在的现在HGBM或者叉G其实已经可以挺好的解决了了,或者说它一个精度已经挺好的嘛。嗯,然后大家就是说各行各业发现我只直接用这些模型啊。

就是说精度已经okK了,那么我们就不再花一个具体的时间了。那么然后现在呢其实更多的是一种非结构化的数据,非结构化的数据呢,其实它的一个发展前景还是更大一些。

因为现在呃计算机视觉里面还有很多的一些未解的一些问题。呃,auomomy纳s搜索是一一回事吗?呃,其实那s搜索它是搜索一个网络结构,它这个和auomomy其实有一点类似。

但是auomomy它这个nas它是搜索这种深度学习的网络结构,它是搜索深度学习的网络结构。它这种是用在深度学习的auommre,你可以这样理解。但是我这个地方讲的这个auomy呢。

它其实是可以用在这种结构化数据里面的。呃,第二个同第二个还有一个同学,还是这位同学说的呃,自动驾驶发展到什么程度了?目前的技术能实现吗?普普及需要多久啊,其实。啊,喝口水。其实嗯现有的自动驾驶。

你可以看一下,嗯就是说你不要看新闻啊,你不要具体看新闻。你可以关注一下现在的国家政策。其实现在的自动驾驶啊,只能说在特定的场景下是可以的。不能说它在不能说自动驾驶没并不是能上路啊。

现在自动驾驶它是分就是说具体等级有L3L4,对吧?它可能在特定的场景下可以完全的嗯不需要就是说能够实现自动驾驶。但是现有的通用自动驾驶啊,应该短时间没办法实现的。嗯,不知道大家注意到没有?

就是说现有的啊,不管是百度啊还是滴滴啊,其实已经越来越把自动驾驶的业务啊,就是说宣传的越来越少了。其实这个可能就是一个噱头,短时间我看来就是说我个人认为短时间通用的自动驾驶是没办法实现的。

只能说是特定领域的,比如说卡车的自动驾驶,比比如说在这种无人的这种仓储里面的自动驾驶可能会实现的。

だって。嗯,就是其实嗯前一段时间有那个滴滴,他不是在上海有这种自动驾驶的嗯车嘛,但是他那个自动驾驶的车还是配了一个呃就是说安全员的。那么其实你也可以思考一下,如果我都配了一个安全员呢。

我为什么不用这个人直接开车呢?其实他配的那个安全员啊,可能成本也不低啊。因为它可能需要懂一点技术,又要懂开车。对,所以我我是对自动驾驶,它会比较悲观的啊,这是我个人看法。那么我们接下来就看第三部分。

对就是说我们的一个视觉的案钮,我会以minenet这个呃数据集啊,也就是比较典型的这种图像分类数据集来讲。然后来看一看这种图像分类的一个训练的流程。

呃,首先呢对于一个图像分类,或者说计算机视觉里面很典型的一个任务。图像分类来说呢,它是这样定义的。就是说我们给定一张图片,我们需要识别这里面图片里面嗯的一个类别。比如说在imagine那数据集来说。

它是一个千万级别的一个图像分类数据集,需要对图片的主体物体进行分类。比如说有一些在imagageation里面有很多这是里面的一些截图。比如说有这种B0。嗯,有不同类型的B淇淋啊,还有这种枕头。

枕头有可能是不同类型的枕头啊,比如说什么U型枕,有的是这种抱枕。那么其实imaginenet比较典型的,它是分1000类,对吧?就是说我们常见的imaginenet比赛。

其实啊这个imaginenet它其实是很难的,很难的。在我们这种嗯在深度学习时代之前啊,深度学习时代之前,就是说深度学习嗯前。然后这是深度学习后啊,然后有的深度学习如果是在深度学习之前啊。

这个精度应该呃就是只有70%多吧,75%左右就是top5的一个精度。然后如果是用了深度学习啊,如果是用了深度学习,那么它的一个精度现在应该是到97%呢?top5的,非常非常高了。

现在就是说imagine的数据集,它是呃大家也知道就是说应该是呃李飞菲嗯,教授提出了,对吧?它是极大推动了我们计算机视觉的领域的发展。为什么呢?因为他这个imagine的数据集,它的一个呃总共啊啊。

他的一个任务是非常难的,总共是1K类别。然后就是说如果一个计算机视觉模型,比如说一个图像分类模型,在imagine的数据上在这个数据上能够分类好,就是说它能够识别好,是不是在其他的场景也能够识别好呢。

或者说也能够有一个很好的一个泛化能力呢,其实是这样的。因为啊。其实在嗯这个imagine数据集应该是从201年11年啊,还是到2017年啊,最后一届是2017年。然后这个期间啊其实是深度学习。

就是说发展的早期是很多国内外大公司啊,都在imagine数据集上进行刷榜。对,不管是国外的谷歌啊,还是国内的百度啊嗯滴滴啊,阿里巴巴都去刷这个imagineimagine数据集,刷到什么程度呢?

现在大家都不刷imagine数据集呢?因为这个地方毕竟它已经被刷爆了。然后嗯imagineate数据集呢,它极大推动了计算机世界的发展。因为imagine数据集,它是一个很常见的场景,它里面有动物。

有有人有这种桌子,有汽车。就是说你如果在imagine那个数据上训练得到一个模型啊,其实是能够很轻松的把它迁移到一个新的任务上面。

它嗯就是说你如果一个你在imagine的就是呃数据上训练得到一个pretrain的一个model预训练的模型。就是说在这个我们这个模型在imagineate数据上训练好了,这叫运行的模型。

那么这个运行的模型其实可以很好的把它进行一个微调,或者说通过迁移学习的方法,让它适应到就是说转转到一个新的一个场景上。比如说我们右边这张图。

就是说原始有一个imagine的就在imag上训练的一个CNN的一个同样分类的网络。那么由于呢这个原始的这个imagineimagine数据集啊,这个数据量非常多,千万级别的一一个数据量。

就能够让我们这个模型,它的一些参数啊,学习的非常好。那么其实这个参数啊,比如说浅层的这些卷积啊,它能够很就是学会到比如说提取一些人的这种什么头发,或者说一些皮肤一些边缘信息。

那么这个其实非常有意义的一些参数。这个参数呢,我们其实可以直接把它用在我们一些新的任务上。怎么用呢?我们就是把这个训练好的模型的参数,用来我们作为我们一个。新任务的一个参数的初始化。

比如说我们这个地方是想识别一个呃艺术化里面的呃人,对吧?那么我们就可以以这种训练好的C嗯这个嗯CN的网络的参数作为我们这个下面这个网络的一个呃参数的初始化。大家看一看一下,就是说。

其实这两个网络它的网络结构是不一样的对吧?上面的网络是分类,下面的网络是一个物体检测。其实呃它有一些相同的点,对吧?前面这些C。这些这些层啊这些层就是从从这儿到这儿这些层这些参数都可以进行复用的。

都可以进行复用的,甚至到这种嗯全连阶层啊,这些参数都可以进行复用的。也就是说这些参数啊,我们都可以直接把它就是说在这个新新任务上作为一个参数的初始化。这个初始化之后呢,我们再从这个初始化的这个点。

在嗯继续对我们的参数进行微调,用这个新嗯就是说嗯新tsaskk,就是说我们这个这个嗯新的任务的一个训练方法来对这个参数进行微调。那么这就是迁移学习思路,这就是说用已有的一个训练的模型的参数进行初始化。

然后进行一个微调的。那么迁移学习呢其实也是深度学习,能够嗯广泛发展的一个或者说广泛应用的一个最重要一点嘛。因为它其实呃减少了很多不必要的一些因素,或者减少了很多的成本。首先呢呃如果我们原始就是说从。

训练得到,比如说我们这个地方是对艺术艺术艺术画里面的人体的进行检测。可能你完完完全全训练得到一个很好的模型,你有可能需要。10K比如说是10K的图片,就是1万张。但是你如果。

从imagnet数据集上做一个预训练,就是说做一个牵性学习的,可能你的一个图片的数量呢就只需要2K。就是说这个参数啊,它是一个初始化的过程。它假如你是从头训练的,那么它可能就需要有更多的图片。

就是更多的一个嗯这种艺术照的一些标注数据啊来来训练得到一个参数。那么你如果直接从这个预训练这个参数进行初始化呢,其实是很好的一种方式啊,就是说它已经这些参数啊。

在之前嗯这种imag数据集上已经训练的非常好了。对,就是说它减少了新任务的一个数据的要求,特别是数量,就是说标注数据,特别是标注数据。那么这个标注数据怎么这个标注数据就是钱啊,对吧?你标注的越多。

它本来就成本越大。一般情况下,这种分类的一个标注啊,可能是一毛钱一张这种物体检测,比如说要标框啊,这个可能就是嗯几毛钱4到5毛1张了,这个成本很高的对。其次呢它还减少了我们新兴任务的一个训练时间,对吧?

毕竟我们这个数据量少了,它这个训练时间少了。其次呢这个参数初始化其实是提供了一个很好的一个参数的初始化的位置,其实也是对我们模型的收敛是有帮助的。第三个呢就是说提高了新任务的精度。

因为我们原始的这个imagine的训练好的预训练这个模型啊,其实它的一些参数啊都都是挺有意义的。比如说第一层是能够提取到一些卷积,就是图片的一个呃一些角点啊或者说一些边缘。

后面层能够提取到一些呃物体的形状啊,对吧?我们直接把这些参数在这个地方复用一下,其实是很大程度上嗯就是说让我们模型就是说在这个这个模型在新新任务上,它的精度会更高的,这个是肯定的。嗯。

那么大家就是说也可以对比,就是现在有一些研究,就是说我们如果不做预训练。如果不做预预训练和直接做预训练啊,这个就是说有一些相应的论文,就是有一些相应论文都是可以说明这些点的对。

那么我们刚才讲的是这种图像分类,或者说嗯imaginenet数据集啊。那其实啊图像分类,或者说大家想自己构建一个图像分类的一个呃完成这个步骤呢,其实是需要这几个步骤的。首先呢你要确定一个网络结构。

然后呢确定一个数据扩存方法,啊,这个点我刚才没讲啊,首先这个网络结构呢,你其实就是嗯全卷积层池化层和全连接层,对吧?就可以构建一个网络结构。那么你具体的呢可以把卷积层全池化层进行一个交替,对吧?

比如说我们嗯有卷积层一卷嗯池化层一卷积层2、池化层2,然后最最后得到一个全链阶层。你中间也可以把卷积层和池化层再多放几层都是可以的。这是我们的网络结构。

那么网络结构呢也是计算机视觉里面比较建议大家比较就是着重学习一下了。比如说我们比较典型的有alexnet,对吧?alexnet,然后嗯们还有这种VGG对吧?VGG还有这种参叉网络,对吧?

resonnet。还有比如我们现在的eate,对吧?它都是非常有效的,就是说非常有效的。就是说它这种网络结构的一些改进,不只是这种网络层的一些改进。比如说在一些网络层的连接,有一些跳转啊。

或者说有一些特定的嗯卷集和者这些设计啊都是非常值得学习的。那么学习计算机视觉或者学习深度学习,有很大一部分知识点,就看一下这是网络它的是怎么发展的,怎么逐步逐步发发展到现有的一些比较先进的网络的结构。

啊,那么大家需要注意点,就是说这些网络的发展啊,其实是伴随着我们的一个在imagineate上分类精度越来越高的啊,这些网络结构都是呃在imagineate数据集上进行一个具体验证的。其次呃这是第一点。

就是确定我们的网络模型结构。第二点呢就是确定我们的数据扩存方法。对就是说da datata augmentation,对吧?数据扩方法其实是这样的,就是说嗯比如我们拿这张图片给你啊。

就是说这个地方是一张猫咪的图片。那么其实这样是这样的,就是说呃一张图片呢,对于一张图片来说,我们不管是对张这张猫咪进行一个翻转旋转还是做一些加噪音还是把它进行一个。把它做一个镜像,其实都不影响。

这就是一只11111个猫咪,对吧?比如说我们把这个图片把它抠抠出来,把这随机裁剪一半。比如说把它翻转一下,都不影响它猫咪的一个标签。数据扩增呢就是这个意思,就是说我们如何对这个数据样本进行一个变换。

这种变化呢并不影响这个最重的标签。对,当然啊这种数据扩存方法也是一种正则化方法,也是在深度学习里面必须要有的。其次呢你确定一下我们的训练方法,比如说一般的我们就用这种嗯随机急速下降,对吧?

然后再再加上这种嗯正常传播反向传播就可以嗯进行训练了。那么需要注意的是啊,就是说我们深度学习啊,现有的一些深度学习框架,比如说tenorflow。或者托耳其啊。

其实都是帮我们包装好了这种是前向传播反向传播的一些方法的。就是说这种梯度计算都是帮我们计算好了。那么我们给大家看个例子,就是说当我们输入一张图片的时候,这些嗯卷卷接盒,其实是对我们这些具体的一些。

比如说对这些像素进行操作的。然后最终得到一个输出对吧?这这项传播,那么反向传播这个呢其实是根这个输出,比如假如这个输出就是我们一个类别动物的类别。

这个呢是和具体的就是说我们输出的一个output和最终的一个标签,然后它们之间计算一个损失函数计算一个not function。然后根据这个呃损失函数呢,然后进行一个误差反传,误差反传呢。

它就会就是说根据一个类别,它网络能够学习到哎。就是在这个区域,这个猫咪它是呃嗯就是呃存在的,或者说在这个像素,就是说猫咪是处于这个像素,其实这是能学到的。

这个呢就是一个呃嗯就是说也叫这个嗯gradient这种camera吧。对,或者说叫梯度热力图,就是说它其实反向传播啊,其实也不是说完完全全没办法解释,它都是学习到的有有具体的一些信息的对。

如果如果大家感兴趣呢,大家可以客户查一下,就叫一个CAM吧。CAM你直接搜一下gradient,然后加加1个CAM就可以搜一些相应的论文。呃,有同学说老师建议学哪一个框架。

其实呃现在是tenflow也比较好的,tenflow现在有2。0了,你它现在flow有1。0,还有呃2。0呢。现在就是说呃还有拍型嘛,现在主流就是嗯这两种框架嘛,主流就是两种框架。嗯。

其实这两种都还挺好的,都挺好的,就是用途都挺广泛的。如果你在工业界里面呢,现在可能用tenflow会稍微多一点。如果在学术界呢这个拍al稍微说多一点。对,我是建议大家都掌握一下嘛。其实这两种。

其实现其实现有的一些深度学习框架都比较类似的,都比较类似,你可以嗯稍微了解一下。因为他们一些语法都是各自在各自互相抄袭啊,各自在相互吸收。对嗯,所以他们的一些语法都是现现有都比较类似的对。

那么这是我们前面的三分三部分,嗯,大家有问题吗?呃,如果有问题呢,可以在我们现在沟通一下啊。对,我们就接下来讲我们第四部分一个一些具体的一些视觉竞赛的一些案例啊。

然后这个地方呢会讲嗯半个小时到一个小时吧。对,大家还有问题吗?嗯,我们稍微休休息休息一会儿啊。休息休息一两分钟,休息两分钟,喝口水。我们休息到呃休息休息两分钟嘛,休息两分钟嘛。休息两分钟啊。嗯。

大家还有问题吗?不管是嗯学习的,或者说我们竞赛相关的都可以啊,都都可以的。都可以问的对呃,其实嗯深度学习的一个发展还是很快的。现在嗯现在国内也有很多的,比如说华为、华为、旷世。呃。

然后百度都有自己的一些深度学习框架,都是挺值得学习的。因为现在嗯毕竟中美关系不太好嘛,所以现在嗯国内的一些很多公司啊都在发展自己的一个深度学习框架,嗯,也是比较值得学习的。都是挺值得学习的。

但是我还是建议你学习一下tenflowow和拍特去吧。这两个可能就是说找工作啊,你你就是以后都会用用这种比较多一些。呃,有同学说啊,老师有关关注过那个黑色肿瘤那个比赛吗?有什么提分建议啊,不好意思啊。

我没我最近没看那个比赛,我是前前一段时间参加那个小麦赛呢,然后没没没看这个黑色肿瘤那个比赛。我前段时间看到个小麦赛去了。黑色肿瘤那个也是物体检测吗?嗯,我没我没我没打开那个比赛。对。不好意思。嗯。

那么我们就继续啊继续然后继续讲的话,大家如果有问题呢也继续提问啊,嗯这个都是okK的啊,那么我们接下来就看我们一些具体的比赛案例的解析啊,这一部分可能是大家比较感兴趣的。

那么首先来看第一个第一场比赛,呃,这场比赛呢也是谷歌提出来的啊,谷歌嗯不知道大家知道我们之前就是说应该这场比赛是在2018年,2018年呢,谷歌弄了一个叫呃手绘的你你画我猜的一个涂鸦呃。

这个涂鸦呢其实本质上是谷歌的一个网页啊,这个谷歌它的网页,然后他就是说让让所有的用户啊,全球的所有的用户,比如说他给出一个蜜蜂。比如说他呃这个网页啊,就是说。给出一个关键字,然后让让所有的用户啊。

全球所有的用户用鼠标绘制出这个密封出来。然后呢,其实这个游戏的规则就是说你想你必须要识就是画出一个让AI能识别出来这个具体是密封的这种图像,就是说你一定要画出嗯这种就是说能够让AI学习的。呃,然后呢。

这个比赛最开始这个游戏就是说看谁画出来的呃就是说最像就是说看谁画的图像啊,就是说能够让AI识别的最多。然后呢,通过这个网页啊,谷歌收集得到了全球5000万张这种嗯用户的涂鸦。呃。

然后呢这个比赛就是说对手绘的涂鸦进行分类。那么这个比赛呢,它这个赛题的数据集是全球嗯几十个国家5000万张啊,这个地方数量级5000万张,总共340类的一个涂鸦的一个呃就是说一个呃数据。

然后需要用就是说所这个也是在ca上的,就是说需要我们的参赛选手,对手绘的涂鸦进行一个分类,也就是说给定一个手绘的,比如说我们这个地方给大家画一个,比如说给定一个手绘的一个图像,给定一个手绘图像。

比如我们画一个效脸,然后呢,你需要构建一个模型识别出这个图像,它到底是哎是不是一个person,对吧?就是说这个地方有很多类别,这个地方有有动物啊,有一些人啊,或者说椅子啊,那么这个赛题的难点是这样。

就是说它的一个数据量实在是太大,这个大到什么程度呢?它比imagineate数据集都大imagineate数据集是1000多万,这个数据集,这个比赛数据集是5000多万。

嗯这个然后呢这个是你如果从头训练,其实这个周期是很长的,周期特别长。因为这个数据集啊实在是太大太大了。当时啊在当时嗯你基本上如果没有4个4块。1080钛基本上玩不转基本上玩不转,就是最低的一个配置。

是4块1080钛。那么这个原始的图像是一个jason格式的,是一个鼠标的一个手绘的轨迹。就是呃他把一些用用户的一个鼠标的一个轨迹,通过一些鼠标点的一个形式存在这个jason里面,然后需要注意的是。

原始的尺寸是512的。唉,这个也是一个点,对吧?我们原始imagine的数据集,它的一个图像尺寸是24乘24的。这个地方它的一个图像尺寸既然比我们这个呃imagineate数据集的一个图像的尺寸更大。

那么这个也会导致它它的一个计算量更大。本来你的图片数量就更多,再接上你的图片尺寸更大。所以说这个比赛应该是很烧机器的一个图像分类的比赛。那么我们呢再来看一看这个比赛的一个具体的。呃。

一个嗯解题流程或者怎么样的啊。首先呢想要跟大家说这样的一个点,就是说大家拿到一个计算机视觉的比赛,或者说任何相关的1个KX比赛,你需要这样想,或者说我推荐你这样想。嗯。

首先呢我们这个谷歌这个手呃这个呃这种涂鸦这个识别比赛,它是一个很典型的一个同样分类的比赛,也就是说输入一张图片,我们需要构建一个CNN模型,然后识别出一个具体的类别,这个类别呢就是从340类里面挑一类。

对吧?那么这个呢你如果是识别就是说你这个流程你都能能理解通,那么很好。那么如果你对这个比赛的一个流程你都理解不通,那么我建议你以这样一个思路来理解。首先呢你是需要弄懂这个比赛的数据是什么?

比如说我们这个比赛的一个数据,原始数据是一个阶层数据,那么你就要弄清楚,哎这个阶算数据是怎么进行读取的,怎么把这个阶算数据转成一个图片的。其次呢这个赛题的数据是如何进行分析的。

并不是说呃并不是说呃非结构化的一些数据,或者说图像的数据就没办法进行分析。碰巧的是,就是在这个比赛啊,数据分析非常有用的,待会儿也给大家讲到啊,待会儿给大家讲一下。其次呢就是赛题数据怎么进行建模的。

我们认用什么模型,对吧?毕竟在imaginenet上有很多域性的模型有几十种,比如比如说当时应该有40多种,40加种。40加个CN模型,我们到底选择哪一个呢?

然后接下来就是说如如果我们训练得得到一个模型,它的精度不高。比如说我们提交的一个分数不是很好,那么我们怎么办呢?假如我们。在训练的过程中发现了我们模型有过拟合的情况,我们怎么怎么办呢?

以及我们怎么构造一些新的特征,或者说如何做进行改进呢?如果你是新手啊,如果你是第第一次或者说嗯参加KO或者说不太熟悉KO,我建议你以这种思路来学习。就是说你把这个赛题的背景数据模型改进方向。

你都想的清清楚楚的。你然后就不断的去尝试。你如果这些这些问题你都没想清楚,其实你就呃还是缺少了一点,或者说呃还是缺认点东西。为什么这么说呢?其实在这个比赛里面有很多细节。

首先呢是就是那原始的一个原始的这个数据是jason的数据。那么首先第一步呢,我们需要把这个jason转成一个图片。那么怎么转成图片呢?其实直接用open CV的一个画图函数就可以啊。

这个是这个是用画的也可以用open画或者都是可以的。那么在这个画图的过程中啊,其实是有一个知识点,就是说大家可看这个图片啊,它的线条是不同颜色的,它中不同颜色着色的,为什么呢?因为这是不同笔画的。

就是有可能比如我们画一张图,我这个地方也是一个手绘笔啊,其实我在画一个笑脸的时候,它是几笔完成了一笔2笔3笔4笔。那么我其实是可以虽然说它原始的图片就是三三个轨迹,你把三个轨迹。

那么其实我可以把这不同的轨迹编辑成,或者说把它绘成不同颜色。这个为什么要把它绘成绘制成不同的颜色呢,其实是这样的,它原始的数据啊就是一个son的数据。

它原始son的数据你如果直接把它画图呢其实是得到一个。12乘512的1个灰度图像,也就是512乘512乘1的这个图像。但是呢大家也知道。我们现有的一些预训练模型,它输入的是什么?它输入的是一个彩色图像。

比如说我们典型的一个imagine的个VGG模型,它其实输入的是24乘24乘3。通道数是三的,不是这一个的对吧?那么我们如何把这个。这个就是说在通道书面上面做一些文章呢,其实我待会儿也会以讲到。

其实一个很简单的一个方法就是说我能不能。在不同的通道数上面,比如说在第一个通道上面,我们画一个大的,比如说我们在第一个通道,我稍微给大家画一下,演示一下。在第一个通道数上面,我们画一个比较大的圆点。

在第二个通道上面,我们稍微小一点,稍微小一点。然后在第三个通道上面,我们去画一个最小的圆理,对吧?我们就是手动实现了一个嗯图像金字塔,对吧?或者说在不同的通道处上面。

我们用不同的颜色来表示不同的这个笔画。那么为什么这么做呢?这个就是我们在输入的空间上做一些文章,让我们的这个输入,其实既能满足我们预计模型的一个三通道的要求。

也能够保证我们这个输入的通道是包含足够的这个信息的。因为它原始的只有单通道,你直接把它进行输入是不够的。这是第一步,就是我们把数数据转成这个图像。第二步是构建我们的图像分类模型,这个又尤为关键的。

因为我们原始的数据集是5000。Wan。乘以512乘以512乘以1。所以它原始的数据机非常大。甚至大到什么程度呢?它是基本上是4个Email内的数据集啊,4个Email内的数据集的一个大小。

也就是说你如果想要做这个比赛,其实你基本上就能训练了4个immail之内的数学器,四个immail之内这模型啊,那么就会导致你在这个地方构建一个突然分类模型的时候,这个模型就尤为重要。

这个模型能不能太复杂。可以复杂。但是如果模型越复杂,你的训练的时间越长。如果这个模型太简单,那么你的模型的精度上限也有有限。所以说这个地方是在一个精度和一个速度上面训练。

特别是一个训练周期和一个精度上面做一个折中。对,做一个折中。那么需要注意的是啊,这个地方其实我这个地方写这几行代码是kis的啊ks就是我们用kis定义了一个呃就是说mobil net。然后这个地方呢。

其实我们先这个地方卖关的。其实这个图像的尺寸啊,其实是可变的。或者说我们在不同的阶段其实是不一样的。然后这个地这个地方想说的一点就是说在构建这个图像分类的模型的时候,并不是说模型越大越好啊。

模型越大过礼盒的可能性越大,需要训练的一个时间越长。但是呢由于我们做比赛其实是时间有限的,也也而且机器有限。那么这是构建我们的分类模型啊,比如说我们直接用cars里面的mobil match。

然后用交叉熵,然后做损略函数,然后就够了。那需要注意的是,你如果在做比赛的过程中啊,我还是建议你加入这个eartop,然后加入这个呃这种学习力的筛选,加入到这里面。

然后这样呢其实是对你的一个呃就是说训练还是有帮助的。因为这种eartop能够有效的停止,就是说防止你的模型进行过拟合。对。而第三步呢,其实啊第四步啊其实是可以就是我刚才前天讲的。

就是说我们还可以加一些数据扩存方法。其实其实啊这个数据扩存方法不不仅仅是对啊啊我们的样本空间做,其实对这个线条都可以做的。比如说我们对这个线条嗯做一些强弱的变化,对吧?我们数据扩存方法呢。

它嗯其实啊在这个比赛里面。在这个比赛里面啊,其实你可以做这种水平翻转啊,可以做这种水平翻转,就是左右翻转,但是不能做垂直翻转啊,一般不不做垂直翻转。因为因为嗯也没有人去把这个车倒着画,对吧?

把这个车轱辘画在上面吧,很少吧。对呃,也就是说不同的数据库的方法啊,需要根据你的任务进行筛选的。在有些场景下,数据扩存方法,比如说水平翻转垂直翻转是都可以用的。但是在有些任务上面,它并不是说都能用的。

有一些任务它就不能用翻转。有一些任务它能用翻转,这个是看具体的一个载题。其次呢你可以在做数据扩增的时候,加入一个笔笔画的强弱的改变,或者说丢失一些线条,对吧?丢失一些线条,或者说加入一些颜色。

不同的笔用不同的一个颜色来代替。其次呢我们可以加入一个旋转,比如说旋转嗯从5到10的一个角度,或者加入一加入一个缩放,随机缩放都是可以的。这是第四步。那么其实完成这四步。

其实都是可以完成一个比较好的分数。但是呢你都是我刚才一直没有回答这个问题,就是我们数据集特别大,我们怎么办?其实是这样的。就看右边这张表,因为我们原始的一个图片的尺寸是512乘以512的。

你如果嗯嗯5125乘以512,你如果直接从512乘512进行一个训练,不管你是就是说呃从从预训练模型加载,然后训练512乘以512的。很很很就说很难很难达到一个on嗯b best fit。

一直是处于这种underfi的一个过程。为什么这么说呢?因为这个图片的尺寸实在是太大了。s尺寸是太太大了。那么我们其实是可以这样的,就是说我们先把这个图片的尺寸缩小到64乘64。先。

把这个模型在这个上面训练。然后如果是嗯在这个上面我还是用这种嗯嗯,比如说我们规定这个CN模型就是嗯resson18。比如我们规定它都resonnet18。都是归运它是18层的残障网。

然后我们先把这个18层的残产网在这个64乘64的图片尺寸上训练好。然后呢,其实在这个在这种图片的尺寸下,它的一个进度啊就是top3的一个进度是0。85。然后这个训练时间只有8小时。然后呢。

我们把这个训练好的这个这个模型啊再放到这儿做一个训练。啊,放到这儿做做一个微调,就是说我们把这个64乘64的一个嗯网络的一个尺寸放到这一步。就是说我们把一个图片的一个尺寸扩大一倍。

然后呢再继续训练我们的呃我们的模型。这个地方呢你有可能会问老师,我们的一个呃网络怎么能够接受不同输入尺寸的一个图片呢?其实你可以改一下,最后就是说全连接层之前的那个铺ing层。

你可以把它改成这个动态池化的。然后就会嗯最终池化得到的一个呃图片的一呃就会维度啊,都是一样的,就就就不会存在这种就就就就是可以容忍不同尺寸的一个图片的输入了。对,这是一个点。嗯,就是。

如果我们把这个图片的尺寸把它放大一倍,然后我们的精度会更升高一些。然后我们的训练时间其实只需要16小时,那么需要注意的是,假如说我们不不不做这个64乘64的一个训练,然后然后把它在这个上面做微调。

可能你这个地方要直接从128乘128训练,这个地方可能要需要220加个小时,24加小时。因为。或者说更长更长或者34加小时。因为你这个地方其实它是在小的一个数据体上做一个很好的礼合。

然后在这个地方做一个。然后我们可以继续做到256乘256,继续到512乘512需要注意的是你图片尺寸越大,精度上限会越高,精度上限越高。但是训练带来的训练周期也会越长,需要注意的是,有同学说。

老师我们不能直接从256乘256训练嘛,可以也可以,但是这在做这个比赛的过程中,一般大部分显什吧,都是逐渐的增加我们图片的尺寸。

这样呢就是嗯就是模型都是不断的过不断的对我们的图片的尺寸得到一个很好的礼盒。然后最终到我们原始的尺寸,这个精度就是最高的。如果老师有同学说老师我们能不能直接从512乘52训练。

其实我可以很负责任的告诉你,你如果就直接从imagine预训练好的一个尺寸 imagineagine预训练好的一个权重,然后把它做一个初始化到512。乘为2这个尺寸来进行一个训练啊。

这个精度肯定是到不了0。95的,可能只有0。92到0。93左右。所以说你如果不做这种情况呢,可能你的模型根本没办法在这个很大的一个图像的尺寸下做。一个训练,因为这个训练周期实在太长。其次。

由于这个图片尺寸太大了,导致你的模型很容易过滤合。很容易过滤好的。对呃,就是说在做这个比赛的时候,们由于这个赛题数据很大,那么我们需要找一些方法,比如说我们逐渐逐次训练,逐渐增加我们图片的尺寸。

这样呢就可以训练得到一个比较好的一个模型。那么top选手的一个解决方案,那其实也是传统的,就是我们训练得到多个模型,也是讲到了。我们也是用到我们刚才讲的,就是说呃逐步扩大我们这个图片的尺寸来做的。

然后呢分步骤训练。然后呢其实在这个比赛里面也可以就是我们刚才讲了需要把这个图片把这个灰度信息啊进行一个很好的一个编码。因为我们这个嗯原始的一个就是说预训练的一些模型啊,都是接受这个RGB空间的一个输入。

所以说你如果只输入其中一个通道啊,还是还是比较浪费。就是说我们的就是说还有一些信息没有提取到。而且你可以在里面加入一些旋转mix up或者 out这种高阶的呃数据库的方法。那么需要注意的是啊。

这个地方有一个tck,就是说做这个比赛的时候,就是嗯啊这个地方应该是应该是这个地方是三这个地方是4对吧?在做这个比赛的时候,其实嗯第一名其实发现了一个trick就是说。嗯,他发现啊那第一名其实很忌贼。

他就是说哎,由于我们这个测试集啊刚好是340。乘以某个倍数,就是说样本刚好是这个。就是说每一类样本的一个数量完完全相同的。就是说这个参赛选手第一名啊正好发现了这个一点。那么他就通过一些类别平均啊。

就是说把我们的预测结果。把它平均到这340类里面的。然么然后呢,这个是很大的提分点。这个呢就是它对于我们的赛T的理解啊,特别是对这个预测数据进行理解之后,然后得到的一个结果。啊。

那么这个链接呢就是我们刚才嗯一直给大家讲的一些解决方案,特别是第四个思度的一个第一名解讯链接啊。如果大家课后感兴趣啊,可以建议阅读一下。呃,这是我们第一个比赛。那么第二个比赛呢。

可能也是前一段时间就是呃疫情期间3月份的一个孟加拉呃语的一个手呃字母识别的一个比赛。那么这个比赛呢是需要构建一个孟加拉字母的识别模型。这个呢虽然说也是一个图像分类的比赛啊。

我们还是以一些典型的图像分类的比赛给大家讲一下。然后呢,这个赛题任务是时间孟加拉那个手写字母,它是需要识别这个呃这个孟加拉手写个字母的这个什么词根词音还是什么就是三个类别,就是说你同一个字同一个字母啊。

有三个标签有三个标签需要进行识别的。然后不同的标签,我们分别把它叫G啊,分别把它叫GVC好吧,嗯,GVC简化一下。然后在G类里面,它其实有168个取值,V类里面有11个取值C类里面有7个取值。

也就是说同一个手写同任意一个任意一个手写字符分别有GVC3个类别,这三个类别是相互呃相互区分的啊,不是说呃嗯就是说它是一个多标签分类的一个问题,就是说有三个标签需要预测。

那么需要注意的是这个就是有一个点,就是说由于我们赛题数据是有三个。类别组成。那么大家可以算一下这个类别空间是多少。类别空间是168乘以11乘以7,对吧?这应该是有。呃,1万多个类别组合。

就是说最终的一个记忆。VC1个组合的,它的组合情况有1万多种,这个是非常非常多的一个类比组合。但是呢其实是这样的,我我们假设这个类别组合就是说这种GVC的组合情况有1500多种。

但是呢只在训练级里面出现了一其中一部分。就是说在训练级里面只出现了其中一部分,这是赛迪方他就是说弄的。然后我待会也会讲一下赛迪方为什么要这么弄。他就是说在1500多种里面,1500多个GVC组合里面。

就是1500多个字符里面啊,1500个多个字符嗯,字符里面,它只在训练级里面出现了1293个,还有200多个,还有207个字符在训练级里面没有出现,也就是导致我们需要用。

一种我们训练级里面的GVC的一个呃排列顺序去去预测一下我们之前训练集里面都没见过的这种顺序,对吧?那么呃这个举办方他非常鸡贼,鸡贼到什么程度呢?它的一个测试级的A榜,开个比赛一般都分分AB榜嘛,对吧?

AB榜A榜就是公开的榜单就是我们提交就有答案的,提交就有答案的。它的A榜正好是1293,就是考和训练级一致的这个类别。B榜就是我们私有榜单是207种,就是说新的一些类别。那么就导这呃很多人就翻车了。

很多人啊就是说由于他的B膀是包含了一些其他的一些字符的,它就是这个举办方就是这样设计的。我设计一个比赛,让大家能够。用一些已知的一些字符去预测一下未知的字符。就是说我们在这个样本空间,就在训拟镜里面啊。

记得所有记的168个取值。所有V的1611个取值,以及所有C的11个取值,你都见过。但是呢我在测试机里面会出现一些新的GVC的这种组合,就会导致你的模型没办法识识别好。这个比赛其实是翻车非常多的。

翻车非常多的。因为为什么这么说呢?因为。呃,我待会儿我也跟他讲,就是说因为我们这种测试集里面只出现了其中一部分,只出现了我们这种GVC这三个类别的一部分的组合。还有很多组合,还有200多这种组合。

其实是在。在我们训练级里面没见过了,但是这个举办方非常鸡贼啊,他在A榜里面就就划分了和训练机一致的这种类别组合,让很多人就误以为哎,是不是B榜里面就没有其他的一些新的GVC的组合。

那么我们怎么解决这个比赛呢?其实解决这个比赛是这样的。它的赛题的一个核心任务,就是说我们如何用有效的或者有限的一个类别样本训练得到一个模型,能够对一些没有见过的一些字符。比如说新的一些GVC的组合。

需要注意的是啊,这个地方不是说你之前的G你没见过没见过之前的V你没见过你之前的C没见过,只不过这个地方是把GVC重新组合了一遍,得到一个新的字符。就是说相当于我们部首偏旁。重新组合得了一个新词。

你就不认识了。但是这些部首啊嗯比如说草字头之前你都见过,但是你把它弄成一个新字,你都没见过。那就是说我们新的,比如说我们训练机里面只有呃1000。1500里面只有1300,你见过。

还有200多个你没见过。那么其实这个比赛就要考考验一下你对这些新的200多个的一个字符,你没有有没有很好的识别能力。对,这个比赛是这样的。那么我们怎么做呢?其实是这样。你如果知道这个赛题是这样的。

那么其实很很显然就是有两种方法。第一种方法,我们把测试集的样本区分为见过的样本和没有见过的样本把它分开来做,就是我们之前在训练级里面的。见过的一些样本send image。

啊s send chart吧恰见过这些字符和ons chart就是我们之前没有见过的字符,把它分开来一做,这个是一种方法。第二种方法是我们通过数据扩的方法来生成训练集里面不存的样本。

这个其实是用到了一个额外的知识。由于这是一个孟加拉嗯手写字体识别。其实一些呃字体啊都是嗯TTEFITTC格式,就是种这种呃电子的字符啊,都是可以用这种字符的一个文件来生成。

就是说它原始的只有1300多个呃字母,但是我们可以这种可以用这种呃比如说某个字体文件,比如说孟加拉语的字体文件,我们可以生成剩余的多个剩余的200多个字符,这是两种方法。

然后我们再来看一看这分别是怎么做的。嗯,第一种方法就是把我们的训练集分成我们见过的样本,还没有见过样本。这是第一种。第一种方法其实它是这样的。呃。第一种方法就是说它首先呢用一个archerface。

它不是用coursese enpy啊,不是用经常熵。它用archer来训练训练得到一个初步的模型。这个模型为什么用archerface呢?就是说它是想让我们。美类的一个。呃。

它的一个feature map或者说每类样本的一个语音空间尽可能进。这样呢它提取得到了我们训练级里面的1300多个字符的一个feature map,就是它的一个最终的一个像素中心吧,或者是距离中心。

直接把它平均得到一个距离中心。这一步呢就是训练得到第一个模型,就是得到我们训练机里面每一个样本,我们已知每个样本的一个距离中心。第二步,对我们待预测就是测试机里面的样本。做这样一个预测。如果我们。

得到一个新的样本,我看一下这个新的样本和我们1300多个字符,它的一个。就是这个图片也通过这个网络计算一个fe map,然后看一下这个图片和1300多个已知字符的个距离。比如说这个距离是大于某个值的。

我们就认为哎,我之前没见过你,对吧?因为你和我们之前见过的一些字符长得不太一样,距离太远了。然后这是就是说我们就可以把它识别成我们一个没有见过的字符。如果我们这个我们新来的一个样本啊。

和我们之前的一些31300多个字符的距离很近,那么我们就认为它是我们之前见过的一个字符。那么我们就把它分成两个模型。那么对于我们已经见过的一个字符,就是我们这个是训练级里面已经见过的一个字符。

那么我们直接用直接就是相当于不管不管这个有没有其他的情况,就直接正常的训练就够了。那么大家比较关注的,就是说哎这两个模型有什么区别啊?其实是这样的。这两个模型本质都是一样的,本质上都是一样的。

只不过这个模型是underfi的,就是欠拟合的。这个模型是欠离合的。在去年级上签名后的,大家思考一下这个就是说我们原始的样本,一个字符不是有GVC吗?😡,不是有GVC3个类别嘛?如果一个模型是欠拟合的。

这个CNN模式是欠拟合的,它其实是同时对GVC做一个独立独立的预测,就是相当于它并没有学习到每个G类V类的一个组合关系。这是这是在欠拟合的阶段。如果我们模型就是说精度已经很高了,或者说它不是欠拟合了。

其实它其实现在已经学习到了GVC3种类别的一个组合关系呢。因为它其实深度学习模型,它的一个能力太强了,所以说它导致它就能学会。哎,比如说这个G取某个值的时候,这个V取什么值。所以。这是两个不同的。

你可以认为它是不同阶段的模型。比如说这个模型嗯对这种没没有见过的,就是未知的一个字符预测的模型,可能这个只是训练了5个一po。这个模型呢就训练了10个,就训练多一会儿,就是说这个模型是一个嵌礼合的。

那么就会尽可能的让这个铅礼盒的模型对这个GVC3个类别分开,就尽可能的做一个独立的预测。这个模型呢,就是把它们做一个组合的预测,然后做一个融合,就是嗯不是做融合吧,就是分分成不同的样本嘛。

然后把它的结果把它拼接起来就够了。然后这是第一种思路。然后第二种思路呢,其实我就是我刚才讲过的。我们通过字体文件生成一个微没有见过的样本。

那么这个呢就是我们现有的一些不管孟加拉语还是它有这种TTF或TTC的这种电子的呃字体啊,其实是可以生成这种字符的。然后呢我们可以比如说我们原始的生成字符,其实和我们的赛题不太一样。

这个原始的赛题其实是一种手写的,其实这种手写的。那么其实还可以加入这种风格牵移的。比如说我们在CVG班里面讲的这种对吧?风格迁移的模型,其实是能够把一个生就是说我们这种。

生成生成的就是说呃这种比如说微微软雅黑的字体,通过这种风格迁移,把它迁移成一种手写的字体。这种手写的字题大家需要注意一下,为什么我们不不直接用这种嗯。呃,这种这种怎么为呃这种电子字体来训练呢?

其实这种电子字体和这个手呃这个手写字体是差的比较大的。因为在这个比赛里面,它其实是对手写孟加拉语做一个识别,所以说还是要做一一些处理的。那么这个风格迁移呢其实也是有现成的模型啊,直接用来用就行了。

然后我们训练得到这个风格迁移之后呢,就可以用这些字体文件生成,我们之前没有见过样本,然后通过风格迁移,得到一些新的样本,然后把这个样本呢加入到我们的训练集里面训练。然后就相当于我们只训练得到一个模型。

这个模型对我们的所有的样本一视同仁。不管你是之前出现过的,还是没有出现过的,我们直接做一个预测就够了。这是。呃,archerface是一个损失函数,嗯,archerface是一个损失函数,呃。

它是最早提提出在人脸识别里面的一个损失函数。嗯,对,嗯,你可以你可以搜搜搜搜索一下吧。因为我们这个地方课程内容比较多,没办法展开讲,它是尽可能的让我们的不同类别就是说距离比较远。

因为soft max它和这个呃步骤一不是提取特征。哦,这是方式。这个是方法2方法二就是和刚才的方法一不太一样,这是方法2。archface它和sof next不太一样。

arrcface它是尽可能的让不同类别,它的一个就是相隔的比较远。然后如果是用阿呃嗯翻翻翻过了啊,如果是用archrcface训练呢。那么就会导呃就会得到你不同类别的一个样本啊。

得到的一个feature map,它距离比较远,就相当于更加分散。对,就是说同类间隔的越近,不同类它们间隔的越远。嗯,对你可以搜索一下archface有相应等等文化公式。最开始是提出在呃人脸识别的。

现在也在一些呃图片分类里面被用到。呃,还有同学说步骤一提取的不是特征。呃,你说的是方法一的步骤一还是方法二的步骤一啊,这样。呃,方法一的步骤一提取的是图片特征嘛,中性特征是什么?嗯,其实这样的。

我们训练集它是总共有20万张图片,总共是1293个,1293个字符,1293个字符。然后我们可以提取一下。每个字符就是说每一类字符,1293类字符的一个特征的中心点。

就是相当于把所有同一类字符的一个feature map,它提取到的特征作为一个平均。就是你说的提取的特征,这个中心特征就是他们提取到的一个特征做一个平均就得到一个中心特征。对,很简单的。

就是说也不需要做聚类。对,是这个意思。啊,就是提取它的1个CNN中间中间层的一个非ature map就行了。嗯,对,那我们继续啊。然后这是这个比赛,然后就是说这个比赛还是挺有意思的,嗯。

就是呃还是挺考验就是说一些具体做的一些细节吧。然后如果你是按照刚才做的那样做的呢,其实这个比赛并不是很难对,并不是很难。那么我们看今天最后一个最后一个比赛比赛啊,最后一个比赛呢可能和前面的比赛不太一样。

那么这个比赛是一个嗯嗯landmark retrieve,就是地标检索,就是图像检索。这个比赛呢它是需要构建一个地标图像检索系统,这个就是一个以图搜图。就是我们用一个图片用图片搜索图片,我么给个例子啊。

输入一张图片,我们需要检索得到和它相同。就是说这个地方是包含相同地标图像。比如说是某个教堂,是某个呃这个地方应该是伦敦塔伦敦桥吧,还是伦敦塔的一个就是说它是需要你对输入一个图片进行一个检索。

这个地方给大家应该用用过或者说相相应的应用,对吧?这个可能是在百度识图或者说谷歌图像检索里面就有这种典典型的对吧?输入一张图片,我们检索得到相似的图片。

但是这个比赛呢可能是大家之前如果我没有做过这种图像检索呢,可能也就有一点难度。其实这个赛题它的一个数据量也是比较大的,总共应该是有100G还是300G的,然后这个数据的标签也比较多。

就是嗯也是一个就是说呃就是有地标有有几万个吧,地标有几万个,也是需要有有效的训练的。那么如果大家不知道这个比赛,其实或者说不知道图像检索,那么就会挺难的。但是呢如果你只知如果你知道图像检索的一些思路。

那么其实这个比赛并不难。对于一个图像检索啊,我们就是提取它一个特征。比如说提取它的一个非ature map。然后对这个图像进行去通过这个fe map进行一个索引。

然后对待检索的图片也提取一个fe map。然后翻算一下这个待检索的query的图像和图像数据库里面图像是不是就是在face map上面,它们之间的一个特征的一个相似度就够了。很简单。

你用这个速度就可以得到一个银牌,就基本上是特到前5%的一个呃成绩的,就基本上没有没有没有什么嗯特殊的技巧。对,然后右边的呢这个是一个前排选手,就是我们出一张图片,通过一个呃网络,然后还有一个赤化层。

这个池化层呢不一定是这个地方是一个广义规异化的石化层墙是嗯对max po进行改进的一个池化层,然后再加一个全连接层,然后再加上1个PCA的一个降维,再加上一个。呃嗯一些嗯检索方面的一些呃索引啊。

最终就可以得到。就基本上你如果做做的很简单,你只需要完成前面三步就可以得到一个透5%的一个成绩,就是一个银牌的成绩。那么很多同学不知道图像检索啊,我这个地方讲的稍微简单一点。就是说对于一张图像。

其实我们本质就是通过一张图像,把它抽取得到它的一个中间的一个特征。那么其实其实这个就是我们抽取一个非cha map。那么这个地方呢还有一些鲜验知识,就是说我们不仅是要抽取得到一个非圈 map啊。

我们还要把它进行一个有效的映射。那么大家也知道啊,在深度学习里面,还有。其他不很多不同的一些ping的方式。比如说max pullingingme pullingingsome pullinging。

那么这些不同的ping,其实呃大家可能在图像分类里面并没有什么区别。比如说用一般用种me pullinging比较多,或者用呃用这种max pullinging也可以。但是呢在图像分类图像检索里面。

这些ping会极大。嗯,有同学有同学问索引和检索是什么方式?呃,其实是这样的。呃,当我们提取完face map之后呢,我由于我们这个比赛的数据啊是非常大的。

就是有可能这个比赛的数据集的一个图像是100万张图片,100万张图片,对吧?然后假如说我们的faceion map是512。那么你的你如果再来一张图片,你其实是1乘512的1个。是1乘以512的1个呃。

总是写错了,512的1个向量,然后再100万的一个数据集来进行检索。这个其实是嗯时间复杂度很高的一个情况。那么我们能不能用一些特征压缩的情况。比如说我们把这个图图像的一个fe map做一个。这种压缩呢。

比如说把它聚首先做一个聚类,我们把它聚成N个类。比如说我们把它聚到呃1000个类里面,比如说聚到1000类里面。然后如果先检索呢,就相当于把也就是K嗯这种K面的方法,就是先在这个类里面先找大类。

再到大类里面找小类,这就是构建一个图片的索引。这个主要是用来做这种检索的加速的,主要做检索的加速的。然,这个是对一个特征索引的一个嗯加速的操作吧,就是做一个检索。嗯,做一个索引。

然后这个检索呢就是我们从一个query,然后具体计算这个过程。然后这个地方索引呢就是为了方便做这个特征的压缩啊和一些加速啊对。呃,那么在图像检索的过程中呢。

其实这个铺oling层对我们的这个检索的精度还是很有。很有影响的,大家可以体会一下啊,就是说不同的池化层,它关注的点不一样。比如说右边的这个图里面是一个最大的ping,就是max pullinging。

我把这个嗯它保留的一个位置把它圈出来。那么其实max pulling它比大家可以体会一下,为什么max pulling。它比这种min pulling更加适合用于,就是说在图像检索里面。

max pulling比min pulling更加适,为什么呢?因为图像检索它想找到的是。一些关键的点关键的点,它并不在意于这个区域整体的信息。它在意的是这个关键的一个位置是不是突出的。

所以说在图像检索里面,这个关用nex pulling,它能够最大程度的把这些关图像的一些关键的一些兴趣的一些点保留下来。嗯,如果用me pulling呢,反而是受到受到这种加权啊。

就最终没有把这种关键的一个信息保留下来。那么在图像检索里面还有很多的一些铺dding方法。比如说some pulling rem还有一种GEM这这些都是一些很就是说越往下是比较高级的一些铺ing方法。

然后也是对我们的检索的精度有一些嗯有一些嗯有一些影响嘛。但是嗯但是这些铺dding方法都很简单啊,都很简单,都不复杂,都不复杂。如果大家感兴趣呢,我会许会在直播群里面发一些链接啊,待会我会把这个比赛的。

把一个前拍的选手的链接发发出来,然后大家课后也可以看一下这个链接上面,其实讲的非常清楚。那么我们刚才讲的就是输入一张图片,我们通过一个网络结构。

然后通过一个这个地方计计算得到的这个feature map,然后在这个地方通过一个铺令层,然后得到一个最终的一个嗯就是比如说我们这个地方把它转成512,那么这个地方你可以用来做索引。

比如说也可以不做索引。如果不做索引呢,就是这种暴力检索用做KNN。然后呢,在图案检索里面呢,还有一些背景知识,或者说能够提分的点。比如我们。把一张输入的图片,比如说这是原始输入的图片,对吧?

我可以把这个输入的图片把它抠成不同的部分,然后进行检索吧,可以吧?这个其实叫。test time organization对吧?就是在测试集做做数据扩增。对吧这个也是可以的。

因为我如果这是做这种数据扩增,我们可以得到三个检索结果。然后最终我们可以把三个检索结果再进行一个嗯把它里面再选个最优的。其次呢我们可以把检索的结果,把它们就是说我们比如检索,比如说从512这个维度。

我们检索得到5张图片,就是5乘以512。对吧分别是5张图片,我们把这个检索得到的这个图像,把它进把它的特征进行一个平均。比如说把它平均到V2,再把这个。检索结果的维度啊,再继续进行查询。

这个操作叫query extension,叫这种扩展查询,或者说查询的这种扩展。就是说我们那种检索结果的平均再检索一次。然后这种呢其实是也是挺有效的,特别是在图像检索里面,其实是特别有效的一种方式。对。

这个也叫TTATTA对,然后呢,这个是在图像检索的一些流程啊,一些流程。然后呢,这是我们的一个三个比赛。那么其实这三个比赛不太一样,对吧?第一个比赛其实呃常嗯也是第一个比赛那个呃涂VR的一个比赛。

可能是需要大家如何解决精度和速度一个问题。第二个比赛是解决这个类别分布不一致的问题,三个比赛可能是需要大家知道这个图像检索的一个具体的一个路径的问题。那么需要注意的是啊,我们。

其实这不同比赛可能需要用到的一些模型都是差不多,毕竟这些些都是一些嗯在imagineation上预训练好的模型。但是呢它可能完成的具体操作是不一样的。我们再来回顾一下啊。

首先呢呃如果大家真的是想学习计算机试卷,其实深度学习基础是完成视觉赛析的必要条件,并不是说深度学习是完全是一个黑盒,它是有很多基础知识点是需要大家掌握的,也是必备的。这是第一个总结的。

第二个呢不同的载题有不同的数数据扩增方法啊,数据扩增方法,data augmentation就不同数据扩增方法,对吧打错了。好,然后呢不同的赛季有不同的训练方法,需要具体问题进行具体分析。

这个地方呢我给大家讲一下这个老图啊,这个老图是文达老师在呃它的一个li lips上的一个嗯workshop上讲的,就是说当我们训练一个模型的时候,我们优先是这样的,就是说当我们训练一个模型的时候。

我们可以看一下模型的在训练级上的一个精度是不是高的。我们如果模型在训练级上的一个精度,它的个损失都很高。那么我们就优先。在这种情况下,一般就是我们的模型都没训练好。那么我们这种更加强大的模型去训练。

如果我们的模型啊在训练级上的一个进度ok了,但是在测试机啊,这个地方是测试级第一位是从训练级里面划分了一部分测试级。但是在我们的啊啊不说错了,这个是验证级啊。

验证级纯DV这个地方从训练级里面划分一部分验证级,就是说我们的模型在训练级上的一个精度很高。但是在验证级上的一个精度不高不OK。那么这种情况下一般是。方差就是你的一个模型啊过滤合了。

那么你就要做一些政策化方法。比如说。嗯,数据扩单啊或者说振动化方法都是可以的。如果我们的模型在训练机上那个进度okK了,在验证级啊验证机上进度也O的。但是在这个地方这个地方啊sorry。

这个地方第一位呢这个地方是A榜的数据,这个地方是B绑的数据。如果你在最终的A榜的数据,你的一个精度不OK。那么在这种情况下,一般都是说你的一个验证级和A榜的数据,或者说你的验证级和最终的一个。哦。

测试级的一个分布不太一致。也就是说一般情况下,这个验证级是从训练级划分的。那么这种情况下,一般都是说训练级测试级的一个分布是不匹配的。那么我们能不能能够就是说找到一种数据库通方法。

或者是说用一种数据合成方法,能够把我们训练级的一个样本,把它调整成测试级呢。如果我们的模型在训练级上的进度OK,验证级上的进度OA版的精度OK,但是B版的精度不OK。

那么就是说明有可能你的模型就是过礼盒的一个验证级或者过礼盒的A榜都是有可能的。你同学说老师嗯,你也没用验证机进行调验证机进行训练,怎么过礼盒验证级呢?因为你在验证级或者A榜有一个打分的反馈。

其实你就有一个调参的过程呢,其实。你就是在过滤盒了。对,这是我们的一个总结啊,也是对大家学习的一个建议啊。那么我们再来展望一下。展望就是说第一个就是说视觉竞赛啊会越来越多,而且是越来越难。

那么这些竞赛也我相信啊也是越来越贴近我们的业务场景的难度会越来越大的,这个是肯定的。其次呢未来的很多的赛题啊,我相信是越来越多的是object detection和呃就物理检测和这种语分割的。

或者说多模态的赛题啊,不嗯这种图像分类的赛题啊会越来越少。因为它的难度会嗯就是说毕竟这个入门的一个人会更加多,这个门槛会降低一些。可能这个视觉赛题它的一个难度会越来越大。这是我们给大家总结的。

那么其实呢其实做开呢,我还是建议大家可以嗯报告班学习一下。在我们嗯7约在线呢,其实在嗯下周也就是呃嗯接下来的一周啊会。开一个开口竞赛实战的第二期这个班。

这个班呢会讲解一些结构化的CV还和NRP的一些比赛。也是我在讲,总共12次课啊,12次直播会讲解呃10多个比赛一些解决方案和它的一些解题的特点。那么这个嗯这个比这个班呢,其实也现在有一些优惠活动。

大家不用不嗯就是说如果想报名的,可以嗯就是说报名一下。嗯,然后这个比这个班呢,其实也是讲就是说想学习啊一些竞赛技巧啊,就是说还是比较不错的。嗯,这是第一个班。

然后第二个班呢就是我们现在就是说比较主推的一个是。呃,CV就业班这个班呢其实特别干火,是非常适合大家就业学习的。这个班呢其实是以一些知识点讲解。我们刚才前面也把这个CV就业班的一些知识点。

就是说学习路线给大家讲的。然后呢,这个班呢还有一些就业项目啊。这个是在我们一般的小班课没有的呃,在CV就业班里面呢,其实很多的一些参加我们CV就业班的同学。

最终在我们的学习完成之后都找到了比较嗯就是说挺好的工作的。这个地方呢,我是直接从这个呃我们课程链接里面截图得到的,就是说。基本上90%或者以上的同学啊都是找到了比他之前工资更高的,甚至高1。

5倍高很多倍的。就是说最高是80万年薪的一个同学,就非常非常值得啊。就是说大家如果有就业需求相关的,就是说一定就是说可以看一下我们这个就业班,现在就业班也有一些优惠活动啊。

有一些优惠活动就是说也是比较不错的。现在嗯如果大家嗯感兴趣呢,就是说可以咨询一下我们群里面的呃这个呃老师啊都是可以的。然后呢,这个就业班他一些优惠呢,就是说只要你买了我们就参加了我们就业班报名呢。

其实我们一年之内的这个GPU啊,都是免费供大家使用的。然后呢,这个就业班里面还有一些具体的实战项目,对吧?这些都是非常干火的。这些项目呢都是一些啊能够具体在工业界里面落地的。

然后有一些具体的一些工业界的一些呃老师啊,工业老师,不管是嗯有一些很多大咖,博士大咖,然后给大家讲这些嗯嗯一些学术上的模型的迭代,一些工业界的模型的什么裁剪一些工业界模型的部署都是讲的非常清楚的。

所以说也是特别欢迎,或者说特别希望大家嗯报名的。嗯,而且我们今天讲的一些内容,其实和我们就业班里面的一些呃知识点都是有重合的。但是我们就业班里面会讲解的更加清楚一些。对。呃,我看一下大家有什么问题啊。

大家有问题也可以呃跟在我们的聊天框里面嗯沟通一下。对,打字一下。我看已经有同学打字了。呃,嗯有同学说一嗯一个一般一个模型训练多少一poke如何界定学习利衰减到第几个一poke衰减,如何确定框架。呃。

框架懂,但是复杂数据加载数据流不知如何操作。比如有两个图就嗯做目标识别。啊,你的问题有点多啊,我就首先回答第一个问题嗯,一个一个回答吧啊,首先一个模型训练多少个一po如何界定界定啊。

这个其实是根据你有验证级。你如果有验证级,你可以通过验证级的一一个精度来做eartop。对我这个地方。嗯。啊,这个地方其实就是说现在的一些深深度学习框架,你可以在这个地方加入一个earlytop。

就是它可以嗯自动的就是说进行一个早停。这是第一个问题。就是说学习率如何衰减,就是现在的一些深度学习框架,它可以自动的帮你进行学习率衰减。它可以比如说在这个地方你可以设置我们最小的学习率是多少?

比如说它在一个一poke没有精度的提升,我们可以把它的学习率把它乘以0。5,就衰衰减一半。这个一般都是一些先验知识,或者说一些试出来的是一个超参数,这是第一个问题的回答。第二个问题嗯,框架懂。

但是复杂数据加载的流不知如何操作。比如有两个图计算目标位置呃有有一两个图分别计算这个位置类别。那你可以看你可以你看一下嗯fasstarCNN的,你应该是想学目标检测对吧?目标检测。

其实你可以着重看一下one stage和t stage它的区别,然后嗯你可以看一下fasstarCN它的一个网络结构嘛,然后其实在就业班里面也讲的很清楚。对就业班里面讲的很清楚。

就是说它的一些网络网络模型结构的一个设计,然后你还讲到的个数据流方法,其实这个不同类型的一个呃任务。比如说呃目标检测的一个数据扩增和这个语义分割的数据扩增肯定不太一样的,这个是需要具体的学习的。

这个是肯定是需要学习的,你要跑一些代码才。知道。呃,嗯第3个CNN怎么用attention以及原理的机制是什么?面试经常问这个看CN它到底是怎么做attenattion呢。

可以做这种这种就是嗯嗯chan层的attion也可以做就是SEresonnet就是嗯就是嗯那个叫什么SSEresonnet,就是那种改进的网络,其实也是加了这种attention的机制的。

然后你如果嗯有了解这种reID就是行人冲检测它这种attention也可以嗯用来识别这种具体的区域位置。我们刚才这个方地方其实那个小猫的那个图啊,小猫的这个图,其实大家注意到没有?

其实这个地方其实它这个位置啊,即使是我们原始输入是没有位置的。其实通过CNN这种镜向传播反应传播,其实它是能够学习到这个猫的一个位置的。这个其实我们在。就是是C0N能够学习的。

那么这个地方我们是不是能够对这个位置做一个attention呢?是不是我们着重关注一下这个位置的一个像素呢?对。嗯,对,然后大家还有问题吗?呃,如果有问题呢,一定要及时提问啊。

然后我们啊这个课件呢之后也会在我们的一个直播群啊,直播群忘记发了,就是在。

啊,最后面。呃,扫码关注一下啊,然后再嗯就是说嗯就是说有直播权还可以加对。还有同学说呃,如果通道数超过三,是不是数据训练的模型不能用了?不是啊,你超过3,你能不能我能把它截取到三毛。

是不我只用我只比如说它的一个通道数是N个大是4个,我能不能只用里面三个也可以用啊。还有一些视频的,比如说视频它的一个帧数就是大于肯定是大于三的吧。我们也可以用的CNCMN的,也可以用于训练模型。

就是说肯定能用的,我肯定是能用的,看你怎么用得上。嗯,大家还有问题吗?这个看具体的任务啊,看具体任务怎么用呢。比如说很典型的视频分类。肯定它的一个用途,用法肯定和这种呃图像分类的用法就不太一样了。呃。

我们这个今天的一个嗯直课件呢会在我们的直播呃直播群里面。对,然后大家如果没有加群的呢,可以扫码关注一下。然后对。

嗯,大家还有问题吗?呃,其实我们现在的就业班非常有优惠啊非常优惠。已经就是说现在也是呃今年的一个就业季嘛。如果大家感兴趣的话呢,就是说非常建议报名我们的就业班。

现在我们就业班应该是应该是就是说基本上参加我们就业班的,应该是百分之百都能找到很好的工作的对呃,没有基础,可以就业班,你可以咨询一下嘛,你可以咨询一下嘛,就是说我们现在的就业班。

他不是说呃就是我们也可以给大家制定一个学习计划的。不管你是呃想没有想不想参加我们就业班,这个可以都可以问一下我们老师,我们老师可以根据你的基础给你帮你制定一个学习计划。对呃优惠多少。

你可以咨询一下我们的老师啊,你可以登录我们的一个官网,然后点击一下这个报名,然后你可以找到老师,然后有具体的优惠的对。

现在都是还有优惠的对,嗯,就是说早报名早消费,然后就是说肯定是优惠的,然后肯定是早报名,你早早点嗯就是说找工作嘛,这个肯定是对大家有好处的对吧?嗯。啊呀嗯然后大家还有问题吗?嗯。

对于我们的一个今天讲解的一个公开课的内容。对。

对呃,我们校长也说了呃呃肯定优惠是过千的,具体可以点击我们的报名咨询,然后进行一个咨询,这个肯定是有优惠的。只要大家想报名啊,我们就是绝对就是说会让大家就是说真的是有一些内有内容的价值才是啊分享出来的。

或者说做一些课程啊。对。还有同学说CV和推荐哪一个有前途,很难判断。呃,其实都挺好的都挺好的。只不过呢只不过我觉得是这样的,就是说现在啊现在国内的一些呃CV的公司它的一个岗位可能会稍微偏少一点。

因为现在呃计算机视觉它的一个落地其实任务还是有限的。所以说推荐其实推荐也挺好的,但是推荐也也是在大厂才有啊。所以说这两个啊这两个行这两个方向,其实我是建议你看你的兴趣,看你的兴趣。

其实我觉得呃就是呃嗯就是他们的岗位都差不多。我觉得就是说在数量上是差不多的对,学的肯定能就我们能保证就是你满足我们的要求啊,就是说你肯定是我们也有一些在我们的这个课程中间啊。

在我们的就业班中间也有一些呃筛选机制和一些嗯就是说考试啊,就是说不就我们这个地方肯定是每周都有考试。

啊肯定是让你就是说真的有啊收获的,肯定是能保证你在学习完成之后,肯定是对你有很大的提升。也是在我们学习之后,也会就是说有一些内部的内推啊,一些机会啊,都能给到给到大家的。对,保就业。我们校长说了。

就业班是需要有一定基础,审核通过才能报名的。一旦通过肯定是可以报名的,而且是保证就业的。对,这个时候你校长保证啊,对大家你肯定是放下心。对。呃,如果大家对我们的就业班想更加深入呢。

大家直接打开我们的深嗯这个呃这个呃不不是深度学业,这个是TV在线的官网啊,然后在我们的这个课这个官网啊这个地方有一个CV工程师保大厂保就业这个页面,你点进去之后,然后点击一下咨询报名咨询啊。

点击一下这个嗯按钮呢,然后你找到具体的老师啊,你可以嗯再进行一个具体咨询啊。对。对,大家还有问题吗?那么嗯如果大家还有问题呢,可以在我们的。这个公开课的直播群里面进行一个提问。啊,好的,呃。

我看大家也没有什么问题吗。那么我们今天的一个直播分享就到此结束了,也特别感谢大家在周末的一个晚上,就是说跟我一起来学习这个内容。如果大家对我们的开go班有感兴趣的话呢。

可以关注一下我们开go嗯嗯竞赛实战班。这个班呢也是我来讲的,在下一下周就开始了。如果大家有就业相关的需求呢,可以关注一下我们的CV的就业嗯班。然后这个现在也有一些优惠活动。好的。

那么我们今天的课程内容就到此结束了。嗯,好的,谢谢大家。

人工智能—计算机视觉CV公开课(七月在线出品) - P10:物体分割Mask RCNN理论与实战 - 七月在线-julyedu - BV17z4y167dq

OK那个现在8点了,咱们准时开始吧。嗯,如果没有声音或者看不到画面的,请那个助教帮帮忙,我也无能为力。嗯,但是从那个大家的反馈来看的话,基本上的人都能够听见声音,也能看见画面。那我就开始了。

然后今天我要跟大家分享的是instance segmentation。嗯,物体分割或者叫实力分割。嗯,主要是用mask RCN方法来实现。首先我先做一个简短的自我介绍。我叫王老师。

那也可以叫我doctor王,是中科院博士毕业的。然后现在在国内的大厂做CV。然后。就这些吧,自我介绍咱们直接进入正题吧。嗯,首先我的那个今天要跟大家分享的主要包括三个方面。一个是CN。

一个是2新人2新人。还有就是最后就是mask RCN。为什么要讲CNN呢?主要是让大家对这个卷积神经网络有一个理论上的一个回顾。然后在理解CNN的基础上,对那个RCNN就会有更好的理解。

然后为什么要讲fast RCNN呢?还有RCNN呢?因为mus mask RCNN是在这个嗯RCNN的框架上进行一个改进。嗯。然后。

如果你对那个RRCNNfat RRCNN这个目标解测框架有了一个非常好的一个深刻的认识之后,对那个musaskRCN也就嗯理解起来也就非常的容易了。然后。嗯,对于视觉感知,主要有。哦。

以下四个方面的基本问题吧。第一个是分类,就要分别出这个图片里面的内容是什么。第二是检测。嗯,检测的话既要检测到目标物体在哪个位置,也要知道目标物体是什么。然后第三个是smentation。嗯。

semantic segmentation就是语义分割,就是嗯对那个每个项素进行分类,但是它不区分同一类别的不同个体。比如说有一堆人他不区分,他都分割成人。

然后今天要讲的是instant segmentation。嗯,实实力分割或者是目嗯目标分割或者是物体分割。然后物体分割的话嗯,相对于。detection来说,他那个在。bunding box的基础上。

要达到能够区分得出边缘,不仅仅是给一个bing box。然后相对于那个semantic segmentation来说的话,嗯,它要能够区分同一种类的不同个体。就像我刚才举的例子的举举的例子。

就是要假如说有一堆人要能够区分出不同的人。嗯,我看一下。现在大家没有说话了,能够听见吗?给个反馈给个反馈。如果说有人听见的话,我我就继续往下讲。嗯,算你能听见吗?啊,可以可以,那我就继续往下讲吧。嗯嗯。

太好了太好了,那有个反馈。因为刚开始的话,我说了两页PPT好像没人说话,可能都在安静的听我说。OK好,那我继续吧。嗯,首先回顾一下CN,我想可能。大家对CNN都有特都有一些或多或少有些了解。嗯。

然后我主要讲这个的目的是嗯从一个宏观的一个角度来来看这个问题。其实这个CNN这个东西啊,它很早就有了,就是nnet98年就有了。然后所以现在这么流行,现在效果这么好,不是因为说这个理论上有有多大的突破。

而是因为现在的数据量积累到了一定程度,还有就是我们的算力的提升,使的卷积神经网络在物体检测物体分类和物体分割领域打放光彩。可以说是然后这个图是嗯nnet5是98年一样提出来的。

然后这个图基本上涵盖了CNN的。CN的所有的一个结构,包括卷积层,包括下采样,就是我们的铺ing层。嗯,然后再包括后面的全连接层到后面的输出。嗯,所谓卷积,卷积就是说有一个框。

给一个框 kernelel有个 kernell,然后呃这个框上的对应元素相乘相乘,然后产生一个新的值输入到下一层。然后不断的移动这个 kernelel在这个图像上这样做,重复做卷积。

就能够得到一个卷积之后的feature map。然后呃沙布呃杀沙布里呢就是下沉样呃,这些可以不用讲了吧,嗯,是这样的嗯。我会在宏观上对这个有一个认识之后,嗯,后面会讲的容易一些。对自己来说。

有人可能大家的那个那个。可能大家的那个。嗯,背景可能不太一样,有些人懂有些人不懂。那我还是按照我的节奏来讲吧。可能之后的讲课就可能就要做一个那个调查,看一下大家的那个背景知识究竟掌握的怎么样。

因为我这个是公开课,我也不知道大家的背景怎么样,然后我就按照我的节奏来讲,好吧,嗯,如果你觉得你懂的话,可以不听,然后然后到那个感兴趣的地方再听好不好?不好意思啊,嗯。然后。嗯。

这是1个CNN的一个网络结构。嗯,在CNN网络结构里面最重要的是嗯就是我们的卷积卷积操作,然后就是下采样操作。嗯,还有一个就是最后的那个嗯全连接到最后的那个分类和回归的模型。然后嗯。

然后这里面的卷积操作用数学表达怎么来表达呢?它就是一个实际上就是一个矩证相乘,可以看到这个。这个函数这样XI乘以WI,这个就是一个矩证相乘,就这个WI就表示一个卷积核里面的一个权重。

这样一层就是一个卷积操作。然后卷积操作之后,一般要经过一个激活函数,一个激活函数做非线性变化。呃,变化后得到的一个值在输入下一层。然后这是一些机候函数,这期础函数我不进不不不做进一步讲解的。

然后嗯我们怎么能够嗯呃我们怎么能够训练这个网络,得到我们想要的输出呢?嗯,我们会建立一个los function,就是我们有一定的标注数据,比如说Y,然后经过网络。经过网络的一些处理之后。

各种激活函数这个非线性高度非线性变换之后得到一个输出,然后输出和标那个我们标注的数据相比较,看他们那个嗯是否是我们希望的得到的一个输出。

然后就建立这种非线性嗯非线性 loss loss function。然后嗯这里面LLI的话嗯最常用的就是在那个回归问题中,最常用的就是这种嗯minque error的这种均方跟误差。

然后建立这个函数之后,我们最重要的是要得到这个W的值,这个权重值。怎么样得到这个W的值呢?我们会对这个函数做求导,求出来梯度,利用梯度下降法来求这个W。啊,这个对求导的话嗯。

这里有1个BP算法BB算法的意思就是说误差的呃那个误差的反向传播就是我们经过CNN。点接网络,然后经过很多的F函数。嗯,经过很多的F函数之后,得到一个输出,嗯,利用链式法则嗯。

能够这样逐步往往往后这样求那个梯度。嗯,这是个简单的BP的一个简单的例子。嗯,我们。先对这个输出先哎L先对Z求导,然后这个Z再对输入的XY求导,这样经过这个链式法则,就可以求到L对X的和Y的导数。

就是说嗯ns function对我们输入特征的一个导数。有了这个导数之后,我们就可以解我们的los function,就可以求得我们的W这种权重。好。

其实这就是这这是整个那个卷积神经网络的一个嗯一个大体的一个理论框架。其实在我们实际的问题当中,很多优化问题也都是这个框架,通过建立一个los function。

然后通过使这个los function最小化,求得W就可以进行做分类问题,做回顾问题。

嗯,然后后面的。后面要讲了faster RRCNN,还有那个faster RCN,还有musask RRCRCNN,它就是都是用这种理论框架套在里面的。然后这个图呢是CN的一个可视化的一个效果图。

就是每一层经过卷积层之后得到的一个可视化的效果图,有com层,有re层,有有铺ing层。嗯,然后会发现就是一个com层,它的最本质的最本质的功能就是提取一些特征。嗯,rero层它做非线性变换。

然后经过这些一系列特特征提取之后,会提取到一个高维抽象的语义特征。然后通过这个语义特征,我们就可以做分类。

嗯。😊,啊,大家有有有疑问是吧?啊啊你说那个MSSE公式不对吧?对的,因为这前面有个有个N,我只是这样,这是求了一个嗯,这是这肯定是没问题的。嗯,这前面有嗯,你可能是那种求和的那种方式嘛。

把这个L写在这儿的嗯,然后带在这里面就是就是那种MSE。ok 继续。OK嗯,简单回顾了一下CNN卷积神经网络的一个理论理论基础。好,接下来我们进入objected detection目标检测。嗯。

目标检测的话,首先先介绍一下RRCNN。然后接着是fast2CNN。嗯,最后是faster RCN。首先是RCN。我们要从。我们要从那个图片中检测出一个目标物体。嗯。

我们最直观的想法就是找一个bounding box,然后在图片里面这样移动,然后对每一个bonding box进行一个分类。嗯,判断是不是我们找到的那个我们需要的那个物体。然后RRCN的话。

他的想法很很很简单。就是我首先选一些感兴趣的区域ROI这些感兴趣的区域,通过那个比较嗯比较那个传统的计算机视觉的方法,嗯,它这主要是通过selective嗯feature的方法。嗯。

然后他通过那个分割分割出一些小的分割一些小的呃区域,然后嗯通过小的区域进行一个合并,形成一个比较大的区域。嗯,形成比较大的区域之后,然后在每一个区域里面,嗯对这个区域先要做一个word变换。所谓卧变换。

就是说把不同尺寸大小的那个嗯区域变成统统一大小尺寸的区域。嗯,这样的话就可以输入到一个统一的一个卷积神经网络里面去。通过一个嗯统一的一个卷积神经网络,我们可以学习到一个呃fisher map。

然后在fisher map基础上,再通过bounding box regression和SVMVM对这个bonding box进行回归,还有对还有分类。这就是RRCNN的一个整体框架。嗯。

宏观来上宏观来看的话就是。宏观来看的话,就是三大部分。第一个就是说先选后选的一个区域感兴趣区域。嗯,第二步呢就是说对这个感兴趣区域提取提取特征,用卷积神经网络提取特征。

然后第三大部分呢就是说在这个提取出来之后的对特征基础上,通过buning box regressiongress,然后SVM能够得到我们的检测的框,还有就是我们的分类结果。嗯,然后。嗯。

这里面的话嗯它会有一些问题,比如说什么问题呢?首先嗯它这个区域有很多是重叠的。嗯,你想嗯比如说这个这张图片里面的人和马他两个这个候选区域,它肯定有很多重叠的区域,或者是这个帽子和这人。

他两个也有很多重叠区域,直观上来看,如果对这种重叠区域,嗯,都重复的做这种嗯转积神经网络的话,嗯,就会存在计算量冗余计算冗余。然后嗯能不能进行改进呢?嗯,当然可以。

这就是后面工作要对这方面进行改进的这是一方面。另一个方面就是说嗯嗯他这个候选框的那个选取嗯。嗯,也是它是也是比较耗时的,它是用的那个传统的候选框的选取方法。嗯。

我们能不能把这候选框也放到神经网络里面进行选取呢?这是faster RRCN要进行了改进。然后啊现在大家可能有些问题,selective search啊。

selective search这个这个方法的大致原理。这个方法的大致原理就是说它先进行。进行一些一些分割小物体的一些分割。嗯,比如说选取一些一些小物体一些边缘。

然后分割出来的那个就是最最初的那个分割出来的,可能是一些很零散的一些东西。嗯,比如说这个这就看这人的话,比如说他可能都把嘴和鼻子啊,这些眼睛啊都已经分成那种单独的一个个体的一些区域。

然后再通过嗯通过嗯通过那个区域的联合,区域的合并,然后逐渐形成比较大的区域。嗯,这这后面形成的区域的话,一般来说有2000多个这种区域。嗯。😊,ROI怎么生成啊?嗯ROI的话呃。

下单PPT可能会讲到ROI。啊啊,对你这个ROY还还就是刚才我说的那个region of interest,还是就是说那个selective search方法生成的。嗯。

后面那个会讲ROI pulling。对,这个确实对,就刚才已经说了,这个RCN转机层不共享,所以它有些重叠的区域。嗯。😊,好,接下来讲这个fast RRCN。嗯,fas RCN的改进就是说我们。

我们不对单独的我们不单独对每一个候选方进行进行那个卷辑操作。我们对整幅图像进行卷辑操作。在这个图像卷题操作之后生成的呃这个feature map上,然后再把ROI。ROI选出来。然后总体来看的话。

这个也是嗯分三大部分吧,第一大部分依然是特征提取,利用卷积神经网络。第二大部分的话是那个嗯感兴趣区域选取,这个感兴趣区域选取,还是用到刚才我说的那个selective search传承方法。

只不过它有一个映射关系,从图片上能够直接映射到那个feature map上。嗯,这个完了之后呢,有个ROI pullinging这个RI pullinging的话就是生成那种嗯统一大小的统一大小的那个候选框。

统一大小的维度的特征啊,输入到全连接层。嗯,然后全连接层对然后输入这全层之后进行一个分类和一个回归。嗯,对。然后他这改进的那个最主要的就是减少了那个嗯卷积操作的那个计算量,使那个计算效率是大的提升。

然后嗯他还存在一个问题,就是说这个呃ROI的那个选取的话,叫propoer选取的话,还是在那个图片区域通过传统方法选取这个计算也是比较耗时的。然后。对于那个faster RRCN的话。

就是说它这个propoal嗯嗯在那个也在feature map上去去找,不在那个原图上去找了。嗯,然后它这个的话是是分两步来训这个东西的。嗯,第一步的话,它是先通过一个RPN嗯。你你。

来训练得到那个候选的我们的候选框。然后在这候选框的基础上,再再通过那个嗯卷机网神经网络再进行一个二次的一个回归。然后嗯。嗯,这里面这个嗯reing proposal network的话。

它那个最主要要用到一个叫anor的概念。它怎么能够把那个候选框去那个选出来呢?它通过一个anor这个anor的话是是不同尺寸大小的不同长宽比的一个一个嗯那个候选框。

然后也是通过这个候选框在图像里面这样滑动着嗯来来来选这个候选框,然后通过这个候选框,然后嗯进行一个回归和分类,也可以得到一个候选框。哎,你说那个最右边一输的作用是什么?

最右边一输呢就是直接把这feature map放到放到后面去。这样通过这个嗯RPN得到候选框的话,就直接利用这个里面的feature map。然后对,然后在ROI铺里生成相同维度的维度大小的那个。特征。

然后再进行回归和分类。这里面我们可以看到这个faster RN它实际上进行了两步那个回归和分类,这样的话它会使那个位置的话是足够的精确的。嗯,然后呃但它有一个问题。

就是说假如说那个你的那个嗯propo提的不对的话,后悬框可能也是完全错误的。呃,这个不一起回传,两侧落球合和会一起回传,不一起回传。它这个是单独训练的,就先可能训练1个RPN网络。

然后再再对这个这右边这个网络进行训练。就得到这个propoer之后,再对这个进行训练。这样这个右边这个就有点类似于之前的那个fast RRCNN这种训练方式。嗯,接着是那个。第三部分嗯物体的分割。嗯。

理解了那个CNN和那个RCNN之后,再来理解这个musask RRCN就比较简单了。musask RRCN用一句话来概括的话,就是用它是等于那个fast RCN加上1个FCCN。

但这页PPT是是那个借鉴的凯明的那个PPT嗯。我觉得说的是比较比较那个简单的。嗯,然后嗯他是在那个。fastR那个框架上再增加了第三个分支嗯,FCN分支。这个FCN分支呢在那个原来的那个ROIROI上。

然后再对做一个嗯分类和回归,就对每一个像素嗯对每一个像素进行一个分类没有回归啊,对每一个像素进行一个分类,就判断这个嗯但它会利用fast RCN提供的类别信息,然后这个分类的话是一个二分类问题。

它有类别信息之后,只对分类是否是这个类别,一个二进制一个分类,然后最后得到一个mask。然后嗯这个是他头部的一个网络结构。嗯,他嗯在文章里面说他用了两种网络结构。嗯嗯一个是那个backbone网络结构。

一个是那个ressonnet,一个是FPNFPN在下面会介绍。然后这个输出的mask呢是嗯是一个嗯两种,一个是14乘14乘以80的,一个是28乘以28乘以80的。这个80代表就是一个类别。

就是它嗯输成m里面有80个类别,然后每一个类别的话,它实际上只有一个是一,其他都是0。好,这个是FPN是这个特征金字塔网络。嗯,为什么要用这个特特征金字塔网络呢?因为我们CNN对那个物体的平移。

实际上它是保持不变的,但是对物体的那个尺度变化,它是没法处理的。嗯。这这是常常见的那个四种这种嗯特征金字塔网络结构。嗯,第一种的话就是说我对图片做一个图像金字塔。

然后在每一个图片的图片上进行进行那个做一个CNN进行来预测。嗯,第二种呢就是说嗯我对图图像直接做一个嗯卷积神经网络。嗯,这样这这就不对图像做那个金字塔的这个卷积神经网络,实际上它也相当于一个金字塔。

然后在最高层呢再做一个预测。但这个图像金字塔的话,它实际上会嗯会对那个比较小的一些一些特征。嗯,可能就检测不到。嗯,这这这是一个感受也的问题,就是越抽象,它的感受也的话,就嗯在感受也比较大的话。

它那个嗯小的物体是看不到的。后我们的那个faRCNN。还有那个CN,他们其实都是在这个这个框架上做的,它这顶层上进行进行的。然后嗯还有一个呢就是说我在每一层也也也进行一个预测。

就是在每个feature map每一层把那feature map做金字塔。然后在每一个feature map每一层嗯来做一个预测。但这个的问题在于就是说嗯你这个越底层的那个feature map。嗯。

它的语音信息越薄弱。嗯,最底层的可能就是单纯的一些边缘啊什么之类的,再上层呢可能就是我们的一个眼睛什么之类的,再上层呢可能是我们一个脑袋什么之类,再上层呢可能是我们的一个深子之类的。

是这样的一种尺度的一种变化。所以说这最底层的话,它可能嗯对那种比较小的那个特征它就分的特别特别细。嗯,然后这个FPN的话,它实际上有一个反向的语义指导,就是我高层的语音信息,再加上。

底层的这种这种对那种小物体的那种分割的能力,这样一结合,就可以解决那个尺度变化的问题。然后。嗯。然后在musask RRC3就利用这个FPN作为一个基础的网络。然后最后的话是是1个FCCN网络。

FCCN网络的话很简单,直观上它就是一个嗯全卷积的一个网络,就是对图像做卷积,然后对每一个像素进行一个分类。对,这个很简单,他他最开始做一个呃下采样,然后再做一个上采样。嗯。好。

然后嗯最后再回顾一下那个嗯musask RRCNN它实际上嗯最开始的时候这个是一个RCN嗯,是两个头。然后faster RRCN也是两个头。嗯。

只不过嗯这个fast RRCN这个两个头的话都在那个feature map上进行。嗯,进行分类。呃,我说错了,这个前面这个也是都在feature map上进行分类。嗯。

我只不过这个嗯fast rRCN的话,它那个嗯嗯有那个feature map的一个共享,这个是没有的。然后。

然后这个嗯mask RCN呢在这个feature map共享基础上再增加了一个mask一个分支,用于产生那个分割的分割的实力。嗯。嗯,然后。建立这个los function的话是包括三部分。

前面两部分是一个是分类,一个是回归。嗯,它这个的话和faster RCN都是一样的。最后再增加一个mask。这个mask呢,就是我刚才说的那个它是一个二分类的一个问题。嗯。😊,然后。

mus RRCN里面还有一个重要概念就是ROIign。它的 motivationvation呢就是说我们在做ROI pulling的时候,它做了一些离散化。我们看这个图。

假如说我们那个输入图片是800乘以800的。经过CNN转接成经网络之后,输出的feature map的话是嗯假如说是25乘以25的。嗯,这里面呃是32乘以32的。嗯嗯嗯。对。

然后嗯这里面的话它就有一个有一个那个离散化。我们假如说这目标是665乘以665的,它除以1个32的话,嗯,是就变就是变成20。720。78,然后做离散化的话是变成20。嗯。

然后嗯然后这个是嗯图像平面到ature map的平面的坐标的一个变化。然后再一个是feature map的坐标到那个嗯ROI featureature上面的一个坐标变化。

假如说这个ROI最后生成的那个维度是7乘7。嗯它再进一个变化之后变成2。84,然后再取整的话变成2,这样的话,它最后嗯就是每一个ROI featureature上面的一个点。

对应原图上面的话是一个2乘2的一个一个区域。但是嗯如果说直接直接从这个ROI featureature这这这这一层直接映射过来,不做那个离散化的话,那么它它其实应该对应的是2。97乘以2。

97的那个区域。所以说这个离散化的会导致那个精度缺失,在分割的时候会有些物体边缘会分割的不是很清楚。嗯,对。然后。然后在这个RO在m RC里面,它这个ROOIline什么意思呢?

就是说我直接建立这个ROI featureature这个坐标和这个输入图片的一个对应关系。嗯。我不经过那个坐标的那个拟散化处理。然后嗯建立对应关系之后。

可能这个fishature map上面的输出是这样2乘2的一个一个一个一个图一个维度。然后这个点可能对应的嗯fishature map是这个点。那么这个点它可能不是一个整数的一个点。

而它不是个整数点的话,它可以经过一个嗯双线性差值能够得到。对,这样的话他得到的那个嗯图像就没有那个离散化,离散化的那个造成进度缺失的问题。如果做离散化的话,它是这个是做离散化之后的效果。

嗯,看有没有什么问题。好,这就是ROIline的一个一个原理。然后嗯这个是musask RCNN的一个在coco数据集上的一个检测结果。它这个检测结果主要展示的是在一群人当中,一群人当中。

我依然能够把这个人能够分割的很好,就是一个物体在它同类物体包围的时候,它这样能够分割的很好。

哦,然后这个是ROI pulling和ROIline的那个嗯对精度的那个对比,对那个回归精度的对比。然后可以看到Rline它那个精度是有比较大的提升。然后这个是对那个物体分割的一个那个结果。

在客co数据集上,然后musask RRCN利用res next101嗯FPN这个网络的话,它的那个分割效果是最好的。

嗯,但m RCN也不是完美的,它有很多分割失败的例子。比如说这个后排的这两个人他就没有检测到,还有就是这个举着手机拍照的这个人也没有检测到。

嗯。还有就是这个嗯有些识别错了,像这个沙滩上的一个毛毯吧,然后它识别成了一个自行车。嗯,好的,以上就是全部的理论介绍。嗯。然后看一下有什么问题。只有边缘点要align吗,还是整个proposer都要啊。

对那整个proposer都要。对它就是proposer都要嗯。它实际上嗯跟变认点没有关系,它是对那个呃对内proposal做的。嗯。然后后面的话可能就是那个一个开源代码的一个介绍。

然后可能时间关系还有就是这种这种这种交互方式的话可能。嗯,我也不会是说去。没有更多时间吧,去讲那个嗯实现的一些细节。可能大概讲一下这个嗯这代码的那个怎么怎么能能够快速的运行起来。然后怎样训练自己的数据。

嗯,然后后面这个代码的那个呃原理的话,可能在以后的课程当中,如果有机会的话会深入讲一下。然后这个musask RRCN这个实现的话,有基于很多框架有实现,有拍toch的话,有tenor flow的。

还有咖啡 two的,拍to的这个是比较新的。然后也是facebook嗯,应该是今年吧,今年开源的一个代码。嗯,用起来也比较好用。嗯后我主要讲一下这个拍 to版本的那个musask RCN。嗯。

然后他那个官网上那种安装步骤的话还是比较清晰的。有在linux下面的安装,有在windows下面的安装,在那个linux下面的安装的话,嗯,我清测过,主要我觉得要注意一个问题吧。

就这个toch嗯微ing这个版本的话,如果你按照这默认版安装。然后你扩大扩大的版本,如果是十的话,它那个会装最新的那个那个toch嗯,微ing,这样的话可能会有些问题。你可以再在后面写一个版本号,嗯。

装那个0。2。0版本的可能就没得问题。如果说你们遇到这个问题的话,不知道不知道什么原因的话,你可以看看是不是这个toch微ing的版本的问题。嗯,这可能是有一个坑。然后它有一个例子,嗯。

嗯然后是那个webcam点派这个例子的话可以直接跑的。只不过的话,如果说你没有那个网络摄像头的话,可能不能够直接跑。啊,这里面的话你可以改一下,改一下,改成输入图片,这样就可以嗯直接的跑出一个结果。

然后他还提供了那个doote book的一个demo,这个的话是可以直接跑的。

这是跑出来的效果,一个是分割的效果,一个是人体关键点的检测的效果。嗯。然后这就是安装那个musask RCN,然后怎么训练自己的数据集呢?然后主要是主要是那个对configure文件的配置。嗯。

在这个目录下面有有一些网络结构。嗯,然后如果你要从头开始训练自己的网络的话,可以把这个位置这这这行注释掉,就表示你要从头训练一个网络,而不是翻 tune一个网络。

然后训练的话最主要的就是准备数据集。然后你在这个这个地方改成自己的数据集。那后这里面还有一些其他的参数,比如说我们的learning rate,我们的那个学习率,可能也要关注一下,也要修改一下。嗯。

然后这是这个confi文件里面的。还有一个就是这个configuration下面的defat点派嗯defat点派,然后这里面的话会有一个嗯n classes。嗯。

你要根据自己的那个那个要做的那个类别物体类别要做相应的修改。嗯这里面有一些learning rate。这这这这种超参数的话,和上面的文件,超参数它是改一个地方就行。那建议还是改前面这个吧。这个一般呃。

根据情况吧嗯。然后最后就是嗯指定你那个。你那个准备的数据数据集的那个文件路径啊,指定好之后,这个是文件路径,这个是你的那个嗯label的一个数据。然后就可以训了。然后嗯这个label tool的话。

就是有一个label me,可以用这个进行label的那个标注。然后后面的话执行一下那个python的一个脚本,就可以训练自己的数据集了。然后。嗯。嗯,嗯,这里面后面带来的参数。

如果你在你在这个看fi文件已经修改了的话,这个参数实际上是不需要的,就直接跑就行了。然后。然后嗯对,然后就可以训练自己的数据集了。嗯,这个工具其实我也没用过。

因为现在一般的可能自己需要去手动的label一些数据的话,这可能还是比较难的。一般可能也是外包给别人label一批数据回来训,或者是在网上找一些公开的数据集来进行训。

不过如果大家要训练一种比较比较少的分类的那些东西的话,还是还是可以用这个label名来来label一下,然后自己训一个模型,自己搞着玩,自己试一下。然后我觉得我今天分享就这些。嗯,对。

对我今天分享就这些,看大家有什么问题。嗯,分享一下PPT肯定没问题啊。嗯,讲今天讲的不是很好,然后讲的不对的地方,欢迎大家指正嗯。刚才代码没看着呢,嗯,没事,我会。嗯,哎我不知道怎么分享给你啊。嗯。

到时候我给助教吧,看助教怎么分享给你们。

嗯。看出教怎么分享给你们。

对。嗯。😊,就是我觉得啊就是说通过今天这个课程的话,首先就是说对这个musask RRCN的理论可能会对可能会有一些了解。然后嗯在实战的话,按照这个后面的PPT这种嗯步骤做下去的。

可能能够嗯完成自己训练自己数据集上的一个训练,然后也可以直接跑它一个demo,对。然后关于那个代码的具体实现的讲解的话,可能在以后的课程中会有涉及。嗯,我们之后会有1个CV2的1个就业班,嗯。

到时候会由我还有Ceven老师一起来讲,嗯,我们俩可能都是嗯国内大厂的那个CV的做CV的。然后Ceven老师的经验可能是比较丰富的。我是今年第一年开始讲,嗯,也不断学习吧,向大家学习。

然后也分享我自己在工作当中的一些经验吧。对。

嗯,有代码呀,代码的话嗯,代码的话,那个我已经起了个链接在这儿,这个是有有很多代码。对,这有代码。对。嗯,有代码。好,请助教冒个泡。如果没什么问题,今天的直播就到这儿。啊,这个是助教哎。

那我回头把那个PPT发给那个我们的助教,你们有需要的问那个助教要,然后有什么问题的话,到时候再通过助教传达给我,我再给大家解答。嗯,好,谢谢大家。今天直播就到这儿。

人工智能—计算机视觉CV公开课(七月在线出品) - P11:优秀学员分享:计算机视觉面试求职经验 - 七月在线-julyedu - BV17z4y167dq

呃,首先。自我介绍一下啊,然后那个我是咱们签约在线那个呃深度学习集训营。然后一个之前集训一期的啊一个同学啊,我叫我姓麦啊,大家可以叫我麦同学。然后今天很开心也很荣幸,呃能给大家做一次分享。

然后希望呃大家呢通过这支分享,都能呃得到一些知识,然后那个相对来说了解一些那个就是深度学习CV方面的面试的一些技巧和面试的一些考点。然后大体上了解一下。呃。呃。

深度学习LCV这块呃需要哪一些的基础的一些东西啊,然后咱们呃一起成长啊。首先来说呃。

今天的分享呃分为几大块吧。第一块,然后CV的算法工程师派别之分。第2块的话,CV的算法工程师面试的一些套路。然后C呃第3块,然后CV算法工程师呃一些部分的面试题。

然后第4块的话呃主要的一些论文和代码资料。然后第5块的话是我个人的对一些呃就是面试啊,包括CV算法工程师的工作,还有一些呃理论基础啊等等的一些心得体会。呃,首先来说是这样的啊呃就是。呃。

首先呃就是怎么说呢?我也是一个我自我介绍一下吧,我就是个我是个非硕士啊,然后非计算机专业的啊那个一个本科生。然后的话其实呃通过这段时间的学习啊,通过这段时间的一个跟朋友之间的交流,跟老师之间的交流。

然后得到一些。怎么说吧,一些成长,然后就希望把这些成长和这些呃通过这些面试啊这些知识跟大家一行分享啊。好了啊,那个闲话不扯了啊,那个因为咱们预定的是呃7点半呃分享啊,现在是7点26。

然后刚才说的那些话其实是相对来说啊是等一些没有进直播间的一些同学。然后的话那个现在我们开始真正的啊那个进行我们的分享。

首先第一部分啊那个啊没有画面吗?

没有画面吗?没有画面吗?啊,有有画面哦,OO啊。那个抱歉啊,那个最好用微信那个在微信群里回复啊。然后如果说是自己黑的话,那可能你调节一下你自己的那边flash是吧,应该是你自己那边问题。

很多人都说是可以的啊。

然后这边是这样的,然后第一部分的CP算法工程师派别之分,可能很多人都第一次听说啊,原来算法工资还分派别。

其实准确来说,算法啊。其实准确的来说,算法工程师吧,它其实分两派的,第一种是算法派,第二种是工程派。然后呃等一下啊,这边有呃这边有朋友应该说是黑屏。我觉得这个黑屏的话,应该是个人的一个flash插件。

没有那个开启的原因啊,那个最好谁共享一下,谁分享一下那个flash的一个呃就是开开插件这个prochme的一个流程啊,然后我就不等了啊。首先来说它分算法派和工程派。呃,什么是算法派呢?

其实它相当于偏向于模型的结构研究,还有一些算法优化和迭代。当然这个算法派的话,它也支撑一下业务啊。然后他算法派的要求,其实对于基础的理论要求非常非常高。然后对你的数学功底要求也蛮高的。

然后他主要的一些呃一些工作可能说是读写论文,然后代码实现你论文论文复现。然后还需要一点就是说当算法工程师接触到业务的时候,需要对这个业务所涉及的设数据和数据分布进行深刻的理解。然后对这个问题。

对这个业务场景需要一个深入思考,然后分思考这个问题的本质。而工程派的啊那个。天下工程实现啊,就是基本上就是业务支撑,然后主要要求其实很简单啊,没别的就能干活,带马牛能训练,能调三啊就行了。

然后我们看到那个旁边配着几部图啊,那个就是稍微有点写一会,上面呢可能就是一个算法派的一个算法工程师。呃,就是可能每天呃不能说每天吧,就是他的工作。然后下面可能话就是类似于偏工程方面。

可能偏程序程序写代码会多一点。然后我不知道大家是否认识这个哥们儿啊,这哥们儿是个拍神大佬啊,那个request裤是他写的啊。就是他其实很厉害啊,那个说句题外话,调节一下气氛。然后。其实当我面试的时候。

或者说当其他小伙伴去面试的时候,他们就会碰到一个特别特别大的一个问题。就是说有发现有些人就特别特别考代码。然后有些人就是发现不怎么考代码。这是为什么呢?其实主要来说就是你。

你你自己的学习路线和面试的要求,那家公司的要求是不一样的,就是面试那家公司,它可能是偏向于工程的。就是你招你进来,就你帮我去工程实现它就OK。然后可能你这边是准备工程的。

然后你面试那家是需要这个算法又化的。然后你这边的就是你这边代码能力也体现不出来。所以说所以说我通我想通过今天的分享,给大家确定一个路线。就比如说帮助大家更好的有针对性的去学习。

就比如说可能说我这边对算法研究,特别特别感兴趣。OK那你就要去学求职一些算法派,就是算法派比较看重的一些公司。如果说我这边就是说可能算法理解,我深度我不够,然后的话我这边对。呃,这个。呃。

就是对对这个模型怎么搭建啊,这个模型怎么设计,不是太感兴趣,不是太make sense。那么你可能说你走工程派,那么就是走工程派写去那个提升代码能力。这样的话对你的对你的职业发展啊,啊。

或者说对你的那个求职也会相对来说顺利一点。然后准主要来说啊,我们分一下啊,就是说算法派,它其实非常非常注重理论功底啊,项目经历辅助的一些代码考察,就是说我们可能会有一些鄙视。然后的话它80%的内容啊。

都是项目经力基础理论啊,还有一些数学概念,模型结构、模型设计,还有一些比如说现在的模型发展一些方向的探索方向的研究,还有最新论论文,你是否看过是否复现过paper啊,是这些东西。

然后20%内容为代码考察。但所以说当你呃这就会遇到一个问题。就是当你在。面一些算法的一些就是偏算法的这些岗位的时候,他其实考察代码相对来说比较少。呃,然后的话你准备的可能说你准备太多太多代码。

比太多太多工程实践就呃比较浪费时间。然后的话考察的内容也不是代码考察的不是特别特别难。然后工程派的话其实就偏偏工程实现了啊,他就是非常注重实现方案,项目经历,然后代码考察笔试辅助理论,就是怎么说呢?

工程派的就是这些公司啊,他们就是对代码非常非常的严格。可能说呃上来就是先面试第一轮上来就是先写40分钟代码。啊,就考你几个笔试题,而且是我记得我之前面过一家独角兽呃大概是40分钟的一个笔试题吧。

然后15分钟需要答15道选择题。然后25分钟写一个数据结构。啊后这样的话,然后先第一轮笔试。然后笔试完之后。然后又问了一些项目细节,又问了一些理论,又问了一些东西,大概面试时间不到一个半小时,就这样。

这是第一轮。所以说他就是偏呃80%就是偏实现方案。然后的话项目如何实现,甚至有些时候,比如说有一些这些公司的话,可能说他自己要呃实现一个深度学习的一个产品。然后的话他这边是没有实现方案的呃。

他这边可能面试的时候,他都不看你简历,不看你简历内种,不问你这项目经历,不问你学历,不问你这些东西,不问你技术。就问你呃,我这边有个项目呃,你你给我提供一个实践方案。之前我一讲,我面试过一家。

就是说他是做智能硬件的。然后他就说我这边需要做一个图像搜索。OK你给我提供一个方案,就是看这个方案,他来评估这个方案是否靠谱,是这样,然后的话他会问你如何去写这个代码,你是用什么语言去写。

然后呃大概多少行,大概会占多大内存,然后运算量多少,运算速度多少,他会问这些东西。所以说呃剩下的20%就是可能说问一下基础在的里面,就比如说什么卷积层、石化绳呃,固定呃石化层。

然后那个激活层等等的这些东西,但是会摁的很少。所以说呃。当我们哈只是说遇见这样的面试,或者说当我们发现,只是说我们准备的东西和我们面试的公司不一样的时候,面试公司需要要求不一样的时候。

就有些时候就会发现呃这个没有拿到offer,有些时候就会觉得自己能力不行。其实不是只是你的学习倾向呃,你的学习路线和那公司要求不一样。就主体来说啊,给大家一个呃该line嘛。

就是算法派的就是比较注重模型呃模型内核研究的呃,比较注重模型的一个迭代和优化的进行算法优化的。相对来说都是重大型场,至少来说呃从我这边的了解到的,基本上都是这样。

而且是还有一些什么不差钱的一些创业公司啊,独角兽呃通常是这样,像BAT啊,京东啊滴滴呀美团啊呃,包括一些医疗方向的独角兽还者贝加家啊和林森童这些。然后为什么呢?其实。呃,当你工作了。

你就其实你就有这样的体会。为什么?其实呃因为。当算法研究算法其实在深度学习中呃,就比如说拳积神经网络,它需要大量的数据的。然后的话如果你数据量特别小。

无论呃你要用一个假设说用个inceptionV3或者说稍微在前点啊50这种的,O就很非常非常容易over对吧?非常非常容易过拟河,后但是过拟合这个问题你怎么处理呢?其实大家都用什么正则化呀,呃。

然后在在那个各种处理呀,或者怎么怎么怎么样。当然最好的方式其实是不是假数据,但好但难就难在有一些呃小的公司,它其实是没有数据的,它是数据量是不够的。所以说呃在我这边我包括我本人呃,包括我身边的朋友。

其实他会面到一些工程派的公司,然后我自己分析了一下呃,工程派的通常的都是都是创业型的一些公司。然后的话可能还有一些部分刚转型的一些中刚转型的一些中小型厂。就是怎么说呢?

就是可能他这个部门是呃AI部门可能是刚刚成立的,然后没有成没有太多时间。他主要的目的,这样把你招进来,主要的目的就是你给我去干活啊,他不会去考虑说这个这个模型深度是什么样。

这个模型如何去拓展这个模型如何去发展这个模型如何去优化,他不会考虑这个问题,他可能更多的把你叫过去就去干活写代码啊,OK然后的话我自己其实呃体会到或者说自己曾经呃就是想到为什么会会有这样的一个分别。

只是说主主要是来说是因为中小型的一些公司吧,它可能会有一些资金压力。然后数据是一方面,还有一些资金压力,它无法给你空间,给你时间。呃,就是说让你去对算法呃进行底层的研究,然后进行对算法进行优化。

那可能更倾向于业务业务支撑,呃,趋向于更向更倾向于说。呃,这个你快点给我时间业务,快点给我呃,把这个活干好,快点把这个项目上呃,而可能形容中大型场,或者说一些独角兽。

它可能更偏向于说更底层的算法研发算法的一些优化。然后的话迭代也是模型迭代也是比较那个就是比较深的啊。所以说这块的话呃大家在选择工作和选择。呃,公司的时候,包括自己选择自己的呃那个职业规划的时候。

要根据自己的一个自我定位,然后选择一些合适的公司。呃,然后的话这样的话可能说在你的面试几率成功率会高一点,好吧。然后我们进呃进行下一项啊。主要来说吧,其实。呃,只是工作内容吧。

因为我现在的工作其实是偏算法派的,呃,就是偏理论研究和偏呃底层知识偏算法优化的。可能说我每天的工作可能读paper,然后读完paper之后。积累积累到一定量之后进行工程实现。

然后呃兼带着呃进行业务支撑和那个业务支撑,还有一些那个项目支撑产品支撑。然后呃甚至我们今年就是呃我们公司对算法工资都是有8fa份要求的啊。然后的话研究和工程的时间比大概在6比4左右。对于我个人。

这是我针对我个人来说的啊。然后的话可能工程派的,我问了一些其他身边做那个图像算法的,就是偏呃工程实现那些那些小伙伴。其实他们主要是业务支撑,然后偶尔时间会读了一下paper。

就比如说可能做一些业务在图像呃图像分类和图像目标检测呃任务过程中,就比如说可能说这个任务呃这个目标检测效果特别不好啊。呃,面AP特别特别小特别特别低。那么我需要找一篇最新的论文,最新的paper。

然后去看看它的效果,然后去跑一下模型。所以说它的那个工程的占比就时间就比较多,然后研究时间占比就比较少。所以说它更像相当于说一个红横向的一个扩展,横向的一个扩展一个方式吧,然后。呃,怎么说呢?

就是说呃这两派就就是说本质上其实呃。也本质上是不分派,但只不过说工作的你的倾向性不一样。只是说算法派可能说呃平时感觉很很轻松,就是一天没什么事,读个paper,看paper。

甚至看paper都能看一星期两星期这样,但是一旦真正的涉及到研究工作,涉及到呃发一篇新的 paperper,涉及到新的一个模型的结构的一个研究,那么那个时间段是很痛苦的。因为你没有好的点子。

你没有好的想法,你的上次你的leader就会问你说啊你最近工作什么了。你最近对吧?工作内容是否饱和等等等等这些问题。呃,然后的话呃工程派的话可能就会有一些业务支撑压力。可能说就是问你代码行不写好,啊。

然后对吧?那个就是呃明天上线能不能改上啊,就这样,所以说但呃但有一点大家一定要清楚,一定要清楚,就是算法工程师的代码量,其实相对来说是非常非常少的。它主要的代码量共。现在模型的模型结构和那个数据处理上。

主要是在这里。所以说呃还有一点算法工程师很少加班,这点大家一定清楚,可能说刚入行的小伙伴,或者说呃刚刚接触算法这个行业,刚知道算法这个这个这个title的小伙伴们不太清楚。其实算法工程师加班很少。呃。

或者说几乎不怎么加班,因为什么啊?因为是这样的,你算法优化和算法迭代,他不是能靠加班能解决问题的。呃,有些时候就是说包括我老大呃,就跟我们说说啊,你们晚上加班头脑袋都像降糊一样,就是完全已经没有思路了。

那让你们加班有什么用,他不是说他不是一个can球C加砍球V的一个过程。虽然我们是CV工程师,但是我们不是can球C加卡就V啊,就是有些时候是需要你去用想法去支撑的啊。OK呃,但是有趣的一点。

大家也呃也要清楚一点,就是说。真实的线上业务其实都是用成熟的稳定的呃模型去跑的。就是说不像呃大家想象的么那那样认为,就比如说可能最新的模型那样,不北的都会用成熟稳定的,大概准确率可能说不是特别低。呃。

那种的,就是因为准确率特别高。比如说呃现在比较准确率比较高的,像panth night和n night这种。呃,就是imine可以拿到达到90%多以上的这种。

其实它的那个前向传播inference过程是非常非常慢的,这可能会对你的那个时效性的产品的时效性要求呃,就会大打折扣,就会可能会影响一些用户体验。

所以说有些时候要在呃呃要在那个就是准确率和时效性之间找一个平衡。呃,至少工业界也是这样的。呃,可能说在真实的,比如说啊之前我也参加过一些天使比赛啊,开比赛,还有一些什么DC比赛什么的。嗯,在比赛中啊。

其实很简单很粗暴,就是呃用最新模型啊,就是就比如说什么buNN这种呃直接就是就是轻轻松松啊,不能说轻轻松松这句话有点有点呃有有点错了啊,就是说呃在国内拿前50都是很轻松的。就这样就是然后做一下数据处理。

做一下da塔干嘛cumentation这种就直接上就是做一下,就是基本上调调仓,后跑一下,就是输出一个结果就差不多前50是这样。但是工业界和那个比赛还是有很大区别的啊。

工业界是有时效性和准确率双重要求的。比赛的话其实简单粗暴就是准确率啊。呃,然后这一边的话其实。

呃,这应个第一章就完事了啊。然后第二部分就是算法CV算法工程师的一些面试套路。其实我觉得这个呃大家是非常非常想了解的,或者说像非常非常想知道的。就是说哎呀为什么我每次面试或者说我准备的东西,面试官。呃。

都不问我,然后呃面试官问我的问题,我都没准备,对吧?这个就非常非常尴尬。其实呃我今天就和大家来聊一聊这个事情啊。😊。

首先来说啊,我是因为我是社招嘛,呃校招的话,你可以去找隔壁小王子啊,让他来做分享。呃,社招套路的话基本上基本上分这几大块啊,第一个自我介绍啊,第二个项目背景第三个啊就可能项目为什么选这个模型啊。

这个模型的原因是什么呀啊,介绍一下这个模型结构啊,然后第四个啊模型优缺点是哪些?然后你是否做了优化,优化哪里,为什么这么优化,优化结果如何?然后第五个就是说哎你你你做了这个模型优化的话。

你这数据是从哪里来的?你的数据是怎么处理的,你数据量多大?啊后第六个可能说模型上线部署过程中啊,你问到了哪些问题啊,你如何解决这个问题,然后最终结果怎么样?然后第七个大家都不愿意谈的啊,你为什么离职?

然后第八个可能说。😊,呃,一些笔试题啊,或者面试官呃,稍微呃突师整件,问问问问问你呃什么残词补漏的某些API啊,或者说你原型呃你的项目工程工程工程设计中哪一些呃库,然后那些库的API是什么?

你垫用哪些函数,然后那些函数名是什么啊,用这些东西。然后。呃,咱们就针对于这个就针对一几项说一下吧,自我介绍就不用说了啊。项目背景我个人非常非常建议大家,当大家构建自己的简历的时候。

或者说当大家要继续去面试的时候,一定要阐述这个项目背景。因为这个项目背景决定着你为什么选用深度学习,呃,可能大家做过传统CV或者说没做过传统CV,就是做深度学习的一个前提是什么。

大家很多时候都是啊都是觉得啊这个模型牛这个模型厉害啊,我就觉得这个这个东西去做。其实不是的,有些来说这个项目背景很重要。呃,这个项目背景主主要侧重于什么?你的数据量,你看你数据分布。

就是说当你的数据量达到10万级以上的时候,甚至万级以上啊,不用10万级吧万级以上,10万级,甚至百万级这种的话,你采用深度学习效果要比传统的呃呃传统的传统的几传统的那个计算机视觉效果要非常非常好。

为什么?其实准确来说,就是说当你用当你数据量特别少,可能几百张几千张的时候。就会占成一个你要采用一个三6学习模型。假设说是inceptiontion V3啊,那么就会有一个非常大的问题。

overfitting,然后。这个over不ing怎么办?呃,可能说在比赛中的做法就是说你对他armentation,你不断的悬疑变换,然后高斯加噪加盐,然后effin,然后等等等等等等这种操作是吧?

各等等这种各种那个就是技术操作。但是在真实工业中项目中,我可以跟你这么说吧,跟你们跟分享这件事情,就是我们根本不采用任何数据括,对不起对不起。

哎,还行吗?还可以吗?😊,O ok ok ok ok ok, sorry, sorry sorry。

呃。好吧,那我们继续好吧。😊,那个抱歉,那个这边确实网络可能会稍微有点卡,然后这边我还应该会有录屏吧,然后。

呃,现在好了吧。😊,现在好了吧是吧?好了,扣个一,好吧。好的,扣个一。

啊,ok ok ok ok谢谢谢谢谢谢。😊,Oh。然后的话就是这项目背景我们介绍完了啊,自我介绍的时候,其实我就多提一句吧。当你自我介绍的时候,你一定要说跟项目相关的东西。你不要说不相关的东西。

你什么意思呢?就是说比如说我是学什么非相关专业的,我非计算机专业,我非数学专业,非统计学专业。啊,你就不要说了,你就说一下你学校,你是本科,本科本科就可以了。

然后的话你介绍一下你做了哪些项目跟节诊一个沟通时间。不要说太多复杂的乱七八糟的东西啊。然后第三个只是说啊项目为什么选择这个模型,选择这个模型的原因是什么啊?介绍一下模型结构。其实这个是个坑。我跟你说。

这个是个非常非常大的坑。只是说。面试官问你这个问题的时候哈,他想考察的什么?考察的是你对整个行业是否有深入的了解。为什么是为什么会这么说呢?说你对整个行业有这个深入的了解呢?因为你为什么选择这个模型。

这个模这个模型在这个行业的技术水平是什么样?这个模型能达到一个什么样的高度?这个模型能达到一个什么样的准确率?而这个模型有什么样的运算速度?对吧你这都要考虑的。如果说嗯就比如说当时面试我的时候啊。

我面了很多家。然后就我我在我简历中,我写的,我用了inception删。然后的话那个面试官就问我,你为什么选择这个模型?其实我可以给大家一个比较细谑化的啊比较玩笑化的一个呃说法。

就是说呃谷歌出品必须精品啊,就是其实呃这么说的话,我后来想了一下,稍微有点细谑。但其实也合情合理。为什么?因为。你想一想谷歌至少来谷歌谷歌至少来说在世界范围内技术水平是相对顶尖的对吧?呃。

中国范围内的可能说BAT比较顶尖,但BATD的话呃或者是face加加BAT的话出的模型相对来说不是特别特别的多。

谷歌的话至少有呃谷歌inceptionV1V2V3V4还有2inceptionV2啊等等等等,对吧?模型,那你想想谷歌线上跑的模型上它难道不稳定吗?对吧他难道呃不好用吗?

对吧所以说你当你如果说是当然这个可能跟我个人经历有有关。因为我个人之前是在小厂工作的啊,所以说呃我当时选择的是话选的是呃这么说,因为要跟着谷歌father是吧?呃去去呃去做?

如果说大家的呃那个个人个人的环境或者说个人的场景不一样。比如说我本身我就在大厂工作的那么你可以写一个比较牛的比较厉害的模型是吧?啊?我我我们我们为什么选这个模型,因为这个模型牛为什么牛,因为它参数量大。

它可以更好的,你和我的这个数据,我我好几千万的数据,你一个谷歌inception,那呃效果其实很差的那如果是那样的话,效果就非常差。可能就说你几千万的数据甚至上亿的数据的话。

可能就要用更更最新的更新一点的模型。比如说V4啊或者renet或re max等等等等。就这种东西。这样的话取取这个你选择什么模型,取决于你的数据量和取决于你你这家公司。所在整个行业的地位。

大多体上我个人认为啊就是说呃如果不是特别大的数据量的话,呃,一个inceptiontionre night V2或者是res next这种这种级别就够了。

不会不会搞到呃什么n night night这种级别,基本上就是就是这个这个级别吧。所以说。啊,这个问题基本上就是回答的相对来说是呃比较满意的。然后的话呃。选择这个模型,还有一个原因。

就是说第一点准确率。第二点是这个模型的一个时效性和稳定性的问题。因为工业工业场景它更多看重于一个稳定性。就是说不是说这个东西牛了准特别准,我就用它,有些时候是要看到它它不稳定。只要它稳定就okK好吧。

所以说呃结合一下这个这两点大家。选着根据自己的一个经历,然后去改自己的简历。好吧。😊,然后一下,然后那个就是还有一个问题,就是说。当。你说了这个你用了这个模型之后,然后的话就可能说面试官就会下任问你。

你给我介绍一下模型结构。其实这个时候也是个非常大的一个坑。就比如说呃我们用了,假如说我的简历中写了inceptiontion v3,那么inceptiontion v3最核心的结构是什么?

你不见得从呃第一层输入299乘299乘3到最后一层s max。每一层主要47层,你选47层,你全都记住,不用的,你你只要记住核心的结构就可以。因为说实话呃,几40多层的东西。

其实说白了一呃我们自己都很难很难记住。但是你把核心的东西记住就OK。然后的话这个时候你就需要用笔啊,不要用嘴说用笔去画一下这个模型结构。

就比如说你s你ceptiontion3最核心的什么是inceptiontion,对吧?res night最核心的什么是残查结构。这两个呃,在凡是你要去想做深度学习CV算法这块,这两个模型结构你必须要会。

必须就是背着默写,把这个模型结构背着默写下来,就能画出来。因为这个东西是基本上就是必考的,这个是必考题啊,送分题。所以说呃。然后的话你再补助以说呃比如说这个这个模型的输入啊,输出啊等等等等。

再加一些再加一些这个。呃,自己的一些看法就O了。然后呃。这个时候面试官啊,他就会问你,哎,你用这个模型,这个模型的时候呃,他有没有什么优缺点啊,他他哪里好,哪里不好。

然后你你自己就是用这个inception系列的时候,或者说用re night的时候,你是否对他优化。无论在比赛中还是在项目中,哎,你做了哪些优化,你是否尝试过优化,或者说你想到过哪些优化点。

然后你优化了哪里啊,你为什么这么优化,对吧?然后优化的结果如何,其实这又是个坑。其实这个坑反映的是什么呢?大家一定要清楚,这个更反映的是你对模型结构是否有深度的思考。你对你的基础知识是否扎实。啊。

啊可能有些人觉得啊你这你又说的比较深刻了,因这其实就是啊我我对吧?我就迁移学习,反正最后就是呃我搞了一个什么exception那个no top模型,然后后边加几层加一层卷机,加一层石化,卷机石化。

然后再加一层d out,然后再搞个s max就完事了,对吧?也很很简单,但其实不是的。其实是他问的目的是你为什么这么设计。你你为什么要迁移学习?你为什么要改最后几层?你为什么要加每一层block。

或者说每一层的结构,你为什么要这么加?反映出这个可能就是比如说假设说卷积对吧?就是卷积和大小,在在tan字葫中可能就是一行代码TF的L点convolution to d对吧?

然后你卷积核大小为什么选成3乘3,你为什么不选成5乘5,你可能说哎呀,大家都用呃5乘5对吧?对吧?或者说大家都用3乘3。其实不是的,背后是数学运算。所有的呃记着所有的卷积层叠呃叠加都背后都是数数呃。

背后都是矩阵和张量运算,就背后都是张量运算,矩阵是二维的嘛,然后张量是三维和三维以上的,就是背后就是张量运算,然后为什么选成3乘3,对吧?因为3乘3速度快,计算量小?对吧然后。呃。

这个时候就可能会有可能。哎,那你会算这个。就是说这个模型的一个参数量嘛,你会预估模型一个输出大小嘛,输入大输入给你个输入,给你个卷积核大小,给你步长,然后给你铺定值。然后你给我算一个输出。

其实这都很基础的对吧?什么呃嗯N减W加2派R排顶除以42加一对吧?等等这些公式,对吧?然后的话有些时候就是有些人会遇到这个问题,就是一下就懵了。哎呀,我都是掉别人的包,我都是掉gitth hubub。

我都是掉别人成信代码,我根本就没有想过优化。记者一定要想着优化,因为没有没有一个模型是完美的。它只有在某一个数据集表现的好,或者说在某一类数据中表现的好,它没有完美的东西。

所以说这个东西这就是算法工程师的一个功底,这就是算法派的一个功底。就是说你必须要知道这个东西它有问题。他一定是有问题的。为什么有问题?对吧因为因为你现在在这个数据数据量级。

比如说现在是100万的数据量级,mine那是100多万,对吧?它表现可能说准确率是86%,但是我上不去了,我我业务支撑,我需要我的产品经理,或者说我的呃公司希望在整个行业中达到90%以上,那怎么办?

这个这个模型它就是达不到的,怎么办?对吧所以说很多时候包括我之前面试的时候,我被问到这个问题的时候,我也是发懵的。我说这这个问题有什么意义呢?大家不都是掉包吗?对吧?都是掉包想。有什么意义呢?

其实不是我后来跟一个面呃聊过这个问题,面试官就非常非常深刻的跟我说了这个问题。他说不是说你现在的能力胜任不了这个offer,也不是说你这个能力不够,只是说万一我们的业务扩展了,我们的数据量变大了。

我们需要模型优化和迭代,你没有这个思考,你如何去去迭代呢?对吧你没有这个思考,你没有这样的一个sense,你连想都没有想过。那我你如何胜任这份工作呢?你你现在的工作呃。

你现在的能力完全胜任这份offer没有问题。但是一旦我们业务扩扩张了呢。这怎么办?所以说为什么有些人面试大厂或者面试独角兽面试相对来说不错的公司就会被干掉。就是因为就是因为他没有对这个模型结构进行思考。

他没有考虑说啊原来算法工程师是要是是需要往深里挖的,而不是他之前的做法可能说。就是说啊我会调个包,我会去呃把这个代码写出来。然后的话我会把这个模型成功的跑通,然后结果还不错。

至少百分之8%至少85%以上,结果还不错。但是他没有考虑过。一个迭代的问题。所以说真正的算法工程师,他需要考虑的是根据数据的不断改变,进行模型的算法呃模型算法的优化和迭代,这就是算法派非常非常注重的啊。

当然工程派那就很简单了,那就是来一个新模型,来一个新的文实现就OK了,也不需不需要可么考虑说这个东西他为什么这么这么写,为什么这么研究,不需要考虑这个问题。所以说相对来说工程派的话,可能。嗯。

在那个呃就是。某些呃地位上就是不如说算法派这些,因为算法派偏研究工作。因为呃说句不太好听的话,就是算法派就是智商年压啊,就是包括我们在公司里开玩笑跟同事开玩笑,当然开玩笑说,就是我们的代码你们看不懂。

你们代码我们能看懂,就是这样,就是为什么会会会出现这样的一个分歧,就是因为他们但不是不是代码每一行看不懂,而是说他不明白为你为什么这么去设计。你为什么这么做?其实这个是非常非常,这是你最核心的竞争力。

其实我后来跟朋友聊天,包括我自己去思考算法工程师最核心的竞争力是什么?尤其是在深度学习CV这个行业,最核心的竞争力是什么?不是说你代码多么多么强,你代码强,难道比那些常年呃开发几年的那种。

就是那那种人工程师难道要强吗?不可能的?你强就强占你的理论功底和你的算法优化。就想着想着这一点。然后的话我自因为我面过大概十几家吧。然后拿了几个offer吧。

然后呃之前还跟一个就是就是那个面试官聊的还不错,他就说呃他就问我这个问题,他说你知道为什么算法工程师要求都是硕士吗?啊,然后你是本科,为什么你知道我没有给你发,我们觉得你太okK。

我说我开玩笑说是因为本科呃S打头的那个就是比较多嘛,对吧?就是本科呃就是太菜的人太多嘛,他说不是不是这样的。呃,我问为什么?他说这样一个问题,就是说。为什么要求硕士?是因为硕士的数学和英语。

是经过考验的。地工底非常非常好。你你你做你做深度学习,你是清楚的。深度学习背后其实就是张量运算矩阵的张量运算。就是就是张量运算对吧?就是各种数学变患,就数学运算ba school也好。

还是ag school也好,还是还是con好好,还是等等的还是激活层也好,还等等等等。其实背后都是数学运算。而本科虽然说跟研究生学的数学大体上都是一样的,都是线行代数啊,改率顿哪呃。对。

数理统计啊等等这些东西。但是他本科很多时候的数学功底是不行的。而研究生他经过数学公底考验。然后他的英语也经受过考验,为什么初中英语是因为你需要看论文。你需要跟着最新的研究方向。

你需要跟着最新的一个市场的技术的一个方向。如果说你英语能力特别差的话,或者说你数学能力特别差的话,其实你是不够格的。就即便你现在做的项目做的特别特别好,结果也特别特别好,而且你拿得出手,其实。

你不符合我们的要求的。嗯,所以说。在这一点,我就非常非常建议大家啊,只是说一定要把自己的数学能力。呃,至少最基础的那些张量啊、向量啊呃矩阵啊运算啊、矩阵变换啊、线性代数啊、概世定啊,数据统计啊。

这些东西至少不见得你首见手有什么拉格朗日、中日定理啊,科技中支定理啊等等等等。这些东西不见得什么马尔科夫残税啥这些东西,不见得你都会呃完完全全一字不落的走手推。但是你要能看懂。至少达到这个级别。

这样的话,即便你将来看论文的时候,就是你就不会被那些数质符号啊,你就觉得啊那些东西是什么,是天书啊还是什么东西?就是所困扰。然后英语的话,我建议大家包括包括我自己啊,都接着需要他去看单词。

不断的去学习这样。所以说这一块的话呃,大家也不要说呃有心理压力说,哎呀,既然都要硕士了。呃,本科就没机会了。不是的,其实是从市场的行情来说,呃,本科在未来的今年是19年是吧?

今年和明年啊还是市场是非常非常大的,本科还是有非常非常大的机会的。呃,研究生的话可能说在CV这岗的话,可能研究生今年6月份的话可能会毕业一些硕士。但是研究生的话。

其实他的项目经验和那个工作经历实在是比较呃呃比较比较少的吧。所以说。他的竞争力也不见,他即便理论基础特别好的话,他的竞争力也不见得说比真正工作的很工作一段时间的要好很多。所以嗯大家不用担心。

主要的其实我觉得还是基础呃,一个数学基础,一个算法基础,还有一个英语基础啊,这个大家一定要呃一定要去扎实,然后一定要去。去巩固,然后的话可以我推荐啊,当时我也是这么过来的,就是呃。

其实我当时也是一个这么状态,就是别人我发现我什么都不懂,我竟然看不懂呃,这个东西为什么这么做的。就是后来把我逼的没招了,我去刷一下张宇的考研数学。然后又刷了一下那个咱们7月的那个就是。呃。

冯老师的那个数学课啊,就是所推SVM这整整的这些东西。虽然你让我现在所推SVM我也推出来,我承认我推不出来。但是我知道啊原来是有这么些东西,这么东西我换句话说。

我不会我不会这我对这个问题有一个深刻的我有一个宏观认识,我不会觉得这个东西是我视线之外的东西,我不会对他产生恐慌啊。啊,对了,那段时间我又把花书刷了一遍,所以说我建议呃找这个深度学习的岗位的小伙伴们。

有时间把话书刷一遍,这个花书刷到什么程度呢?就是不求甚解,就是你不有些如果你能求肾解,在短时间内求肾解更好。如果求不了肾解的话,就是你先把所有的东西从头像到尾像看小说一样看明白,你不要想明白。

想明明白它是什么东西。你知道你对这个深度学习整体的脉络,有一个宏观概念。然后的话在你工作中或者说在你的在你准备简历,准备面试的中,有针对点去突破就好。呃,所以说这块的话我讲这块的话,我就跟大家说这些啊。

然后的话第五个问题啊,只是说数据从哪里来,数据怎么处理,数据量多大这块其实很好说啊,就比如说数据从哪里来,呃,你你一定要清楚一件事情,算法工程师不要干太多其他杂物。要成功的甩锅啊。

只是说很多时候有些人都觉得。哎呀,是不是我要体现我一家工程能力啊,我会爬虫是吧?然后我会数据处理,然后等会等等等的,我会数据挖掘等等等等等等。其实不是的,那不是你核心业务。

很多人都觉得啊包括很多面试回来,小伙伴的说候,哎呀,他就问了我爬虫问了我数据读问问了我数据处理怎么怎么怎么样怎么怎么呢是吧?其实不是的,在CV这个岗的话,数据处理其实相对来说还是蛮呃蛮少的。

对吧还是蛮少,虽然有,但也蛮少,主要是什么?主要是什么?主要是你算法的一个模型结构。你你记住,无论谁面视你,无论。呃。他怎么问你一定要往模型结构上去靠,我设计的是模型结构,我只参与模型结构设计。

还有模型的呃模型的一些呃代码设代码过招,其他的我不我不知道都是别隔壁组做的,要么是工程组,要么是啊爬中组等等等等,一定要成功摔锅,不然的话呃,你一旦深问你会把你问死。问死你很轻松。

除非说你特别特别的大佬,除非说我爬虫我crpy,我分布式分布式爬虫非常非常厉害。我爬上亿数据,我们公司都是上亿的,就是爬数爬数据都是上亿的,以亿为基础的。所以说嗯那这样问你就那那就来了。

那你你你你上亿的,你你反他怎么处理的等等等等。后续很多很多问题。所以说你啊你就非常非常嗯就就比较尴尬,对吧?然后你数据怎么处理的?其实在深在CV这岗的话,数据处理可能相对来比较简单,可能说什么二质化啊。

对吧?呢那个那个就是会一化,然后的话那呃然后旋转切割平移,然后等等等等。然后加高斯高斯降噪,然后高斯加盐,然后等等等等。然后这块的话因为有一些是呃公开的一些呃就是库你可以去调用openCV也好,阿也好。

都会以去调用。然后数据量多大,记住凡是向上到就是说项目经验,深度学习的项目经验,数据量不会低于20万以上,不会低于20万以下。所以说你这块的话,不要说低于20万以下。你要如果说到20万以下的话。

就会就会觉得你嗯你这个项目也不是特别特别重要。不会不也不是特别特别重要,只是觉得呃数据量太小,你不应该用深度学习数据量过大。哎,你公司规模是多大了?所以说这个数据量这个问题,大家要根据自己的一个。呃。

所处的一个形象情况啊啊所处的一个环境,自己去预估一下,或者说自己去看一下。就是说我公司一个数据量多大。呃,大体上我之我记得我之前的公司的话,大概也就是30万30万左右吧,是吧?

然后这块大体上基本上面试觉得嗯挺满意的。因为因为因为因为是这样的,你所有的选择基于你的环境。你所有的选择你你所有的模型选择、数据选择等等等等选择都基于你上一份工作,上一份公司所处于这个行业的地位。

甚至甚至我之前面试的时候,我都会被问到,说你们公司为什么选择深深度学习?你你们公司为什么能会选择深度学习?然后的话。深度学习这么新的东西,你们公司怎么会知道的?对吧都会你都要你都要去事先你要准备好。

你要知道。这个问题如何去回答呃,可以我可以给一个官方的一个回答。就比如说相对来说比较细运。可能说呃就是呃我老大之前在谷歌中国工作,然后我们的业务中涉及到一些图像识别,或者说图像检索等等东西。

然后的话我们去查了一下,从谷歌呃我们相信谷歌是呃行业比较领先地位的。我们所以说去查了一些谷歌的模型,然后把谷从B的h上呃拉了一些代码,然后自己去更改,然后去去去完成这个任务,完成这个完成这个项目。

就这样。包括我我面试的时候,大体回答思路也是这样的。呃,事实上是我老大也真的是谷歌中国开发工程师啊。我当时的我刚当时的公司CEO确实是这样。呃,然后的话呃还有一个问题啊。

就是说模型上线部署中遇到了哪些问题,你如何解决问题,最终结果怎么样?这个问题其实是一个大家在没有经过面试的时候考验的时候,大家都不会想,就是说模型上线过程会不会遇到什么问题呢?然后对吧?

就会尤其是可能呃一些小伙伴没有经历过呃项目经验,没有时候没有一些那法,就完全这个问题就是懵的状态。其实遇到哪些问题,可能就是说就比如说目标检测。呃,目标检测有个非常大的一个问题,就比如无论说是优o也好。

SSD也好,还是呃画啥子也好等等等等。这些检测模型就有一个可能说比较普遍的问题。小目标检测。效果不太不是特别好效果不是特别好。然后还有可能或者有些目标被遮挡的时候,识别不出来。

被遮挡一部分之后识别不出来。然后你是如何解决这个问题的?其实这个可以甩锅嘛,我教你们甩锅啊。甩到什么国数据分布。怎么甩到数据幽末?其实就是说当你模型训练的时候。

你这个数据量这个就是你出现问题的这个数据就没有这没有参与模型训练。你你你们明白我的意思吗?就是说就比如说我们说的小目标检测,小目标检用呃,小目标不好那。为什么小莫不好?因为你给我的数据的时候。

你数据的标注的时候,比目标检测中有需要bony boxbonundy box中。我们要检测那个那个小的bony box,它就它就没有勾标,或者说它这个数据占整体的数据量不不是特别特别大。

对吧然后的话比如说他标的小目标,可能说嗯在只是假如说整体数据量是。25万出张图片,整体给我标小目标可能在3000张左右。你想想这个数据能能,对吧?我们会很小,所以说它就会有一些小目标检测呃。

不是特别好的问题。啊,当然有些人还还有还有可还有比较细腻的方说法,就是说哎我上线模型上线没问题。其实当你这么说的时候,呃,面试官就觉得。😊,呃,这个这个朋友觉得不太靠谱,因为。呃。

模型不可能一点问题都没有的,或多或少都会遇到一些问题,识别不准啊,或者说嗯比如分类问题,可能分类错误啊等等等等,都会有一些问题,对吧?不可能遇到一点问题没有的。所以说你这么如果你这么说的话,OK呃在。

在你你如果说你其他的表现什么基础啊,或者说呃什么笔试啊都OK的话,可能说大家睁一只眼闭一眼过过去,或者说这家公司非常非常缺人的情况下,就可能就给你off。但是其其他情况下基本上你就是过不去的。

基本上就是你过不去的。因为你一定会遇到问题。你一定要知道我我我所有的模型都不是完美的,所有的模型都是你和数据的结果。这个数据如果说出了问题,这个数据没有体现我真实的数据分布,那我训练的模型就会有问题。

这个一定要就是甩锅就甩到数据上。然后的话嗯当他可能会问你这个数据谁给的?你就跟我说,你可能说说哎呀你的运营同事或者说你的甲方对吧?你是乙方如果你做外包的话,你就乙方乙方对吧?

给的甲方甲方给的然后的话他的数据标注有问题。然后然后他的问题如果解决这个问题,让他们重新标注呗,多大点问题,对吧?重新标注呗,然后或者你或者还有一个问题,就是还有一个方法。

就是你对这些小对这些小目标的数据进行数据扩增,增加增大这个数据在呃整体样本中的分布,然后看一下你真实根据你真实分布的比例啊,去按照这个比例去扩增扩增到这个比例的话,然后最后进行重新重新模型重新训练。

然后最后结果怎么样,最后结果你就说呗,就说这个。这个问题解决了,对吧?至少这个问题呃是可以在接受范围内,不像以前说小目标完全是坚持不了,现在可能说准确率稍微低一点啊,大概60%多就这样。其实这都OK的。

因为因呃因为因为现有的模型不可能你合所有场景的,就是至少我认我干我看到的吧,这些模型不可能你和所有场景。所以呃出现点问题不是特别特别大的问题的话,其实都OK。好吧,然后第七个问题其实也是蛮坑的一个问题。

就是你为什么离职。其实大家都不都不好意思说是吧?其实核心也离职原因啊,对吧?要么钱少了,要么干的不爽是吧?但你不能这么说啊,我可以给大家一个呃就是比较相对来说比较呃十三的一个方法啊。😊。

就是比较就是比较能催的方法。其实包包括我包括我被面试的时候,都是我面了这么多家,每一次我都会被问问到这个问题,每一次都会被问到你为什么没离职,你为什么离职,原来工作不挺好的吗?你为什么离职。

其实呃呃呃人的思考是有一个高中低维的。其实这个问题我教大家怎么去回答,或者说教大家怎么去思考这个问题。其实他问的为为你为什么离职,不是想追究你你为什么跳槽,就不是不是问你他想知道你思考的方式。

他想知道你是如何以如何去思考问题的。其实这个问题实际上你要从呃行业,从企业,从人从各自自我这三个角度去思考问题。为什么从行业从企业从人呢?首先来说行业可能说我之前这家公呃,之前这个这个行业吧。

比如说人工智能这个行业哪一块对吧?呃,发展最好啊,北京北上广深一线城市,对吧?那么只是说为什么这个行业会发展这么好?因为因为。互联网时代十几年十几年对吧?然后留下了大量的数据。

对吧然后留下大量数据怎么办呢?这些数据是值钱的,这就是矿啊,我得找办法去挖矿了。然后需要一个算法去把这些数据的价值去体现出来,或者说需要一个算法去把这些数据的分布去拟合出来。

对吧所以说这个行业是未来朝阳行业。对吧越走越大越走越宽,是这样。当然那个每个行业都有它的生命周期,这个点我就不说了啊,这个对吧?互联网行业有它的生命周期。现在应该互联网行业处于一个呃衰弱期。

大概是一个衰弱期的一个状态。呃,可能AI领域刚刚处于一个萌芽期,或者说在成长期,成长期这么一个状代。只是说这块是一个每个生命都有一个周期叫S型曲线。大家可以去查一下啊,生命周期呃呃成熟S型曲线。

所以说要我要踩着这个这个行业的阶梯是吧?我要我要我要入坑这个行业,然后从启业,为什么说我要跳槽?或者说为什么我要离职,是因为我原来的公司,他不是特别特别重视呃,就是研究。

或者说他不是特别特别重视模型结构,而我个人是非常非常重视模型结构研究的。我是非常非常想深入这个行业理解。而我之前的工作时相对来说可能说是呃比较注重代码的代码比较注重代码工程,而我没有时间去研究它。

我没有时间去了解这个这个东西的具体构造,具体怎么设计的。我永远都是一个调包侠。对吧。😊,所以说当你这么说的时候,面试官觉得嗯这个这个朋友或者这个面试呃这个这个来来来面试的人。

他是有高中低维三三个维度去思考问题的。他知道未来的发展是这样。然后他也知道他公司的目前环境是这样,他自己他也有想法,他有追求啊,这个小伙子思维是相对来说是立体的,他不是单片面子。你明白吧?

只是说思维一定要是一个立体的,是一个综合性的结果。它不是一个单片面的。比如说哎我就觉得就这个行业好,为什么好好在哪里?我就觉得我公司不好,钱给的少。你单如果单一就是因为钱给的钱给的少。

我觉得就是你单一思维的话,可能这最后的结果就是。所以你你你只你跳不出一个跳不出你的思维局限,你更需要一个宏观思维,宏观到微观,一个这样一个整体的立体的思维。你这样的话,你的思维思维是饱满的。对吧。

然后最后一个是笔试或者面试官出题。这个这个的话基本上我遇到的啊。Yeah。呃,这个就是我们说的那个inceptiontion和r night啊,然后。呃,回到这个就是说笔试和面试官出题,这个是不定向的。

基本上我我总结了一份。呃,这个面试官出题的一个总结吧,然后回头给发给大家啊。然后笔试题的话基本上。基本上就是分类手写分类,手写排序和手写查找。

基本上就是基本上就是这种这种我遇到的就是这些不会太数据结构的话,就是数据排着查整,排序和查找不会太难。至少在CV这个行业的话,是这样LOP的话可能还会涉及到什么呃动态规划等等等等。对吧这个。呃。

我个人建议大家把主要的时间去深挖基础,深挖理论,深挖模型,深挖深挖论文。呃呃然后当你看论文或者说看出类的时候,然后你再去呃写写代码,再去刷一刷lid code啊,刷刷建着活这些东西,好吧。

然后这边是这样,就是我们刚才说的啊,你为什么选择in,为什么不用呃选择resite?其实。这也是一个呃。你对模型下结构理解的一个问题。就比如说你s啥input299乘299乘3。

我之前遇到过一次一正面字题,他问我一个这样的问题,他说你见过。呃,结尾不是呃,你见过就是模呃模型输入是不固定输入的模型吗?是什么样的模型呢?那个模型输入是不固定的。呃,全图片正常来说。

模型输入是有大小的,就是299乘299乘3呀,还是20呃还是其他的什么416乘416乘3等等等等。为什么好了吗好了吗?那个刚才我看到那个那么。哦,卡了,现在好了吗?要扣一下一,扣下一。ok ok ok。

😊,呃等一下啊,我找这个对。然后的话。对吧只是说然后的话这样的话,如果你输入变的话,你的输呃你你的模型权重是不断在变化的。你这样你你训练不就是顺训练的一个模型权重嘛,对吧?所以说。

当你有全链当当你有那个全链阶层的时候,你的模型输入是必须固定的。当你呃没有全链阶层的时候,就是全卷积网络的时候,你的模型是无所谓的。可能比较核心的结构,就比较核心的模型,就是说LCN啊或者是unit。

就这种的就这种的卷卷机网络。所以说当你面到面对这些问题的时候,你一定要是有一个基础。你才会去反反思考吧,思考啊,原来是这么回事,原来是这么回事。而且有趣的一点,他之前还有问我。你如何预估参数量?对。

就是参数量这个事儿,我就不跟大家去说这个事儿了。因为我总结了一个一个小结啊,然后回头大家自己去看,然后也给了答案,也也给了博客弟址,大家自己去看,好吧,呃,节省下时间。哎,突然有个问题。

为什么出现ressonnet?对吧为什么出现ressonignite?这个ressonnet是微软研究的。还还还是那个谷歌,还还是facebook,我记不清了啊。

就是呃inception v3是谷歌的对吧?为什么?其实可能大家说会说啊reson night当你模型呃深度比较深的时候,为什么深度比较深,要追求深度比较深?因为身在成多高额语义的特征。

然后的话当你模型深度深度特别深的时候,如果说。以往的那种方式哈,它都会就是当你前向传播的。当你反向传播的时候,列式求导就是列式求导非常非常长。

然后的话就会如果一旦你六线求导中之前有一个是呃我们和凯明大佬就提出了一个叫res night的结构,就残插结构哦,外边牵了一条线。啊,就牵了一条线,然后这样的话就是说当我它梯度,让让它梯度永远不消失。

对吧。哎,我有个问题,为什么inception v3,它是他要横向,他他他是做出inception v3的mod这样的一个格式了,就是ressonnet它是这样纵向的。其实在面试过程中。

我也被问到这样的问题。只是说为什么resignnet往三乐发展,谷歌是往横向发展。其实准确说,其实这是两家公司对于一个模型结构的一个探索。你你你一定要说往一个模型结构的一个探索这个方向去找。

这样的话你找到的工作,你才会是可能说是偏算法研究的这个方向。如果说你的你你你的你的表述永远都是说哎我是如何去实现,如何去实现。那你你让看你让面试官看不到,你对这个问题有有思考,你对模型结构有思考。

那面试官即便把你招进来,他也不敢确定。你是否有研有那个有自己独立设计论文的能力。所以说你可能更多时候是工作工程之撑。你明白吗?所以说。首页首页所以说当你面试的时候,当你回答问题的时候。

你一定要表现出我自己是对这个问题有深度思考的。微软呃facebook对呃。对这个模型深度有探索。然后呃那个呃谷歌是对那个模型的宽度进行探索,对吧?那现有的在2017年以前,对吧?

是深度呃der is better对吧?越深越好,看你能干多深,有1000多层的对吧?ressonite。然后最近的话大家都在往宽度上进行课本。我不知道大家是否有读过最新的几篇论文。

然后我这这个这边分享之后,这边那个PPT啊,我都会分享给大家啊。然后我给了几个论文的地址。其实大家都会在在宽度上进行扩展。其实宽度有些时候不见得比深度长。然后这边我们就过去了啊。

然后还有一点就是因为我的简历中涉及到呃U路三和那个目标检测,然后我就会被问到U路3和那个bussRCN的问题。然后呃。我不知道大家是否那个有这样的一个sense,就是说当你问。

目标检测fasRCN的时候就会有全家统的事儿,什么全家桶的事儿呃,是吧?RCNfasRCNfat特RCN这个三个区别是什么是吧?然后。呃,他们三个有什么优缺点呢,对吧?对吧那我我我们就稍微讲一讲吧啊。

好吧,只是说。RRCN的话,它其实主要的一个呃步骤啊,就是用一个它提出的一个selective search啊,从那个。带检测图样中提取2000左右的一个那个proposal。

然后这边选了这边的那个候选呃proposal,可能要含有一个检测的目标。然后他把所有的那个候选框啊都那个放呃缩放成一个固定大小,应该是好像没记错的话,应该是27乘27。

然后的话用那个卷积神经网络进行每个凑远光特征提提取。然后得到一个固定长度的一个好像特征向量吧。然后把特征向量送送入一个非常重要的一点,就是SVM分离起。

那个时候嗯全连接网络进行回归和呃对应位置的回归进行分类和那个类别分类和那个位置的呃对应位置坐标进行一个回归是吧?然后就是那个RCN,然后这中间吧,其实何海明的博呃,那个何海明博士啊。

他又在那个RCN基础上搞了1个SPPnSPPnet其实最核心的其实有一点他引入了一个叫空间金字塔啊,采呀采样空金塔这个结构啊呃special pyramid啊 pulling啊。呃。

然后那个对那个卷积特特征啊进行空间进电场采样,获得固定的一个常入输入啊,然后可对那个。特征层任意长宽比此路需进行特征层全呃特征提取。然后这边其实当他做出STPnet的时候。

其实是为后续的bussRRCN打设基础。对吧。然后那个Snet和RCN1样,它都是那个训练的进行多个阶段,然后中间特征进行存储啊,然后这这些这些的那个组织细节啊,大家去看论文就好,好吧。

然后然后下面一个就是可能说bussRCN。然后bussCN的话可能就是。呃,就是针对CN和SCP在训练时多阶段的一个和训练过程中和耗费时间的回归问题进行改进。然后他把那个SVM分类整合一起。

然后搞了一个呃不用SVM了,然后搞的那个 max。然后使网络在那个就是OVC数据啊搞到那个就是CN的84小时缩短9个小时9。5小时,然后检测时间做到0。32秒等等等等。

或者说呃对它还有一个它主要创新是一点就是RY pulling对吧?就是他将不同大小后仰光的卷击特征统一采样成固定大小特征,如果每次面试的时候都会被问到就是全家桶这个事,就是每次面试都会被问到这个事。

所以说大家一旦简历中涉及到说我简历中用个sN的话,一定要准备好RCNCNRCN三个时间的区别。如果你要简历中还涉及到CN攻击这4个你。说不用面试官问你自己主动去说,为什么面试官。你你记住一点。

就是当你面试的时候,永远不要竹筒倒肚子。就是面试官问你一句,你回答一句,你要看称这个这个环节,你要自己去主动去说。不是说显得我呃非常非常专业,甚至你本身就很专业,好吧。😊。

然后fast就这个就那什么了嘛,对吧?这个其实它主要就是做了一个reason proposal,对吧?network,然后的话他又搞了一个一定规则,这是不同尺度的anor。

然后因为通过RPN的卷积特征给予呃代替那se search,对吧?然后呃他实现了一个端到端的一个训练。然后候选区域生成啊啊候选区候选区域特征提取啊,回归分类啊,一气呵成的这种。它是真正的意意义上的啊。

第一个学习呃深度学习目标检测算法。所以说当呃。那个怎么说呢?就是当我们比赛过程中啊,就是说大家可以去用一下busbustRCN这个模型其实还是效果还是蛮不错的啊。它比优罗要准很多。然后优罗的话。啊。

一阶的嘛,对吧?就是他就把那个到呃我的简历中涉及到663,所以说我每次被问被问到。简历的时候啊,他问我优罗三,其实他潜意思就是想问我优如一右罗二跟右如3。所以说这块的话,因为时间原因啊。

我就不跟大家那什么说了啊。然后后面有论文,我给大家准备了一些论文资料啊,中英文对照的,还有英文论文原文,还有一些代码,还有一些我觉得不错的一些呃一一些笔记吧。好吧。

只是说呃然后你回到我们这个说的这个就面试官笔试题和面试官出题这个事儿。就笔试题的话,其实我遇到的啊就是手写数字结构,就是都是手写。呃,就是全是用他给你个笔,然后然后你自己去手写这样,然后手写数字分类。

大家不要小看这个min的分类啊,就是很多人都会呃我不是很多吧,我至少遇到两家,就是你用car或字给我手写min分类,从头到尾从手写API全都给我记住这种啊。这个其实大家好是准备一下比较好。

然后第三个就是搜写C帕值数据分类。这个是我面一家独角兽的时候。呃,被被问到了,然后当时我也是比较懵,然后后来还好就是写出来了啊。然后面试官出题的话,那就是基本上三度学习基础,那就不定不限不不定向啊。

什么BBBBBB反向传播等等等等,我无数无无数的事儿。然后那个调三对这个问题还是跟大家分享一下调三这个事儿,其实调三嗯。主要就是对于我来说吧啊也比较low啊,对于我来说。

主要有条blash size和和lening,还有还有那个你的呃alim对。就是呃通常来说,我当我训练模型的时候,我通常都会选择alam,先跑1到2个apple呃,后跑两个apple左右。

然后那个如果是迁移学习的话,我的认 learn rate会非常小呃,和那大概0。01或0。001这种这种级别。十的呃-3次到1的负4次方这种建议如果是劝一学习的话是这样。如果说是自己从头训练的话。

几个几个几分类的话,可能说我的呃那个任人瑞的话,那就0。1。然后8级赛的话,大家通常都是选二的。二的那个阶层啊啊,不是二的那个。二的N次方啊,就是32啊。

64啊这种128这种不可能大家的硬件设备不太不太好。然后嗯基本上我觉得呃不要太小,为什么不要太小,是因为你 size小的话,当你处在los曲线,无论是就从探测报的看着中的los曲线它会非常非常震荡。

而且当你反反向传播的时候,对吧?呃,那个每次呃反向传播的时候啊,那个就是说它的损失损失是一个不稳定状态。对吧然后。呃,还有一点你前象传播的时候,就是模型学无法充分学到那个就是特征。

就是它会有可能会出现一些模型。呃,就是你送入图片的时候,可能会就是样本不均衡,就造成整个模型训练失败。所以说在那个调大败纸还是蛮的重要。但有些时候像参食活入的话,包括我现在工作经常会遇到1个OM错误。

这个东西也挺也挺玄学的啊,就是基本上都是。呃,基本上都是这样,就是说基本上半 size就是呃你要是不断去试,你也不知道这个机器说它没有一个固定的。比如说这个机器呃就80就能跑,一定能跑,不是不一定的。

有些时候你需要去试了,你需要去呃不断去试,然后找到一个大概合适的一个白 size,呃,不要太低就好。然后learning rate回到我们那个就是learning rate和opim。

通常我会先用呃adam防两个apple,然后下降到一定损失之后,然后换SSGD呃,大家不要小看SCD啊,其实。哎,有个问题啊,那个这个问题我觉得还挺重要的。呃,题外话,你觉得深度学习发展这么多年。

哪一篇论文是最最有价值?对我会我被问到了这个问题。这个问题其实显凸显出你的逼格,真的非常非常凸显出你的逼格。呃,有谁知道这个答案吗?呃,这个这个还还在还在吗?还能听还能听清楚吗?呃,扣个一呗。哎。

这个公园同学啊真的非常非常厉害啊,就是SGD就是SGD。就是这个问题就是说呃大家伙怎么想说哎这么多模型啊,为什么会是STD呢?呃,包括这块大家面试过程中都可以跟面试官说,主动跟面试官说。

我觉得我看过这么多篇论文,我觉得SGD最有价值,为什么最有价值?是因为它从根源上把一个比较抽象的一个图像问题活跃把。呃,优化呃变成了一个优化问题,然后并给出了一个优化方法。

因为之前是大家是不知道如何优化的。一个一个非徒函数优化,大家不知道的,不无法找到这个非徒函数的呃最低点。对吧所以说后续的这些模型啊都是根据说啊这个东西是可以优化的,才会有发展。如果说让你做一件事情。

让你做一件没有发展,或者说让你做一件这件让你做一件呃,就是没有出入的事情,你觉得再做它有用吗?所以说最重要的这大家要记住啊,这个事儿可以跟面试官就是装一下,稍微小转一下是吧?

我觉得SGD是嗯深度学习最重要的一篇论文。啊,面试官觉得嗯。很很有那什么很有深度,所以说这块稍微小记一下啊。

然后这块的话就跟大家分享一下部分的一些面试题吧。呃,基本上就是刚开刷说的差不多了,介绍一下inception V3re night,然后什么是BN层B层有什么作用?

然后简辑一下CN说一下max fourLL4等等等等。还还有一点,这个很重要BT的数学推导。

这个其实在面试过程中很容易被问,很容易被问。而且是几乎是必问题。就是当我面一家呃A打头的大厂的时候,我就会被我就被问的这个问题,就是手手动手动的反向推推倒。

但是不是说呃是他给我一个就是给给我大概五层网络,五层网五层的神经五层神经网络,让我吹某一层的一个呃。就是呃某一层的一个损失那1一个一个梯度呃,对某一层的一个WW和呃和B的一个变化。大家明。

大家知道是那个那什么吧,就是对推导什么吧,就是反向传播,反向传播是梯度是吧?那什么梯度啊损失的梯度是吧,知道就行,然后不知道也没关系啊,不知道的话就是刷一下基础,呃,然后说一下优路3优路3。嗯,这样吧。

我在这这边跟大家聊一聊U3嘛。因为我也呃我因为。我那个简历中涉及到了一下涉及到了us。然后的话。当他问你一个就是最新模型的时候,你一定要有这样一个概念。我不能单只说这个模型。

我要把这个模型涉及到的历史都要说出来。只是说U州3的话啊,那么就说U路一U罗2U州呃U罗3,还有U罗台尼U路主线,对不对?对吧?当然不见得你不见得把所有都锁了,就说U路一U罗2行,那么就说一下U录一吧。

U录一的话,它就是它是它是一阶的模型,对吧?它就是把那个针对于最后的特征图啊,7乘7的特征图进行一个分析,并在他对小目标的检测非常不佳。然后的话。他是一个。直接它是它是这样的。

就是放啥时间都是二阶的对吧?CN也代表二阶检测法它是一个呃舍去了一个那个候选框提取分支,就是舍去了一个pro阶段,直接将一个特征提取,然后后选框回归分类在同一个无分支的一个呃CN中完成的。

使得那个就是网络结构也比较简单。但是这个优录一也好啊优录2也好,U罗三也好啊,优录三会好一点。就是在优录一U2在那个小目标检测会非常非常差。所以说在你针对于在你的项目中。

如果是对于一个准确率特别要求特别高的一个项目中,千万不要用千万不要用。而且U罗山好像是我记得是18年才出来的,所以说。呃。呃,你模型的一个时效性和模型的一个就是呃模型的一个准确率。

根据你项目其实要完全匹配的。如果说你再一个就是说假如说一个呃传统企业吧,比如说假设说你你你的简历中涉及到一个传统企业中,非常对准确率一个瑕疵检测非常对准确率要求特别高的,你跟我说用了优。

我其实我就很好奇,你为什么要用一个准确率这么低的一个准确率不是特别高的一个模型去去去实现你这个呃准确率要求这么高的一个场景,对吧?所以说有些时候当你选择模型还会回到这个问题。当你选择模型的时候。

你一定要是配以场景。配以数据。配你业务,而不是说完全的就是就一下子就说okK我就是选这个模型,我就觉得这个模型牛,大家说牛,大家说好,不是的,有些时候要匹配你的场景,而且更多时候就是匹配场景。啊。

话说回来啊,U2的话其实改进了一些U一的一个网络结构啊,其实它呃除了加了一些呃P规优化啊,然后加了一个残插网络,还还呃搞了一个就是高分辨率的一个分类网络啊,48,好像从48,好像是从48乘48吧。

然后利用那个该网络训练那个呃该网络训练那个网络吧,就是。怎么说呢?就是说他借鉴了其实达的一个an思想,就是说他他呃优龙那个作者其实我不知道大家是否看过那张照片,还是相对来说比较比较爷们。

但是他他的论文其实呃很很很可爱啊,他的论文写的很可爱。就是尤其优龙那边论文,还还有那边还有那边他自自己的简历写的很可爱,挺有意思的。就是比较萌。

然后他他就非常鄙视这种呃鄙视那个何海明搞的这个发达的这个re什就是插结构。然后最后的话他还是用了那还是用的,因为呃在2017年还有2018年就是证明吧,就是深度还是要比广度要在特征提取上要更好一点。

所以说所以说当大家如果面试中遇到这个问题的时候,一定要是有年限。只是说但不代表说广度就一定比广宽度啊,只是我说的广度就是宽度,就宽度模型不见得就完全比深度模型差。因为这个东西其实它是一个争论的结果。

而且现在的话宽度模型的话,其实有也有一些好的新的模型在inmite上表现非常非常好。我,回头推荐给大家啊,因为这这也是我最近看的一几篇论文。对吧。然后说到U洲3优洲3的话。

其实在优罗2G上弄了呃全新的一个什么大可耐53啊传插网络。然后又为又结合了1个FPN那个网络结构结构。然后的话。就是是整个网络两个特征图上海呀,后于网络前期相应尺寸的一个特征图啊,然后再经过什么CN呃。

后得到一个预测结果,就相对来说优路3的话,我因为我自己跑过优路3,我也呃我也参加用优3参加过比赛,优3的话,在小目标上确实要比U2要好很多很好很多。但其实他在优3的,在比赛这个场景下。

它的准确率还是没有ssCN高,它还是没有sN高。所以说凡是涉及到那个比赛项目的话,如果大家想参与比赛的话,呃,fasN和在是吧,是首选是首选真的是首选。好吧。

然后的话剩下的就是一个画一下一ab3和ressonite的这核心结构,这个都是日常操作,这这是必须会的。就是嗯你想干这行,你这个这两个这两个模型你不会基本上你很难混下去,真的你很难混下去。

就是就是这两个东西就是最核心结构就是in module和和残插结构,对吧?这个东西,而且他还会问你为什么会这么设计。大家想过吗为什么这么设计?其实很多时候。算法工程师它更偏向于模型结构。

就是他就是倾向于模辑结构一样。很多时候那那我们看到什么工程派这些的,其实本质上它并不是一个算法工程师,本质上它并不是那么,它只是一个title,而本质上其实还是在干干工程结作,工程工作。

真正的算法工程师,其实它最核心的最核心的目标就是研究模型结构,它为什么这么设计,如何怎么设计,如何用这如何用设计,如呃怎么设计这个模型。才能让这个数据表现的更好,数据分布比合的更好。就这样。

所以说大家一定要有这个ss,从可能说之前是没有,但是今天可能说通过分享嗯,大家都有这个sense,有这样一点点进来,我也是我也是通过面试过程中,因为我是工程派,我也面过算法派我面过两两派我都面过。

我才我才会知道啊,原来这个市场。是有这样的一些要求的。比如说当我准备代码的时候,我发去面算法派不行啊,人家瞧不起你啊,人家觉得你你这个思想深度不够啊。当你准备那个理论深度的时候,然后你去面共同态的。

工程状态,觉得你说的太虚了,我们就需要能实践就行。你能搞个分类模型就行,不要搞得太太太高深,能能能做出来就行。所以说有些时候当面试的时候,即便你过不了,拿不了offer,不见得是呃你的问题。

有些时候是你选是你是你这家公司不见得适合你。所以说大家不要因为说一两次或者说几次啊,面试没有拿到offer就上市信息,我大概的话,我是前六次面试都没有offer,前六次面试都没有off。

我大概面了十几次。后面的可能有些人就知道啊,后面的就是你从拿到第一个offer开始,后面就开始就是刷起来了啊。只是所以说。呃,我至少我了解的就是这些朋友们面试过程中面试的呃,只只有个位数了。

就是说可能说面一次过4次,或者说面三次过两次这种这种概,其他的大多数都是在面呃实事以上的,都是实时以上,至少都是面试以上。所以说大家也不要觉得说呃被被虐被面试背怼,就觉得自己能力不行啊,或者说么不是的。

有些时候是因为你你的不匹配,有些时候是不匹配的问题。就是说你准备的和他要求不匹配。所以说今天通过分享,大家知道啊,呃,我我倾向于哪项,我倾向于哪边我的学习方向应该怎样去修改,我应该怎样去准准备我的简历。

我该应该去找哪些公司。然后这些公司如果说他特别特别注重代码,特别注重注功能实践,我应该怎样去回答。然后如果说这家公司特别特别注重于算法的一些底层理论,数学基础这些东西,我该如何去回答,这样的话。

大家有地放矢。而不是说嗯就是盲目的,比如说比较悲观的说,哎呀,我就找不到工作呀啊等等等等,那些东西都是没有意义的,完全是没有意义的。主要的是。其实你要了解整个行业是个套路,它这个套路是什么?有哪些套路。

你知道这些东西就是你手里有了很多武器,然后上战场,为你选择哪一个武器,但是你选择的事儿,你不要害怕你这个。

那嗯。呃那个能听清我说吗?能听清我说话吗?扣个一扣个一能听清说话,扣个一。ok ok oks sorry,那我就重新再说一遍。其实。最主要一点就是说从为什么我会这么说,说,大家不要因为说一两次的失败。

或者说一几次的失败去丧失信心。是因为从整个行业来说,从整个国家来说嗯。嗯,就是AI这块绝对是最核心的最核心的资金资本,包括人才,最核心整个国家战略。所以说你踏你踏上这辆车。对吧就。

现在是指就你踏上这辆车就会有发展。你现在问题是你你必须要踏上这辆车,你必须要上这个车,你知道吗?就是不要因为说啊我我因为确实学的很难,我跟你说特别特别难,不是开玩笑的,想要了解这些东西。

我跟你说没个几个月时间,你根本都不明白呃,他说什么,甚至说你不不明白你看的是什么东西。我之前就有过一个经历,一段经历。这也是我今天愿意跟大家分享的。比是说之前我有一段经历,大概六七个月的时候。

我学六七个月的时候,我觉得我靠我学不下去了。我觉得我什么都不会。就是这样。然后后来那段时间跟通过朋友们的帮助啊,包括自己调解我调解心态过来了。然后那段时间把基础补又补上,也补什么基础,补数学基础。

其实有些时候就是你不明白数学,你不明白他为什么这么说计,其实背后逻辑都是数学。你扣个一扣个一扣个一好,扣ok ok ok ok ok。所以说这一块的话,我觉得大家都是。都是这么过来的。

然后的话有些时我那一段阶段,我就觉得我我靠,我真的就是什么都不会,就是完全是傻子一样。就是你跟我说什么,我完全不明白我我我我脑袋里只有一个概念,我只有一个名词的概念,但我不知道他他具体的讲是什么。

就是这种这种这种状态。然后的话。呃,后来的话补一下基础,然后补了一下基础,出去面两轮,被虐两轮,呜被虐两次。然后先就是啊大概大概上有一个方向感。然后的话现在最主要的是上车,为什么是上车?

就是是因为是这样的,整个从整个行业,从国家也好,从企业也好,其实都会我跟你说,未来5年之内都会往这个方向转,都会往AI方向走。绝对是百分之百是绝对是。所以说你如果现在放弃的,我跟你说。

未你未来5年你会特别特别难熬,甚至未来5年到10年会特别特别难熬。你现在选择了。坚持选择了。努力未来5到10年,至少来说你不会特别特别丑。虽然你可能说在工作遇到一个问难,但你不会因为方向是迷失方向。

你不会迷失方向。所以说这个东西就是这样,面对问题的时候不要选择逃避。包括这个时候,包括对于我我这个东西不是说说你们也针对我自己说,就是说大家不要选择逃避问题,永远不要选择逃避问题要去直面面对。

只是说这个困困难是暂时的,绝对是暂时的。你上了这个车,你上了这个坎,你会发现其实这个东西我可以跟你说,我工我平时的工作,平时工作也是调包,我也是调别人成熟的,要去githha找代码。

然后去就但是面试的过程中,他就是要照火测,不是在面试中就需要照火箭,为什么需要照火箭。刚才我说了,就是因为我的业务需要升级,你达不到,你怎么办?难道我还需要再招人吗?还有一点,业务不等人。

你这边数据我每天我每天呃我跟透私下透露一下吧,就是每一天这边我可能至少几十万的数据过来回来。然后的话至少一个月可能就一两百万的数据过来。然后一个月对吧?你说你一个月你成长不了。你你这个模型支撑不了。

你你你你你你你扛不了这种压力。你这个模型扛不住这么大的一个就是预估量,或者说你这模型就没有这么对于这么大数据集,你就没有这么好的效果。你我需要一个自己自主有自主权利设计设计模型的男一个人。

或者说一个有些时候可能我们公司还需要把baper。对吧你没有这个能力,我为什么要你?只有一些特别有生存压力的一些小厂或中小厂,或者说他刚刚有这个部门的时候,他那个时候他不会。

他不会说他嗯就是特别在乎你的一个研究能力,研究方向。他指要主要是就是很短视的,基吧你能把我实现就行,你能把这个。又又端了吗?又断了。又做了吗?好了吗?这位好了吗?好了吗?哦我声音断断续续。

那可能这边我这边网络有点问题,然后呃。😊。

然后的话这个就是回到我刚才说的那话,就是说大家一定要是要有长远的意识。就是说这个行最核心的价值是什么?想一想这个问题,最核心的价值是什么?

我们比代码难道比一些开发工程师开发很久的工程师代码写的好写的风骚?不是,最核心的是你设计的能力,你设计模型的能力。算白说白最核心的是你算法能力。那设法从什么体现?可能说现在大家都是好就好在这个行业。

就是比如深度学习这个行业,就是说呃时间不是特别久。对吧论文也相对来说是比较几百篇,没有几百篇,大概几十篇左右。还好还有很大的发展。对吧你看你把所有的论文都看完了,包括我老大说我。

然我老大就说说你呀你不要说每次就是出一个新论文,你就去找个代码去跑一下,就试验不要你要先把所有的论文都看通。量变到质变。把所有相关的论文都看清楚。

然后你去站在这个论文最新的最高的点去去俯瞰整个这个发展路径。然后你自己去提一遍。如果有时间的话,有经力的话,你自己去提一篇论文,或者说你自己去提一个结构,这样的话你再去写代码,你这样的代码是最好的。

不然的话,你永远就是永远就像永远都是掉包,永远都是掉别人东,永远你在行业都是没地位的,就是没地位。你永远都是就是跟着别人走,就换一个新模型来,你就你就拉一个代码,重新再跑一下啊,这这然后再上线一下。

一个新模型来又是这样,你永远都在重复劳动,你没有积累。所以说这一块我觉得就是。深度学习嘛,是算法工程式对吧?深度比。工程调用。更重要。这是我个人觉得,当然我没有任何鄙视说工程派同学,其实他们也很不容易。

我我只是我只是说一下我个人的看法,就是说在森在CV这个领域,就是你能设计出一个特别特别牛的模型,就像何凯明大神,对吧?就是厉害。就是有价值。所以说不管我不管你怎么调用,你,其他人都在调用我的东西。

而没有说而不是说什么时候你能达到一个说别人都在调用你的东西。OK你真正的丑二了,你真的就有了。而不是说说我只我我会调很多很多东西。但其实一旦涉及到业务业务业务变换,业务业务正大。对吧数据都变大了。

你你是没有办法的设计的,你是你是参与不了的。所以说这一块,然后你设计的能力从哪里来?从看论文,然后论文有些时候看不懂怎么办?抓基础数学,抓深度理论,对吧?这样的话大家学习就有路线就会有。又断了。

兄弟们考好了吗?好了吗?扣个一扣个一扣个一。啊,好的好的好的,那就这样吧,就是继续啊,然后就一点大家深入学习。好吧,就是深入去研究。哪怕说刚开始想不明白,无所谓,不断的去讲不断的,我也是这样过来。

包括我现在我也有些时候我也想不明白。但是你需要念这样的一个思维,练这样一个s,就我老大其实我很感谢他,我也很感谢我现在这家公司啊,我也很感我更感谢我当时的选择。只是说他给了你一个。一一个环境。

让你去思考,让你去沉淀,让你知道啊,原来是这样,我老大的跟我就说。呃,你现在。半年之内给我看100100篇论文,必须得给我看。看完之后给我写论文笔记,就这样就是必须看的。

只是说包括我我觉得我和大家沟通啊,交流分享的话,我觉得大家也去多看论文。如果实在看不懂的话,呃,看不懂的你有谷歌翻译,对吧?有些公式看不懂的话,那就只能去刷数学技术了。你有办法,你想吃这碗饭。

你要想体现出价值。你就就得就得去付出。你有些时候可能有些人想,哎呀,你们算法工作一天多清闲啊,包括隔壁的那个开发小姐姐说,哎,我看我发现你们一天都不怎么写代码,我们这天天上线上线,晚上加班。😊。

为什么不是不是我们不写代码,是因为我们知道我们写出的代码要是最智最精华的智慧的结晶。就是我们写出个代码,因为因为你想这个问题,模型迭代是很慢的一个过程,至少是以月为标准的,就是对吧?

这一这一批数据是100多万数据,我跑了一个多月,对吧?我我跑了哦,就是我我训练模型可能训练几天,然后的话上线部署一个一两个月,然后下一批数据过来了,然后看看结果。如果好的话,我就不用模型接代。

如果不好的话,不需要模型迭代。那这个时间段是相对来说比正常的开发同学要要长很多的。所以说这个这个阶段之内你就需要看论文啊,包括复现 paperper啊,包括去看啊看最新研究啊,包括你自己去提升。

提出一些新的思想。对我我的平时工作也就是这样,就是说我这边进去有跑着跑着模型,然后这边看论文,然后那边可能说跟产品朋友,产品同学开个会聊聊一下业务支撑,聊一下技术这些实践这些事。然后。就是。

所以说大家一定要一定要知道这个工作真正工作。其实很多时候论文是占你很很大的一个时间成分的。如果说你的工作说偏就偏倾向于工程的话,我觉得呃然后你还想说早点再转到算城社法的话,我个人觉得呃很难。

因为算法是往深度做,其实我个人是这样认为的啊,先去做深度,先去做深度,往深里挖,再去扩展广度。这样的话在深度学习这个行业中你是有价值的。如果你只有广度的话,没有深度的话,其实你很难拿到offer。

包括我之前面试的时候,我面试那几次没有过的原因,也是因为这样,我觉得我会我会跑优龙,我会跑fa,我会跑res,我会跑inception,我会跑我会跑一些分割模型。然后我还会打比赛,比赛结果还不错。

我为什么不要我?😡,对吧其实。其实人家就是觉得你基础不扎实,包括我第一次面试的时候,那小哥哥就跟我说说,兄弟,我就是看你是朋友,我就跟你说实话,你基础就是不扎实。你多去看论文吧。

其实它是个偏研究性的工作,算法控制是偏研究性工作。所以说从这一点我建议大家有时间多去看论文,硬着头皮去看,对吧?呃,然后我这边研究性的工作,算法控制是偏研究性工作。

所以说从这一点我建议大家有时间多去看论文,硬着头皮去看,对吧?呃,然后我这边研究性的工作,算法控制偏研究性工作。所以说从这一点我建议大家有时间多去看论文,硬着头皮去看,对吧?呃。

然后我这边该也给准备了给大家准备了一个中文的中英文对道的一个论文的一个链接,啊,回头大家咱们一起学习,不是说我这边就很屌呃,很厉害啊,觉得完全点啊,不是不是我们都是一起成长呃,现在好了吗?

扣个一扣个一扣个一。扣个一,现在好了吗?刚才刚才掉线了,不知道为什么。好的好的。😊,呃,那我回到这个回到这个啊。回到这个的话,就是。呃,这个怎么说呢?呃,就是当你当你那个就是当你拿这个东西。

你怼面试官程,面试官程啊,这个这个来面试的人,他是对整个行业技术发展,包括整个最新发展,它是有有研究的。他是有了解的,他不是一个说呃没有上进心的一个同学。就是说这个这个我跟你说,真正算法行业的话。

就是就是说就是有些时候就是论文。虽然说虽然说大家这个论文不见得在你应在你线上的业务支撑中跑,但是你要知道这个东有这个东西,就是说你要知道有这个有这个武器。但是一旦说有敌人来了。

你要这个武器去这个武器能干嘛,能不能用上,你不能手手里没有什么金刚钻,知道吧?你手里必须要有金刚钻,然后才能揽这个机器盒,就是说。所以说大家我非常非常推荐大家去看论文啊。

然后的话也不要担心说有一些那什么,因为我记得我记得我给大家分享了。对对对,这个就这边这边的这个啊这个你记着一点啊。这个记着一下,这边里这里边是有一些那个translation,你看到了吧?

有一些中文链接。因为有些时候我我也是最近才才开始转向研究这个研究方向。然后的话有些时候我看英文的话,我也蒙我也是蒙的状态。所以说有些时候我找了一些中英文对道的这些论文方向。然后大家可以看。

然后的话这边还有一些比如说哎我代码不是特别好,拍套式的啊,这个想法这个这个代码的教程。然后ta不的这个部门啊。如果说这些东西还不够的话,大家可以去隔壁去参加那个拍套式的那个班啊。

也可以去参加隔壁的那个计算机视觉班啊,这个呃。不是打广告啊,是是真的是这样,就是说呃网上资料很多。但有些时候这些资料啊,你信息爆炸,你不知道如何去处理。所以说有些时候当你找到一个朋友。

或者说找到一个组织帮你去梳理这个知识流程的,其实这说减你学的学习时间的,我不得不承认呃,我之前是留过自己学习阶段的。但是我发现自学的时候,有些时候比较累。但是你也要打消一个概念,打下一个观念啊。

你短期内比如说两三个月,我就拿到成成为大佬,或者说成为特别特别牛的人是不可能的。两三个月,你能把基础知识扎实了,你已经是天才。我可以这么说,两三个月能把基础是长一检查。

所以说呃这是一个长期而漫长的奋斗过程,大家一起成长。包括我在那啊,有些时候你看我说的天花乱坠,有些时候有些同学细节我也不是特别清楚的,我也不是真的不是特别清楚。因为真正工作中我也是拧螺丝的啊。

真的也是拧螺丝,就是掉包响,传说中的吊包响。但有但是我但是这个岗位的要求是。你知道如何去掉包,而且你要知道这个包如何去改。但有些人呢是只是知道教包,不知道改这个本,所以说这个就很尴尬。

所以说大家一定要有一个自己设计模型,自己改模型的这个能力。只是说哪怕说设计的不好无所谓,都是不断的去优化。其实整个你探究整个深度学习的一个历史啊,你发现,其实包括何海明也好,还是。呃。

其他的呃什么人绍卿大神等等等。你好,其实他们都是在不断的去试验,不断的去试验,然后得出一个结果,它是一个实验性学科。你记住,深度学习是一个实验性学科,它是个实验就行了,然后不断的去试错,不断的试错。

最后打出一个啊好的结果,它是这样的一个过程。所以说大家不要去嗯不要太想,当然。也不要恐惧,就是说谁都是可以的,只要是时间足够或者说精力足够,环境还okK的话,其实大家都可以在而且是这样的。

每个每一个场每一家公司的场景都不一样。所以说研究有些时候去深入去研究,对于你一个个人成长啊,其实就很有帮助的,而且学习是快乐的。

行这块最后一个就心得体会。其实。

呃,说到这么多,呃,呃我觉得和大家聊一聊这个事儿比较重要。就是说呃第一个深度强化学习。其实我觉得啊从我个人觉得。包括我读了些论文,包括和一些工人其他朋友交流。我觉得未来的深CV深度学习只是分类模型也好。

还是呃分类模型就为基础嘛。分类模型未来的发展方向应该是在深度强化学习。这块常维直加上真正爆发点,可能说还会有更高通好水平的论文。以现在的基础来说,可能会有一些n night和panet。

说这两个谷歌搞出来的就automail这些东西。因为现在的你要清楚一点,现在的模型都是人工搭的,都是人工的自我的理念。但其实你如果说是用强化学习,或者说用一些非监督方式去设计模型的话,让机器去设计模型。

我觉得这个东西会很有意思。因为机器它会对数据有一个概念,数据分布一个概念。而人的话更多是靠自己的自我经验,但有些时候人的自我经验会限制人的个人发展。就觉得这个东西很难,我学不进去。其实不是的。

就包括我之前学习的时候,我就觉得我操这个东西。呃,就是这个呢啊对不起,爆粗口了,就是就觉得这个东西怎么啊怎么数学这么恶心呢?呃,怎么就干不到看不懂呢?其实你要你要学会去接受他,喜欢他。

甚至你会觉得嗯这个东西很有趣。现在我就觉得学习是很快乐的。虽然说有些东西我也看不懂,但是我觉得很快乐,我至少不会去反感,从心理上你不要反感数学和英语,不要反感这个东西。这是一个这是一个必要条件。

当你反感它,你是定不下心去研究它的。所以说深度强化学习的时候,记着这个东西只是在你呃有时间。而且是基础比较好的时候,或者说基础学学习类的,稍稍微去稍带着去研究一下它。包括我我可能我每天工作完之后。

我把我工作做完之后,我就我会去看稍微看一点,但我不会去把主要的心学心态去研究下它。但是这个东西我觉得绝对我认为绝对会有一个特别大的一个发展。

所以说大家可以去上做对这个强化学习和生命强化学习进行稍微一些知识储备啊,但不要把它作为一个主菜。啊,然后还有一个干网络应用。我觉得未来可能说比如在今年吧,可能在后段段后阶段时间,可能干网络可能会有一些。

应用或者说要爆发吧,小小爆发。然后第三个就是CN网络模型结构一个探索。其实大家这块的话,就是包括我现在的工作,其实也在做这个事儿。大家呃有深度探索已经差不多差不多了,1000多层了。

已经没有什么呀呃探索权来更多的时候可能在探索宽度。而且我以我现到现在看到的一个论文,还有一些结果来说,宽度呃。还是蛮有前景的啊,大家可以去研究研究一下。然后的话其实还有一点就是业务场景思考。

其实现不大家不要对一个模型,或者对AI技术有一个执疑,就是技术是服务于应呃服务于场景的,服务于产品的。只是说呃。不要迷恋技术,只是说他这个东西是是是服务于场景的,服务于业务的。你要你要比如说。

你做一个假如说做医疗影像嘛,你一定要对医疗影像这个业务场景思考,你才会做更好才能做这个医疗影像做更好的一个呃分类,或者说一个一个检测,对吧?所以说你这个你多跟多跟一些专业的什么呃人员,比如说呃医生啊。

这这些这些人员去去去聊天,去了解他们的思维方式,了解这个业务这些背后是什么。然后的话数据思考,不要觉得这个模型啊,就很牛。比如说什么n night night,或者说arst啊等等等等。这些模型。

大家都说好,对吧?但是。😊,放到你的数据上,不见得就完全好。所以说你对这个数据,你你到手的数据一定要有个思考,这个是很重要的。所以说未来吧呃将会是一帮数学科学家和算法科学家推动产品的迭代。

而不是数学数据科学家推动的。嗯,这句话我我我先放在这儿,好吧,就是呃过几年之后,大家可以来回来看我这个评论,或者说看我这个呃来来看看我这个说的绝对是这样。我可百百分之百的确定。

未来在人工智能时代是数据科学家和算法工程师来推动产品的。好吧,然后这边就是一些啊对于整个算法的一些新的体会啊。然后的话其实最后的话,我觉得这边这个什么邓宁克鲁格效应。

我觉得非常非常适合我也适合大家一个学习呀,面试啊一个路线。其实我我都说了嘛。那当我跑打完比赛之后,我觉得嗯这个东西很简单嘛,是吧?啊不就是啊搞搞数据扩增,搞搞模型跑一跑教我就出来了。其实不是的。

那个时候还在预昧之战,等到我真正的去了解到呃模型结构的时候,发现我一脸懵逼,我什么都不明白。完他为什么这么设计,他这么设计的原因是什么啊,哦,那个时候我真的是绝望。

大概是我觉得那个时候我记得是6个月左右,学习6个月左右。每个人都会处于这个阶段。记着兄弟,你处于这个阶段的时候,其实就意味着你开始真正的入行了,你开始真正入行,不要放弃,不要放弃,不要放弃说三遍啊。

绝对说三遍,不要放弃。这个重这个事儿非常非常非常非常重要。因为你就差你就是在这个门槛了,你就你就挂在这个呃就是往身往往算法风式转转转型这这个或者说这个门槛了。只是包括现在我们工作,有些时候你问他原理。

他也是个黑盒子。有些时候我同事啊,包括我组长,有些时候他也不懂,但是你要知道。当你当你呃只是说比如说我学习了一段时间,发现什么东不行,我不学了。我跟你说,你现在去逃避问题,只会让问题变得更更严重。更苦。

你你现在讨你现在苦了,未来5到10年你会特别幸福。而现在呃幸福了是吧?学习是个痛苦的,学习是痛苦的是吧?现在你幸苦了,不学习,未来5到10年你会特别痛苦。我会跟你说,你特别特别痛苦。绝对会痛苦。

所以说在这个时代,包括行业呀,包包括呃企业呀,包括你个人啊,我觉得大家都处于一个非常非常好的一个时间点。虽然说可能在某些某些某些岗位说,可能说稍微相对来说,大家感感觉竞争压力大。其实我跟你说。

其实竞争压力一点都不大。主要是因为有些人他不懂他不明白这个东西,这个岗位到底要需要什么。他不明白这个岗位到底需要什么样的人。他不明白如何去用我的用如何去学习,去达到这个岗位需要的知识水平和技能水平。

其实很多人都觉得自己就包括我老大面试,包括呃可能我今年也会参加面试吧,就是就是很多人他都是他都是这个态度,就是说我会掉包,然后我会跑模型,我跑出结果了,然后结果挺好就完事儿了。原理呢。还是这个问题。

我跟你说,就会问你原理。你不要逃避这个问题,就是这个会问题原理。就是会问你为什么作者这么设计?记着,当你看论文的时候,你就要还原出自己一个状态。就是我就是作者,我为什么这么想,你想几次你就明白了。

作作者为什么这么想。而且根据一个,而且是这样的,每一次论文的新论文新 paper份或C新的CVPR出来都是在前人基础之上,为什么在前技础上,因为发现前人有些东西它不不好不完美。

对吧他你比如说他这某些东西表现不好,就现在就一个问题,就是说okK我这边我这边业务打概说2万类的数据,2万类就像特别特别大厂,2万类数据,我需要每两两万类的数据分类水平给我达到95%以上。

你现有的模型你给我达到一个。没有现有的没有能达到这个自己级别的。那你能不能设计出来?至少来说不见得能设计出来,你至你又没有思思想去设计。如果你说哎呀,我连想法都没有OKsorry。你你根本没资格。

所以说这有些这就就是有些人被独角兽或者说被大厂拒绝的理由。就是因为这样,就是因为你根本连想都没想,你想的可以是错的,无所谓。但重要就是你想。所以说大家从可能说从今天的分享开始,大家一定要有这样个观念。

就是说我要开始去思考深度去思考我为什么这么设计。为什么作者这么设计,为什么论文是这么写的,为什么这么写,他就会有这样的问题,你要去思考每一个结果,把把80%到80%的精力放在这上,20%上放在代码上。

对吧或者说70%的精力方在这个论文研究会或论文研究啊,或者说论文了了解说基础扎实这块,30%方式在哪上,就是这个比例大概。但是记得一定要往深入思考,这是一个算法工程最核心的技能。我老大开玩笑说。

你你你们天天写工写代码,天天写代码,你们在侮算法这两个字。算法工程师不需要写太多代码。其实说白了就是你看到一个特别好的一个。呃,工程代码masRC也就几千行。对于一个开发工程师来说。

对于一个传统的开发互联网开发工程,互端开发商说,可能说一两天啊,不是不那一两天夸张了,一周就写完。但是算法功能不见的,算法功能可能需要21到2个月。为什么不是说写代码。

1到2个月是需要这1到2个月他去了解这个行业所有的论文,所有的技术水平,他需要有一个积累积累量变到质变这样的一个过程。我曾经我在工作过程中也是一就是看到一些新面论文新论文,然后写嗯嗯搂一遍代码。

然后再看一遍新论文,再漏一遍代码,我就被我老大去了。老大说你这么做是有问题的。你这么做在做无用功,我说为什么?啊他就说这句话说,我会记得非常非常清,说你永远都是站在。别人你永远都是用别人的东西。

而没有自我的思考。你没有积累。我需要的是有积累的。哪怕说你将来说你看了100篇论文,你把这100篇的路线全都搞明白,不见得搞明白百分之百百之80%到90%。你就会发现整个行业未来的发展方向。

整个论文整个这个研究方向都会有。然后你再去写,你就会占领这个行业最最顶尖,你才有这在这个行业有地位。你在这个算法工程中,你才是有地位的,才是真正的尊重算法这两。所以说到今天我都非常非常感谢我老大。

非常非常感谢这样安的啊,然后的话给了我一这样一个空间很啊,我才明白,原来算法要求是这样。当然,算法和工程之间的比例是每个人是不一样的。但是我觉我个人认为大家还是需要往山里挖。因为挖了之后,大家。

可以不断的去做吧,对吧?适用于各种场景。工程我也能干,你让我优化,我更能优化,对吧?而不是说我只能工程干工程,让我优化,对不起,我优化不了,那得了,找找其他硕士或找其他博士吧。

那那个时候你的价值体现在哪里?你想想你其你其实你仔细想想一个算法公式体价值体现在哪里?体现在哪里?体现的其实这体现在两个东西,一个在数学,一个在英语上,这体现这两个东西。所以说大家一定要包括我在内。

一定要扎实这两个基础东西,然后把算法功底扎实了。这样的话你其实你在行业是有地位的。然后你的你的你的未来路里是越走越宽的,因为工程能力相对来说,你想想也就是拍套时个参次不重,能有多少代码很很容易的。

但是为什么这么写?对吧你想想为什么这么写。你给我讲个理由。为什么作者一三除V3作者就这么写,你给我讲个理由。完了懵逼了。对吧就就即便的说有些人怼你就是说哎凭什么呃,你们薪金这么高,真的来,我把代码给你。

你给我看,你给我看,你给我讲为什么他看不懂,他可能会看不懂每1个API每一行代码,但是放在一起,这一个模型放下来,他就不懂他就不明白这个模型为什么,所以,他就是懵逼的,你的算法你的价值就体现了。记着。

你的价值是你的价值是算法。最核心价值是这个东西。算法工程师核心在算法,开发工程师核心在开发。记住记住这两字。所以说。但是这个路是这个成长路是很漫长的,它也是量变到自变的过程。所以说大家一起成长。

包括我在内,大家一起成长,不要说对呃有一些。那个就是失望,暂时的都是无所谓的。好吧,未来好未来还是蛮不错的啊,还是很光明的。而且未来的产品绝对是由算法和数据科学家推到百分之百。我跟你说。

绝对的5年真到十年之后回来看今天的视频,你来验证我今天说的话,我跟你说绝对是这样。所以说还有一点就是说大家说可能说在求职过程中啊,其实非常非常看重心态。

然后有些时候拿到offer也不见得说你你多你你多牛,有些时候可能这个就是因为这家公司缺人了,非常非常缺人,就需要你解察就完事了。啊,包括可能我自己就认为我自己进这家公司,也是因为这个原因啊。当然。呃。

然后非常非常抗重的心态。然后这个时候身心会有变化。就是说呃所以说这段时间大家不要去就是在求职这段时间不要去吃什么太太上容易上火的东西,最好吃点清淡的什么素的什么的对,最好吃点清淡的东西。这样会比较好。

然后的话oppo有的时候会看运气,然后看时机,然后早点去面试,有两种方式啊面试。第一种是我准备好了,准备完全充分了去面试,一级必过。呃,第二种是我通过面试,让面试官打击。唉。

不是打劫人家面试官来帮你找你自己学习不足。是吧,但是我个人建议选择第二种,第一种是不可能的,因为东西太多了。我跟你说东西你要想把所有东西都学完,我跟你说,没个半年到一年十年是不可能。

半年到一年都不见得能理解。真的不是开玩笑,不是开玩,真的是这样。所以说我个人建议,早啊,如果大家想去那什么的话,我建议大家找上车。然后的话早准备简历,然后根据简历配资源,根据战略配方向法。呃。

根据方向配呃配学习,根据方向配学习进度啊,就这样就是说。呃,就是说比如说我在简历中涉及到制那你OK你就要把这两模型东西设计,有有关联的,就一条现实的东西都学会,基本上就没什么问题了。

而且相对来说社招还是比较嗯看重这个那什么的,看重那个就是说你的理解的那不是太特别特别我遇到的,也有重视工程派的,比较重视代码,其他的算法派的,基本上都不是特别特别代码,因为大家都清楚。

都是叫ki都是叫ki,大家都清楚,都是上找码,因为没有时间给你去开发。你没有给你时间去炫技,有些人就会有工程思维说,哎呀,我不会代码,那怎么办?谁会从头到尾去写一个模型啊。

当然除了你发微都不可能写从头到尾型模型。你剩下的时候大家都是有业务支撑的,你能你能跑通就完了呗,能把这业务支撑就完了呗。你调一个成现代码不就完了吗?你你炫地干嘛呀?你有病啊。对吧所以说。

所以说呃那时候我那个那我说代码看不懂什嘛,那就学呗,terflowAPI对吧?呃,排套者APIcars也行。然后他们之间还可以相互转什么cars to tenflow。

然后torflow to ON X ON XPB等我们。等等等等,就是这些都是可以转的,dabub都是种原码。所以说不要太担心代码问题,要注重理论,那特别特别注重理论。代码的话在色招的话。

大家其实都不是特别特别。对,大家不是特别的弄的。如果说你把太多重心放在代码上,嗯,准确来说,其实你的发展是可能要受受到局限。因为有些时候他会特别问你理论的时候,你会你就是懵的状态。

而且而且你也会给你上司带来一个印象。比说这这小这小伙子或者这这个人他不适合搞研究,让他他没法迭代,他没法模型迭代,他只能搞一些基础的活,你永远无法深入到最核心层。CVCV算法这块最核心的就是模型结构。

最核心的就是模型结构。你永远永你如果说你你把你的注意力都放在那个工程上,你永远都是没法接触到最核心的东西。换句话说,你永远都是跟着别人跑,永远都调别人的东西,你没有知主权。所以说我个人建议。

包括建议我你包括你跟我自己说,就是。办把基础扎实,把数学、英语基础扎实,把论文基础扎实。把理论基础扎实,把深度学习理理论基础扎实,然后再去写代码。这样的话,你的代码质量会非常高。因为什么?

不是说代码写的好,写的龙威风舞写的特别风骚,不是是你们的你的模型,你的设计理念特别超前,而且设计理念效果好。这样是最重要的。所以说这块我觉得大家呃跟大家分享一下。然后还有一点不要太好高骛远。

就是说呃做了这么多,也不要太好骛远。就是说哎呀,我就感觉我瞬间怎么怎么样,不是这个路是很漫长,就以都是到量变到自变的过程,所以说需要嗯很长时间的学习,也不要觉得说自己说一旦一旦上了车。

就是说包括我对于我在那,就是一旦工作了一段时间呃,上了车就觉得啊很了不起,没有什么了不起的。其实大家都是不断的学习,不断的成长。只不过就是说先知和后知的问题,只是说我和大家分享。

也是因为说我只把原来是这么需要的企业是需要这样的人的要求跟大家说一下,也不见得说我比大家优秀的去。其实相对来说我觉得我自己很菜,要求跟大家说一下,也不见得说我比大家优秀的去。

其实相对来说我觉得我自己很菜,真的好吧。然后今天最后祝大家都能。在2019年都能找到称心如意的伙,都能在这个深度学习算法稿呃呃。实现自我的人生价值。好吧。

或者说你去去做更额这的去做出更有趣的去做出更有趣的事情。好吧,谢谢大家谢谢大家。

人工智能—计算机视觉CV公开课(七月在线出品) - P12:目标检测中的图像识别与定位问题 - 七月在线-julyedu - BV17z4y167dq

OK好,呃,今天我们来提一点对新的内容。呃,实际上这个部分呢在呃应该是放在卷积神经网络后面就给大家提到的。所以今天课程呢可能会分成两个部分,我们会给大家带大家来看一下。嗯,很多同学很感兴趣的一个。

一个领域,而它是实际有巨大作用的一个领域。就是所我们所谓的object detection物体检测。

所以物体检测呢,大家看到这些这两年自动驾驶很火。所以你在自动驾驶里面,如果你要躲避各种各样的障碍物,如果你希望用deep learninging的方式来完成这个事情的话。

你可能不仅要识别我的摄像头捕捉到的画面。你这个具体的这这个主体内容是什么?可能我还需要去定位出来它所在的位置,对吧?对以这是一个物体检测的这样的一个任务。我们今天会带大家来看一看物体检测的这个比较。

solid或者说稳步的还在在使用的这样几个方法啊。OK然后。我们提完这个之后,我们会给第二部分是给大家提一下呃transance learning。

就是包括从呃supervis learning到supervis learning的这个transance learning。

还有啊sup learning到unsuper learning的这个transfer learning啊叫doedver learning与对抗学习。然后在物体检测这部分,我主要会给大家提一下从。

CN到fatCN到fasterRCN这样一个发展的阶段。当然在后面的话会有一些RFCN或者是其他的一些方法啊。那这个在今天我们就没有给大家去做细讲了。因为现在可能我看到的情况是大部分情况下。

大家用到的还是faCN或者是SSD就是中科院以前提提的一个方法。好,然后我们接着往下看。然后对于卷积神经网络而言呢,一直有一个说法叫做dper better意思是说,当你的网络的深度足够深的时候。

主要只要你能够这个网络能够训练的下去,一般情况下在对于现实世界的这么多丰这种非常非常丰富的物体的状况下去做im做一个image classification图像的分类的话。

这个效果就会随着你的网络的深度越深效果会越好。

其实这个原因是因为一般情况下,我们认为model如果它的capacity非常大的话,模模型的这个复杂度,或者说它的容量非常大的话,如果你的数据的样本级不够大的话。

它有可能会陷入到一个状况当中叫做overfi对吧?过拟合ok所以为什么呃从我们知道最早的net啊,基层整接神经网络到后来的VGG啊,包括google的google googlenet这个。啊。

instructionV3V4等等啊,就是这一系列然后到resion network,大家知道有啊训练过1000多层的网络。然后最后对于物体检测的这个效果呢,都是有正向的效果。随着这个网络的变身。

这可能是因为我们本身的这个世界的。这个age的这个内容啊,具主体内容这个种类非常非常多。然后它的数据量级也也比较大啊,像imagenet实是一个非常大的一个数据集。

所以还暂时还到不了说over的这个状况,可能还在扎的尽量的从里头获取更多的这个呃信息出来。所以这几年也是随着网络的逐渐的变声。然后大家可以看得到。

这个错误率识别如image classification的这个错误率在逐步的下降。嗯,然后对应到刚才的image classification呢。我们在imnet这个数据集上通常会有另外一个比赛啊。

就是可能大家关注的是这个物体物体识别的这个这个图像识别的这样一个任务,对吧?但实际上呢同步开展还有另外一个任务叫做物体叫做物体呃检测。所以物体检测要求你在我的图像的数据集上把我的主体内容给框出来。

或者说我这上面有的这个比较呃bys,就是大小有一定大小的这样的一些内容,一些主体内容给它框出来啊,给给出来相应的它的loc location具体的位置和它对应的这个内容是什么?

所以图像相关的任务呢,我们可以粗略的分成下面几种任务。这个地方呢粗略粗分下来,首先是单物体和多物理。大家看到这个地方有四个图,这个四个图的左侧的两个图呢,我们把它叫做单物体的识别。

那大家之前的CN里头见到比较多的任务叫做物体图片识别,对吧?也是我们所谓的 classification。所以这个任务呢是我去识别这个物体当中的主体内容到底是什么。O这幅图里头到底是什么。

所以你只需要给出来一个target是一个类别就可以了。它现在是一只 cat啊,现在是一个dogO。然后对于单物体呢,还有另外一个任务叫做啊location。

所以你需要你不仅需要告诉我这幅图的主体的内容是什么。啊们所谓的单物体。同时你还应该告诉我说这个主体的内容它到底在哪个位置,也就是你要输出一个所谓的box,这个东西呢会带上各种各样的坐标啊。

比如说这个地方是一个框。那你可能可以用一个点,再加上长和宽呃,加上宽和高来确定出来这个框,或者是你可以通过。呃,就是两个点okK就 maybe必也是可以的。两个点的这个坐标好,所以。这个是我们所谓的。

图片的这个识别加定位这样一个任务。那右边的话是多物体的这个任务。多物体任务呢可能包括像我们说到的这个物体检测啊,就是今天会提到的object detection。也就是说我们这个图像当中可能会有多个。

物体在里面。所以我需要把这多个物体全都找到,并且给出来一个。比较合适的一个。oning box就是围绕着这个主体的。这么一个box对吧?一个框啊,最后一个任务会比较难。

因为刚才你要识别出来这个主体的左边的这个情况下,你要识别出来这里头的一些物体的话,你只需要找到一个矩形的框把它框出来就可以。那另外一个任务叫做instance segmentation。

所以instant segmentation呢是我需要把这里面的每一个主体的边缘描绘出来。我希望我能去做到一个呃合理的分割。所以我分割完了之后,这个狗的小狗的这个边缘,就是围绕着这个小狗的一个。

比较明确的这样的一个边缘,而不是一个矩形框给它框出来。O所以我们今天的内容会集中在前面三个部分啊,后面的instanceense segmentation呢其实会和前面提到的这些方法会有一些相关性。

所以物体识别加定位呢会从最开始考虑这个问题呢,大家会有很多的想法。我们知道在classification当中,图像识别。当中实际上你做的事情是我有C个类别,不同的图像类别。然后我输入的是一张图片。

我的输出的话是类别的标签。然后我的评估的标准是一个accuracy,对吧?准确率O所以给了一张图以后,它会输出一个结果,告诉你说这张图是一一个cat啊。

猫那locization呢说的意思是我希望你帮我定位出来这个猫在哪。那之所以这个实地方提到了定位,所以你需要有一个东西去把它的位置框出来,也就是我们所谓的这个ing box。

所以你的这个box呢这个地方可能可以给一个左上角的点,我举个例子XY那你还可以给一个这个地方的W和H对吧?H是高度W是它的一个宽度,所以input是叫image。

你的output呢是一个物体的一个边框啊,在locization这个任务当中,所以你要告诉我说它的图这个框的一个点XY和它对应的高度和宽度。我们去确定出来这样一个框。

所以它的输出是4个数字XYWH所以是一个连续4个连续的值。那它的评判的这个标准呢是有一个叫做呃交并准则的这样的一个标准。大家可以想一想啊,你输出的这个框呢,有可能会比我的标准答案的这个框呢。

其实可能处在标准答案这个框的任何的位置,我可能两个框有一定的重叠,对吧?这是我识别出来的框,这是有可能的。然后也有可能它会完全被它覆盖,这也是有可能的。所以这个地方它采取的准则呢。

可能是啊基于这两个框的一个。交集和它两个框的一个并集,就做一个综合的一个判断,判断你到底和我原本的这个ground truth标准答案之间的这个我我画出来这个标准答案之间呢。这个重叠的比例有多高?

OK所以当你把这两个任务结合起来的话,就是classification加一个localization。结合起来的话,它就是我们所谓的这个识别主体叫做定位这样一个任务。

所以实际上这个net也一样啊,就是它通常情况下也会有识别和定位两个任务。所以你不仅要识别这个图像上主体到底是什么,你还应该告诉我说这个主体的位置到底在哪。

所以最简单的想法是,一开始这个问题被提出来的时候,大家会有一些想法说你如果只是做一个locization的话,说明你只需要对一个主体内容去做一个位置的判定。

那由于又由于你的输出的结果是一个XYWH4个啊连续数去做一个regress。所以我这个时候呢很直观的一个想法。

就是我可以把这个output的 for number和这个标准这个for number去做一个啊in的一个dance一个L two的一个欧式的距离的一个损失,对吧?

一个L two distanceL two的一个 lossokK那也就是所谓的这个我们对X减去XE撇。然后平方再加Y减去Y1撇的平方,再加W减去W1撇的平方,再加H减去H1撇平方。

OK所以这是一个很直观的一个想法。所以我们可以为了去和标准答案越接近越好,我们会去调这个W呃XYWH4个数字时,它和标准答案的四个数字越接近是越好。

ok所以这个。事情怎么去做呢?首先。大家做的都是在自己的场景下去完成一个locization。所以我们先解决一个简单的问题,是你需要在你的在你的当前的这个场景下去识别出来图像的内容。

所以你可以再拉一些网络过来,比如说在model z里头有大量的alexnetGGgoglenetnet等等。拉下来以后,在自己的数据机上去做一个fin。也就是说在自己的数据机上。

利用它的网络的权重去做初始化,然后去识别我具体现在内容,比如说我现在是一个呃电商的一个类目体系,对吧?这个地方可能会有牛仔裤,会有上衣,会有连衣裙,这样不同的不同的商品。

所以我在这个上面去啊fin tune一下,也就是做一个调UO所以。这个时候呢我们用一张图片去。Okay。我们我们这个时候呢,我们可以利用已经训练好的一些网络的参数作为初始化。

在自己的这些类目体系底下去做一个fin two。那你就调整了这个对网络的参数去做一个微调嘛,使得它能够符合我们现在当前的这个场景。OK然后比如说这个时候我们做的事情可能是怎么样呢?

就是我们会拉1个E批数据过来。我们。如果是做回归的问题的话,我们会用一个。网络去做finant。然后我们在这个利用这个网络呢,我们不是去做一个。物体的一个呃是不是做一个classification。

image一个classification。因为image classificationification大家都知道啊,就是我后面呢我网络会有很多层,我可以把前面的一些层看作什么,看做一个特征抽取器。

对吧?你可以把它看成一个feature的一个。extractor,所以它是完成的东西是对图像的特征去做一个抽取。所以抽取了以后呢,尾巴尾巴上的这些层呢,实际上是你可以看作是一个class bear。

对吧?一个分类器啊,是真正的从我的特征到我的标准答案的这样的一个分类器,一个class score。

那所以如果你用L two的这个lasts的话,你做这个事情的话,你做的事情就是我去把。后面这个classificationhead,也就是我原本用于大家知道后面是一个soft max,对吧?

我去预测到底有多少类的这个soft max这个分类器去换成一个呃regression的一个head。所以最后我要输出的是XYWH4个不同的。四个不同的值。

然后我只不过的los不再用后面soft max的这个cros hP loss交叉熵损失,而换成了我们的呃。对L two loss。okK所以我用L two loss去做。

就前面的这个特征抽取这一步是不动的,大家能明白吧?就前面这些参数primeter,前面这些W和H我都fi住。我就把它fix住。然后我前面这些层次呢,我就只是当做去抽取特征。

所以我这个地方就拿到了一些卷基层输出的这个叫com featureature map。所以这些feature map呢后面可以去接上不同的结构。比如说你接一个用于识别这个图像的内容啊。

所以对内容做分类的这样的一个classification head就是刚才我们训练的个网络嘛,对吧?我们在自己的场景下去训练。比如说电商的类目体系下,这个20个不同的类目。

我去做一个分类的这个分类的这个网络,然后把尾尾巴上的这些层去掉,然后我重新去训练一个头部的这个层这个regression head。那你可以选择说我只训我把前面的这个参数fix住。

我只对后面这些参数去做update,这个是可以做到,对吧?你把前面这些层的那个learning rate啊,learning rate去调成零就可以了。然后后面这些参数的话。

你后面这些层你是可以去调一些learning rate一定的这个学习率的,让它去做update和更新。所以这个东西是一个regression head。那通过这样的一个up base呢。

你就可以简单的方式啊,你就可以理论上来说,你应该可以得到一个可以输出4个值的这样的一个。一个呃神经网络 neuralnet。

okK所以用L two loss加加上L这个BP加SGD去做训练。理论说理论理论上来说,你就能得到一个。这个和这个的于拼接的这样的一个网络,他能做的事情就是能输出XYWH这样的4个数,对吧?

去作为这个网络的一个呃输出一个box。然后呃实际上预测的时候呢,你就是把不同的头部去拼接上完成不同的功能。

比如说你拼接上上面这个一个classification的一个head它做成的事情就是我去区分到底是猫还是狗,对吧?

cat还是dogok那如果我接上的时候这样的一个呃B box这样一个一个regression的一个head的话,那它输出的东西就是XYWH这样一个regress的一个结果,对吧?4个连续的指飞。

理论上来说,我应该可以拿到一个cat a dog这样的一个class一个类和word X y WH这样的啊box。

然后regression的这个模块部分一般加在什么样的位置呢?这个有不同的选择的方式。比如说大家如果去看早期的这个。大概在13年14年左右的话,那个时候14年左右的话会有一些不同的方式。

比如说如果你在VGG这个网络上去做调整的话,呃,一般情况下你那个会接在最后的卷积层后面。那也有些方式啊,比如说呃我们的google提出来的depo啊,至少在14年左右提出来depo和呃早期的物体检测的。

方法object detection的方法叫RRCN,它都是接在最后一个全连接层后面。啊,也就是说我后面会有一个所谓的regression head,但这个regression head实际上它是。

我来写一下regression head,实际上它是。可以在不同的位置嘛,你可以把不同的位置开始往后看,可以看成一个reggression的一个head。O所以有不同的方式啊。

但实际上他们的都是有一定的效果的。对呃,早期的这个方式,这个overfi。比如说对overfi,它是相微机这个网络是接在卷积层后面。

然后depo和RCN是接在后面的for connect layer全连接层后面。

然后提到了一个问题,说啊,我们有没有办法对主体内容有更加细致的识别呢?所以如果我有一我我是能识别出来这个主体内容是一个猫,我想定位到里头的。呃,左耳朵、右耳朵和他的两只眼睛以及鼻子分别在什么位置?

OK所以能否对主体有更细致的识别呢?这个地方呢最早的方式就是啊这篇有一篇论论文是2呃CVCVP22014啊,就是叫叫depoO就是google当时的一篇paper,然后。

这皮本做的事情很简单,我会提前规定好每个每一类的东西,它有K component。比如说猫,它就是两只耳朵,两只眼睛再加呃一个鼻子OK有4个腿。腿,所以你会提前规定好K component。

然后去做成cake部分的一个regression,对吧?所以原本我是做成一个4个board number的一个regression,4个数输出数的一个regression。那现在的话,既然我规定好了。

我的猫都是这样的一个状况的话,我就可以输出K乘以4个numbers。那当然这个东西如果你视做一个regress的一个。问题的话呃,有可能你会遇到一些会有一些ba case。

因为你不能限定说每一张图片它的角度它都能出来这几个东西,对吧?那但是你可以去做一些相应的一些尝识。所以这个depo这篇paper呢就是一个相应的尝识啊。

depo human pose estimation very neural networks啊CP2014它做的事情是我假定每个人的组成的部分是一是固定的,就是人会有多个关键,对吧?

所以。呃,关节的话,这个地方我对K的组成的部分,K的关节去做一个regression。然后它是一个首尾连接的一个线段。比如说一个人他最后出来的东西呢,就是和和啊大家都看过火火柴人是吧?

就特别呃特别有些衣服特别逗啊,就是有时候我大家去参加各种各样的这个晚会或者是活动的时候呢,会跳一些舞,穿一些那种衣服。

然后是带上这个一节一节的这个呃闪光灯的ok所以你可以看到他做的事情就是哎这个地方可能是一个关节啊,一个关节,一个关节,然后这是上肢,这是下肢,这是手上肢下肢手,所以整个人呢就被。

识别成了多个这个joint的一个组合,首尾连接的一个组合。所以他做的事情就是present person by key joins。

然后去做一个regression X Y for each joint from the last connected layer of就是他会去做一个regress。

然后这个regress输出东西实际上是这个地方的呃首尾连接的这样一系列的关键,对吧?OK然后但是它会有一些呃这个东西看起来很简单,但是实际在在做的时候呢,会有一些困难。

然后它这个地方有一些细节的一些处理啊,包括作为的nonmalized coordinate。对,然后以及一些相应的调整。哦。

有同学提到了一个问题是吗?还是前面这一页的问题,什么位置跟识别的位置怎么对应上物位置跟识别的物体。我没读懂第二句话,但这个地方的话,我假设我有K组成的部分。那我K组成部分的顺序是我固定好。

就是我就是先识别左边的耳朵,然后是右边的耳朵,然后是左眼睛,右眼睛,这样的话你就我不需要去输出K乘以4个number,你就不需要去说我就判别哪4个数是哪一个啊部分,哪个component。

O。所以这个地方的regression问题呢,就是大家会有一些尝试嘛,所以最后尝试就是那个这个比较早。所以最早的时候是在像net这样的网络上去做了一些尝试。

所以我把人拆分成不同的这个jos关节去做一个首尾连接拼接,所以他用这样的一个方式去拿到了ok这样的一些类似长得像火柴火柴棍一样的这样的呃输出结果,然后对这个结果呢,根据这个结果。

你就可以判大致判断这个人是什么样的一个姿势,对吧?比如说他是呃一个这样的状况肯定是站立的一个状况。OK这样的状况。那有些状况下肯定是坐了坐的坐着的一个状况。

所以嗯对,然后这个地方的话我们提到的呃我们还没有提到还我们还没有提到bing box。有同学问到这个问题啊,我们现在只是说我输出了一个能够代表box的for number的一个output一个输出。

然后思路二呢,就是马上要提到这个思路,就是。是这样想的,刚才我做的事情呢是去做一个regression。所以我要输出来那样的负个数XYWH。

那类似于刚才我们说到的classification加regression的一个思路。我们可能有另外的方式可以去处理这个任务。比如说我们可以取不同大小的框,所谓的box,然后让这个框出现在不同的位置。

我去做的事情是,既然我的转基神经网络可以去判定这个图像,它是属于某个类别的一个概率,一个pro,对吧?那我从这个框里头框出来的这个内容,丢到转基神经网络里头。

它就应该去可以去给出来一个是属于某一个类别的一个肯定度。所以这个地方的话步骤就是这样的一个很简易的步骤,我去取框,我把。我用这个大小的框从原图上去抠出来不同大小的内容。

把这个内容丢到一个卷积神经网络当中去判定它最后它的一个概率prob。然后按照得分的高低,可以对结果框去做一个抽取和合并,这是后续的一些事情了。

所以这个思路呢大概是下面给大家看到这幅图这个思路对于我原本的会有一张图片,这个图片呢。我我会去去这个图片呢,比如说是一个3乘以257乘以257的一张原始的图片,因为是彩色图彩色图片,对吧?

它的宽和高度是257。那我的这个神我会去训练一个神经网络。这个神经网络呢是input是一个这样大小的一个一个图片。O所以我会用用这样大小的一个框,用它在这个图像上滑动。

最简单的滑动方式是我先在因为它这个框还比较大,所以可以在左上角,然后在右上角,然后在左下角,然后在右下角出现,我们把这个框里头的内容去送到我刚才的。据送到我刚才的这个得到的这个,大家还记得我有一个。

神经网络是一个神经网络呢,当他接这个classification head的时候啊,对classification的这个head的时候,他拿到的是这个类别的得分。当他接后面的这个regression啊。

regression head的时候,他拿到的是。的输出啊是1个W啊XYWH对吧?所以同样啊其实你还是会去训练那样一个网络。

只不过现在我做的事情呢是呃我不会寄希望于你去帮我找到那个我不会寄希望于你直接帮我从原始的图片上去找到这个定位的这个框,而是我得到了这个东西以后呢,我会去把这个框输到刚才的那个网络当中。

所以当我截取到这个猫啊,这个部分的时候,可能会给我0。5的概率。当我右上角的时候,哎,这个猫的大部分东西都被我框出来了,所以有0。75的概率。当我到下面这个位置,左下角这个位置的时候呢,大概有0。

6的概率。那右下角这个地方的话,大概有0。8的一个概率。这是一个在不同的当我框框到了不同的位置。我把这部分的位置的图片输入到我的卷积神经网络当中。

我去拿到我的classification head的一个pro概率的一个输出。那同样啊同样我把这个框里头内容丢到我的这个。regression head里头,它应该会输出4个数字,对吧?

所以这个地方的红框就是这样产出的结果。然后有一些同学在看到这个图以后,会问到说,老师为什么这个地方框出来的这个框会出现在这个黑框以外,因为我的输我输入的图片不就是这个图片吗?

你为什么会出现在图片以外的位置?就是你这个框框里有部分在外面。对,但大家不要忘了我的呃XYWH我这个东西它只是一组输出来的4个数。

所以你并没有去约束这四个数,必须比你原始的这个图片。比如说W和H已经比原始的这个window的大小要小。你没有去约束这个东西。因为你只是用了一个L two的一个lo,对吧?然后就最小化这样一个lo。

所以理论上来说,你输入这样的一个。原始的图片它也是可能会拿到这样的一个XH啊,XYXY和这样的一个WH的对吧?可能会超出这个框的,这是有可能的。所以呃理想的状况可能是现在大家看到这个状况,对吧?

我每一张图片。当我抠出来一定大小的这样的一个图框,丢给这个卷积神经网络的时候,这个卷积神经网络应该可以输出来它的classification的这个head接着这个神经网络可以输出来一个它对应这个子图的一个概率。

就是这个子图对应到不同的类别,它的一个概率,以及这个地方的regression head的这个回归的网络,应该可以告诉我一组数XYWH去定位这个框。

所以最后我会根据这个概率的大小去对这个框可以去做一定的合合并啊,当然这个合并的东西可过程可能会比较呃复杂一点。所以它在这个在在paper里头没有没有呃,就是现在的话一般大家不会去细讲这个部分了。

因为后来有些其他的处理方式。实际做的时候时候实际上就是这样一个过程。就是比如说在ICL22014的paper里头,都都还是这样一种做法做法。

我们会有一个呃window position和一个score map。就是我会有一个划窗,这个划窗呢可能取各种各样的大小,取各种各样的size和它的position。然后它它在不同的位置有不同的大小。

所所以这个时候呢,它可以呃对于每一个框里面的内容去做一个输出,会告诉你一个概率,同时会啊也会有一个可能可以有一个regression嘛,对吧?甚至会在窗口上做一些regression的事情。

所以他会对它去做一些相应的合并。所以。这个东西呢有很多人很多同学看起来会觉得这个也能发论文。你做的事情不就是很粗暴的计算嘛,对吧?划一些框,然后这个框去做一些相应的。运算概率的运算。

然后对结果去做一些合并。这个为为什么能发论文?因为它这个东西这篇论文不只是这样,有些东西我们还没有给大家啊细讲。因为这里头最大的问题是什么?因为我有这么多框的时候,我有这么多个框的时候,这些框。

每一个框我需要去做一遍。

这个图像的这个识识别,它是需要消耗很多时间的。所以你能不能去做一些优化。所以最简单的优化是它克服了一下这这个过程中的一些问题。比如说参数比较多priameter。比如说它的计算比较慢。

所以最初的形式大家都知道是这样的一个形式,对吧?我会有一个classification head会输出1000类的类别,我会有一个啊regression的。

head我会有一个regression head去计算这里头的。boxes就是我们总共会有呃1000个类嘛,我对每一个类,实际上我都会输出来一个fo number。就说虽然这张图里头是一只猫。

但是呃如果这张图里头是一个大象的话,我也会输出来对应这张图片的大象的这样的四个数字,这是原始的一个呃结构嘛,对吧?我有个feature map,我会往后去做相应的映射嘛。

然后但是这个时候呢,为了对为了去克服一下这个过程当中参数多和计算慢的这样一个问题呢,他用了。就是大家知道后来有很多网络叫做啊叫做foook control convolution network。

就是全卷机网络。就是全卷机网络。所以。刚才最大的问题是呃对,有同学提到了一些问题啊,就说这个里面比较大的问题是呃,比如说你的全连接层。

你的全连接层是4096的那你这个地方的参数就应该是1024乘以5乘以5在。

啊,这样一个feature map,比如说把它啊拉平了以后,然后去和4096相乘,对吧?是这样的一个连接方式。OK所以它会有尺度上的问题。就是如果它的size不一样的话,你如何去完成。

这个地方后续的一些计算。所以后来有很多的网络,它就不用。

对他就把全链接层全都去掉了,把全链接层替换成了全卷积层。而且它这个地方的卷积是1乘以1的小卷积。嗯,大家可以仔细想一下这个事情,全连接做的事情可能是为了增加它的非线性,对吧?

因为你有一堆的W和H可以去做组合,那你可以组合出来一些。理论上来说,你的全连接层可以去它的非线性能力,你应该可以组合出来任何的一个连续的值。但是这个功能你用全卷机能不能做得到呢?卷卷机的话。

其实它就是一个一个filter,这个filter的大小,这个窗口就是1乘1。所以全连接能做到的事情,如果你仔细想一下的话,全卷机也是可以做得到的。

因为全卷机做的事情就是相当于用一个数对这一这个feature map里头的所有的输出的结果的和去做一个scaling,做一个幅度的缩放。所以我只是在做一个幅度缩放。

你原本输出的是一个用全连接输出的是一个连续的值。我现在用全卷积,我也可以缩放成一理论上来说,我也可以缩放成某一个连续的值。所以一乘以一的小卷积,实际上和全连接的作用基本上是一样的。

就是它的它也能学习到相应的这样一个一个表达。所以后来他们把这个事情做了一些小小的调整,把后面的尾部的全连接砍掉了,把它换成了全卷机。所以全卷机现在就是1个4094096个filter,对吧?

每个filter是一乘以一的这个lighting window啊,划窗。所以1024乘以1乘以1,后面是1000乘以1乘以1,对吧?所以是一个全卷积的网络,而且全卷积的网络。另外一个好处是卷积。

它会节省非常非常多的参数。所以刚才你的全连接如果参数非常多的话,如果你把它换成了全卷机,现在这个地方就只有4096个参数,只有1024个参数和1000个参数。

那同样下面这个是一个啊 box coordinateordins,就是我去调整这个box这个框的位置,所以这个地方有4乘以1000乘以1乘以1啊,大概是这样的一个结果输出。

然后大家如果再仔细想一下这个过程的话,如果你是用。这个全卷机的网络的话,卷接这一步有很多运算是可以是可以去重复使用的。就是我们最怕的事情是,每每次有新的。这个图像过来一就是不能说是新的图像。

实际上它就是原图完整的原图当中的一个部分,对吧?那这个部分实际上之它有一部分之前是算过的。比如说我先框出来的框是呃这个位置。

的框,然后后来框出来的框可能是这个位置的框,那里头有一部分的运算,实际上是之前已经算过的。所以如果你需要去。去去克服一些问题,或者是去啊共享一些计算的话,你应该考虑我我如何去共享这一部分的计算。

所以这个地方的话,它会通过。

它会通过一些处理,使得我的计算的过程是可以复用的。有同学问到了一个问题,4096乘以1乘以1经过1乘1的小卷积,为什么会变成1024乘以1乘以1?因为这是卷积层的,这个卷积层有4096个神经元。

这个卷积层有1024个神经元。你全连接的时候,你可以从4096到1024,对吧?这是一个全连接,全可以连起来。那卷积层一样可以做得到啊,我不知道你明白明白这个地方说的意思吗?

你就是有1024个 kernelnal而已,卷积卷积核,然后每个卷积核是1乘以1的,对吧?所以你想要一个是多少维度的输出,你就可以令令它有多少个神经元,只不过我每次用的划窗是1乘以1的。ok。

我说清楚了吗?这个地方可以你这个数值和前面的数值是没有关系的,就像你的全连接后面一层,你想取多少个神经元,你自己随便取,那卷积层也一样,你取多少个 kernelnal,你自己取。然后因为是呃对。

因为是这个地方的话。

是一个呃大家可以想象一下这个事情啊,就是我那个窗,我两个滑窗的这个大小,实际上是可能会有。刮度划窗的这个这个。窗口的位置实际上可能会over,会有重叠。

所以这个地方呢实际上你可以想办法去呃节省一部分的运算。节省一部分的运算,就是有些运算你是可以呃去去重复的使用的啊,尤其是这个后面会有一些1乘1的小卷积嘛,1乘1的小卷积。所以小卷积的话。

它做的事情实际上是把所有的值加在一起,再乘以这个caling幅度缩放的这个值。那你是你你可以去做的事情是有一部分已经算了,我就把周外外围的这个这一圈没有算的。呃,比如说黄色的位置拿过来做一个计算就好了。

所以大体上是这样一个思路。当然实际上这篇论文在实现的时候肯定是做了一些其他的优化啊。本身他我我相信他去做这个事情也没有这么的简单,但是这个思想是可以大家可以去借鉴的。就是他首先把呃大家知道在尤其是。

大家知道在googlenet之后的话,实际上大家很习惯把全连接层踢掉。然后我只用全卷机的一个网络,而且后面尾部上是一乘一的这种小卷机。那这种一乘一的小卷机呢,它能够有全连接的这个作用。

同时它又能够呃有保证这个参数量往下降。而且它能它的最很棒的特性是能够在有些场景下能够共享一部分的计算。

posted @ 2024-10-23 18:35  绝不原创的飞龙  阅读(12)  评论(0编辑  收藏  举报