深度学习笔记——理论与推导之Structured Learning【Learning with Hidden Information】(九)

本文探讨了隐变量学习的概念及其在多种应用场景中的作用,如情感分析、语音识别等,并深入介绍了结构化支持向量机(Structured SVM)处理含有隐信息的数据集的两种情况及其解决方案。

引言:
Different Kinds of Learning:
1. Supervised Learning:
Data:这里写图片描述
2. Semi-supervised Learning
Data:这里写图片描述
3. Unsupervised Learning
Data:这里写图片描述
4. Hidden variable Learning
Data:这里写图片描述

Example Applications for Hidden Variable Learning(Hidden Variable Learning用在哪?)

  1. Sentiment Analysis(情感分析):
    自动识别一个电影观点是积极的还是消极的。
    这里写图片描述
    它的Hidden Information是那些和电影观点有关的document。
  2. Summarization(演讲总结):
    在一个总结中,我们想通过摘取几个重要的段落进行总结,然而在一个演讲中,我们通常分不清段落的界限,因此段落的界限就成了hidden information
    这里写图片描述
  3. Speech Recognition(语音识别):
    在语音识别的时候,音素/状态和声学特征之间的排列是隐藏的。
    这里写图片描述
  4. Machine Translation(机器翻译):
    在机器翻译的时候,句子对的词对齐是隐藏的。
    这里写图片描述

General Framework

Two Steps

Step1、Training:

  1. Find function F:
    • F:X × Y × H –> R
    • F(x,y,h) 用来评估x,y和h的匹配度。
      Step2、Inference(Testing):
    • Given object x
      • 拿出一个能让F(x,y,h)最大的h这里写图片描述
      • 拿出所有的h这里写图片描述
Three Problems
  1. Problem 1:Evaluation:
    • F(x,y,h)长什么样呢?
    • Eg. F(x,y,h) = w · ψ(x,y,h)
  2. Problem 2:Inference:
    • 这里写图片描述
    • 这里写图片描述
  3. Problem 3:Training:
    • Given 这里写图片描述
    • EM-like algorithm
Three Problems - Training
  1. 我们假定我们知道(x,h,y),这个Training对于我们来说不是一个问题,因为我们可以把h想成x的一部分或y的一部分,这时我们只要定义一个feature,那么我们就可以用structure svm的方法来解这个问题。
  2. 假设我们知道F(x,y,h),也知道了x和y,那么我们把h都带进去,能够使F(x,y,h)最大的值就是我们要的h。
  3. 上面的解法,我们发现第一个是从h –> F,第二个是从F –> h,那么我们应该要initialize random F(x,y,h)。
    这里写图片描述

Structured SVM with Hidden Information

Motivation(动机)

这里写图片描述
下面两个都是Haruhi,但一个是短发,一个是长发:
这里写图片描述

Two Cases

两个Case的介绍:

  1. Case 1 :
    • 有用的信息在training data中是可见的,而在testing data中是被hidden的(知h求F)。
    • 即假设我们的training data上是有label的,加入type之后,structured svm就可以处理了。
      Case 2:
    • 有用信息在training data和testing data中都是hidden的。(知F求h)
      这里写图片描述
Case 1

Case1:Two kinds of Objects?
每一张图片,我们不仅知道框框在哪(y),也知道了Haruhi是短发还是长发(label),所以我们可以将这个问题看成我们就是要detect两种不同type(短发,长发)的Haruhi。
这里写图片描述
如果图片是Haruhi_1时,我们就要用w1来处理,用w1和图片的feature来做乘法,得到的F1(x,y)来做所有的事情。
那么在Training的时候,我们就要让正确y形成的F1(x,y)大于其他的y形成的F1(x,y),对于Haruhi_2也是一样的,这里用的是w2。
这里写图片描述
Case1:Problematic Inference
问题:
这里有一个潜在问题:对于Haruhi_1我们有w1,对于Haruhi_2,我们有w2,只需要把每一个y带进去,得到最大的F(x,y,h)的值就是最有可能的y值。然而在图片输入之初,我们不知道Haruhi是短发还是长发
这里写图片描述
解决方法:
那么,我们假设图片有可能是type1也有可能是type2,这里将图片带入到w1和w2中:
这里写图片描述
但是,由于w1和w2可能是分开学习的,所以值可能差异很大,所以w1和w2应该联合学习:
这里写图片描述

Case 1:Evaluation
  1. 我们可以把w1和w2放在一起训练,隐藏信息是Haruhi是短发还是长发,ψ(x,y,h)表示的是x,y和h的feature vector,它的长度是Φ(x,y)的两倍,w是w1和w2的两倍:
    这里写图片描述
  2. F(x,y,h) = w · ψ(x,y,h)是以下模式,type1和type2(也就是0,决定Φ(x,y)是放在vector的上半部还是下半部)
    这里写图片描述
Case 1:Inference

所以今天我们不仅要遍历y,还要遍历h:
这里写图片描述

Case 1:Training

一般的Structured SVM中,我们的Cost function是这么做的:这里写图片描述
同时我们也可以把margin(Δ)加进去
这里写图片描述
现在,当我们改变我们的evaluate function,我们便可以做以下变换:
这里写图片描述
举个例子:
15. 我们计算Structured SVM的cost function是可以画成这样的:
这里写图片描述
16. 我们计算Structured SVM with Hidden Information,我们要遍历所有的y和所有的h:
这里写图片描述
那么,我们应该如何Training这个Cost Function呢?
17. 我们可以将绿框框里的公式,转成QP问题,也就是对任意一个y和任意一个h,我们都存在constraint,因此我们就可以用Cutting Plane Method方法。
这里写图片描述

Case 2

Case 2:Training with Hidden Information:
问题:
The useful information are usually hidden
解决方法:

  1. 如果我们今天已经知道了F,那么我们直接把h带入方程,看看谁的分数最高,就知道了什么样的h和(x,y)最匹配。
  2. 然而我们不知道w,这里,我们可以random initialize一个w。
    这里写图片描述
  3. 那么我们这里就带入w0对4组training data做运算,找到type1和type2能让以下式子最大。那么这样我们能得到好的值吗?答案是不会的,因为w0是random的:
    这里写图片描述
  4. 现在我们相当于给定了h,这样就相当于解一个QP问题:
    这里写图片描述
    当你求解QP后,你就会得到一个w1,当然w1不一定是一个很准确的值,接下来,我们用w1重新计算h = argmax这个公式,然后得到一个新的h,接着我们就可以继续我们的Training,新的w一定会比旧的w更好。
    这里写图片描述
    这里写图片描述
    Summary
    随机初始w后,根据w和training data给我们的x和y head,我们可以找出最有可能的h值,根据h值我们可以解一个QP问题,这样我们就可以获取一个新的w,这样我们就可以一直循环下去。
    这里写图片描述
    为什么新的w会比旧的w更好呢:
    复习一下Structured SVM:
    我们之前说过,我们最小化的cost function会是margin的upper bound,如果你的error是用margin衡量的话,那么就是minimize cost function的upper bound
    这里写图片描述
  5. 那我们接下来看看C^n长什么样:
    我们先看看max部分长什么样,我们先把max拿掉,我们发现这是一条斜线,因为Δ项是一个常数项。
    这里写图片描述
    那么今天我们要求的max就是这样的,我们发现不管我们的w怎么变,我们得到的都是一个convex的形状:
    这里写图片描述
    cost function的第一项是一个convex,第二项对于w而言就是一条斜线,所以两项相减后又是一个convex:
    这里写图片描述
    所以cost function整体来说就是一个convex function
    我们真正要minimize的是一个
    这里写图片描述
    我们知道每一个c^n都是convex,而w也是一个convex,那么好多个convex加起来,就可以得到一个convex function,所以今天我们在做structure SVM时,我们就是在找一个convex function的最小值,这个对Structured SVM是比较容易的,和之前的DNN不一样,在做DNN的时候,我们不知道function长什么样,但在做Structured SVM时,我们是找到function长什么样的,所以就算我们用的Gradient Descent的方法,我们还是可以找到global的minima,而不是local minima。Structured SVM很不同的一点就是他找到的minima就是global minima
    这里写图片描述
    现在我们要说的Structured SVM with Hidden Information:
    每一次迭代中,我们也会让cost function变小,这个cost function长这样:
    我们每走一步都会让这个cost function变小,所以我们说新的w比旧的w更小。
    这里写图片描述
    这个cost function和我们之前在做SVM时有同样好的性质,即如果今天inference是用穷举所有的h和穷举所有的y,那么这个cost function依旧是error function的upper bound。
    这里写图片描述
    那么这个cost function长什么样呢?
    红线部分:穷举所有的h,(x^n,y^n head)给定的,我们找出红线公式上配对出的结果最大。
    黑色部分:穷举所有的y和h的pair带入公式。
    绿色部分:穷举所有的y带入公式
    这里写图片描述
    那么我们接下来可以得到:
    (后面那项因为加上了减号,所以是一个concave)
    这里写图片描述
    所以我们今天,如果在svm中加入了hidden information,那么像之前DNN那样,可能找到local minima。
    那我们如何找到minima呢?
    Method 1. Gradient Descent
    Method 2. Auxiliary Function:
    • 给定一个weight w0,在w0这点找一个辅助函数(Auxiliary function)
    • 这个A(w)要有以下特性:
      • A(w0) = C^n(w0)
      • Upper bound of C^n(w)
      • Easy to be minimized
    • 找到A(w)的最小值:w1
      • 即:A(w1) < A(w0)
      • 根据第二条A(w)特性,所以C^n(w1) < A(w1)
    • 最后我们得到C^n(w1) < C^n(w0)
    • 接下来,从w1开始,再找一个A(w),这样,我们的w就可以让C^n越来越小:
      这里写图片描述
      列表内容
    • 和Gradient Descent不同的就是,它不用调整learning rate,步伐多大,是由A(w)自动决定,最麻烦的是找A(w)。
      在Structured SVM with Hidden Information中,如何找到A(w)呢?
      我们可以找到concave function的upper bound,即在w0的切线,再将切线和convex相加,这条线就会使我们的A(w)。
      为什么呢?这条Function可以满足A(w)的三个特征
      这里写图片描述
      那么这些和我们的迭代过程有什么关系呢?
      右边其实就是左边的一个过程:
      这里写图片描述
      所以在每次迭代后,我们得到的w值都能使cost function减小,只是有可能卡在local minima中
      我们来举个例子:
      我们现在有两个hidden information(h只有两个可能),所以我们对这两条线求切线,如果h = 1时得到最大值,那么切线其实就是h=1的时候,h=2时同理。
      这里写图片描述
    • 所以我们在求argmax时,就是再求切线,我们的A(w)就是如下形式,接下来就是要minimizing A(w):
      这里写图片描述
    • 求A(w)可以用Gradient Descent,也可以用QP
      这里写图片描述
      所以我们今天在做QP时,就是在minimize这个A(w)。

Structured SVM with Hidden Information

这里写图片描述

To Learn More

这里写图片描述

<think>好的,我现在需要回答用户关于多种优化算法的定义、应用及其组合在工程优化问题中的作用的提问。首先,我需要回顾用户的问题,确保覆盖所有提到的算法:动态规划法、牛顿法、拟牛顿法、单纯形法、拉格朗日松弛法、内点法、梯度下降法、分支定界法、割平面法,以及它们的组合应用。 用户还提到了之前的引用,但根据系统指令,应该更多参考用户上一次的问题和我的回答。用户之前的提问涉及电动汽车充电站分布式电源协同规划的多目标优化,其中使用了NSGA-III算法和模糊决策方法。但这次的问题更偏向于传统的优化算法,因此需要调整重点。 首先,我需要逐个定义每个算法,确保准确。例如,动态规划法适用于多阶段决策问题,牛顿法需要二阶导数信息等。对于每个算法的应用场景,我需要结合工程实例,比如结构设计、资源分配、路径优化等。 接下来,关于组合应用,用户可能想知道不同算法如何结合使用以解决复杂问题。例如,梯度下降法牛顿法的结合,或者分支定界法拉格朗日松弛法的组合。需要举出具体的组合策略和工程案例,如供应链优化中使用分支定界和割平面法处理整数规划问题。 此外,用户提到的引用中有关于无约束优化方法(如最速下降法、牛顿法)和工具(如SciPy、TensorFlow),这些可以作为应用部分的补充,说明实际实现时的工具选择。 需要注意避免使用Markdown格式,但保持结构清晰。同时,确保中文回答,语法正确,数学公式用$...$和$$...$$。最后生成相关问题,并自然添加引用标识。 现在需要检查是否有遗漏的算法,比如单纯形法是线性规划的经典方法,内点法则用于凸优化,分支定界和割平面用于整数规划。需要明确它们的区别和应用场景。此外,拉格朗日松弛法用于处理约束,将其转化为目标函数的一部分,简化问题。 在组合应用部分,可能需要强调如何通过分解问题,用不同算法处理子问题,例如用动态规划处理阶段决策,用梯度下降进行参数优化。或者在内点法中结合牛顿法进行迭代。 需要确保每个部分简明扼要,定义准确,应用实例具体,组合策略合理。最后的问题应围绕算法比较、选择、组合策略和实际应用展开。</think>### 优化算法详解及其工程应用组合策略 --- #### 一、核心算法定义应用 1. **动态规划法(Dynamic Programming)** - **定义**:通过将复杂问题分解为重叠子问题,利用最优子结构性质(如贝尔曼方程$V(s) = \max_a \{ R(s,a) + \gamma V(s') \}$)进行递推求解[^1]。 - **应用**:路径规划(最短路径)、资源分配(背包问题)、生产调度。 2. **牛顿法(Newton’s Method)** - **定义**:利用目标函数$f(x)$的二阶泰勒展开$f(x+\Delta x) \approx f(x) + \nabla f(x)^T \Delta x + \frac{1}{2} \Delta x^T \nabla^2 f(x) \Delta x$,迭代求解$\Delta x = -[\nabla^2 f(x)]^{-1} \nabla f(x)$[^1]。 - **应用**:参数估计(非线性回归)、凸优化问题(如逻辑回归的Hessian矩阵计算)。 3. **拟牛顿法(Quasi-Newton Method)** - **定义**:通过近似海森矩阵$B_k$(如BFGS公式$B_{k+1} = B_k + \frac{y_k y_k^T}{y_k^T s_k} - \frac{B_k s_k s_k^T B_k}{s_k^T B_k s_k}$)替代精确计算,降低计算复杂度[^1]。 - **应用**:大规模优化(神经网络训练)、金融风险管理模型。 4. **单纯形法(Simplex Method)** - **定义**:通过顶点迭代(基变换)在可行域多面体上搜索线性规划问题的最优解,核心操作为换基运算$\max c^T x \quad \text{s.t.} \ Ax = b, x \geq 0$。 - **应用**:生产计划优化、运输问题(如最小化物流成本)。 5. **拉格朗日松弛法(Lagrangian Relaxation)** - **定义**:将约束条件$g(x) \leq 0$通过乘子$\lambda$引入目标函数,构造拉格朗日函数$L(x,\lambda) = f(x) + \lambda^T g(x)$,转化为无约束优化问题。 - **应用**:整数规划松弛(如机组组合问题)、网络流优化。 6. **内点法(Interior Point Method)** - **定义**:通过引入障碍函数(如对数障碍$\phi(x) = -\sum \ln(-g_i(x))$)保持迭代点在可行域内部,结合牛顿法求解。 - **应用**:凸优化(如二次规划)、电力系统经济调度。 7. **梯度下降法(Gradient Descent)** - **定义**:沿负梯度方向更新参数$x_{k+1} = x_k - \eta \nabla f(x_k)$,适用于非光滑或高维问题(如随机梯度下降SGD)。 - **应用**:深度学习模型训练、信号处理中的滤波优化。 8. **分支定界法(Branch and Bound)** - **定义**:通过递归分割解空间(分支)和计算上下界(定界)求解整数规划问题,剪枝无效子问题。 - **应用**:旅行商问题(TSP)、设备选址问题。 9. **割平面法(Cutting Plane Method)** - **定义**:逐步添加线性约束(割平面)逼近整数可行解,单纯形法结合使用(如Gomory割)。 - **应用**:混合整数线性规划(MILP)、供应链库存优化。 --- #### 二、算法组合策略工程案例 1. **动态规划+梯度下降** - **场景**:强化学习中的策略优化。 - **方法**:动态规划计算值函数(如Q-learning),梯度下降更新策略网络参数。 - **案例**:机器人路径规划中,Q-table更新(动态规划)神经网络策略微调(梯度下降)结合。 2. **牛顿法+内点法** - **场景**:带约束的非线性规划。 - **方法**:内点法处理约束,牛顿法迭代求解修正方程。 - **案例**:电力系统最优潮流计算中,内点法保证可行性,牛顿法加速收敛。 3. **分支定界+拉格朗日松弛** - **场景**:复杂整数规划问题。 - **方法**:拉格朗日松弛法提供下界,分支定界法剪枝搜索树。 - **案例**:机组组合问题中,松弛整数约束后通过分支定界逐步收紧解。 4. **拟牛顿法+单纯形法** - **场景**:混合连续-离散优化。 - **方法**:单纯形法处理线性约束,拟牛顿法优化非线性目标函数。 - **案例**:化工过程设计中的混合变量优化(如反应器尺寸流量控制)。 --- #### 三、工程优化中的典型工具链 ```python # 示例:混合整数规划求解(PuLP库结合分支定界) from pulp import LpProblem, LpVariable, LpMinimize prob = LpProblem("Supply_Chain", LpMinimize) x = LpVariable.dicts("Route", [(i,j) for i in nodes for j in nodes], 0, 1, cat='Binary') prob += lpSum(cost[i][j] * x[(i,j)] for i,j in routes) # 目标函数 prob += lpSum(x[(i,j)] for j in nodes) == 1 for i in nodes # 约束 prob.solve() # 调用COIN-OR分支定界求解器 ``` --- #### 四、算法选择决策树 1. **问题类型** - 连续优化:牛顿法、梯度下降 - 离散优化:分支定界、割平面 - 混合类型:拉格朗日松弛、内点法 2. **规模复杂度** - 小规模:单纯形法、精确动态规划 - 大规模:拟牛顿法、随机梯度下降 3. **约束条件** - 线性约束:内点法、单纯形法 - 非线性约束:序列二次规划(SQP)、罚函数法 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值