【读书笔记】Algorithms for Decision Making(4)

简介: 本部分讨论从数据学习或拟合模型参数的问题,进一步讨论了从数据中学习模型结构的方法,最后对决策理论进行了简单的概述。

二、概率推理(3)

到目前为止,均假设概率模型的参数和结构是已知的。本部分讨论从数据学习或拟合模型参数的问题,进一步讨论了从数据中学习模型结构的方法,最后对决策理论进行了简单的概述。


3. 参数学习

3.1 最大似然学习

所谓最大似然参数学习,就是试图找到最大化观测数据可能性的分布参数,即$$\hat{\theta} = \argmax_{\theta} \mathbb{P} (D \mid \theta).$$该方法主要面临两个挑战:

  1. 选择合适的概率模型,通过该模型定义$\mathbb{P} (D \mid \theta)$。通常假设数据$D$中的样本是独立同分布的(independently and identically distributed),分布可能是二项分布或高斯分布。
  2. 执行定义等式的最大化在常见的概率模型上是可执行的。对于其他的概率模型常使用最大化对数似然(log-likelihood),即$$\hat{\theta} = \argmax_{\theta} \sum_{i} \log \mathbb{P} (D \mid \theta).$$ 与计算许多小概率质量或密度的乘积相比,计算对数似然之和通常在数值上更稳定。

示例 最大似然估计贝叶斯网络。

function sub2ind(siz, x)
    k = vcat(1, cumprod(siz[1:end-1]))
    return dot(k, x .- 1) + 1
end

function statistics(vars, G, D::Matrix{Int})
    n = size(D, 1)
    r = [vars[i].r for i in 1:n]
    q = [prod([r[j] for j in inneighbors(G,i)]) for i in 1:n]
    M = [zeros(q[i], r[i]) for i in 1:n]
    for o in eachcol(D)
        for i in 1:n
            k = o[i]
            parents = inneighbors(G,i)
            j = 1
            if !isempty(parents)
                j = sub2ind(r[parents], o[parents])
            end
            M[i][j,k] += 1.0
        end
    end
    return M
end

3.2 贝叶斯参数学习

贝叶斯参数学习解决了最大似然学习在数据量有限时的缺陷。贝叶斯参数学习估计$\mathbb{P} (\theta \mid D)$,即给定数据$D$后$\theta$的后验分布$$\hat{\theta} = \mathbb{E}_{\theta \sim \mathbb{P} (\cdot \mid D)} [\theta].$$然而,在某些情况下,期望可能不是可接受的估计值也会使用最大后验估计$$\hat{\theta} = \argmax_{\theta} \mathbb{P} (\theta \mid D).$$

3.3 非参学习

常用的非参估计为核密度估计(kernel density estimation)$$\mathbb{P} (x) = \frac{1}{m} \sum_{i = 1} ^{m} \phi(x - D_{i}).$$常使用的核函数$\phi$为高斯核函数,即零均值的高斯分布函数。其方差被称为带宽(bandwidth),可用于控制密度函数的光滑度。

# kernel density estimation
gaussian_kernel(b) = x->pdf(Normal(0,b), x) #bandwidth of this kernel function is b

function kernel_density_estimate(ϕ, O)
    return x -> sum([ϕ(x - o) for o in O])/length(O)
end

3.4 缺失数据的学习

本部分关注数据随机缺失的情况,这意味着在给定观察变量值的情况下,条目缺失的概率与其值条件独立。具体包括两种通用方法,第一种使用缺失条目的预测值来学习分布参数,第二是基于参数估计的迭代方法。

  1. 数据补全(Data Imputation)
    事实上,使用最大似然或贝叶斯方法从缺失数据中学习模型参数。如果采用贝叶斯最大后验方法,估计过程为$$\begin{align*}\hat{\theta} & = \argmax_{\theta} p(\theta \mid D_{\rm obs}) \\ & = \argmax_{\theta} \sum_{D_{\rm mis}} p(\theta \mid D_{\rm obs}, D_{\rm mis}) p(D_{\rm obs} \mid D_{\rm mis}).\end{align*}$$

    如果将补全视为一种近似,有$$\hat{D}_{\rm mis} = \argmax_{D_{\rm mis}} p(D_{\rm mis} \mid D_{\rm obs}).$$进而有$$\hat{\theta}= \argmax_{\theta} p(\theta \mid D_{\rm obs}) \approx \argmax_{\theta} p(\theta \mid D_{\rm obs}, \hat{D}_{\rm mis}).$$

缺失数据$D_{\rm mis}$的计算仍具有挑战性。

  • 离散数据集的一种简单方法为边际模式(marginal mode)是用最常见的观测值替换缺失条目。
  • 连续数据通常缺少重复数据,可以将分布拟合为连续值,然后使用结果分布。但这种补全方法并不总是产生合理的预测,且学习模型相当差。

如果虑观测变量和未观测变量之间的概率关系,可使用最近邻补全,往往会导致更好的估计和学习分布。此外,还可将分布拟合到完全观察到的数据,然后使用该分布推断缺失值。

  1. 期望最大化(Expectation-Maximization)
    该方法即EM算法,往往分两步进行:
    1) 第一步称为期望步骤(E-step),使用$\theta$的当前估计来推断数据的完整性。
    2) 第二步称为最大化步骤(M-step),试图找到一个新的最大似然$\hat{\theta}$补全数据。
    这种方法不能保证收敛到最大化观测数据可能性的模型参数,但在实践中很有效。为了降低算法仅收敛到局部最优的风险,可以从参数空间中的许多不同初始点运行算法以收敛,只需在最后选择最大化可能性的结果参数估计。

4. 结构学习

网络$G$的评分,即对网络$G$对数据建模的好坏的评价。首先分析基于$\mathbb{P} (G \mid D)$的贝叶斯评分,然后解释如何在网络空间中搜索得分最高的网络。

4.1 贝叶斯网络评分

书中写了一段基于文献的一段论述,还没搞清楚。

本质上,贝叶斯评分为$${\rm score}_{B} = \log \mathbb{P} (G \mid D) = \log \mathbb{P} (D \mid G) + \log \mathbb{P} (G). $$

# A variety of graph priors have been explored in the literature, 
# although a uniform prior is often used in practice, 
# in which case log P(G) can be dropped from the computation of the Bayesian score.
function bayesian_score_component(M, α)
    p = sum(loggamma.(α + M))
    p -= sum(loggamma.(α))
    p += sum(loggamma.(sum(α,dims=2)))
    p -= sum(loggamma.(sum(α,dims=2) + sum(M,dims=2)))
    return p
end

function bayesian_score(vars, G, D)
    n = length(vars)
    M = statistics(vars, G, D)
    α = prior(vars, G)
    return sum(bayesian_score_component(M[i], α[i]) for i in 1:n)
end

4.2 有向图搜索

  1. K2 算法

    struct K2Search
        ordering::Vector{Int} # variable ordering
    end
    
    function fit(method::K2Search, vars, D)
        G = SimpleDiGraph(length(vars))
        for (k,i) in enumerate(method.ordering[2:end])
            y = bayesian_score(vars, G, D)
            while true
                y_best, j_best = -Inf, 0
                for j in method.ordering[1:k]
                    if !has_edge(G, j, i)
                        add_edge!(G, j, i)
                        y′ = bayesian_score(vars, G, D)
                        if y′ > y_best
                            y_best, j_best = y′, j
                        end
                        rem_edge!(G, j, i)
                    end
                end
                if y_best > y
                    y = y_best
                    add_edge!(G, j_best, i)
                else
                    break
                end
            end
        end
        return G
    end
  2. 局部搜索/爬山法:从初始图开始,移动到得分最高的邻居。图的邻域由距离基本图操作仅一次的图组成,其中基本图操作包括引入边、删除边和反转边。此外,可使用Randomized restart、Simulated annealing、Genetic algorithms、Memetic algorithms、Tabu search等方法避免陷入局部最优。

    # An opportunistic version of local search
    struct LocalDirectedGraphSearch
        G # initial graph
        k_max # number of iterations
    end
    
    function rand_graph_neighbor(G)
        n = nv(G)
        i = rand(1:n)
        j = mod1(i + rand(2:n)-1, n)
        G′ = copy(G)
        has_edge(G, i, j) ? rem_edge!(G′, i, j) : add_edge!(G′, i, j)
        return G′
    end
    
    function fit(method::LocalDirectedGraphSearch, vars, D)
        G = method.G
        y = bayesian_score(vars, G, D)
        for k in 1:method.k_max
            G′ = rand_graph_neighbor(G)
            y′ = is_cyclic(G′) ? -Inf : bayesian_score(vars, G′, D)
            if y′ > y
                y, G = y′, G′
            end
        end
        return G
    end
  3. 部分有向图搜索:利用马尔可夫等价类(Markov equivalence classes)的概念,将全空间分为若干个子空间,进行部分搜索,提高搜索效率。

5. 简单决策

Humans are not always rational.

本部分的主要效用理论的角度去看待决策问题,其中最大期望效用准则(maximum expected utility principle)是决策理论的核心概念之一。

5.1 理性选择(rational preferences)与效用函数

理性选择的概念类似于概率推断,是概率在经济学领域的重写。根据这个有了效用函数(Utility Function)的概念。

It follows from our constraints on rational preferences that there exists a real-valued **utility
function** $\mathcal{U}$ such that

  • $\mathcal{U} (A) > \mathcal{U} (B)$ if and only if $A \succ B$, and
  • $\mathcal{U} (A) = \mathcal{U} (B)$ if and only if $A \sim B$.

效用函数具有
1) 正仿射变换唯一性;
2)线性性(?) $\mathcal{U} \left([S_{1} : p_{1}; \cdots; S_{n} : p_{n}]\right)= \sum_{i = 1}^{n} p_{i} \mathcal{U} (S_{i}).$
3)类似于其他概念,也可以归一化。

5.2 最大期望效用准则

假设概率模型$\mathbb{P} (s^{\prime} \mid o, a)$表示观察到状态$o$并执行行动$a$后,状态变为$s^{\prime}$的概率。假设效用函数$\mathcal{U}(s^{\prime})$表征对结果空间的偏好。给定状态$o$并执行行动$a$的期望效用为$$\mathbb{E}[\mathcal{U} (a \mid o)] = \sum_{s^{\prime} } \mathbb{P} (s^{\prime} \mid o, a) \mathcal{U}(s^{\prime}).$$最大预期效用原则指出,理性智能应选择最大化预期效用的行动:$$a^{\ast} = \argmax_{a} \mathbb{E}[\mathcal{U} (a \mid o)].$$

5.3 决策网络(decision network)

决策网络或影响图(influence diagram),是贝叶斯网络包括行动和效用节点的推广,以便紧凑地表示定义决策问题的概率和效用模型。其包含三种节点和三种有向边:

在这里插入图片描述

  • 机会节点(chance node)表示随机变量,由圆圈表示;
  • 行动节点(action node)表示决策变量,由正方形表示;
  • 效用节点(utility node)表示效用变量,由菱形表示,并且不能有子节点。
  • 条件边(conditional edge)以机会节点结束,并指示该节点的不确定性取决于其所有父节点的值;
  • 信息边(informational edge)以行动节点结束,并指示与该节点相关联的决策是在知道其父节点的值的情况下做出的;(这些边通常用虚线绘制,有时从图中省略。)
  • 功能边(functional edge)以效用节点结束,表示该节点由其父节点的结果决定。

与贝叶斯网络一样,决策网络不能有循环。与动作关联的效用等于所有效用节点的值之和。

struct SimpleProblem
    bn::BayesianNetwork
    chance_vars::Vector{Variable}
    decision_vars::Vector{Variable}
    utility_vars::Vector{Variable}
    utilities::Dict{Symbol, Vector{Float64}}
end

function solve(𝒫::SimpleProblem, evidence, M)
    query = [var.name for var in 𝒫.utility_vars]
    U(a) = sum(𝒫.utilities[uname][a[uname]] for uname in query)
    best = (a=nothing, u=-Inf)
    for assignment in assignments(𝒫.decision_vars)
        evidence = merge(evidence, assignment)
        ϕ = infer(M, 𝒫.bn, query, evidence)
        u = sum(p*U(a) for (a, p) in ϕ.table)
        if u > best.u
            best = (a=assignment, u=u)
        end
    end
    return best
end

5.4 信息价值

The value of information about variable $O^{\prime}$
Given $o$, the value of information about variable $O^{\prime}$ is $${\rm VOL} (O^{\prime} \mid o) = \left(\sum_{o^{\prime}} \mathbb{P} (o^{\prime} \mid o) \mathbb{E} [\mathcal{U}^{\ast} (o)] \right).$$

换句话说,有关变量的信息值是如果该变量被观测到则预期效用的增加。

# A method for decision network evaluation
function value_of_information(𝒫, query, evidence, M)
    ϕ = infer(M, 𝒫.bn, query, evidence)
    voi = -solve(𝒫, evidence, M).u
    query_vars = filter(v->v.name ∈ query, 𝒫.chance_vars)
    for o′ in assignments(query_vars)
        oo′ = merge(evidence, o′)
        p = ϕ.table[o′]
        voi += p*solve(𝒫, oo′, M).u
    end
    return voi
end

总结

第一部分给出了概率推理的基本概念和表示法。该部分专注于单步决策,将序列决策问题的讨论保留到下一部分。

相关文章
|
机器学习/深度学习 人工智能 算法
The 10 Algorithms Machine Learning Engineers Need to Know
The 10 Algorithms Machine Learning Engineers Need to Know
|
4月前
|
移动开发 算法 数据挖掘
【博士每天一篇文献-算法】Extending stability through hierarchical clusters in Echo State Networks
本文研究了在回声状态网络(ESN)中引入分层聚类结构对网络稳定性的影响,发现通过调整簇内和簇间的连接性及每个簇的主干单元数量,可以扩展谱半径的稳定范围,从而提高网络的稳定性和性能。
42 2
|
4月前
|
机器学习/深度学习 算法
【文献学习】RoemNet: Robust Meta Learning based Channel Estimation in OFDM Systems
本文提出了一种基于元学习的鲁棒信道估计算法RoemNet,旨在解决OFDM系统中由于训练和部署信道模型不一致导致的问题,并展示了其在不同信道环境下优越的性能。
43 5
|
机器学习/深度学习 自然语言处理 PyTorch
Re6:读论文 LeSICiN: A Heterogeneous Graph-based Approach for Automatic Legal Statute Identification fro
Re6:读论文 LeSICiN: A Heterogeneous Graph-based Approach for Automatic Legal Statute Identification fro
Re6:读论文 LeSICiN: A Heterogeneous Graph-based Approach for Automatic Legal Statute Identification fro
|
机器学习/深度学习 算法 数据挖掘
Re17:读论文 Challenges for Information Extraction from Dialogue in Criminal Law
Re17:读论文 Challenges for Information Extraction from Dialogue in Criminal Law
Re17:读论文 Challenges for Information Extraction from Dialogue in Criminal Law
|
机器学习/深度学习 自然语言处理 数据挖掘
Re7:读论文 FLA/MLAC/FactLaw Learning to Predict Charges for Criminal Cases with Legal Basis
Re7:读论文 FLA/MLAC/FactLaw Learning to Predict Charges for Criminal Cases with Legal Basis
Re7:读论文 FLA/MLAC/FactLaw Learning to Predict Charges for Criminal Cases with Legal Basis
|
算法
【读书笔记】Algorithms for Decision Making(11)
在有限维场景中,POMDP问题的精确解也经常很难计算。因而,考虑求得近似解的方法是合理的。本部分从离线近似解讨论到在线近似解,是近似方法的常规逻辑思路。
157 0
|
vr&ar
【读书笔记】Algorithms for Decision Making(5)
此前讲述了在某个时间点做一个单一的决定的问题,但许多重要的问题需要做出一系列的决定。序列环境中的最佳决策需要对未来行动和观察序列进行推理。
119 0
|
机器学习/深度学习
【读书笔记】Algorithms for Decision Making(7)
策略搜索即搜索策略空间,而无需直接计算值函数。策略空间的维数通常低于状态空间,并且通常可以更有效地搜索。本部分首先讨论在初始状态分布下估计策略价值的方法。然后讨论不使用策略梯度估计的搜索方法和策略梯度方法。接着介绍Actor-Critic方法用值函数的估计来指导优化。