结构化机器学习总结

本文探讨了深度学习在机器学习中的应用,包括模型优化、错误分析、迁移学习及多任务学习等内容。同时,深入介绍了自然语言处理(NLP)领域的WordNet、Word2Vec等关键技术,以及分布式语义在词汇表示中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

这是在学习吴恩达深度学习课程的时候做的笔记,当时是为了完成导师的汇报任务,现在发上来共同学习并保存一下…

结构化机器学习

  1. 正交化:每次只调试一个参数,保证其他参数不变,从而得到模型某一性能的改变。类似于向量空间内两个向量相互垂直,一个向量调整大小对另一个向量没有影响。

  2. 机器学习的监督学习中,大致可以分为四个独立“功能”:

    • Fit training set well in cost function

      如果表现不好则应使用更复杂的神经网络或使用一些优化算法

    • Fit development set well in cost function

      如果表现不好则应正则化或采用更多训练样本

    • Fit test set well in cost function

      如果表现不好则应使用更多的验证集样本

    • Performs well in real world

      如果表现不好则应该更换验证集或使用新的损失函数

  3. 在构建优化机器学习模型时,单值评价指标很有必要(F1 score等),通过单值评价指标可以很容易判断模型优劣。但是有时候所有性能指标综合在一起构成单值评价指标是比较困难的,因此可以有优化指标和满足指标。

    ClassifierAccuracyRunning Time
    A90%80ms
    B92%90ms
    C95%1500ms

    在上表中可以将Accuracy作为优化指标,越优越好;将Running Time作为满足指标,满足设定的阈值即可。

  4. 划分数据集时原则上应让development set和test set源于同一分布,这样方便对于模型进行统一的评价标准。

  5. 为了对欠拟合和过拟合进行评判,可以做如下处理:
    image-20191126220021775

    高bias值表示training set没有适应好,模型欠拟合;高variance值表明dev set和test set在模型上的表现欠佳,模型泛化能力差,模型过拟合。

  6. 可以对已经建立的模型进行错误分析,通过评估多个影响模型性能的因素各自在错误样本中所占比例来判断其重要性,比例越大,影响越大,月应尽早解决。

  7. 监督学习中,训练样本有时会出现标记y出错的情况,若这些label标错是随机的,则DL对其包容性较强,若是系统错误则会降低模型性能;若在dev/test集中出现标记错误的情况则需要进行错误分析查看是否需要修正,如果要修正则要对验证集和测试集均修正以保证同分布。

  8. 若训练集和验证集测试集不是同分布,则无法通过上面提到的bias或variance来判断模型需要修正的点,这时可以从原来的training set中分割出来一部分作为train-dev set,train-dev set与dev set一样都是用于验证
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cwZkhm8W-1575513075581)(/Users/pangsoon/clj_learn/fundation/typora/workspace/结构化机器学习总结.assets/image-20191127091612382.png)]

  9. 迁移学习:把已经训练号的模型的一部分知识(网络结构)直接应用到另一个类似的模型中去 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xvXw8Iik-1575513075584)(/Users/pangsoon/clj_learn/fundation/typora/workspace/结构化机器学习总结.assets/image-20191127092436129.png)]
    黑线对应预训练,重新训练所有权重系数

    红线对应微调,通过不断调试来优化 W [ l ] , b [ l ] W^{[l]},b^{[l]} W[l],b[l]

    迁移学习适用于:

    ​ (1)Task A and Task B have the same input x

    ​ (2)You have a lot more data for Task A than Task B

    ​ (3)Low level features from Task A could be helpful for learning Task B

  10. 多任务学习:构建神经网络可以同时执行多个任务。

    适用于:

    ​ (1)Training on a set of tasks that could benefit from having shared lower-level features

    ​ (2)Usually: Amount of data you have for each task is quite similar

    ​ (3)Can train a big enough neural network to do well on all the tasks

  11. 端到端深度学习:将所有不同阶段的数据处理系统或学习系统模块组合在一起,用一个单一的神经网络模型来实现所有的功能,它将所有模块混合在一起,只关心输入和输出。

NLP初了解

  1. 如何在电脑中表达单词的含义?普遍做法是使用WordNet字典,在WordNet中,名词,动词,形容词和副词各自被组织成一个同义词的网络,每个同义词集合都代表一个基本的语义概念,并且这些集合之间也由各种关系连接。

    • WordNet缺点:
      • 无法识别单词含义的细微差别
      • 无法记录单词的全部含义,无法实时更新
      • 主观性强(受WordNet构建者视角影响)
      • 需大量人力资源构建
      • 无法计算精确的单词相似度
  2. 在传统NLP中,常采用one-hot向量来表示单词,每个向量只有一个位置是1,其他位置是0,vector dimension = number of words in vocabulary​

    • One-hot 缺点:

      • 语言在不断的发展,词的数量也在不断的增加,最终会得到一个无线的单词空间,单词维度过大,极度稀疏
      • 任何两个向量之间都是正交的,无法用于计算单词相似度
    • 解决措施:learn to encode similarity in the vectors themselves

  3. 分布式语义(Distributional semantics):一个单词的含义是这个单词常出现的语境所决定。

    量化语境:一个单词w的上下文指出现在单词w周围一个固定窗口大小的一组单词

  4. Word2vec is a framework for learning word vectors.包括:

    • 两种算法:

      ​ (1)CBOW:通过上下文预测中心词

      ​ (2)skip-gram:通过中心词预测上下文

    • 两个训练方法:

      ​ (1)negative sampling:抽样负样本

      ​ (2)hierarchical softmax:用一种高效的树结构为所有词计算可能性

  5. Word2vec的思想

    • 我们有一个很大的语料库

    • 语料库中的词都可以用一个向量表示

    • 遍历文本,对文本中每个位置t,t对应的词称为中心词c,中心词上下文的词称为词o

    • 使用词向量c和词向量o的相似性来计算给定c是o出现的概率,即 P ( o ∣ c ) P(o|c) P(oc)

    • 不断调整词向量来使这个概率最大化
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-guofSjPx-1575513075586)(/Users/pangsoon/clj_learn/fundation/typora/workspace/结构化机器学习总结.assets/图像 2019-11-27,下午6.35.jpg)]6. Word2vec的目标函数

    对于每个位置t=1…T,计算概率 P ( o ∣ c ) P(o|c) P(oc)
    L ( θ ) = ∏ t = 1 T ∏ − m ≤ j ≤ m , j ≠ 0 l o g P ( w t + j ∣ w t ; θ ) L(\theta)=\prod_{t=1}^T\prod_{-m\leq j\leq m,j\neq0}logP(w_{t+j}|w_t;\theta) L(θ)=t=1Tmjm,j=0logP(wt+jwt;θ)
    极大似然估计可以得到:
    J ( θ ) = − 1 T l o g L ( θ ) = − 1 T ∑ t = 1 T ∑ − m ≤ j ≤ m , j ≠ 0 l o g P ( w t + j ∣ w t ; θ ) J(\theta)=-\frac{1}{T}logL(\theta)=-\frac{1}{T}\sum_{t=1}^T\sum_{-m\leq j\leq m,j\neq0}logP(w_{t+j}|w_t;\theta) J(θ)=T1logL(θ)=T1t=1Tmjm,j=0logP(wt+jwt;θ)
    目标是让 L ( θ ) L(\theta) L(θ)最大化,即让 J ( θ ) J(\theta) J(θ)最小化

  • 如何计算 P ( w t + j ∣ w t ; θ ) P(w_{t+j}|w_t;\theta) P(wt+jwt;θ)

    使用两个向量:对于每个单词,既可能是中心词,也可能是外围词。所有有两个向量。

    • V w V_w Vw:当W是中心词时
    • U w U_w Uw:当W是外围词时

    P ( o ∣ c ) = e x p ( u o T v c ) ∑ w ∈ V e x p ( u w T v c ) P(o|c)=\frac{exp(u_o^Tv_c)}{\sum_{w\in V}exp(u_w^Tv_c)} P(oc)=wVexp(uwTvc)exp(uoTvc),在此基础上进行梯度下降算法即可。

参考

吴恩达笔记汇总

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值