如何向深度学习模型中加入先验知识？
如何向深度学习模型中加入先验知识，先验知识对减少网络的数据量非常重要
加入先验的方式有很多种：

### 1. 网络结构结构就是先验信息

例如CNN的局部性，平移等效性等性质天然的契合图像数据先验，相同参数量，训练数据下CNN网络远优于DNN、RNN等基础网络结构。我们对数据特性有充分了解时，设计网络结构可以加入我们的先验知识。

### 2. 网络权重是先验

根据任务类型，知识域，我们可以通过选择采用不同数据 or 任务训练的预训练模型作为初始化权重，提供先验知识。

###  **3. 损失函数加入先验**

比如在训练数据无法体现的知识，比如平滑性要求，某些单调或者分布约束，我们可以通过在损失函数上增加约束，加权等方式加入这些先验信息。

###  **4. 数据增强加入先验**

例如我们已知模型会在黑夜环境下工作，我们可以在数据增强做 style transfer，hsv处理等方式，模拟黑夜条件图片，让模型提前适应。

### 5. 训练过程体现先验

如果任务是high level的，可以考虑冻结backbone 的深层部分权重，或者使用layer-wise learning ratedecay，因为先验信息告诉我们high level task 不需要backbone深层部分权重有大的调整。