最新要闻
- 世界热消息:谷歌报复性砸出5620亿参数大模型:比ChatGPT更恐怖 学术圈已刷屏
- 【环球播资讯】2月国产游戏出海成绩出炉:《原神》获收入和增长双料冠军
- 有关马的歇后语有哪些?有关马的古诗有哪些?
- 工科理科化现象亟待扭转!曹德旺等科学家企业喊话让学生去工厂一线真问题
- 【世界时快讯】委员喊话农村淘汰、封杀老头乐 网友吵翻:揭秘观点背后让人唏嘘?
- 隐婚男女的结局是什么?隐婚男女演员介绍
- 小学二年级班主任工作计划有哪些?小学二年级家长会发言稿
- 消防逃生的注意事项有哪些?消防逃生演练总结
- 旅游可持续发展的实质是什么?旅游可持续发展论文模板
- 英语六级考试时间安排分配是什么?英语六级考试题型简介
- 世界热头条丨虼蚤的读音是什么_虼蚤
- 描写景色的词语集锦有哪些?描写景色的段落摘抄
- 梁祯元为什么叫南韩贾宝玉?梁祯元为什么是队长?
- 中国相术十二宫都有哪些?相术十二宫实用顺口溜
- 田宅宫在脸上的什么位置?田宅宫代表什么?
- 剑指Notion:微软协作平台Loop即将进入公开预览阶段
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球新资讯:【机器学习】1. 广义线性模型
1. 广义线性模型
1.1 从简单线性回归开始
机器学习的任务是从已知的数据中提取知识, 从而完成对新数据的识别与预测, 即应用知识. 但是, 数据本身不会给予研究者想要的答案, 大多数时候人们很难通过观察或者简单的计算提取有用的结论. 为了从历史数据中整合知识, 人们提出了"模型"这一概念, 认为数据是从模型中生成的, 遵循一定的规律, 如果规律是可知的, 那么机器从数据中学习规律就是可能的.
【资料图】
由于数据不会说话, 最初的模型由人们假设(assumption)而来. 下面用大家熟知的简单线性回归为例, 描述一个数据生成的过程. 假设数据为\(\{(y_i,x_i)\}_{i=1}^{n}\), 其中\(x_i\)是一个向量, 描述样本点\(i\)的特征(features). 简单线性回归假设所有的样本点由下面的模型生成:
\[y=\theta^Tx+\epsilon\]这里\(\theta\)是一个与\(x\)同型的向量, 代表了模型的可知部分, \(\epsilon\)是一个不可知的正态零均值随机误差, 方差为\(\sigma^2\). 上述模型也可以写成下面的概率分布形式:
\[y\sim N(\theta^Tx,\sigma^2).\]我们获得了从这个模型中生成的数据集\(\{(y_i,x_i)\}_{i=1}^{n}\), 希望从中学习到关于可知部分\(\theta\)的知识, 因为知道了\(\theta\), 就可以找到数据生成的过程, 从而对任何新观测的特征\(x_{n+1}\), 即使不能知道对应的随机误差, 也能够大概了解标签\(y_{n+1}\)的期望\(\mathrm{E}[y_{n+1}]\), 这就是把从历史数据中学到的知识应用于新数据的场景.
现在的目标是尽可能准确地估计一个\(\theta\)的值\(\hat{\theta}\)得到估计模型, 因为真实的\(\theta\)是不会直接呈现给我们的, 只能从历史数据中估计. 对于每一个估计的\(\hat{\theta}\), 得到一个估计的概率分布\(N(\hat{\theta}^Tx,\sigma^2)\), 即我们视为数据集是从这个分布中产生的, 在期望意义下, \(h_{\hat\theta}(x)=\mathrm{E}[N(\hat{\theta}^Tx,\sigma^2)]=\hat{\theta}^Tx\)是从这个概率分布中抽样最应该出现的值.
如果模型准确, \(h_\hat{\theta}(x)\)和真实数据\(y\)的差异肯定尽可能小, 因此只需要想办法刻画模型结果和真实数据的差异并最小化之. 对两个在\(\mathbb{R}^{n}\)上取值的向量, 衡量其差异的方法有很多, 选择均方误差作为其差异的度量, 要最小化两个向量之间的均方误差, 意味着我们的目标(objective)是
\[\hat\theta=\min_{\hat\theta}(h_\hat\theta(x)-y)^T(h_{\hat\theta}(x)-y).\]优化不属于我们讨论的范畴, 我们只需要知道梯度下降法可以优化这个目标函数, 得到一个\(\hat\theta\)即可. 这样, 我们就得到了估计模型.
但是, 简单线性回归模型显得过于简单了. 如果我们想获得一个更加有应用价值的模型, 至少有下面几点是可以考虑的:
- 在数据生成机制上, 没有任何的非线性算子使得数据的生成机制被我们描述得过于理想化, 但过多的非线性也会增大估计难度. 因此可以考虑保留核心的线性生成部分\(\theta^Tx\), 但对结果施加一个非线性函数.
- 模型可能不由正态分布所生成, 可以尝试其他分布.
- 我们也许感兴趣的不是随机数\(y\)本身, 而是其某种变换\(T(y)\).
考虑以上三点, 就从简单线性回归模型进入了广义线性模型.
1.2 指数族
现在先考虑前两点, 尝试某种其他的分布\(\mathrm{Distribution}(\eta)\), 其中核心未知参数是\(\theta^Tx\)的某个变换, 即
\[y\sim \mathrm{Distribution}(a(\theta^Tx)).\]假定我们知道分布的具体形式, 也获得了数据集\((y,x)\), 那么对于任何\(\hat{\theta}\), 如果数据来源于模型\(\mathrm{Distribution}(a(\hat\theta^Tx))\), 那么此分布的期望和真实数据\(y\)必定差异较小(这里我们用"距离"来表示, 以区别于一般的作差), 也就是说我们的目标依然是
\[\min_{\hat{\theta}} \mathrm{Distance}(y,\mathrm{E}[\mathrm{Distribution}(a(\hat\theta^Tx))]).\]在简单线性回归中, 距离函数被我们选择为均方差, 现在我们且不论距离的选择. 现在摆在面前的问题是如何计算分布的期望, 如果有可能的话, 最简单的期望形式必然是\(a(\theta^Tx)\)的某个映射, 这让我们不能对所选分布太过随意. 有一类特殊的分布满足我们的需求: 指数族(exponential family). 由于指数族定义不依赖于模型, 先用\(\eta\)代替\(\theta^Tx\).
如果某个参数分布族的密度函数满足下面的形式:
\[p(y;\eta)=b(y)\exp(\eta T(y)-a(\eta)),\]就称此分布族是指数分布族, 这里\(a(\cdot)\), \(b(\cdot)\)和\(T(\cdot)\)都是可微函数. 我们关注它的期望:
\[\mathrm{E}[p(y;\eta)]=\int_{\mathbb{R}}yp(y;\eta)\mathrm{d}y=\int_{\mathbb{R}} yb(y)\exp(\eta T(y)-a(\eta))\mathrm{d}y,\]直接求期望较困难, 注意到对分布族中的任意概率分布, 密度函数的积分为\(1\), 因此我们可以尝试将指数族密度函数的积分对参数\(\eta\)求导, 其导数值应恒为\(0\). 指数族积分和求导可交换, 为计算提供了便利([2]中给出了不使用可交换性条件下的证明):
\[\begin{aligned}\frac{\partial }{\partial \eta}\int_{\mathbb{R}} p(y;\eta)\mathrm{d}y&=\int_{\mathbb{R}}\frac{\partial b(y)\exp(\eta T(y)-a(\eta))}{\partial \eta}\mathrm{d}y\\&=\int_{\mathbb{R}}(T(y)-a"(\eta))b(y)\exp(\eta T(y)-a(\eta))\mathrm{d}y\\&=T(\mathrm{E}[p(y;\eta)])-a"(\eta)\\&=0,\end{aligned}\]这样我们求出了\(\mathrm{E}[p(y;\eta)]\)的一个变换的值, 如果\(T(\cdot)\)是可逆函数, 那么\(\mathrm{E}[p(y;\eta)]=T^{-1}(a"(\eta))\); 特别地如果\(T(\cdot)\)是恒等变换, 那么\(\mathrm{E}[p(y;\eta)]=a"(\eta)\). 这里我们得到了指数族的期望, 证明指数族正是我们所关注的分布族.
现在回到机器学习任务上, 假如我们选择的分布是指数族分布\(\mathrm{ExponentialFamily}(\theta^Tx)\), 并取\(T(\cdot)\)为恒等映射, 那么根据在简单线性回归一节中所讨论的, 我们只需要:
- 对每一个估计的\({\theta}\), 代入指数族中, 得到期望观测向量\(a"(\theta^Tx)\).
- 选择一个合适的距离函数, 最小化\(\mathrm{Distance}(a"(\theta^Tx),y)\).
- 如果最小化由迭代完成, 就重复上述两个步骤; 否则用其他方式最小化.
1.3 广义线性回归实例
现在回顾简单线性回归模型, 由\(N(\theta^Tx,\sigma^2)\)也就是\(N(\eta,\sigma^2)\)生成, 我们考虑将正态分布化为指数族的形式:
\[p(y;\eta)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp\left(-\frac{y^2-2\eta y+\eta^2}{2\sigma^2} \right)=\frac{\exp(-\frac{y^2}{2\sigma^2})}{\sqrt{2\pi\sigma^2}}\cdot\exp\left(\frac{\eta\cdot y-\eta^2}{\sigma^2} \right),\]这里存在另一个参数\(\sigma^2\), 这关系到指数族一个更广泛的形式:
\[p(y;\eta,\tau)=b(y,\tau)\exp\left(\frac{\eta^TT(y)-a(\eta)}{c(\tau)} \right).\]这里\(\eta=\theta^Tx\)是向量, \(\theta\)是参数矩阵, \(T(y)\)是一个向量函数, 这种表述下文还会提到. 上式中\(\tau\)称为扩散系数, 也就是正态分布中的\(\sigma^2\). 另外, 指数分布族中包含众多分布: 正态分布, 两点分布, 二项分布, 泊松分布, Gamma分布等.
以两点分布\(B(1,p)\)为例, 它常常被视为二分类任务的生成模型. 要注意不能直接用\(\eta\)替换\(p\), 至少因为\(p\)的取值范围只有\([0,1]\)而\(\eta=\theta^Tx\in\mathbb{R}\), 具体\(\eta\)应该如何表现还应当先将两点分布的概率函数(在这里为分布列)改写为指数族的形式.
\[p(y;p)=p^{y}(1-p)^{1-y}=\exp\left(y\log p+(1-y)\log(1-p) \right)=\exp\left(y\cdot\log\frac{p}{1-p}+\log(1-p) \right).\]这个密度形式与指数族的标准形式不同, 但只要施加变换
\[\eta=\log\frac{p}{1-p},\]同时有
\[p=\frac{e^{\eta}}{1+e^\eta},\]就可以把密度变为
\[p(y;p)=\tilde p(y;\eta)=\exp\left(y\cdot\eta-\log(1+e^{\eta}) \right),\]变成指数族标准形式, 且\(a(\eta)=\log(1+e^{\eta})\). 对比前面给出的结论, 从\(B(1,p)\)中抽出的样本\(y\)应当与\(a"(\eta)\)一致, 即最小化
\[\mathrm{Distance}(y,a"(\eta))=\mathrm{Distance}\left(y,\frac{e^{\theta^Tx}}{1+e^{\theta^Tx}} \right)=\mathrm{Distance}\left(y,\mathrm{sigmoid}(\theta^Tx) \right).\]这就是二分类器中, 用线性函数sigmoid变换作概率估计的由来. 同时, 对分类问题, 尽管均方差用作距离函数依然是可行的, 但梯度下降中均方差表现不好, 因此我们往往使用交叉熵函数作距离度量(原因这里不谈):
\[\mathrm{CrossEntropy}(y,\hat y)=-\sum_{i=1}^{n}y_i\log_2 \hat{y}_i.\]最后, 回到上文我们提到的\(\theta\)为参数矩阵的情况, 此时对应的分布族是多项分布\(B(1;p)\), 其中\(p=(p_1,\cdots,p_k)"\), 每次生成一个单位向量\(y=(y_1,\cdots,y_k)\)其中有且仅有一个分量\(y_i=1\)(以概率\(p_i\)), 其余分量为\(0\), , 它常常被认为是多分类任务的生成模型.
尝试写出多项分布的概率函数, 注意, 一个生成\(k\)维向量的多项分布中, 未知参数只有\(k-1\)个, 这是因为\(\sum_ip_i=1\)且\(\sum_iy_i=1\).
\[\begin{aligned}p(y;p)&=p_1^{y_1}p_2^{y_2}\cdots p_k^{y_k} \\&=\exp\left(\sum_{i=1}^{k-1}y_i\ln p_i+\left(1-\sum_{i=1}^{k-1}y_i \right)\ln\left(1-\sum_{i=1}^{k-1}p_i \right) \right)\\&=\exp \left(\sum_{i=1}^{k-1}y_i\ln\frac{p_i}{1-\sum_{i=1}^{k-1}p_i}+\ln\left(1-\sum_{i=1}^{k-1}p_i \right) \right)\end{aligned}\]至此, 令
\[\eta=\left(\ln\frac{p_1}{p_k},\cdots,\ln\frac{p_{k-1}}{p_k},0 \right),\]可得\(p_i=p_ke^{\eta}(i=1,\cdots,k-1)\), 结合\(\sum_ip_i=1\)可得
\[p=\left(\frac{e^{\eta_1}}{1+\sum_{i=1}^{k-1}e^{\eta_i}},\cdots,\frac{e^{\eta_{k-1}}}{1+\sum_{i=1}^{k-1}e^{\eta_i}},\frac{1}{1+\sum_{i=1}^{k-1}e^{\eta_i}} \right),\]上面两个繁琐的式子实际上就是\(\eta_i=\ln(p_{k-1}/p_k)\)以及\(p_i=e^{\eta_i}/\sum_je^{\eta_j}\). 此时密度函数为
\[p(y;p)=\tilde p(y;\eta)=\exp\left(y^T\eta-\ln \left(\frac{e^{\eta_k}}{\sum_{i=1}^{k}e^{\eta_i}} \right)\right):=\exp(y^T\eta-a(\eta))\]这里\(a"(\eta)\)就是对其每个分量求导, 即
\[a"(\eta)=\begin{bmatrix}\frac{e^{\eta_1}}{\sum_i e^{\eta_i}} \\ \vdots \\ \frac{e^{\eta_k}}{\sum_{i}e^{\eta_k}}\end{bmatrix}=\begin{bmatrix}\frac{\exp(\theta_1^Tx)}{\sum_i\exp(\theta_i^Tx)}\\ \vdots \\ \frac{\exp(\theta_k^Tx)}{\sum_i\exp(\theta_i^Tx)}\end{bmatrix}.\]此时\(\theta\)是参数矩阵, \(\theta_i\)代表矩阵的第\(i\)列.
1.4 广义线性模型代码
statsmodels
库中提供了单参数指数族对应的广义线性模型. 以下假设我们有一个从泊松分布中生成的模型, 这里先验证泊松分布族是指数族.
也即数据从\(P(e^{\theta^Tx})\)中生成, 生成数据的期望为\(a"(\eta)=e^{\eta}=e^{\theta^Tx}\). 现在我们先生成数据. 假设\(x\)是三维数据, \(\theta=(1, 2, 5)^T\).
import numpy as npimport statsmodels.api as smnp.random.seed(2000)## Generate data from poisson distributiontheta = np.array([1, 2, 5])x = np.random.normal(size=(100, 3))y = np.random.poisson(lam=np.exp(np.dot(x, theta))) + np.random.normal(scale=1, size=(100,))
注意, GLM()
函数是不会自己添加截距项的, 这里简化处理, 我们也认为模型不含截距项. 因为是泊松分布族生成的数据, 因此要选择分布族为Poisson()
.
glm = sm.GLM(y, x, family = sm.families.Poisson())res = glm.fit()print(res.summary())
得到的结果为\(\hat{\theta}=(0.9964,1.9946,5.0010)"\), 非常接近真实值.
在GLM()
函数中可以设定联结函数(link function), 每一个分布族会自带默认的联结函数, 这个函数就是连接分布参数\(\lambda\)和自然参数\(\eta=\theta^Tx\)的函数, 本例中为\(\log\), 因为\(\eta=\log\lambda\). 有关联结函数的更多信息, 可参考[3].
Reference
[1] https://cs229.stanford.edu/notes2021fall/cs229-notes1.pdf
[2] https://xg1990.com/blog/archives/304
[3] https://www.statsmodels.org/stable/glm.html
关键词:
环球新资讯:【机器学习】1. 广义线性模型
【世界新视野】密码学报如何正确Latex投稿?
环球今亮点!快 40 岁,刚被裁。。
金三银四每天一个.NET基础知识巩固(一)
今日要闻!从“13 天”到“0 天”延时,揭秘火山引擎 DataLeap SLA 保障最佳实践
世界热消息:谷歌报复性砸出5620亿参数大模型:比ChatGPT更恐怖 学术圈已刷屏
【环球播资讯】2月国产游戏出海成绩出炉:《原神》获收入和增长双料冠军
Nginx http 文件服务器 中文名称文件乱码以及不能访问下载问题 (解决全过程)
有关马的歇后语有哪些?有关马的古诗有哪些?
工科理科化现象亟待扭转!曹德旺等科学家企业喊话让学生去工厂一线真问题
【世界时快讯】委员喊话农村淘汰、封杀老头乐 网友吵翻:揭秘观点背后让人唏嘘?
隐婚男女的结局是什么?隐婚男女演员介绍
小学二年级班主任工作计划有哪些?小学二年级家长会发言稿
消防逃生的注意事项有哪些?消防逃生演练总结
旅游可持续发展的实质是什么?旅游可持续发展论文模板
英语六级考试时间安排分配是什么?英语六级考试题型简介
世界热头条丨虼蚤的读音是什么_虼蚤
描写景色的词语集锦有哪些?描写景色的段落摘抄
梁祯元为什么叫南韩贾宝玉?梁祯元为什么是队长?
中国相术十二宫都有哪些?相术十二宫实用顺口溜
田宅宫在脸上的什么位置?田宅宫代表什么?
Linux 上的开源视频字幕应用–Live Captions
全球信息:Win10专业版激活方法
【环球播资讯】kafka常用指令
剑指Notion:微软协作平台Loop即将进入公开预览阶段
当前滚动:又来一个“保时捷” 江汽EV3申报:国内首搭载46系列大圆柱电芯
160g超满足:嘉兴特产蛋黄大肉粽2.9元/只大促
环球播报:从“看不起”到“跟不上”:200多名理想汽车车主分享用车体验
热头条丨《街霸6》新解说员宣传片:日本少女冠军人美声甜!
新消息丨国内“投教第一股”九方财富登陆港股,业绩亮眼,市值逼近80亿
面向状态机编程:复杂业务逻辑应对之道
多光源渲染方案 - Many Lights Sampling
世界微动态丨在java中String类为什么要设计成final?Java面试常见问题
报道:LoadRunner——脚本优化(二)
马斯克要自建“乌托邦小镇”:员工全部搬进去 自己当“镇长”
拒绝投影行业亮度虚标!Vidda官宣三色激光全家桶新品
环球最资讯丨新一轮国内油价将于17日迎来调整:有再度搁浅可能
【环球聚看点】彻底解决“刹车争议”!电商平台上线特斯拉脚部专用记录仪:全程摄像
当前播报:简单到复杂:C#拷贝文件的3种方法
环球热门:对LSTM应用于图像的初步理解
【数论与组合数学 1】数论简介、素数、算数基本定理
JS回调地狱
天天视讯!GTX 1050 Ti就能跑!顽皮狗公布《最后生还者:Part 1》PC版配置要求
世界看点:自称12年驾龄 特斯拉Model X车主在线维权:踩刹车没反应加速撞柱子
天天观察:苹果古典音乐软件已上架:Apple Music会员免费用!中国市场随后推出
当前资讯!明基推出首款48寸OLED电竞显示器:4K 120Hz、90W反向供电
《生化危机4:重制版》PS5版疑似已偷跑 小心剧透啊
世界百事通!illustrator学习心得体会(illustrator序列号)
工厂模式进阶用法,如何动态选择对象?
迷你天猫商城代码审计
焦点简讯:K8S 性能优化 - K8S APIServer 调优
【全球聚看点】Prompt-Engineering-Guide 学习摘要1
前端设计模式——装饰者模式
65寸4K大屏电视不到2000元 LCD白菜价即将结束:3月价格上涨10%
环球微头条丨最强AI再次进化 ChatGPT下周升级GPT-4:支持视频了
【环球聚看点】免费玩!《生化危机4:重制版》体验版上线:不限时、不限次
当前滚动:德国电动空中出租车Lilium jet完成测试:时速250km/h 全机36个电风扇
杀疯了!长安深夜放大招 购车百亿补贴:深蓝SL03直降2.2万
世界快看点丨分享几个常用的运维 shell 脚本
世界观点:佳兆业成今年首家复牌出险房企
全球球精选!一座河南小县城的全球钻石生意爆火:价格不到天然的1/3
我国再次成功发射一箭双星:天绘六号A/B星顺利进入预定轨道
当前快看:资助8年的女生毕业放弃工作 嫁给有钱人成家庭主妇 资助人:失眠好几天
天天通讯!上班族如何备考公务员_如何备考公务员
全球焦点!读Java性能权威指南(第2版)笔记12_堆内存中
怎么处理消息重发的问题?
每日热点:HEU KMS Activator 30.0.0全能系统数字许可激活工具(全新体验纪念版)
环球热议:用盆吃10袋泡面男子火了 回应月薪2万邀约:浇完家里18亩地再说
实时:第127篇:异步函数(async和await)练习题(异步,消息队列)
焦点!【LeetCode回溯算法#05】分割回文串(复习双指针判断回文以及substr函数使用记录)
今日热议:【django-vue】celery延迟任务、定时任务 django中使用celery 秒杀功能 双写一致性 首页轮播图定时更新 课程前端页面
世界热头条丨关于JAVA泛型数组类型擦除引发的问题及解决方案
环球今日讯!Mint安装MySQL
快讯:苹果iPhone 14黄色款预售:全新配色不加价 5999元起
天天微速讯:租客辞职要搬走被房东介绍工作 当事人感动
即时焦点:一辆腾势敢占两个充电桩:真不怕挨揍?
“常温超导”把A股都晃晕了!真要改变我们的生活?
《霍格沃茨之遗》渗人面部Bug:玩家看了起鸡皮疙瘩
全球短讯!美环保署署长:将在今年最终确定甲烷排放规则
21世纪20年代是几几年(21世纪20年代是几几年)
爆肝两万字,详解fastdfs分布式文件系统
初识rollup 打包、配置vue脚手架
世界热议:62.类模板
当前热文:C语言——可变参函数
陕西招聘会现3万月薪岗位学生排长龙 招聘人员:半天收简历150份
当前动态:供不应求!真我GT Neo5 1TB版真香:二手用户也抢着要
“山药成了精”?男子买到奇葩山药外形酷似人脚掌
每日视点!快速读懂Redis分布式锁的实现和原理
美少女三消游戏 《Mirror 2: Project X》开发组宣布破产解散
酒店回应到211大学招服务员:符合流程 面向所有高校毕业生
快看点丨京东CEO徐雷:百亿补贴效果超过预期、要做天天低价
【新要闻】比亚迪加入降价大军!宋Pro DM-i限时优惠:88元折扣6888元
焦点简讯:耳机煲机一般要煲多久_耳机煲机方法是什么?买回来新耳机要怎样煲?耳机要煲多久?
世界热点评!前端如何相对优雅管理api
全球速看:浙四医院官网招聘2021_浙四医院官网
环球观点:京东2022年收入超1万亿:“百亿补贴”会一直有!
简约时尚 健身备一件:361°新款轻薄速干衣39元冲量
越来越卖不动了!最畅销十款数码相机一览:索尼成赢家 第一性价比绝
全球通讯!Intel的大小核CPU架构:最终还是把一些老游戏坑了
往返近1000元!景区回应坐滑竿上山按斤收费:网友力挺明码标价