最大期望算法

统计学学术名词

最大期望算法(Expectation-Maximization algorithm, EM),或Dempster-Laird-Rubin算法,是一类通过迭代进行极大似然估计(Maximum Likelihood Estimation, MLE)的优化算法,通常作为牛顿迭代法(Newton-Raphson method)的替代用于对包含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计。

历史
对EM算法的研究起源于统计学的误差分析(error analysis)问题。1886年,美国数学家Simon Newcomb在使用高斯混合模型(Gaussian Mixture Model, GMM)解释观测误差的长尾效应时提出了类似EM算法的迭代求解技术。在极大似然估计(Maximum Likelihood Estimation, MLE)方法出现后,英国学者Anderson McKendrick在1926年发展了Newcomb的理论并在医学样本中进行了应用。1956年,Michael Healy和Michael Westmacott提出了统计学试验中估计缺失数据的迭代方法,该方法被认为是EM算法的一个特例。1970年,B. J. N. Blight使用MLE对指数族分布的I型删失数据(Type I censored data)进行了讨论。Rolf Sundberg在1971至1974年进一步发展了指数族分布样本的MLE并给出了迭代计算的完整推导。
EM算法的正式提出来自美国数学家Arthur Dempster、Nan Laird和Donald Rubin,其在1977年发表的研究对先前出现的作为特例的EM算法进行了总结并给出了标准算法的计算步骤,EM算法也由此被称为Dempster-Laird-Rubin算法。1983年,美国数学家吴建福(C.F. Jeff Wu)给出了EM算法在指数族分布以外的收敛性证明。
此外,在二十世纪60-70年代对隐马尔可夫模型(Hidden Markov Model, HMM)的研究中,Leonard E. Baum提出的基于MLE的HMM参数估计方法,即Baum-Welch算法(Baum-Welch algorithm)也是EM算法的特例之一。
理论
EM算法是基于极大似然估计(Maximum Likelihood Estimation, MLE)理论的优化算法。给定相互独立的观测数据 ,和包含隐变量 、参数 的概率模型 ,根据MLE理论, 的最优单点估计在模型的似然取极大值时给出: 。考虑隐变量,模型的似然有如下展开:
隐变量可以表示缺失数据,或概率模型中任何无法直接观测的随机变量,式中第一行是隐变量为连续变量的情形,第二行是隐变量为离散变量的情形,积分/求和的部分也被称为 的联合似然(joint liklihood)。不失一般性,这里按离散变量为例进行说明。由MLE的一般方法,对上式取自然对数后可得:
上述展开考虑了观测数据的相互独立性。引入与隐变量有关的概率分布,即隐分布(可认为隐分布是隐变量对观测数据的后验,参见标准算法的E步推导),由Jensen不等式,观测数据的对数似然有如下不等关系:
当 使不等式右侧取全局极大值时,所得到的 至少使不等式左侧取局部极大值。因此,将不等式右侧表示为 后,EM算法有如下求解目标: 式中的 等效于MM算法(Minorize-Maximization algorithm)中的代理函数(surrogate function),是MLE优化问题的下限,EM算法通过最大化代理函数逼近对数似然的极大值。
算法
标准算法
计算框架
EM标准算法是一组迭代计算,迭代分为两部分,即E步和M步,其中E步“固定”前一次迭代的 ,求解 使 取极大值;M步使用 求解 使 取极大值。EM算法在初始化模型参数后开始迭代,迭代中E步和M步交替进行。由于EM算法的收敛性仅能确保局部最优,而不是全局最优。因此通常对EM算法进行随机初始化并多次运行,选择对数似然最大的迭代输出结果。以下给出EM算法E步和M步的推导。
1. E步(Expectation-step, E-step)
由EM算法的求解目标可知,E步有如下优化问题:
考虑先前的不等关系,这里首先对 进行展开:
注意到,推导上式时考虑了:。由贝叶斯定理(Bayes' theorem),上式可化为:
式中为Kullback-Leibler散度(Kullback-Leibler divergence, KL)或相对熵(relative entropy),表示吉布斯自由能(Gibbs free energy),即由Jensen不等式得到的代理函数等价于隐分布的自由能。求解的极大值等价于求解隐分布自由能的极大值,即隐分布对隐变量后验的KL散度的极小值。由KL散度的性质可知,其极小值在两个概率分布相等时取得,因此当时,取极大值,对EM算法的第次迭代,E步有如下计算:
2. M步(Maximization step, M-step)
在E步的基础上,M步求解模型参数使 取极大值。该极值问题的必要条件是 :
式中 表示联合似然 对隐分布 的数学期望。在 为凸函数时(例如隐变量和观测服从指数族分布),上述推导也是充分的。由此得到M步的计算:
计算步骤
将统计模型带入EM算法的计算框架即可得到其计算步骤。这里以高斯混合模型(Gaussian Mixture Model, GMM)为例进行说明。由GMM的一般定义可知,其似然和参数有如下表示:
根据学习数据的维度,式中 表示均值为 ,方差/协方差为 的正态分布/联合正态分布。 为正态分布的混合比例, 为参与混合的分布总数。定义与观测数据有关的隐变量: ,令隐分布 表示GMM聚类的软指定(soft assignment),即每个数据来源于第 个分布的概率,则隐变量有离散取值 。
将上述内容带入EM算法的计算框架后,E步有如下展开:
GMM中有: ,因此E步的计算步骤为:
M步通过E步输出的隐变量后验计算模型参数,在GMM中,M步计算框架的优化问题有如下表示:
不失一般性,带入单变量正态分布的解析形式后对模型参数求偏导数可得M步的计算步骤:
根据以上计算步骤,这里给出一个在Python 3环境使用EM算法求解GMM的编程实现:
改进算法
基于贝叶斯推断(Bayesian inference)的EM算法
在MLE理论下,EM算法仅能给出模型参数 的单点估计,引入贝叶斯推断方法后,EM算法能够给出模型参数的后验(posterior)分布避免过度拟合,其中常见的例子是极大后验估计(Maximum A Posteriori estimation, MAP)的EM算法。MAP-EM在标准EM算法的基础上引入了模型参数的先验(prior):,此时MAP-EM的优化目标由模型的似然转变为后验,其离散形式可表示为:
类比标准EM算法,考虑隐分布后,由Jensen不等式可得到对数后验的代理函数,即隐变量的自由能:
由此可得MAP-EM的迭代步骤:
MAP-EM在Dempster et al. (1977)就已被提出,但不同于标准EM,MAP-EM的隐分布是隐变量和模型参数的联合分布,其对应的隐变量后验往往没有解析形式。在贝叶斯体系下,求解该隐变量后验的方法包括马尔可夫链蒙特卡罗(Markov Chain Monte Carlo, MCMC)和变分贝叶斯估计(Variational Bayesian Inference, VBI),对前者,可证明由MCMC求解的MAP-EM等价于吉布斯采样(Gibbs sampling)算法;对后者,由VBI求解的MAP-EM被称为变分贝叶斯EM算法(Variational Bayesian EM algorithm, VBEM)。
VBEM使用平均场理论(Mean Field Theory, MFT)将隐分布近似为其在各个维度上分布的乘积:并由此得到以下迭代步骤:
使用VBEM的常见例子是语言建模问题中的隐含狄利克雷分布(latent dirichlet allocation)。
EM梯度算法(EM gradient algorithm)和广义EM算法(Generalized EM algorithm, GEM)
EM算法的M步通过计算偏导数求解代理函数的极大值,EM梯度算法(EM gradient algorithm)将该过程替换为牛顿迭代法(Newton-Raphson method)以加速迭代收敛。更进一步地,当代理函数 不是凸函数或无法有效地对 求解极大值时,可以使用广义EM算法(GEM)。GEM有两种实现方式,一是在M步使用非线性优化策略,例如共轭梯度算法(conjugate gradients algorithm),二是将原M步的求导计算分解为多个条件极值问题逐个计算模型参数,后者也被称为最大条件期望算法(Expectation Conditional Maximization algorithm, ECM)。
EM算法的E步也可以按ECM的方法分解为条件极值问题,由先前推导可知,E步的优化问题仅有一个全局极大值,即隐分布 ,因此在E步将MLE的优化目标:联合似然 对观测样本按因子展开并对每个展开分别使用EM算法,可以得到同样的优化结果。对于M步,如果观测样本来自指数族分布,则M步也可以在每次迭代仅对有限个样本的展开进行。在指数族问题中使用EM算法的上述推广,可以避免在迭代中反复处理整个观测样本集,降低计算开销。
α-EM算法(α-EM algorithm)
α-EM算法是对标准算法的隐变量概率分布引入权重系数 的改进版本。标准的EM算法是α-EM算法在 时的特例。给定恰当的超参数 ,α-EM能够比标准EM算法更快收敛。有研究将α-EM算法应用于神经网络的概率学习和隐马尔可夫模型的参数估计。
性质
收敛性与稳定性:EM算法必然收敛于对数似然的局部极大值或鞍点(saddle point),其证明考虑如下不等关系:
由上式可知EM算法得到的对数似然是单调递增的,即从 次迭代到 次迭代,EM算法至少能维持当前的优化结果,不会向极大值的相反方向运动,因此EM算法具有数值稳定性(numerical stablility)。上述不等关系也被用于EM算法迭代终止的判定,给定计算精度 ,当 时迭代结束。EM算法收敛性的具体证明参见Wu (1983)。
计算复杂度:在E步具有解析形式时,EM算法是一个计算复杂度和存储开销都很低的算法,可以在很小的计算资源下完成计算。在E步不具有解析形式或使用MAP-EM时,EM算法需要结合其它数值方法,例如变分贝叶斯估计或MCMC对隐变量的后验分布进行估计,此时的计算开销取决于问题本身。
与其它算法的比较:相比于梯度算法,例如牛顿迭代法和随机梯度下降(Stochastic Gradient Descent, SGD),EM算法的优势是其求解框架可以加入求解目标的额外约束,例如在高斯混合模型的例子中,EM算法在求解协方差时可以确保每次迭代的结果都是正定矩阵。EM算法的不足在于其会陷入局部最优,在高维数据的问题中,局部最优和全局最优可能有很大差异。
应用
EM算法及其改进版本被用于机器学习算法的参数求解,常见的例子包括高斯混合模型(Gaussian Mixture Model, GMM)、概率主成份分析(probabilistic Principal Component Analysis)、隐马尔可夫模型(Hidden Markov Model, HMM)等非监督学习算法。EM算法可以给出隐变量,即缺失数据的后验 ,因此在缺失数据问题(incomplete-data probelm)中有应用。
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市