昨天刚刚解决了 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 模型的更多相关文章

  1. (转)看穿机器学习(W-GAN模型)的黑箱

        本文转自:http://www.360doc.com/content/17/0212/11/35919193_628410589.shtml#   看穿机器学习(W-GAN模型)的黑箱 201 ...

  2. 机器学习---最小二乘线性回归模型的5个基本假设(Machine Learning Least Squares Linear Regression Assumptions)

    在之前的文章<机器学习---线性回归(Machine Learning Linear Regression)>中说到,使用最小二乘回归模型需要满足一些假设条件.但是这些假设条件却往往是人们 ...

  3. Spark机器学习5·回归模型(pyspark)

    分类模型的预测目标是:类别编号 回归模型的预测目标是:实数变量 回归模型种类 线性模型 最小二乘回归模型 应用L2正则化时--岭回归(ridge regression) 应用L1正则化时--LASSO ...

  4. 机器学习 | 从加法模型讲到GBDT算法

    作者:JSong, 日期:2017.10.10 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能,这对"弱学习器& ...

  5. Spark机器学习7·降维模型(scala&python)

    PCA(主成分分析法,Principal Components Analysis) SVD(奇异值分解法,Singular Value Decomposition) http://vis-www.cs ...

  6. [机器学习]Generalized Linear Model

    最近一直在回顾linear regression model和logistic regression model,但对其中的一些问题都很疑惑不解,知道我看到广义线性模型即Generalized Lin ...

  7. 【Model Log】模型评估指标可视化,自动画Loss、Accuracy曲线图工具,无需人工参与!

    1. Model Log 介绍 Model Log 是一款基于 Python3 的轻量级机器学习(Machine Learning).深度学习(Deep Learning)模型训练评估指标可视化工具, ...

  8. 机器学习 1 linear regression 作业(二)

    这个线性回归的作业需要上传到https://inclass.kaggle.com/c/ml2016-pm2-5-prediction 上面,这是一个kaggle比赛的网站.第一次接触听说这个东西,恰好 ...

  9. 机器学习如何选择模型 & 机器学习与数据挖掘区别 & 深度学习科普

    今天看到这篇文章里面提到如何选择模型,觉得非常好,单独写在这里. 更多的机器学习实战可以看这篇文章:http://www.cnblogs.com/charlesblc/p/6159187.html 另 ...

  10. 偏差(Bias)和方差(Variance)——机器学习中的模型选择zz

    模型性能的度量 在监督学习中,已知样本 ,要求拟合出一个模型(函数),其预测值与样本实际值的误差最小. 考虑到样本数据其实是采样,并不是真实值本身,假设真实模型(函数)是,则采样值,其中代表噪音,其均 ...

随机推荐

  1. python post中文引发的不传递,及乱码问题

    使用jquery ajax向后台传值 $.ajax({ type:"POST", url:"" data:{ content:content }, succes ...

  2. per-project basis

    Of course, HSQLDB connection parameters should be stored on a per-project basis, instead of only onc ...

  3. CHROME下去掉保存密码后输入框变成黄色背景样式

    之前没遇到过这种情况,现在打开这个页面后,手机号和密码都已经输入了,而且还显示的是黄色背景,清了下cookie,没有解决问题.请教了下大神,先把方法整理到这儿. 用代码审查看了input样式有如下样式 ...

  4. 【学习总结】【多线程】 安全隐患 & 通讯 & 线程的状态

    一.多线程的安全隐患 资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源 比如多个线程访问同一个对象.同一个变量.同一个文件 当多个线程访问同一块资源时,很容易引发数据错乱和数 ...

  5. C# Windows - SDI和MDI应用程序

    生成MDI应用程序 MDI应用程序至少要由两个截然不同的窗口组成.第一个窗口叫做MDI容器(Container),可以在容器中显示的窗口叫做MDI子窗口. 要把应用程序的主窗口从一个窗体改为MDI容器 ...

  6. Version of SQLite used in Android?

    sing the emulators (adb shell sqlite3 --version): SQLite 3.7.11: 19-4.4-KitKat 18-4.3-Jelly Bean 17- ...

  7. OC的类的构造方法

    构造方法:用来初始化对象的:首先分解一下创建对象的过程: Person *p = [Person new]; // new方法是alloc 和 init 这两个方法的组合: 完整的创建可用对象的过程: ...

  8. Careercup - Facebook面试题 - 5671785349513216

    2014-05-02 01:05 题目链接 原题: bool anaStrStr (string needle, string haystack) { } Write a function that ...

  9. android 开发解密时出现pad block corrupted 错误

    情景:在虚拟机上运行正常的,但是到我的真机上就解密失败,出现pad block corrupted  ,据说是版本原因:我机器是小米3 最新版的android  4.2 出现问题的代码: privat ...

  10. [转载]非常完善的Log4net详细说明

    前言 此篇文章是我见过写得最好的一片关于Log4Net的文章,内容由简入难,而且面面俱到,堪称入门和精通的佳作,特从懒惰的肥兔的转载过来. 1.概述 log4net是.Net下一个非常优秀的开源日志记 ...