发明名称 基于卷积自动编解码算法的气象数据填补方法
摘要 一种基于卷积自动编解码算法的气象数据填补方法,其步骤是:对气象数据进行预处理;设置迭代次数;对四维矩阵进行卷积自动编码;对特征匹配矩阵进行卷积自动编码;对特征匹配矩阵进行卷积自动编码;对特征匹配矩阵进行卷积自动解码;对特征匹配矩阵进行卷积自动解码;对特征匹配矩阵进行卷积自动解码;计算损失函数;更新卷积核和偏移权重;更新气象数据属性值;完成气象数据填补。本发明克服了数据填补的精度不高的问题,使得本发明具有高鲁棒性、高缺值填充准确度的优点。
申请公布号 CN106446546A 申请公布日期 2017.02.22
申请号 CN201610846738.9 申请日期 2016.09.23
申请人 西安电子科技大学 发明人 刘惠;杜军朝;姚士民;韩俊;王静;刘泽宇;赵一凡
分类号 G06F19/00(2011.01)I 主分类号 G06F19/00(2011.01)I
代理机构 陕西电子工业专利中心 61205 代理人 田文英;王品华
主权项 一种基于卷积自动编解码算法的气象数据填补方法,包括如下步骤:(1)对气象数据进行预处理:(1a)用一个含有6个属性值的一维数据,构建一个3×2二维矩阵;(1b)用一个气象数据文件中所有气象数据构建一个四维矩阵;(2)设置迭代次数:设置最大迭代次数为1000,设置当前迭代次数为k,并初始化为1;(3)对四维矩阵进行卷积自动编码:(3a)按照下式,用32个1×1卷积核w和偏移权重b卷积四维矩阵,分别提取气象数据6个属性值中每一个属性值的数据特征,得到32组6个属性值的数据特征:Y=wX+b其中,Y表示气象数据6个属性值中任意一个属性值的数据特征,w表示一个1×1的矩阵,X表示气象数据6个属性值中与Y对应的属性值,b表示由随机函数在(0,1)之间产生的一个随机数;(3b)按照下式,分别计算气象数据32组6个属性值中每一个属性值的匹配特征,得到32组6个属性值的匹配特征:m=max(0,Y)其中,m表示气象数据6个属性值中任意一个属性值的匹配特征,max表示取最大值操作,Y表示气象数据6个属性值中与m对应的属性值的数据特征;(3c)对32组6个属性值的匹配特征中的每一组,将6个属性值的前2个属性值的匹配特征,依次作为特征匹配矩阵的第一行,将6个属性值的中间2个值的匹配特征,依次作为特征匹配矩阵的第二行,将6个属性值的后2个值的匹配特征,依次作为特征匹配矩阵的第三行,得到一个3×2的特征匹配矩阵;(3d)判断是否完成32个3×2的特征匹配矩阵的构建,若是,则执行步骤(3e),否则,执行步骤(3c);(3e)按照下式,分别对32个3×2的特征匹配矩阵中的每一个特征匹配矩阵进行填充,得到32个5×5填充后的特征匹配矩阵:<maths num="0001"><math><![CDATA[<mrow><msub><mi>B</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>0</mn><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>4</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><msub><mi>A</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><mi>i</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>,</mo><mn>4</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001119504170000021.GIF" wi="613" he="231" /></maths>其中,B<sub>ij</sub>表示填充后的特征匹配矩阵中第i行第j列的元素值,A<sub>i‑1,j‑1</sub>表示填充前的特征匹配矩阵中第i‑1行第j‑1列的元素值;(3f)分别对32个5×5的填充后的特征匹配矩阵进行大小为3×3的最大值形式的池化,步长为1,得到32个3×3的第一次编码后的特征匹配矩阵;(4)对特征匹配矩阵进行卷积自动编码:(4a)对32个3×3的第一次编码后的特征匹配矩阵中的每一个特征匹配矩阵,利用卷积公式,分别更新一个3×3的第一次编码后的特征匹配矩阵中的每一个元素值,得到一个更新后的3×3的第一次编码后的特征匹配矩阵;(4b)判断是否完成32个3×3的第一次编码后的特征匹配矩阵的更新,若是,则执行步骤(4c),否则,执行步骤(4a);(4c)按照下式,分别对32个3×3的更新后的第一次编码后的特征匹配矩阵进行填充,得到32个5×5的填充后的更新后的第一次编码后的特征匹配矩阵:<maths num="0002"><math><![CDATA[<mrow><msub><mi>B</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>0</mn><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><msub><mi>A</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><mi>i</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>,</mo><mn>4</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>,</mo><mn>4</mn></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001119504170000022.GIF" wi="653" he="239" /></maths>其中,B<sub>ij</sub>表示填充后的特征匹配矩阵中第i行第j列的元素值,A<sub>i‑1,j‑1</sub>表示填充前的特征匹配矩阵中第i‑1行第j‑1列的元素值;(4d)分别对32个5×5的填充后的更新后的第一次编码后的特征匹配矩阵进行大小为3×3的最大值形式的池化,步长为1,得到32个3×3的第二次编码后的特征匹配矩阵;(5)对特征匹配矩阵进行卷积自动编码:(5a)对32个3×3的第二次编码后的特征匹配矩阵中的每一个特征匹配矩阵,利用卷积公式,分别更新一个3×3的第一次编码后的特征匹配矩阵中的每一个元素值,得到一个更新后的3×3的第二次编码后的特征匹配矩阵;(5b)判断是否完成32个3×3的第二次编码后的特征匹配矩阵的更新,若是,则执行步骤(5c),否则,执行步骤(5a);(5c)按照下式,分别对32个3×3的更新后的第二次编码后的特征匹配矩阵进行填充,得到32个5×5的填充后的更新后的第二次编码后的特征匹配矩阵:<maths num="0003"><math><![CDATA[<mrow><msub><mi>B</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>0</mn><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><msub><mi>A</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><mi>i</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>,</mo><mn>4</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>,</mo><mn>4</mn></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001119504170000031.GIF" wi="653" he="231" /></maths>其中,B<sub>ij</sub>表示填充后的特征匹配矩阵中第i行第j列的元素值,A<sub>i‑1,j‑1</sub>表示填充前的特征匹配矩阵中第i‑1行第j‑1列的元素值;(5d)对32个5×5的填充后的更新后的第二次编码后的特征匹配矩阵进行大小为3×3的最大值形式的池化,步长为1,得到32个3×3的第三次编码后的特征匹配矩阵;(6)对特征匹配矩阵进行卷积自动解码:(6a)对32个3×3的第三次编码后的特征匹配矩阵中的每一个特征匹配矩阵,利用卷积公式,分别更新一个3×3的第三次编码后的特征匹配矩阵中的每一个元素值,得到一个更新后的3×3的第三次编码后的特征匹配矩阵;(6b)判断是否完成32个3×3的第三次编码后的特征匹配矩阵的更新,若是,则执行步骤(6c),否则,执行步骤(6a);(6c)按照下式,对32个更新后的3×3的第三次编码后的特征匹配矩阵中的每一个特征匹配矩阵,分别修正一个更新后的3×3的第三次编码后的特征匹配矩阵中的每一个元素值:p=max(0,Q)其中,p表示修正后的更新后的3×3的第三次编码后的特征匹配矩阵中的任意一个元素值,max表示取最大值操作,Q表示更新后的3×3的第三次编码后的特征匹配矩阵中的与y对应的元素值;(6d)判断是否完成32个更新后的3×3的第三次编码后的特征匹配矩阵的修正,若是,则执行步骤(6e),否则,执行步骤(6c);(6e)按照下式,分别对32个修正后的更新后的3×3的第三次编码后的特征匹配矩阵进行填充,得到32个5×5的填充后的修正后的更新后的第二次编码后的特征匹配矩阵:<maths num="0004"><math><![CDATA[<mrow><msub><mi>B</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>0</mn><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><msub><mi>A</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><mi>i</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>,</mo><mn>4</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>,</mo><mn>4</mn></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001119504170000041.GIF" wi="654" he="231" /></maths>其中,B<sub>ij</sub>表示填充后的特征匹配矩阵中第i行第j列的元素值,A<sub>i‑1,j‑1</sub>表示填充前的特征匹配矩阵中第i‑1行第j‑1列的元素值;(6f)对32个5×5的特征匹配矩阵进行大小为3×4的最大值形式的池化,步长为1,得到32个3×2的第一次解码后的特征匹配矩阵;(7)对特征匹配矩阵进行卷积自动解码:(7a)对32个3×2的第一次解码后的特征匹配矩阵中的每一个特征匹配矩阵,利用卷积公式,分别更新一个3×2的第一次解码后的特征匹配矩阵中的每一个元素值,得到一个更新后的3×2的第一次解码后的特征匹配矩阵;(7b)判断是否完成32个3×2的第一次解码后的特征匹配矩阵的更新,若是,则执行步骤(7c),否则,执行步骤(7a);(7c)按照下式,分别对32个3×2的更新后的第一次解码后的特征匹配矩阵进行填充,得到32个5×5的填充后的更新后的第一次解码后的特征匹配矩阵:<maths num="0005"><math><![CDATA[<mrow><msub><mi>B</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>0</mn><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>4</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><msub><mi>A</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><mi>i</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>,</mo><mn>4</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001119504170000042.GIF" wi="613" he="231" /></maths>其中,B<sub>ij</sub>表示填充后的特征匹配矩阵中第i行第j列的元素值,A<sub>i‑1,j‑1</sub>表示填充前的特征匹配矩阵中第i‑1行第j‑1列的元素值;(7d)对32个5×5的填充后的更新后的第一次解码后的特征匹配矩阵进行大小为3×4的最大值形式的池化,步长为1,得到32个3×2的第二次解码后的特征匹配矩阵;(8)对特征匹配矩阵进行卷积自动解码:(8a)对32个3×2的第二次解码后的特征匹配矩阵中的每一个特征匹配矩阵,利用卷积公式,分别更新一个3×2的第二次解码后的特征匹配矩阵中的每一个元素值,得到一个更新后的3×2的第二次解码后的特征匹配矩阵;(8b)判断是否完成32个3×2的第二次解码后的特征匹配矩阵的更新,若是,则执行步骤(8c),否则,执行步骤(8a);(8c)按照下式,分别对32个3×2的更新后的第二次解码后的特征匹配矩阵进行填充,得到32个5×5的填充后的更新后的第二次解码后的特征匹配矩阵:<maths num="0006"><math><![CDATA[<mrow><msub><mi>B</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>0</mn><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>4</mn><mo>,</mo><mn>5</mn></mtd></mtr><mtr><mtd><msub><mi>A</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><mi>i</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn><mo>,</mo><mn>4</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>2</mn><mo>,</mo><mn>3</mn></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001119504170000051.GIF" wi="613" he="230" /></maths>其中,B<sub>ij</sub>表示填充后的特征匹配矩阵中第i行第j列的元素值,A<sub>i‑1,j‑1</sub>表示填充前的特征匹配矩阵中第i‑1行第j‑1列的元素值;(8d)对32个5×5的填充后的更新后的第二次解码后的特征匹配矩阵进行大小为3×4的最大值形式的池化,步长为1,得到32个3×2的第三次解码后的特征匹配矩阵;(9)按照下式,对32个3×2的第三次解码后的特征匹配矩阵分别计算损失函数:<img file="FDA0001119504170000052.GIF" wi="750" he="87" />其中,L<sub>rec</sub>(x)表示x对应的损失函数,||·||<sub>2</sub>表示求二范数操作,<img file="FDA0001119504170000053.GIF" wi="51" he="79" />表示数据中缺失的部分,⊙表示数组元素依次相乘操作,x表示输入的真实数据,F表示编码过程;(10)按照下式,利用梯度下降法更新卷积核w和偏移权重b:<maths num="0007"><math><![CDATA[<mrow><msub><mi>w</mi><mn>1</mn></msub><mo>=</mo><mi>w</mi><mo>-</mo><mi>&alpha;</mi><mo>&times;</mo><mfrac><mrow><mo>&part;</mo><msub><mi>L</mi><mrow><mi>r</mi><mi>e</mi><mi>c</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>w</mi></mrow></mfrac></mrow>]]></math><img file="FDA0001119504170000054.GIF" wi="412" he="123" /></maths><maths num="0008"><math><![CDATA[<mrow><msub><mi>b</mi><mn>1</mn></msub><mo>=</mo><mi>b</mi><mo>-</mo><mi>&alpha;</mi><mo>&times;</mo><mfrac><mrow><mo>&part;</mo><msub><mi>L</mi><mrow><mi>r</mi><mi>e</mi><mi>c</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><mi>b</mi></mrow></mfrac></mrow>]]></math><img file="FDA0001119504170000055.GIF" wi="398" he="115" /></maths>其中,w<sub>1</sub>表示更新后的卷积核,w表示更新前的卷积核,α表示取值为0.1的学习速率,L<sub>rec</sub>(x)表示损失函数,<img file="FDA0001119504170000056.GIF" wi="164" he="119" />表示损失函数L<sub>rec</sub>(x)在卷积核w处的偏导数,b<sub>1</sub>表示更新后的偏移权重,b表示更新前的偏移权重,α表示取值为0.1的学习速率,L<sub>rec</sub>(x)表示损失函数,<img file="FDA0001119504170000057.GIF" wi="169" he="119" />表示损失函数L<sub>rec</sub>(x)在偏移权重b处的偏导数;(11)判断当前迭代次数k是否达到最大迭代次数,若是,则执行步骤(12),否则,将当前迭代次数k加1后,执行步骤(3);(12)取32个3×2的第三次解码后的特征匹配矩阵中损失函数最小的特征匹配矩阵,将32个3×2的第三次解码后的特征匹配矩阵中损失函数最小的特征匹配矩阵的第一行的两个元素值作为气象数据6个属性值中的大气气压和干球温度,将32个3×2的第三次解码后的特征匹配矩阵中损失函数最小的特征匹配矩阵的第二行的两个元素值作为6个属性值中的露点温度和风速,将32个3×2的第三次解码后的特征匹配矩阵中损失函数最小的特征匹配矩阵的第三行的两个元素值作为6个属性值中的风向和总云量;(13)完成气象数据填补。
地址 710071 陕西省西安市雁塔区太白南路2号