高效学习神经网络技术——以具体的任务类型为切入点

 学习技术要从解决实际问题出发,这样才能更快更好的学习新技术,并不容易忘记;而如果单纯的为了技术而学习技术,那么你将会一边学一边忘。



这段时间一直在学习神经网络技术,包括神经网络模型架构,神经网络设计,数据集前置处理等;但这几天突然发现一个问题,会看这段时间的学习,虽然不能说一点收获都没有,但却觉得进度很慢,而效果也不好。


比如说,到目前为止依然没有理解怎么实现一个具体的神经网络网络,以及独立设计和实现一个数据集。


原因主要有两点,一是学习的过程中全都是自己摸着石头过河没有人能指导;其次很重要的一点就是学习的方法不对,学习的过程中是把神经网络不同模块分开来学的,但却没有认识到神经网络技术是一个多环节的整体。






以具体任务为切入点




在学习神经网络技术的过程中,又犯了一个常见的错误;抛开了具体的任务需求,去尝试学习一些所谓的“通用”技能;比如神经网络需要模型设计,数据集处理等。


但神经网络是一项复杂的技术,不同神经网络之间,以及不同数据集之间虽然有一些交集,但更多的是巨大的差异;虽然从更抽象的角度来看,神经网络技术都需要经过固定的几个步骤;比如模型设计,数据集整理,损失函数,优化算法,训练等;但不同的神经网络,其每一步都是有差别的。




比如说在自然语言任务和图像处理中,对神经网络的结构以及数据集的要求都是不一样的;两种任务类型存在着天然的技术差异。


因此,在学习的过程中,最好的方式是从具体的任务出发,去解决具体的问题;而不是把技术当作空中楼阁,单纯的去学习技术,而这也是技术人员在学技术的过程中会经常犯的错误和问题。


最直接的体现就是,我们在学校或者在学习某一项新技术的时候,总是喜欢从理论和基础出发;然后结果就是,一段时间花大力气学的东西,没几天就忘得差不多了。




虽然说不懂技术和理论,很难去上手去做一件事情;但如果是从问题出发,比如为了解决某个问题,然后去学习某个技术,这时学东西就会特别快;然后因为有具体的应用场景,因此就会记得更深刻,理解的也更深刻,也更难忘记。


技术的诞生是为了解决问题,而不是为了学技术而研究技术。


以作者自己学习数据集处理的过程来说,在自然语言(NLP)任务中,不同的NLP任务,需要不同形式的数据集;比如说分类任务,问答任务,聊天任务,需要的数据和神经网络模型都是不一样的。


而在数据集处理的过程中,其要求和处理过程也是不一样的;举例来说,在比较严谨的应用场景中,训练语料中需要的是严肃且严谨的内容;而在一些感情领域,需要的不是逻辑性,而是有足够的情绪表达。




而这两种模式,即使模型是相同的;但语料绝对不会一样,因此在具体的数据集收集和处理的过程中也不能一样。前者需要把嘿嘿,哈哈等情感词汇作为停用词,但后者需要把嘿嘿,哈哈这种情感词汇作为关键词。


而去由于没有经历过完善的神经网络设计与训练流程,虽然感觉自己每个环节都学了,但结果却是每个环节都不一样,整体就更不行了。








(文:AI探索时代)

欢迎分享

发表评论