机器学习 —— log-linear 模型
昨天刚刚解决了 logistic regression 之后今天又来了个有趣的家伙。 logistic regression 很强大,但是也有它的弱点。它最大的弱点就是只能告诉你是或者不是,而无法告诉你 XX is YY.这对于追求人工智能来说,只能是走出了一小步。在解决 YES/NO 的问题之后,我们还需要解决 WHAT 这个问题。 聪明的计算机科学家(也许是数学家)又设计了一种新的模型,这种模型可以告诉我们 WHAT。也就是 log-linear 模型。
——离真正的人工智能还很远,或许它是一个科学问题而不是一个工程问题,记我学习 Mechine Learning 的第二天
1、Log-linear
如果要计算机告诉我们WHAT,按照之前的思路,还是应该从概率入手。应该是找到某个模型,模型的输入是一些信息,模型的输出是the label在已知信息下的可能性。这个模型里有参数,不同的label对应不同的参数。对于测试目标,我们只要比较它-->model(the para) 后得到的概率,就可以推断它和哪个label比较配。label应该是有限的。接下来的任务就是找the label 对应的参数。
这组参数应该使 p(y|x;w)达到最大,其中 y 是what:洗衣机,台灯,冰箱、、、、x 是样本:颜色,形状,大小,重量,价格,材质......
概念我们有了,接下来就只有一个问题:这个模型长什么样。既然是个概率模型,那我觉得首先有两个重要特征:
1.它应该不只一项,最好每项都能表达 <label - 维度> ,样本有d个维度,这个方程应该有 d 项,毕竟我们总是希望我们的各种样本维度在计算时不是耦合的。
2.它的取值范围应该在0~1之间,因为它是概率。
接下来我们就要设计一个有着优良数学性质的模型,毕竟我们还要对参数求导算梯度呢。。。。搞个很复杂的东西怎么行。。。。
首先,这次的方程不再是x一个人的事情,因为y也是多样的:那么对于某一项应该表示成: Fij(x_i,y_1).
其次,这些项应该是相加关系,我们用权重来控制这一项对 p(y_j|x)的贡献, 也就是说,这些项的“合成效果”应该表达成 :Wij是各个项的权重.
i = 1:d j=1
∑Wij*Fij(x_i,y_j)
接下来,上面那一堆和的结果都不一定是正的,所以我们首先要保证它大于0,老办法取指数: exp(∑Wij*Fij(x_i,y_j))
最后,如果再想办法让整个东西小于1,那它就基本符合我们的要求了,怎么搞? 显然,把所有词性都算一遍再求和,就会大于单个词性。
实际上,我们拼出来的就是log-linear模型。
那么在给定一个训练集时,我们要使得the label判断最准确,应该让p尽量大。本质上就是让分子尽量大,我们就有了训练的目标:
于是乎还剩下最后一个问题,如何确定 F
2.特征方程 F
F 被称为特征方程,它一共有 C*d个,C是标签数,d是样本维度。也就是说,每个维度都是和特征有关的。
i=1~d, c=1~C
也就是说,Fj对应了所有的label,每个label 有d个F. 是不同的。这样可以自动生成需要的所有Fj(洗衣机对应1~d号的话,电吹风会自动对应d+1~2d号。。。),上述是一种Naive的Fj设置方法,它认为只有当y取某个特定标签时,才使用Fj中的某些项,当y取其他标签时,这组权重是被屏蔽的。例如:我们在讨论某个物体是不是洗衣机时,电吹风的训练权重就被屏蔽了。这本质上就是很多很多logistic regression 并联在一起。
为了方便使用,做以下设计:F--->0/1。很好理解,某个标签和某个样本维度要么有关要么无关,至于最后会是多少由权重调节。
这里是为一个词进行词性判别,A1~A4是和名词判别有关的Function这里的B(名词)就应该全部取1,选通A1~A4,屏蔽其他
A5~A8可能会是和动词有关的判别了,如果y=动词 被选通,则屏蔽和名词,形容词等有关的判别。
机器学习 —— log-linear 模型的更多相关文章
- (转)看穿机器学习(W-GAN模型)的黑箱
本文转自:http://www.360doc.com/content/17/0212/11/35919193_628410589.shtml# 看穿机器学习(W-GAN模型)的黑箱 201 ...
- 机器学习---最小二乘线性回归模型的5个基本假设(Machine Learning Least Squares Linear Regression Assumptions)
在之前的文章<机器学习---线性回归(Machine Learning Linear Regression)>中说到,使用最小二乘回归模型需要满足一些假设条件.但是这些假设条件却往往是人们 ...
- Spark机器学习5·回归模型(pyspark)
分类模型的预测目标是:类别编号 回归模型的预测目标是:实数变量 回归模型种类 线性模型 最小二乘回归模型 应用L2正则化时--岭回归(ridge regression) 应用L1正则化时--LASSO ...
- 机器学习 | 从加法模型讲到GBDT算法
作者:JSong, 日期:2017.10.10 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能,这对"弱学习器& ...
- Spark机器学习7·降维模型(scala&python)
PCA(主成分分析法,Principal Components Analysis) SVD(奇异值分解法,Singular Value Decomposition) http://vis-www.cs ...
- [机器学习]Generalized Linear Model
最近一直在回顾linear regression model和logistic regression model,但对其中的一些问题都很疑惑不解,知道我看到广义线性模型即Generalized Lin ...
- 【Model Log】模型评估指标可视化,自动画Loss、Accuracy曲线图工具,无需人工参与!
1. Model Log 介绍 Model Log 是一款基于 Python3 的轻量级机器学习(Machine Learning).深度学习(Deep Learning)模型训练评估指标可视化工具, ...
- 机器学习 1 linear regression 作业(二)
这个线性回归的作业需要上传到https://inclass.kaggle.com/c/ml2016-pm2-5-prediction 上面,这是一个kaggle比赛的网站.第一次接触听说这个东西,恰好 ...
- 机器学习如何选择模型 & 机器学习与数据挖掘区别 & 深度学习科普
今天看到这篇文章里面提到如何选择模型,觉得非常好,单独写在这里. 更多的机器学习实战可以看这篇文章:http://www.cnblogs.com/charlesblc/p/6159187.html 另 ...
- 偏差(Bias)和方差(Variance)——机器学习中的模型选择zz
模型性能的度量 在监督学习中,已知样本 ,要求拟合出一个模型(函数),其预测值与样本实际值的误差最小. 考虑到样本数据其实是采样,并不是真实值本身,假设真实模型(函数)是,则采样值,其中代表噪音,其均 ...
随机推荐
- PySide 简易教程<三>-------动手写起来
到目前为止,已经接触的Pyside的界面元素有如下几个:QWidget.QPushButton.QLabel.本次再介绍两个tooltip和messagebox.tooltip是一个鼠标悬浮提示信息, ...
- JMS消息头
一个消息对象分为三部分:消息头(Headers),属性(Properties)和消息体(Payload).对于StreamMessage和MapMessage,消息本身就有特定的结构,而对于TextM ...
- MySQL Online DDL 工具之pt-online-schema-change
MySQL DDL:DDL是一个令所有MySQL dDBA 诟病的一个功能,因为在MySQL中在对表进行dDDL时,会锁表,当表比较小比如小于1W行时,对前端影响较小,当时遇到千万级别的表,就会影响前 ...
- Linux环境下GIT初次使用
Git是一个功能强大的分布式版本控制系统,最初用来作Linux内核代码管理的. 第一次接触到github是关于一个报道:在2013年1月15日晚间,全球最大的社交编程及代码托管网站GitHub突然疑似 ...
- oracle中事务处理
事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败. 事务和锁 当执行事务操作时(dml语句),oracle会在被作用的表上加锁,防止其它用户改表的结构 ...
- 主成分分析(principal components analysis, PCA)——无监督学习
降维的两种方式: (1)特征选择(feature selection),通过变量选择来缩减维数. (2)特征提取(feature extraction),通过线性或非线性变换(投影)来生成缩减集(复合 ...
- Oppotunity land---China
China is a land of opportunity.Following the development of China,every sector has made their contri ...
- 在VisualStudio 2012上使用MVC3出现错误的解决办法
1. 错误: 找不到方法:“System.Collections.Generic.Dictionary`2<System.String,BlockParser> System.Web.Ra ...
- (C#)的命名规范
http://gray.iteye.com/blog/644626 http://developer.51cto.com/art/200908/143787.htm http://blog.csdn. ...
- hadoop 数据采样
http://www.cnblogs.com/xuxm2007/archive/2012/03/04/2379143.html 原文地址如上: 关于Hadoop中的采样器 .为什么要使用采样器 在这个 ...