实习周记(二)

这周是算是实习的第二周,很多工具、命令逐渐熟悉了起来,但是也发现了更多的问题。上周更多的工作是熟悉业务,了解任务的流程以及项目需求,所以更多是做一些数据上的了解,暴露出的问题是对工具、linux等等方面不了解,这周开始上手正式的项目,接触了更多工程上的任务。

首先对一些基本概念的理解浮于表面,理解不到位,比如测试集,训练集,验证集的概念,划分时分布应该如何处理,为什么这样选择等等,有的时候这些细节关系到对模型效果的评估,以及评估的准确性,十分重要。除此之外还有对与模型评价指标的理解,精确、准确、召回、损失,还有一些综合指标例如fbeta等等,每个指标能从不同维度上体现模型的优劣,应该学会从指标数字的变化反推模型的问题出在哪,进而做出改进,这涉及到对模型的理解以及对各个指标的理解,还有对数据的理解。

其次对于数据处理方面缺乏经验,遇到不同类型数据,例如非结构化数据、网格数据、序列数据,应该如何处理;遇到不均衡的数据应该采用哪种增强方法,不同增强方法对指标的改变应该如何反推出原因,从而能够进一步改进。遇到标注情况不好的数据应该如何处理;以及遇到标注量少的数据应该如何处理等等。数据是整个流程中最关键的一环,数据之于模型就像数据结构之于算法,数据结构选的好,算法效率一定不会太差,同样,数据处理的好,模型效果一定不会太差。

之后是对理论理解上的欠缺,对于模型的效果提升上,除了对模型参数的调整外,对模型结构的调整同样重要,如何调整模型结构,才能使得模型更好的学到数据上的信息,这体现了对理论的理解。同时,将理论转化为代码是体现工程能力最终的部分,这要求对框架的要熟练,对模型每一层的输入输出要理解,以及对模型的每个组件都要了解,卷积层池化层、kernal组数、池化大小、attention、激活函数的理解、反向传播的过程等等,以便去魔改出API中没有的模型结构,来提升效果。逻辑不够清晰,如何一步一步去推理原因,再思考改进的想法。

然后是一些工程上的小细节,在想出改进办法之后,不应该立刻去改进,一次模型的迭代耗费的人力物力是巨大的,应该是先去调研、做对比实验,用数据证明,确认这个方法确实有较大的提升后,再去对模型做迭代,这才是比较正确的思路。如何做一个准确的对比实验也是一个比较重要的部分,应该避免一些在模型训练时的错误,比如特征穿越等等,还有一些在模型评估上的错误,比如测试机验证集训练集的一些分布上的问题,还有两个实验的控制边练等等。

最后也是最重要的是代码能力,写代码效率太低,归根到底还是对框架以及理论不熟悉,希望魔鬼训练一波能够得到改善。

你可能感兴趣的:(实习记录,实习)