直觉认识

生成模型, 通过训练的模型, 可以求出 p(x|y), 即生成模型的本质是通过旧样本->模型 -> 新样本, 通过某种概率分布, 能自己生成样本, 这很厉害的.

判别模型, 就咱平时用得最多的, 只能用来判断, 不能生成新样本.

case1: 图片识别

以图片识别为例, 假设我们有两波小猫和小狗的图片.

对于生成模型来说, 会生成 猫的模型和狗的模型, 当新来一张图片就能知道是猫还是狗, 同时因其在训练时, 会尽力记住每个各种, 所有, 这模型, 也能生成新的图片哦.

而对于判别模型来说, 只要记住二者的差异即可进行判断了.而无暇关系具体的阿猫阿狗是什么样子的哦.

case2: 模拟身高

生成: \(P(x, y) = P(y)P(x|y)\) 可以从 y 来产生 x

判别: \(P(y|x)\)

学生身高:

男: 170, 172, 174, 176, 168

女: 160, 162, 164, 166

然后假设是服从高斯分布的, 即用样本估计总体可得:

\(p(身高|男) ~ \thicksim N(172, \sigma)\)

\(p(身高|男) \thicksim N(163, \sigma)\)

生成模型当有了概率分布, 就可进行 采样出样本, 新生x

当然, 我觉的直观还是从公式来看, 生成模型 \(p(x, y) = p(x)p(y|x)\) 与判别模型 \(p(y|x)\) 多了一个 \(p(x)\) 的项, 即生成模型既要做判别,也要考虑样本的分布, 而判别就是为了判别.

一般来说, 对于分类问题, 判别模型 > 生成模型 的, 因为, 判别更加专注. 但当数据量比较少的时候, 有可能会 生成模型 > 判别模型.

生成模型中的 \(p(x)\) 可以理解为一个先验概率, 这个跟之前整的 正则 是有联系的, 即, L1的正则跟 入 相关, L2正则跟高斯分布相关. 即每个先验, 在某种意义上, 相当于在我们的模型中加了一个正则项. 这就解释了在数据量少的情况下, 生成模型的 p(x) 起到了正则项的约束, 能降低模型的 过拟合 .

生成模型应用: 图片生成, 聊天机器人, 机器人写代码, 写诗, 写歌...

有向 vs 无向图

也是做一波之前的回顾, 从计算 联合概率 的角度来看

有向图

1 -> 2

3 -> 2

2 -> 4

5 -> 4

则根据这种依赖关系, 便可用条件概率的方式来计算其联合概率:

\(p(1,2, 3, 4, 5) = p(1) p(3) p(2|1, 3) p(5) p(4|2, 5)\)

无向图

1 - 2

3 - 2

1-3

2 - 4

4 -5

这种没有明细概率关系, 通过 score 或者能量函数的方式来求, 即将 其划分为多个簇 (max clique) , 分别计算其score 如:

\(p(1, 2, 3, 4, 5) = \frac {1}{z} \phi_1(1,2,3) \phi_2(2,4) \phi_3(4, 5)\)

归一化 是为了转为概率.

也可以这样两两一波 (pairwise) 划分:

\(\frac {1}{z} p(1, 2, 3, 4, 5) = \phi_1(1,3) \phi_2(1,2) \phi_3(2,3) \phi_4(2, 4) \phi_5(4, 5)\)

无向图的核心在于 如何定义 score 函数, 不同的score函数,得到的结果也不同的

栗子: 定义 score

假设有一个无向图, 就三角形3个顶点 a, b, c

为了更直观, 就假设 a, b, c 代表3个不同的人, 需求是看这个 3个老铁, 组队打篮球竞争力如何(概率 0-1)

然后就相对于一个特征提取

  • a, b, c 是否是一个学院 --> 提取特征 --> f1
  • a, b, c 是否打不同的位置 --> 提取特征 --> f2
  • a, b, c 是否经常一起打球 --> 提取特征 --> f3

定义 score(a, b, c), 其实就看不同模型的, 比如可以这样

\(score(a, b, c) = w_1 f_1 + w_2 f_2 + w_3 f_3\)

也可以像 CRF 模型那样定义:

\(log \ score(a, b, c) = \sum \limits _i w_i f_i\)

这一类也称为log linear model 如典型的 逻辑回归, CRF 等.

无向图完全取决于如何定义 score 函数, 从而训练出不同的模型.

  • Naive Beyes 是一个有向图(联合/条件概率) , 当转为无向图, 则 变为了 Logistic Regression
  • HMM (隐马尔可夫) 是一个有向图, 当转为无向图是, 则 变为了 Linear - chain CRFs
  • 贝叶斯网络 -> 无向后 -> General CRFs

对于无向图其实没有绝对的 分割块的方法, 这也取决于你如何定义, 比如, 我就要以拆分为 配对的形式, 同样是上面的图而言:

没有固定的方式哦, 完全取决我们的理解和假设. 这个过程是一个提取特征 的过程, 这里的 1, 2, 3, 4, 5可以看作是实例(样本) 不是特征变量.

之前本篇是想在通过 HMM -> CRF(条件随机场) 这样的序列生成模型, 但尝试了一波, 我感觉推导我好像搞不定暂时,主要是我这概率的基础有点薄弱, 不像微积分和线代那样, 随手就来...嗯..暂且熟练API算了, 先给自己留个坑, 后面用到了再来填吧...

回顾-生成 vs 判别模型-和图的更多相关文章

  1. PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)

    主讲人 planktonli planktonli(1027753147) 19:52:28 现在我们就开始讲第四章,第四章的内容是关于 线性分类模型,主要内容有四点:1) Fisher准则的分类,以 ...

  2. 生成模型(Generative Model)和 判别模型(Discriminative Model)

    引入 监督学习的任务就是学习一个模型(或者得到一个目标函数),应用这一模型,对给定的输入预测相应的输出.这一模型的一般形式为一个决策函数Y=f(X),或者条件概率分布P(Y|X). 监督学习方法又可以 ...

  3. 生成模型(Generative Model)Vs 判别模型(Discriminative Model)

      概率图分为有向图(bayesian network)与无向图(markov random filed).在概率图上可以建立生成模型或判别模型.有向图多为生成模型,无向图多为判别模型. 判别模型(D ...

  4. 生成模型(Generative Model)与判别模型(Discriminative Model)

    摘要: 1.定义 2.常见算法 3.特性 4.优缺点 内容: 1.定义 1.1 生成模型: 在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下.它给观测值和标 ...

  5. 生成模型(Generative)和判别模型(Discriminative)

    生成模型(Generative)和判别模型(Discriminative) 引言    最近看文章<A survey of appearance models in visual object ...

  6. 生成模型(generative model)与判别模型(discriminative model)的区别

    监督学习可以分为生成方法与判别方法,所学到的模型可以分为生成模型与判别模型. 生成模型 生成模型由数据学习联合概率分布\(P(X,Y)\),然后求出条件概率分布\(P(Y|X)\)作为预测的模型,即生 ...

  7. tflearn kears GAN官方demo代码——本质上GAN是先训练判别模型让你能够识别噪声,然后生成模型基于噪声生成数据,目标是让判别模型出错。GAN的过程就是训练这个生成模型参数!!!

    GAN:通过 将 样本 特征 化 以后, 告诉 模型 哪些 样本 是 黑 哪些 是 白, 模型 通过 训练 后, 理解 了 黑白 样本 的 区别, 再输入 测试 样本 时, 模型 就可以 根据 以往 ...

  8. 生成模型 VS 判别模型 (含义、区别、对应经典算法)

      从概率分布的角度考虑,对于一堆样本数据,每个均有特征Xi对应分类标记yi. 生成模型:学习得到联合概率分布P(x,y),即特征x和标记y共同出现的概率,然后求条件概率分布.能够学习到数据生成的机制 ...

  9. .meta和模型贴图丢失

    一些策划的工程里经常出现模型贴图丢失,同样的工程,其他人没有问题.就算全部还原,也无法解决,最后只要美术在它的工程里重新关联贴图.一次偶然的机会,我发现把模型和贴图的.meta文件删除,让unity重 ...

  10. 9. PD逆向工程--由数据库转为模型(ER图)

    步骤: 1. 在控制面板-->管理工具(如果没找到管理工具,查看方式改为大图标)-->数据源(ODBC)-->用户DSN -->用户数据源下添加一个数据源(这里根据情况添加数据 ...

随机推荐

  1. Django setting可以配置什么?

    Setting配置信息 注册子应用 # 注意:需要修改Django的全局配置文`settings.py`'''1. 创建子应用 1)在pycharm中创建 python manage.py start ...

  2. Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版

    Deepseek卡的问题已经有几周了,还有同学没有解决这个问题? 今天就来教大家如何白嫖阿里云的Deepseek-R1满血版,新用户享受100万token额度,相当的富裕,可以随便用了.并且还配用AP ...

  3. MybatisPlus - [01] 概述

    MybatisPlus可以节省我们大量工作时间,所有的CURD代码它都可以自动化完成! 一.是什么   MyBatis-Plus(简称MP)是一个基于MyBatis的增强工具,其设计目的是在不改变My ...

  4. zabbix - [03] 安装部署

    参考:https://www.yuque.com/fenghuo-tbnd9/ffmkvs zabbix6要求操作系统为Centos8,所以一开始安装部署的时候发现少了zabbix-server-my ...

  5. C语言中标准输出的缓冲机制

    什么是缓冲区 缓存区是内存空间的一部分,再内存中,内存空间会预留一定的存储空间,这些存储空间是用来缓冲输入和输出的数据,预留的这部分空间就叫做缓冲区. 其中缓冲区还会根据对应的是输入设备还是输出设备分 ...

  6. golang interface 转 string、int、float64

    interface{} interface{} 接口.interface{} 类型很多人都会混淆.interface{} 类型是没有方法的接口.由于没有 implements 关键字,所以说所有的类型 ...

  7. Python数据格式转换神器-提高办公效率

    一.引言 在工作日常里,数据转换总是让人头疼?别急,今天揭秘一个超级实用的Python技巧,帮你轻松搞定各种数据格式转换,提升工作效率不是梦! 场景1:你手头有一堆CSV格式的(逗号分隔符)数据,其他 ...

  8. CSRF的理解及Flask和Django的解决方案

    CSRF 攻击的原理 1. 用户正常登录 网站A 2. 网站A 向用户浏览器写入cookies(包含登录信息) 3. 用户在没有登出的情况下,访问了网站B(攻击网站) 4. 网站B 伪造了一个 网站A ...

  9. Docker restart 重启容器

    就像很多常驻后台应用程序动不动可能就需要重启操作一样,有时候我们可能也需要重启容器 而重启容器使用的就是 docker restart 命令 docker restart <container_ ...

  10. Anaconda指定目录安装终极指南+避坑大全

    最近被Python环境搞疯了吧?一个项目跑起来另一个就报错?用Conda环境隔离大法就对了!但默认安装竟吃掉根分区8G的硬盘?今天手把手教你迁移安装目录+实战部署AI项目. 今天测试AIREPORT, ...