回顾-生成 vs 判别模型-和图
直觉认识
生成模型, 通过训练的模型, 可以求出 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 判别模型-和图的更多相关文章
- PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)
主讲人 planktonli planktonli(1027753147) 19:52:28 现在我们就开始讲第四章,第四章的内容是关于 线性分类模型,主要内容有四点:1) Fisher准则的分类,以 ...
- 生成模型(Generative Model)和 判别模型(Discriminative Model)
引入 监督学习的任务就是学习一个模型(或者得到一个目标函数),应用这一模型,对给定的输入预测相应的输出.这一模型的一般形式为一个决策函数Y=f(X),或者条件概率分布P(Y|X). 监督学习方法又可以 ...
- 生成模型(Generative Model)Vs 判别模型(Discriminative Model)
概率图分为有向图(bayesian network)与无向图(markov random filed).在概率图上可以建立生成模型或判别模型.有向图多为生成模型,无向图多为判别模型. 判别模型(D ...
- 生成模型(Generative Model)与判别模型(Discriminative Model)
摘要: 1.定义 2.常见算法 3.特性 4.优缺点 内容: 1.定义 1.1 生成模型: 在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下.它给观测值和标 ...
- 生成模型(Generative)和判别模型(Discriminative)
生成模型(Generative)和判别模型(Discriminative) 引言 最近看文章<A survey of appearance models in visual object ...
- 生成模型(generative model)与判别模型(discriminative model)的区别
监督学习可以分为生成方法与判别方法,所学到的模型可以分为生成模型与判别模型. 生成模型 生成模型由数据学习联合概率分布\(P(X,Y)\),然后求出条件概率分布\(P(Y|X)\)作为预测的模型,即生 ...
- tflearn kears GAN官方demo代码——本质上GAN是先训练判别模型让你能够识别噪声,然后生成模型基于噪声生成数据,目标是让判别模型出错。GAN的过程就是训练这个生成模型参数!!!
GAN:通过 将 样本 特征 化 以后, 告诉 模型 哪些 样本 是 黑 哪些 是 白, 模型 通过 训练 后, 理解 了 黑白 样本 的 区别, 再输入 测试 样本 时, 模型 就可以 根据 以往 ...
- 生成模型 VS 判别模型 (含义、区别、对应经典算法)
从概率分布的角度考虑,对于一堆样本数据,每个均有特征Xi对应分类标记yi. 生成模型:学习得到联合概率分布P(x,y),即特征x和标记y共同出现的概率,然后求条件概率分布.能够学习到数据生成的机制 ...
- .meta和模型贴图丢失
一些策划的工程里经常出现模型贴图丢失,同样的工程,其他人没有问题.就算全部还原,也无法解决,最后只要美术在它的工程里重新关联贴图.一次偶然的机会,我发现把模型和贴图的.meta文件删除,让unity重 ...
- 9. PD逆向工程--由数据库转为模型(ER图)
步骤: 1. 在控制面板-->管理工具(如果没找到管理工具,查看方式改为大图标)-->数据源(ODBC)-->用户DSN -->用户数据源下添加一个数据源(这里根据情况添加数据 ...
随机推荐
- 深入解析NoSQL数据库:从文档存储到图数据库的全场景实践
title: 深入解析NoSQL数据库:从文档存储到图数据库的全场景实践 date: 2025/2/19 updated: 2025/2/19 author: cmdragon excerpt: 通过 ...
- [BZOJ3159] 决战 题解
个人感觉各方面难度高于<在美妙的数学王国中畅游>,也不知道是不是求导的关系,这题 \(luogu\) 难度评级还更低.不过感觉这题作完对 \(LCT\) 理解更顺畅了. 前四个操作简单,关 ...
- python 二级 程序控制结构
二分支结构简略写法: 异常
- java如何实现对List集合进行分页
对List集合进行分页: private <T> Page<T> listToPage(List<T> dataList, Integer pageSize, In ...
- TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
\3c span id="mce_marker" data-mce-type="bookmark">\3c /span>\3c span id=&q ...
- 快速排序(NB)
博客地址:https://www.cnblogs.com/zylyehuo/ # _*_coding:utf-8_*_ def partition(li, left, right): tmp = li ...
- SQL Server 中的异常处理
为什么我们需要 SQL Server 中的异常处理? 让我们通过一个示例来了解 SQL Server 中异常处理的必要性.因此,创建一个 SQL Server 存储过程,通过执行以下查询来除以两个数字 ...
- 面试题-Athas性能监控工具(原理部分未完成)
前言 Arthas工具已经被我们项目组简单的应用到了物流项目的日常运维中.物流项目之前出现过生产消费速度不一致导致内存队列中的消息数据积压的问题,在后来解决了问题之后,我们项目组就更加重视了对JVM的 ...
- 学习Kotlin语法(三)
简介 在上一节,我们对Kotlin中面向对象编程(OOP)的相关知识有了大致的了解,本章节我们将去进一步了解函数.lambada表达式.内联函数.操作符重载.作用域函数. 目录 函数 函数的使用 参数 ...
- Python 类型检查与类型注解:mypy 与 typing 深度解析
Python 类型检查与类型注解:mypy 与 typing 深度解析 在 Python 动态类型语言中,mypy 和 typing 是两个提升代码健壮性的核心工具.它们通过静态类型检查与类型注解,帮 ...