当前位置:   article > 正文

前言:我是如何学习NLP的基础知识的&个人对于NLP和CV相关的内容的异同分析_如何学习cv和nlp

如何学习cv和nlp

 推荐的学习途径和前言:

读者朋友们好!在上一个CV领域的工作暂时告一段落了之后,由于实习单位突然突出接到了几个NLP自然语言理解层面的任务,我还没有机会自己完成一些项目就被迫转向大模型这样的内容。刚学习结束并且理解了YOLO相关的代码层面的内容的我是相当有干劲的,想着可能和CV大差不差,我开始了对NLP领域的学习。刚刚开始学习的时候,作者发现其实这两者只有在基础思路上互相有可取之处,但在具体操作上甚至最深层的思想上都有着相当巨大的差别。当发现两者关系并没有那么密切的时候,作者就决定在BiliBili大学从头开始学习这方面的内容。下面我将放出两个BiliBili上讲NLP入门的课程,这两个课程帮了我很多。

我愿称之为2023最强NLP课程!最强斯坦福CS224n《深度学习自然语言处理》课程!超重量级,赶紧收藏!—人工智能/深度学习/机器学习_哔哩哔哩_bilibili

【清华NLP】刘知远团队大模型公开课全网首发|带你从入门到实战_哔哩哔哩_bilibili

 因此本次分享的学习笔记中有一部分图片和思路可能对于以上的内容有借鉴。对于本文可以看做一种课堂笔记,只是作者对于原文的内容有了自己的归纳总结,以及对于一部分作者自己并没有完全理解的内容,作者也采用了网络上众多代码社区的各种博客的解释帮忙理解。如果作者发布的内容能够帮到广大读者或者NLP领域的初学者,那么作者将会十分开心和欣慰。

另外,由于在完成了YOLO的学习和整理之后时间已所剩无几,作者更多只是从思路上学习了NLP的一些内容而缺乏代码角度的一些实践,因此本专题暂时只能从思路上学习研究,后续在学期中的更多博文若作者有从事相关的学习将会包含更多代码层次的内容。

CV和NLP的宏观上的不同:

1.对于泛化性的要求:

对于CV来说,我们不需要机器判断其没有被训练到的事物的种类:比如对于YOLO来说,其能识别的只是我给定的数据集中各种的元素:比方说CoCo数据集的80种。对于一个超出这80个事物种类的物体,我们并不期望程序能告诉读者这个物体具体可能是什么,甚至都不指望程序将这个物体框出来,因为这对应的物体或者是罕见,或者是不重要不需要识别。

但是对于NLP而言,对于从来没有输入进来的表达,我们仍然希望程序能给出一个合理的解释。拿“你好”这句简单的问候为例,就有“别来无恙”,“你还好吗”等无数种可以表达关切的问候。很明显在训练的时候并不能完全覆盖这些问候的语句。因此,我们实际上是期望让机器真的“具备人类思想”,能对于没有训练过的内容也回答出正确的内容。

从这个角度来说,我们对于模型训练的程度要求是很不同的

2.实际应用时对数据的要求:

对于CV来说,我们将YOLO作为工业和行业运用的例子。如果我只需要如CoCo所能做到的那样,判断80个种类的物体,那么得到的模型实则需要的只是识别这80个种类的数据,对应的图片就是包含这80个物体的图片,数量不会过于庞大就可以达到效果,比如对于YOLO V5的CoCo数据集,其作为图片一共只使用了25G的空间储存,最终在使用效果上已经是相当令人满意了。更简单的ResNet纯粹用以图像分类的,在CIFAR 10的数据集下对于互联网上随便找的一张内容要求中的图片可以达到99.98%的置信度,其数据集也就10G,这和现在运用的NLP是完全没法比拟的。

但是对于NLP来说,即使只是想要回答几个问题,其都必须先理解清楚整个语句结构,先得知道问的是什么,怎么问的,应该回答什么,而不是像YOLO或者ResNet那样,看到了什么直接输出就可以了。可以说,NLP多了一重理解,多了一重将内容在理解,一重在判别的基础上输出的过程。因此整个模型如果想要达到某些比较高的层次,比如像最近大火的ChatGPT这样的问答式自然语言理解,对于数据集的大小要求极高无比。就以中文开发者很常用的一个模型来说,清华大学推出的ChatGLM2,其使用了1T的英语语料库和1T的中文语料库才使得其能理解人类句子并在其基础上做出回答。而当今很多行业大模型都是在其基础上调参得到的,如果只知道网络结构自己训练,那么对于语料的需求量将会极其巨大,是CV需求量的数百倍之多。

对于数据量的要求也是非常不同的

3.其余的区别等后续补充:

两者的一些共通之处

但是当学习了一段时间接触到了越来越多的东西的时候,作者又发现,两者还是有很多关键的地方是可以共通的。在这一方面,CV的学习很大程度上帮助了我NLP中的一些结构中的理解。

比方说对于CV中提到的用来克服深层网络带来的梯度爆炸和梯度消失这类可能出现的问题,kaiming大神提出了ResNet50中的残差操作,从根本上解决了这个问题。而实际上这样的思想在他正式提出之前就已经被类似的运用:在CV中比如YOLO v2中的PassThrough layer,利用了拆分再进行concatenation的操作也保存了原先的内容。在NLP领域,对应的就是从最基础的RNN更新成了后续的LSTM模块和GRU模块的操作,具体的后续内容第一篇文章我将会有涉及。

也比如说在NLP领域大杀四方的attention注意力机制,其也被引用到了机器视觉中进行使用,比如YOLO V5中就有Transformer这样一个层状结构。

诸如此类的结构让人注意到了这两者之间在表面下的联系,也告诉我们两者是分不开的,两者都有所涉猎并对比着加以学习才是作者认为的较好的学习方式。

结语:

细心的读者可能会发现,上面作者只介绍了一些宏观的差别,那么微观的差别呢?网络结构采用的计算方法等的差别呢?这些内容和上面提到的attention机制都是本专栏中作者后续要进行分享的内容,在结尾的结语之中作者会进行最后的总结,如果感兴趣就请继续阅读我后续的博文吧!如果感觉这些内容有帮助请点赞关注支持一下ovo

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/564213
推荐阅读
  

闽ICP备14008679号