在深度学习领域,往往需要处理复杂的任务场景,一般使用较深层数的模型进行网络设计,这就涉及到复杂困难的模型调参:学习率的设置,权重初始化的设置以及激活函数的设置等。深度学习之所以难以训练,一个重要的原因在神经网络中层与层之间存在着极强的关联性,并且目前绝大部分使用的都是基于梯度下降的方法进行反向传播训练,当网络的底层发生微弱变化时,这些变化会随着层数的增加被放大,意味着对于高层网络要不断进行参数更新以适应底层参数的变化,如此导致了训练的困难,很容易会出现梯度爆炸或者梯度消失的情况,导致模型训练失败。

本文主要分析深度学习中的各种标准化方法(BN,LN,IN,GN,WN)的原理,来帮助实现对深度学习网络的训练。

阅读全文 »

朴素贝叶斯从是基于贝叶斯定理和条件独立性假设的一种分类器,是一种基于概率统计的分类方法。对于给定的数据,基于条件独立性假设学习输入和输出的联合概率分布,然后根据给定的输入数据利用贝叶斯定理求解最大的后验概率的的输出类别,是一种非常常见的分类算法。

对于贝叶斯定理,实际上就是求解条件概率的方法
$$
P(A | B)=\frac{P(B | A)P(A)}{P(B)}
$$
$P(A)​$就是先验概率,是事件A发生之前事件B发生的概率

$P(A|B)$是后验概率,是事件B发生以后发生事件A的概率,也是条件概率

阅读全文 »

GAN(Generative Adversary Networks)的思想是是一种二人零和博弈思想(two-player game),博弈双方的利益之和是一个常数,比如两个人掰手腕,假设总的空间是一定的,你的力气大一点,那你就得到的空间多一点,相应的我的空间就少一点,相反我力气大我就得到的多一点,但有一点是确定的就是,我两的总空间是一定的,这就是二人博弈,但是总利益是一定的。

引申到GAN里面就是可以看成,GAN中有两个这样的博弈者,一个人名字是生成模型(G),另一个人名字是判别模型(D)。他们各自有各自的功能。

阅读全文 »

Transformer是在2017年的Google发布的论文《Attention is all you need》中提出,主要用于解决RNN相关网络无法捕获序列的长期依赖,以及网络无法并行化的问题,其网络结构示意图如下

transformer_model

从示意图中可以看出在Transformer中包含多个组件,分别为Multi-Head Attention, Masked Multi-Head Attention, Add, Norm, Feed Forward, Position Encoding,会在接下来的内容中结合Transformer的前向传播过程依次解释。

阅读全文 »

本来以前深入看过CTC的相关论文,前段时间有人问我相关算法原理,瞬间懵逼,以前看过的东西愣是一点没记起来,这就很尴尬了,本人在ocr任务的文字识别中还用过相关的解码方式,一定要搞明白为什么这种方法是可行的。在这里对CTC进行分析和总结,还是验证是否掌握的最好方法就是看能否做到有效的输出,主要参考论文和相关讲解博客。

先上图

阅读全文 »

在文章机器学习-决策树中详细阐述了目前常用的决策树TD3,C4.5,CART,但是在实际应用中,一般很少使用单个树进行模型设计,因为单个数很难实现一个更全面的模型,由此引入了集成学习,俗话说,三个臭皮匠赛过诸葛亮,集成学习可以看成将多个弱学习器的组合,以期望达到比单个弱学习器更好的监督模型,集成学习的思想是即使某一个弱分类器得到了错误的预测那么其他的弱分类器也可以将错误纠正。

阅读全文 »

本文主要对常用的文本检测模型算法进行总结及分析,有的模型笔者切实run过,有的是通过论文及相关代码的分析,如有错误,请不吝指正。

阅读全文 »

本篇涉及使用深度学习的方法实现字符识别的任务,该任务与计算机视觉领域内的图像描述任务(ImageCaption)相似,对于图像描述任务,输入为图像,输出为对该图像的描述;而对于OCR任务,输入的图像为包含文字或字符的图片,而输出为这张图片中的文字或字符。

阅读全文 »