深度学习一些感受

写篇文章理一理。
最近在搞文字识别,算是第一个比较正式的深度学习项目,连带看了一些文章。混淆了好多次。先记下目前对深度学习的一些理解。

首先是特征提取器。
目前深度学习应用在CV(计算机视觉)和NLP(自然语言处理)领域。

CV领域的特征提取器主要是CNN的各种变体。例如vgg,resnet,inceptionnet,mobilenet 之类的。别的不太清楚了。vgg没怎么看,resnet主要是残差连接模块能让网络更深。以前网络深的话就会引起梯度爆炸和梯度消失,为了解决这个问题之前也搞过归一化和relu之类的办法。现在再加上resnet效果更好一些。inceptionnet也没怎么看。mobilenet里面有很多一维的卷积,看过但是忘了,主要是轻便的一个网络,效果也不错,但还比不上resnet。
CV处理的问题大概就是 图像分类,目标检测,图像分割。而这些问题的解决通常是CNN的一些变体提取特征然后再加上一些自己设计的结构,就像处理结构型数据,不过那种数据是特征已经有了,当然也可以基于已有的特征继续提取新特征,而所谓的线性模型,log模型之类的就可以看做深度学习里设计的结构。比如FPN融合特征,字符级特征,单词级特征,全局特征融合之类的。图像分类任务我只弄过Alexnet,其余的不太了解; 目标检测任务主要有一个yolo系列和mask-crnn系列。maskcrnn后面又有fastercrnn等,然后一个指标就看iou之类的。当时看一个textfusenet的网络用到了fastercrnn的一部分。图像分割里面,语义分割的话我知道一个Unet,FCN,还有一些别的但是忘了,当时有个小伙伴想用我的卡打比赛,帮他调参的时候看了一下,到时候接触了具体的项目再看吧。

NLP的特征提取器一开始主要是RNN的各种变体,例如LSTM,用循环网络的原因主要是处理的数据是语言嘛,自然前后文有紧密关系。这么看的话其实RNN可以用于任何序列数据集,例如音频之类的,貌似已经有些研究,不太了解。而之前的传统的处理序列的方法我就只知道ARMA模型。群里有个小伙伴理解马尔科夫链是RNN的前身,这个我可以再想想。这样就把以前学过的统计学的东西和深度学习串起来了,哈哈。

后来又有了transformer。transformer不能说是专门的NLP的特征处理器。他主要是基于一个注意力机制。由于他一开始有一个位置编码,如果把图像的像素坐标能够合适的编码,那也可以处理图像。但是他处理的数据我感觉没有变化,都是序列和矩阵,但这个思想是独一的,所以我个人感觉把它和RNN,CNN放在一起有点不太合适。他也有很多变体,但我目前还没详细看。

当然,有一些任务都是多个领域的算法都要用的。比如我这个文字识别这块。首先要有一个文字检测确定位置,那目前常用的用的就是DBnet,然后就要矫正一下,因为文字有可能是歪的,用的有仿射变换,透视变换,TPS变换等等。然后就是识别,识别的话,一开始CNN提取特征,然后LSTM ,这个就是最简单的 CRNN了,NLP的任务貌似一般都是以编码解码器(seq2seq)的结构去做的,这里也采用了这个结构。其中CNN是编码器,RNN是解码器。后续改进的网络都是这个结构,只是把CNN改善一下成resnet或者把RNN改善一下加个注意力机制之类的。我一开始用的是ASTER,他是一个包含了矫正和识别的网络,矫正用的是TPS+STN 识别一开始也是resnet,然后是解码器,用了注意力机制,束搜索之类的。后续加入transformer的改进貌似都是把RNN部分换成transformer,CNN部分都没怎么变的感觉。
最近看到了TrOCR,用的是DEIT/BEIT和BERT。可以瞅瞅。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值