WDK李宏毅学习笔记重点知识复习总结

2023-11-05

李宏毅学习笔记复习总结

文章目录


1、Regression(回归)和 Classification(分类)

1.1 是什么

回归问题通常是预测一个值,预测的结果是连续的,例如预测房价,股票等,分类问题是预测事物的所属标签,预测结果是离散的,例如预测宝可梦的类别,股票的涨停等。分类模型通常可以在回归模型上建立,分类模型的最后一层通常用Softmax函数判断其所属类别。

1.2 怎么做

回归模型和分类模型都可用下图所示的神经网络。回归模型通常情况下Output layer的n=1。分类模型按照所分的类别的数量来决定Output layer中n的取值,F通常是Softmax函数。
在这里插入图片描述
Hiddle laters的激活函数可根据实际问题来选择。常用的激活函数有:

  1. sigmod函数
    在这里插入图片描述
  2. ReLU函数
    F(x) = max(0,x)
    在这里插入图片描述
  3. ELU函数

在这里插入图片描述

  1. PReLU函数
    F(x) = max(ax, x)
    在这里插入图片描述
  2. MAXOUT函数
    在这里插入图片描述
  3. softmax函数
    在这里插入图片描述

2、Deep Learning

2.1 是什么

Deep Learning是通过提高神经网络模型的深度(中间层的层数)以提高模型学习能力的方法。

2.2 怎么做

因为有Hidden layers有很多层,所以模型参数很多,学习能力强,所以在对模型进行优化时,需要用前向传播和反向传播求出每层参数的导数,再用梯度下降的方法对参数进行优化。简单来说,就是用优化方法对模型进行暴力优化。
使模型参数更多

3、CNN(卷神经网络)

3.1 是什么

CNN是对图像进行重点信息提取从而实现降维的神经网络。

3.2 怎么做

用一组参数作为Filter,对图片数据进行内积(对应位置相乘求和),得到降维后的数据,这层叫做卷积层。
在这里插入图片描述
对卷积层得到的数据每2*2作为一组,取每组的最大值或者平均值作为新的数据,这层叫做池化层。
在这里插入图片描述
经过多次卷积池化,对图片数据进行降维,最好得到的数据拉直就可送入合适的神经网络进行训练了。所以说CNN做的事情是将图片进行降维。

4、RNN

4.1 是什么

RNN是具有记忆功能的神经网络,适合处理需要根据上下文语境得出答案的问题。例如,智能对话,总结文章等。下图是最简单的RNN。
在这里插入图片描述

4.2 怎么做

最常用的RNN是LSTM,如下图所示:
在这里插入图片描述LSTM有4个输入,只有一个输出,Z口负责输入数据,Zi口会判断此时是否允许输入,Zf口负责记忆功能,Zo口负责控制输出。将多个LSTM连接起来,就可组成有Deep的RNN,可以很好的解决智能对话,总结文章这类的问题。
在这里插入图片描述

5、半监督学习和无监督学习

5.1 是什么

半监督学习:是指训练资料有一部分是有labels的有一部分是无labels,且通常情况下无labels data数据量远大于有labels data。
无监督学习:是指训练资料都是无label的。

5.2 怎么做

  1. 半监督学习比较经典的一个方法是Self-training,它的做法是:
    1. 用labeled data训练出一个好的模型 f。
    2. 再将模型f运用到unlabeled data中,得到unlabeled data的label。
    3. 根据第二步得到的label,将一些合适的unlabeled data及对应的label移入labeled data,再重复上面步骤。
      还有Semi-supervised Learning for Generative Model、semi-supervised SVM等方法。
  2. 无监督学习比较常用的方法是Word Embedding-Prediction based,它是把一句话中的一个或多个word的vector作为Input,把这些word的下一个词作为label,如此反复迭代,完成训练。

6、Explainable ML

6.1 是什么

Explainable ML是解释机器行为的方法,也就是知道机器为什么做某个行为。例如机器在做影像识别时,我们可以用Explainable ML的方法去知道机器是通过该image的哪个特征做出正确判断的。

6.2 怎么做

Explainable ML主要分类两类,分别是Local Explanation和Global Explanation。

  1. Local Explanation的基本思想是改变输入(遮挡法,Gradient法),观察输出的变化程度,来判断什么是重要的。
  2. Global Explanation的基本思想是用一个容易解释的model去模仿不能解释的model的局部或者全部行为(通常是局部行为),然后用容易解释的model解释该行为。

7、Attack ML models

7.1 是什么

Attack ML models是对机器学习的model进行攻击。对机器学习的模型进行攻击是训练一个输入x,使得机器看见该x后就会做出错误的行为或者我们向让其做的行为。

7.2 怎么做

和训练机器学习的model差不多,这里也是用gradient的方法来求解,不过Attack时,是将输入x作为train的对象,对x做微小的改变△x,在训练时要求△x越小越好,输出结果离正常结果越远越好。学习Attack ML models的主要目的是让我们掌握常见的攻击手法,从而在训练机器学习的model时,刻意的去规避自己的model被攻击,提高model的稳定性。

8、PCA和K-Means

8.1 是什么

K-Means是聚类算法,属于无监督学习,是对数据进行分类的算法。PCA(主成分分析)是对高纬度空间中线性分布的数据进行降维的算法,实际应用很广泛。

8.2 怎么做

  1. K-means是将Unlabeled datas随机取K个中心点,按照它们与每个中心点的距离分为K个类别,再求K个类别中数据的均值点,再将均值点作为中心点重新进行分类,直至中心点不再移动。
  2. PCA它的想法是将N维数据特征映射到K维上,它的工作是从原始的空间中找K组坐标轴,第一个新的坐标轴选择的是原始数据中方差最大的方向,第二个坐标轴的选择是与第一个坐标轴相交的平面中方差最大的方向,第三个坐标轴的选择是与第一,二个坐标轴相交的平面中方差最大的方向,以此类推。实际上,通过计算数据矩阵的协方差矩阵,得到协方差矩阵的特征向量,选择特征值最大的K个特征所对应的特征向量组成的矩阵,就是降维后的K维空间的数据。

9、Manifold Learning(流形学习)

9.1 是什么

Manifold Learning是对高维空间中非线性分布的数据进行降维的方法。

9.2 怎么做

常用的做法有LLE、LE、T-SNE。

  1. LLE: 利用data point之间的联系进行降维。选定每个点和其周围点,用周围的点加权求和表示该点,这些权重就是联系,保持权重(联系)不变的情况下将全部的高维空间data point投映到低维空间。
  2. Laplacian Eigenmaps(LE):将data point构建成图进行降维。将每一个点与其周围的K个点连接起来构建成图,然后定义其每个点之间权重wij的值,构建拉普拉斯矩阵,通过计算其特征向量得到其降维后的点。
  3. T-SNE:利用data point各个点之间的相似度进行降维。计算data point各个点之间的相似度P以及降维后的点的相似度Q,我们希望P和Q越接近越好,所以用衡量distribution相似度的函数KL得到Loss Function,对该Function用梯度下降法就可得到降维后的点。

10、Deep Auto-encoder

10.1 是什么

Deep Auto-encoder是对数据进行降维变成一个低维度的Vector且可以较完整的保留原始数据信息的技术。

10.2 怎么做

在对图片进行降维时,先将图片进行升维放到细节,在对其进行降维变成一个code,再按原本降维的步骤反着来对图片进行还原,还原度越高越好。
在这里插入图片描述

11、ELMO,BERT,GPT

11.1 是什么

ELMO,BERT,GPT是用来解决编码时,“一词多译”的问题,对同一个词进行多个编码的方法。

11.2 怎么做

  1. ELMO的做法是training一个正向的RNN和反向的RNN,两者组合作为word的Embedding,这样word Embedding不仅考虑了前文语境思,也考虑了后文语境,且不同语境得到的word也都是不同的。
  2. BERT是Transformer的Encoder,它常用的训练方法有两个,一个是将句子中的某些word用标志符[mask]代替,让machine去猜被代替的词是什么,如此就可以找到每个word的Embedding。另一个是输入分类标志符和句子间的分隔标志符,然后输入句子是否是可以连在一块的,让machine知道句子间的联系及含义。
  3. GPT是Transformer的Dncoder,它是将每一个word分为3个vector,每一层的输出作为下一次的输入,将联系一层一层传递下去,然后training出所有word的vectors。

12、Anomaly Detection(异常侦测)

12.1 是什么

Anomaly Detection是让机器识别异常的输入数据的方法。

12.2 怎么做

  1. Binary Classification:它是有监督的Anomaly Detection,是将正常资料分为一类,异常资料分为一类,然后训练一个分类器,以此实现Anomaly Detection。
  2. With Classifier:它是有监督的Anomaly Detection,是在Classifier的基础上,引入Confidence score,让机器知道自己答案的可信度,设置Confidence score阈值,从而实现异常检测。
  3. Gaussian Distribution:它的异常侦测是无监督的Anomaly Detection,和With Classifier的方法相似,不同点在于它是在Gaussian Distribution的分类器上引入Confidence score。
  4. Auto-encoder:它是无监督的Anomaly Detection,它的想法是用Encoder-Decoder 模型将Training data中的重要特征抓住,并以此来对数据进行降维,当异常数据输入时,model还会以同样的方法对数据进行降维,但如此降维后的数据将无法很好的还原出来,当还原度低于一定阈值时,machine就会知道该数据是异常的。

13、Conditional Generation by GAN

13.1 是什么

GAN是用来根据现有数据生成和原始数据不一样但又相似的数据的神经网络。GAN内主要包括Generator(G)和Discriminator(D)。Conditional Generation by GAN是让机器根据人们的要求去生成数据。例如根据现实人物生成动漫人物。

13.2 怎么做

  1. Supervised Conditional GAN用的方法是将train data和noise同时丢给G,G会生成图片,将G生成的图片及期望该图片对应的文字的encode组合起来丢给D,D在打分时,只有当G生成的图片像真的且文字和G对应的图片是匹配的时候才给高分。
    在这里插入图片描述

  2. Unsupervised Conditional GAN的方法有很多,它主要分为两类,一类是将输入从一个Domain转移到目标Domain,以真实照片二次元化为例,它的方法主要分为两步,一步是将Domain X和Domain Y通过Pre-trained将两者转换为vector,训练的时候让其越接近越好以保持生成的图片保留了Domain X的信息,一步是将Domain Y丢给D,D以Domain Y是否二次元给Domain Y评分以确保产生的图片是二次元的。
    在这里插入图片描述

    另一类是改变输入的某些特征。它的一个重要的方法叫StarGAN,以将人从愤 怒表情转换为微信为例,它的做法和上述方法类似,分为两步,一步将G生成的微信的图片再经过G还原成愤怒的图片,在训练时希望还原的图片与真实图片越接近越好,以此确保生成的图片保留了输入图片完整的信息,一步是将生成的图片丢给D,D根据图片的真实度及是否是目标Domain(这里是微笑表情)打分。
    在这里插入图片描述

14、Transfer Learning

14.1 是什么

Transfer Learning是用与训练数据相似的数据和训练数据一起对模型进行训练的算法。以达到让机器利用类似数据进行联系学习的效果。

14.2 怎么做

  1. Source 和Target data都是有label时:进行训练的方法主要用的是Model Fine-tuning和Multitask Learning。前者是用Source data对model进行训练,得到的model作为model初始化参数,再用Target data对model进行训练,再训练时,要求model与初始化参数越接近越好,以防止over fit。后者是用model共用一些layer同时去训练source data和target data,前提就是source data和target data要有相似之处。
  2. Target data无label Source data有label时:进行训练的方法主要有Domain-adversarial training和Zero-shot Learning。前者是设计一些神经网络作为特征消除器,将Target data的一些多余特征消除,使其与Source data特征接近,来实现Transfer Learning。后者是训练一个属性提取的model,大量的Source data负责教会model提取特征,再从Target data中提取特征和数据库做对比或者投映到高维空间中,以此找到对应的label。

15、Life Long Learning(终生学习)

15.1 是什么

Life Long Learning是让机器可以和人一样,用同一个”脑子“做很多事情,且每件事都可以做好。具体细节上,Life-long Learning是希望机器做到在学习新知识时不能忘记旧知识,且学习的时候要像人一样,能够触类旁通,当学习任务比较复杂时,知道自动调用更多的神经元进行学习。

15.2 怎么做

Life-long Learning主要面临着以下3个方面的问题:

  1. Knowledge Retention:要求机器在学习的过程中既要学好又不能遗忘曾经学过的知识。
  2. Knowledge Transfer:希望模型可以用已经学过的知识帮助其学习新的知识,达到触类旁通的效果。
  3. Model Expansion:希望模型可以根据问题的复杂度来调整模型自己的复杂度,以此提高准确率及内存空间的利用效率。

Life-long Learning的方法有很多,有3个比较常用的方法对应着解决以上三个问题。

  1. EWC用的是调整损失函数来控制模型在学习新知识时不遗忘旧知识的方法,是用来解决Knowledge Retention的问题的。
  2. GEM是记住以前任务的一部分训练数据,在训练新任务更新参数时,不仅考虑该参数的导数,还考虑在以往的任务上该参数的导数,使得模型在学习新任务时,还会回顾旧任务,实现触类旁通,是用来解决Knowledge Transfer的问题的。
  3. Net2Net是将模型中一部分神经元一分为二或者分为多个,保持其输入参数不变,输出则由母体神经元和子体神经元平分,来实现自动扩展时不会忘记曾经学过的知识,它是用来解决Model Expansion的问题的。

16、Deep Reinforcemen Learning(深度强化学习)

16.1 是什么

它是一种更接近人类思维的人工智能的方法,是通过奖励机制来进行训练的模型,它可以让机器学会跳舞,下围棋等极具人类思维的行为。

16.2 怎么做

实现强化学习的方法有很多,以下三种是比较常用的:

  1. Reinforcement Learning是通过奖励机制进行训练的,其中Actor负责接收Env中的信息做出行动,Critic负责给Actor打分从而得到Loss Function,用其更新Actor的参数,让Actor的行为越来越正确。
    在这里插入图片描述

  2. Imitation Learning中没有Critic,它是纯粹的从Env中接收信息,Actor做出判断反馈到Env中,循环往复,但是在training时,会给其一些老师做的示例,让其与示例越接近越好,以此达到训练的目的。
    在这里插入图片描述

  3. Inverse Reinforcement Learning是从老师做的示例中学习,找到一个合适的Reward Function,再和Reinforcement Learning一样进行训练。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WDK李宏毅学习笔记重点知识复习总结 的相关文章

随机推荐

  • 解决Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of ..

    文章目录 1 问题 2 分析问题 3 升级kotlin插件版本 3 1 升级方法1 3 1 升级方法2 4 其他问题 4 1 方法1中的Cannot download Read timed out问题 4 2 方法2中的Plugin Kot
  • 23种常用设计模式(C++)

    Part One Methods for constrcting a new object 1 Factory method 我们把简单工厂方法归类到工厂方法中 工厂方法的目的是用来解决具有同一接口 基类 派生类对象的生成问题 尽管可以通过
  • vray渲染白屏卡死_3DMAX使用VRay渲染的时候,在building embree static这一步最后一点卡死...

    DMAX使用vray渲染的时候 在building embree static这一步最后一点卡死是参数设置错误 解决方法如下 1 在我们为场景打好vray灯光以后 要设置vray渲染的参数 按 F10 打开vray渲染编辑器 在 公用 下栏
  • react-Suspense工作原理分析

    Suspense 基本应用 Suspense 目前在 react 中一般配合 lazy 使用 当有一些组件需要动态加载 例如各种插件 时可以利用 lazy 方法来完成 其中 lazy 接受类型为 Promise lt gt default
  • 大数据从入门到精通文章体系

    大数据知识可谓是多而杂 大数据相关的组件更是数不胜数 但是我们每一次的感受到学习的累 就足以证明我们在认真的学习 每感到到一次累的同时 就应该感受到一次进步 所以不要让自己停下来 各位小伙伴冲冲冲 大数据系列资源链接 名称 链接 提取码 H
  • PS笔记2

    第01堂课 出识Ps 图像处理软件 学习ps要做到三点 了解基本概念 掌握操作规律 开发扩展思维 第02堂课 软件安装 百度搜索ps 下载 会发现两种下载情况 第一种不需要安装 解压后在文件里直接找到PS图标 打开就可以了 第二种安装包 安
  • 织梦网站调用变量失败_织梦dedecms无法调用新添加变量的解决办法

    织梦dedecms无法调用新添加变量 在项目中使用了几次织梦cms程序 感觉越来越好用 以前刚接触dedecms时一看后台界面 如此之乱 使我心乱如麻 不知从何下手 后来因为工作逐渐就熟悉了它的后台 特别是一些客户的特殊要求 靠dede自带
  • Ubuntu配置国内源

    Ubuntu配置国内源 Ubuntu源 使用配置生成器 安装依赖包 打开apt源配置文件 国内apt源 中科大源 阿里源 Ubuntu源 每个 Ubuntu 版本都有自己的一组四个官方存储库 Main Canonical 支持的自由开源软件
  • Qt4_写FTP客户端

    写FTP客户端 QFtp类在Qt中实现了FTP协议的客户端程序 它提供了非常多的函数来执行多数常见的FTP操作 同时还可以执行任意的FTP指令 QFtp类是异步工作的 若调用一个像get 或者put 这样的函数 它会立即返回并且仅在控制权回
  • 创建 VirtualBoxClient COM对象失败

    错误问题描述 安装VirtualBox程序 鼠标右键点击VirtualBox属性 在兼容性选项中 勾选兼容性模式运行这个程序 下拉选择 Windows Server 2008 Service Pack 1 勾选以管理员身份运行此程序 3 点
  • [django项目] 用户注册功能 之 注册用户到数据库

    VIIII 注册功能 谋定而后动 先做分析在写代码 1 gt 业务流程分析 对参数进行校验 判断用户名是否为空 是否已注册 判断密码是否为空 是否一致 格式是否正确 判断手机号码是否为空 格式是否正确 判断短信验证码是否为空 格式是否正确
  • 创米云入驻集简云平台,实现无代码集成数百款应用

    PART 1 创米云介绍 创米云科技 是一家专注于小程序开发 同时也是 微信 阿里本地生活客如云 支付宝 的优质IT技术服务商 国内领先自主研发的小程序开发工具 制作过程无需代码 拖拽可视化组件即可完成 拥有海量小程序行业模板 帮助千万商户
  • python 饼图、直方图、散点图和盒图基本绘制

    文章目录 python 饼图 直方图 散点图和盒图基本绘制 饼图 直方图 使用pygal 使用pyplot 散点图 例1 例2 例3 盒图 python 饼图 直方图 散点图和盒图基本绘制 饼图 import matplotlib pypl
  • 将STM32工程下载到GD32中

    在已经写好stm32f103工程的情况下 将stm的工程直接下载到GD32的开发板中 1 导入GD32的pack包 选择使用的芯片型号 并将flash download换为GD32的 2 修改工程参考 STM32移植到GD32 3 如果代码
  • JAVA static修饰符

    static修饰的属于类本身 没有static修饰的属于实例 创建类时 static修饰的成员存放在堆内存中的permanent代 permanent代存放类的信息 如类中的static的成员 class a static int n 4
  • JDBC连接数据库工具类

    最近有人问加哥怎么连接数据库 和数据库建立连接 下面给大家分享一下JDBC连接数据库的模版方法 加哥是以mysql为例 若是其他数据库替换层其他的即可 步骤 1 引入数据库架包 2 加载驱动 3 创建连接 4 进行相应数据库操作 5 关闭数
  • fastreport在delphi中的使用

    文章目录 前言 一 发布后的设计 二 小计 三 分组 1 分组时 MasterData选择保持一致性 2 分组设置 四 页码 五 透视表 前言 记录fastreport在delphi中的使用方法 一 发布后的设计 程序发布后 需要在客户那边
  • 链表的定义和基本操作

    文章目录 单链表 定义 插入操作 删除操作 查找操作 单链表的建立 双链表 初始化 插入 删除 遍历 循环链表 初始化 单链表 定义 要表示一个单链表时 只需要声明一个头指针L 指向单链表的第一个节点 LNode L 或者 LinkList
  • C++基础——this指针

    目录 一 this指针 1 this指针定义 2 this指针的特性 3 this指针存在的位置 一 this指针 例 class Date public void Print int year int month int day cout
  • WDK李宏毅学习笔记重点知识复习总结

    李宏毅学习笔记复习总结 文章目录 李宏毅学习笔记复习总结 1 Regression 回归 和 Classification 分类 1 1 是什么 1 2 怎么做 2 Deep Learning 2 1 是什么 2 2 怎么做 3 CNN 卷