精华内容
下载资源
问答
  • 对数线性模型log linear model 对数线性模型有:最大熵模型逻辑斯谛回归。 特征指示特征 ...对数线性模型的一般形式 ...对数线性模型的不同形式 ...将因子转换到对数空间,成为对数线性模型。 ...

    http://blog.csdn.net/pipisorry/article/details/52788947

    对数线性模型log linear model

    对数线性模型有:最大熵模型和逻辑斯谛回归。

    特征和指示特征

    对数线性模型的一般形式

    [概率图模型原理与技术]

    某小皮

     

     

    对数线性模型的不同形式

    因子图

    将因子转换到对数空间,成为对数线性模型。

    [PGM:无向图模型:马尔可夫网 :对数线性模型]

     

     

    最大熵模型

     

    [最大熵模型The Maximum Entropy:模型] [最大熵模型:学习]

     

     

    逻辑斯谛回归Logistic Regression

    多类分类的LR模型生成的推导:(两类分类更简单,直接类比嘛)

    lz:这里ak是对数表示的,而给定类条件概率密度p(x|ck)如高斯分布时,ak是通常是线性表示的,所以才叫对数线性模型吧。

    因为ak通常可以使用线性表示,所以多类LR模型使用判别式直接定义成:

    lz: 就是把一般形式中的feature特征fi(Di)定义为ak了。

    LR模型的导出

    lz也不知道LR模型怎么来的,不过lz总结了几种都可以解释的方面:

    1 回归模型+logistic函数直接得到

    2 最大熵模型的特例,即直接将特征f(x, y)设为X=x(即在所有X=x的值上搞一个权重w)。

    3 广义线性模型导出[对数线性模型之一(逻辑回归), 广义线性模型学习总结]

    4 生成式模型+高斯形式的类条件概率分布得到

    from: http://blog.csdn.net/pipisorry/article/details/52788947

    ref:

     

    展开全文
  • 常见的广义线性模型有:probit模型、poisson模型、对数线性模型等等。对数线性模型里有:logistic regression、Maxinum entropy。本篇是对逻辑回归理论应用的学习总结、以及广义线性模型导出逻辑回归的过程,下一...

            经典线性模型自变量的线性预测就是因变量的估计值。 广义线性模型:自变量的线性预测的函数是因变量的估计值。常见的广义线性模型有:probit模型、poisson模型、对数线性模型等等。对数线性模型里有:logistic regression、Maxinum entropy。本篇是对逻辑回归的学习总结,以及广义线性模型导出逻辑回归的过程。下一篇将是对最大熵模型的学习总结。本篇介绍的大纲如下:

    1、逻辑斯蒂分布,logit转换

    2、在二分类问题中,为什么弃用传统的线性回归模型,改用逻辑斯蒂回归?

    3、逻辑回归模型的求解过程?

    4、实际应用逻辑回归时数据预处理的经验总结。但经验有限,如果有哪位网友这块经验丰富,忘指教,先谢过

    5、为什么我们在实际中,经典线性模型的优化目标函数是最小二乘,而逻辑回归则是似然函数

    6、从最根本的广义线性模型角度,导出经典线性模型以及逻辑回归


    1、逻辑斯蒂分布,logit转换

     一个连续随机变量X,如果它的分布函数形式如下,则X服从逻辑斯蒂分布,F(x)的值在0~1之间,它的的图形是一条S型曲线

    2、在二分类问题中,为什么弃用传统的线性回归模型,改用逻辑斯蒂回归?

          线性回归用于二分类时,首先想到下面这种形式,p是属于类别的概率:

         

          但是这时存在的问题是:

          1)等式两边的取值范围不同,右边是负无穷到正无穷,左边是[0,1],这个分类模型的存在问题

          2)实际中的很多问题,都是当x很小或很大时,对于因变量P的影响很小,当x达到中间某个阈值时,影响很大。即实际中很多问题,概率P与自变量并不是直线关系。

          所以,上面这分类模型需要修整,怎么修正呢?统计学家们找到的一种方法是通过logit变换对因变量加以变换,具体如下:

            

          

            从而,        

           

            这里的P完全解决了上面的两个问题。

    3、逻辑回归模型的求解过程?

          1)求解方式

            逻辑回归中,Y服从二项分布,误差服从二项分布,而非高斯分布,所以不能用最小二乘进行模型参数估计,可以用极大似然估计来进行参数估计。

          2)似然函数、目标函数

            严谨一点的公式如下:

            

            似然函数如下:

            

            对数似然函数,优化目标函数如下:

            

             整个逻辑回归问题就转化为求解目标函数,即对数似然函数的极大值的问题,即最优化问题,可采用梯度下降法、拟牛顿法等等。

    4、实际应用逻辑回归时数据预处理的经验总结,但经验有限,如果有哪位网友这块经验丰富,忘指教,先谢过

          1)枚举型的特征直接进行binary

          2)数值型特征,可以:标准化、根据分布进行binary

          3)进行pairwise

    5、为什么我们在实际中,经典线性模型的优化目标函数是最小二乘,而逻辑回归则是似然函数

          下面公式直接从Ng notes里面复制过来。

         1) 经典线性模型的满足下面等式:

          

           这里有个假设,即最后这个误差扰动项独立同分布于均值为0的正态分布,即:

          

          从而:

          

          由于有上面的假设,从而就有下面的似然函数:

          

          从而这线性回归的问题就可转化为最大化下面的对数似然估计,由于下面公式前面的项是常数,所以这个问题等价于最小化下面等式中的最后一项,即least mean squares。

          

          2)逻辑斯蒂回归中,因变量y不再是连续的变量,而是二值的{0,1},中间用到logit变换,将连续性的y值通过此变换映射到比较合理的0~1区间。在广义线性回归用于分类问题中,也有一个假设(对应于上面回归问题中误差项独立同分布于正态分布),其中h(x)是logistic function

          

          即,给定x和参数,y服从二项分布,上面回归问题中,给定x和参数,y服从正态分布。从而。

          

                

          问题不同(一个是分类、一个是回归)对应假设也就不同,决定了logistic regression问题最优化目标函数是上面这项,而非回归问题中的均方误差LMS。

    6、从最根本的广义线性模型角度,导出经典线性模型以及逻辑回归

         1)指数家族

          

            当固定T时,这个分布属于指数家族中的哪种分布就由a和b两个函数决定。下面这种是伯努利分布,对应于逻辑回归问题

                                       

              注:从上面可知 ,从而,在后面用GLM导logistic regression的时候会用到这个sigmoid函数。

            下面这种是高斯分布,对应于经典线性回归问题

                    

          2)GLM(广义线性模型)

            指数家族的问题可以通过广义线性模型来解决。如何构建GLM呢?在给定x和参数后,y的条件概率p(y|x,θ) 需要满足下面三个假设:

            assum1)      y | x; θ ∼ ExponentialFamily(η).

            assum2)      h(x) = E[y|x]. 即给定x,目标是预测T(y)的期望,通常问题中T(y)=y

            assum3)       η = θTx,即η和x之间是线性的

           3)经典线性回归、逻辑回归

           经典线性回归:预测值y是连续的,假设给定x和参数,y的概率分布服从高斯分布(对应构建GLM的第一条假设)。由上面高斯分布和指数家族分布的对应关系可知,η=µ,根据构建GLM的第2、3条假设可将model表示成:

          
            

            逻辑回归:以二分类为例,预测值y是二值的{1,0},假设给定x和参数,y的概率分布服从伯努利分布(对应构建GLM的第一条假设)。由上面高斯分布和指数家族分布的对应关系可知,,根据构建GLM的第2、3条假设可model表示成:

            

            可以从GLM这种角度理解为什么logistic regression的公式是这个形式~


          参考资料:

          [1] NG的lecture notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf

          [2] 其他网络资源

    展开全文
  • 使用C++、opencv实现对图像的对数变换及非线性变换,实现图像增强 相关API: void normalize(InputArray src, OutputArray dst, double alpha=1, double beta=0, int norm_type=NORM_L2, int dtype=-1, Input...

    使用C++、opencv实现对图像的对数变换及非线性变换,实现图像增强

    相关API:

    void normalize(InputArray src, OutputArray dst, double alpha=1, double beta=0, int norm_type=NORM_L2, int dtype=-1, InputArray mask=noArray() )

    normalize函数的作用是进行矩阵的归一化。归一化就是把要处理的数据经过某种算法的处理限制在所需要的范围内。首先归一化是为了后面数据处理的方便,其次归一化能够保证程序运行时收敛加快。归一化的具体作用是归纳同意样本的统计分布性,归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布,在机器学习算法的数据预处理阶段,归一化也是非常重要的步骤。

    第一个参数,InputArray类型的src。输入图像,即源图像,填Mat类的对象即可。
    第二个参数,OutputArray类型的dst。函数调用后的运算结果存在这里,和源图片有一样的尺寸和类型。
    第三个参数,double类型的 alpha。归一化后的最大值,有默认值1。
    第四个参数,double类型的beta。归一化后的最大值,有默认值0。
    第五个参数,int类型的 norm type。归一化类型,有NORM_INF、 NORM_L1、NORM_L2和 NORM_MINMAX等参数可选,有默认值 NORM_L2。

    第六个参数,int类型的 dtype,有默认值-1。当此参数取负值时,输出矩阵和src有同样的类型,否则,它和src有同样的通道数,且此时图像深度为CV_MAT_DEPTH(dtype)。
    第七个参数,InputArray类型的mask,可选的操作掩膜,有默认值noArray()。

    void meanStdDev(InputArray src, OutputArray mean, OutputArray stddev, InputArray mask=noArray())

    第一个参数src,输入数组,应该有1到4个通道,以便结果可以存储在Scalar中。

    第二个参数mean,输出参数,计算的平均值。

    第三个参数srddev,输出参数,计算标准偏差。

    第四个参数mask,可选的操作掩膜,有默认值没有掩膜

    meanStdDev计算结果是double类型的。
    meanStdDev计算的均值和标准差都以Mat形式返回,这里返回的是1X1的矩阵。所以访问结果,要访问Mat的元素。

    以上参考:毛星云《OpenCV3编程入门》、https://blog.csdn.net/billbliss/article/details/44178737 


    代码通过对图像进行对数变换和非线性变换增强图像暗处细节,适用于彩色图像及灰度图像,但灰度图像不要使用cvtColor函数转换,直接以三通道形式输入。

    其中,对数变换使用函数为dst(i,j)=c*log(1+src(i,j)),src(i,j)为源图像(i,j)处的像素值,c为可调节的系数,dst(i,j)为经过对数变换后(i,j)处的像素值。

    非线性变换的公式如下图:

    #include "stdafx.h"
    #include "opencv2/imgproc/imgproc.hpp"
    #include "opencv2/highgui/highgui.hpp"
    #include <iostream>
    #include <fstream>
    #include <iterator>
    #include <math.h>
    using namespace cv;
    using namespace std;
    
    //定义声明一些全局变量和函数
    Mat src = imread("C:\\Users\\lenovo\\Desktop\\4.jpg");
    
    Mat hsv, lab, ycrcb;
    Mat logdst, nonlinerdst;
    Mat dst(src.size(), src.type(), Scalar::all(0));
    
    void LogTransform(cv::Mat& src, cv::Mat& dst, double c);//对数变换函数
    void non_liner_tran(Mat& src, Mat& dst);//非线性变换函数
    void balance(Mat& src, Mat& logdst, Mat&  nonlinerdst);//平衡图像函数
    
    int main(int argc, char** argv)
    {
    	system("color 02");
    	/*//获取图像每个像素点的RGBHSVLabYCrCb的值,并写入文件中
    	cvtColor(src, hsv, COLOR_BGR2HSV);
    	cvtColor(src, lab, COLOR_BGR2Lab);
    	cvtColor(src, ycrcb, COLOR_BGR2YCrCb);
    	FILE *fp;
    	fopen_s(&fp, "C:\\Users\\lenovo\\Desktop\\RGB数据.xls", "a");
    	for(int i=0;i<src.rows;i++)
    		for (int j = 0; j < src.cols; j++)
    		{
    			fprintf(fp, "%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", src.at<Vec3b>(i, j)[2], src.at<Vec3b>(i, j)[1], src.at<Vec3b>(i, j)[0],
    				hsv.at<Vec3b>(i, j)[0], hsv.at<Vec3b>(i, j)[1], hsv.at<Vec3b>(i, j)[2],
    				lab.at<Vec3b>(i, j)[0], lab.at<Vec3b>(i, j)[1], lab.at<Vec3b>(i, j)[2], 
    				ycrcb.at<Vec3b>(i, j)[0], ycrcb.at<Vec3b>(i, j)[1], ycrcb.at<Vec3b>(i, j)[2]);
    		}
    	fclose(fp);*/
    
    	//对数变换
    	LogTransform(src, logdst, 8);
    	//非线性变换
    	non_liner_tran(src, nonlinerdst);
    	//平衡图像
    	balance(src, logdst, nonlinerdst);
    	//显示原图
    	namedWindow("src", WINDOW_NORMAL);
    	imshow("src", src);
    	waitKey(0);
    	return 0;
    }
    
    /*对数变换方法1*(灰度图像和彩色图像都适用)*/
    void LogTransform(cv::Mat& src, cv::Mat& dst, double c) {
    	int nr = src.rows;
    	int nc = src.cols*src.channels();
    	src.copyTo(dst);
    	dst.convertTo(dst, CV_64F);
    	if (src.isContinuous() && dst.isContinuous()) {  //判断图像连续性
    		nr = 1;
    		nc = src.rows*src.cols*src.channels(); //行数*列数 * 通道数= 一维数组的个数
    	}
    
    	for (int i = 0; i < nr; i++) {
    		const uchar* srcdata = src.ptr <uchar>(i);  //采用指针访问像素,获取第i行的首地址
    		double* dstdata = dst.ptr <double>(i);
    		for (int j = 0; j < nc; j++) {
    			dstdata[j] = c*log(double(1.0 + srcdata[j])); //开始处理每个像素
    		}
    	}
    	normalize(dst, dst, 0, 255, NORM_MINMAX); //经过对比拉升(将像素值归一化到0-255)得到最终的图像
    	dst.convertTo(dst, CV_8U);  //转回无符号8位图像
    	namedWindow("logdst", WINDOW_NORMAL);
    	imshow("logdst", dst);
    }
    
    void non_liner_tran(Mat& src, Mat& dst)
    {
    	src.copyTo(dst);
    	//拆分图像,获取每个通道的平均像素值
    	Mat channels[3];
    	Mat mat_mean[3], mat_stddev[3];
    	double vmean[3] = { 0 };
    	split(src, channels);
    
    	for (int n = 0; n < 3; n++)
    	{
    		meanStdDev(channels[n], mat_mean[n], mat_stddev[n]);
    		vmean[n] = mat_mean[n].at<double>(0, 0);
    	}
    	//非线性变换
    	double m = 0, kv = 0, a = 1;
    	for (int i = 0; i < src.rows; i++)
    	{
    		for (int j = 0; j < src.cols; j++)
    		{
    			for (int n = 0; n < 3; n++)
    			{
    				if ((src.at<Vec3b>(i, j)[n] >= 0) && (src.at<Vec3b>(i, j)[n] <= 60))
    				{
    					kv = 7;
    				}
    				else if ((src.at<Vec3b>(i, j)[n] > 60) && (src.at<Vec3b>(i, j)[n] <= 200))
    				{
    					kv = (src.at<Vec3b>(i, j)[n] - 60) / 70 + 7;
    				}
    				else if ((src.at<Vec3b>(i, j)[n] > 200) && (src.at<Vec3b>(i, j)[n] <= 255))
    				{
    					kv = (src.at<Vec3b>(i, j)[n] - 200) / 55 + 9;
    				}
    
    				m = kv*(src.at<Vec3b>(i, j)[n] / (src.at<Vec3b>(i, j)[n] + a*vmean[n]));
    				
    				dst.at<Vec3b>(i, j)[n] = (int)(2 / (1 + exp(-m)) - 1) * 255 - src.at<Vec3b>(i, j)[n];
    			}
    
    		}
    	}
    
    	namedWindow("nonlinerdst", WINDOW_NORMAL);
    	imshow("nonlinerdst", dst);
    }
    
    void balance(Mat& src, Mat& logdst, Mat&  nonlinerdst)
    {
    	for (int i = 0; i < src.rows; i++)
    	{
    		for (int j = 0; j < src.cols; j++)
    		{
    			for (int n = 0; n < 3; n++)
    			{
    				//将源图像、对数变换图像、非线性变换图像以一定比例合并
    				dst.at<Vec3b>(i, j)[n] = (int)(0.05*logdst.at<Vec3b>(i, j)[n] +
    					0.05*nonlinerdst.at<Vec3b>(i, j)[n] + 0.8*src.at<Vec3b>(i, j)[n]);
    			}
    		}
    	}
    	namedWindow("dst", WINDOW_NORMAL);
    	imshow("dst", dst);//显示经直方图均衡化的图像
    }

    源图像:

        

    对数变换后图像:

        

    非线性变换后图像:

        

    结果图:

        

    参考文献:http://xueshu.baidu.com/usercenter/paper/show?paperid=864f24732d62a37915e71dbea2050010&site=xueshu_se&hitarticle=1

    代码部分参考:http://www.pianshen.com/article/2960258309/

    展开全文
  • MIT自然语言处理第五讲:最大熵和对数线性模型(第一部分) 自然语言处理:最大熵和对数线性模型 Natural Language Processing: Maximum Entropy and Log-linear Models  作者:Regina Barzilay...

    MIT自然语言处理第五讲:最大熵和对数线性模型(第一部分)


    自然语言处理:最大熵和对数线性模型
    Natural Language Processing: Maximum Entropy and Log-linear Models 
    作者:Regina Barzilay(MIT,EECS Department, October 1, 2004)
    译者:我爱自然语言处理www.52nlp.cn ,2009年4月25日)

    上一讲主要内容回顾(Last time):
    * 基于转换的标注器(Transformation-based tagger)
    * 基于隐马尔科夫模型的标注器(HMM-based tagger)

    遗留的内容(Leftovers): 
    a) 词性分布(POS distribution)
     i. 在Brown语料库中按歧义程度排列的词型数目(The number of word types in Brown corpus by degree of ambiguity):
      无歧义(Unambiguous)只有1个标记: 35,340
        歧义(Ambiguous) 有2-7个标记: 4,100
                    2个标记:3,764
                    3个标记:264
                    4个标记:61
                    5个标记:12
                    6个标记:2
                    7个标记:1
    b) 无监督的TBL(Unsupervised TBL)
     i. 初始化(Initialization):允许的词性列表(a list of allowable part of speech tags)
     ii. 转换(Transformations): 在上下文C中将一个单词的标记从χ变为Y (Change the tag of a word from χ to Y in context C, where γ ∈ χ).
      例子(Example): “From NN VBP to VBP if previous tag is NNS”
     iii. 评分标准(Scoring criterion):
      tbl

    这一讲主要内容(Today):

    * 最大熵模型(Maximum entropy models)
    * 与对数线性模型的联系(Connection to log-linear models)
    * 优化方法(Optimization methods)

    一般问题描述(The General Problem):
    a) 给定输入域χ(We have some input domain χ);
    b) 给定标记集γ(We have some label set γ);
    c) 目标(Goal):对于任何x ∈ χ 及 y ∈γ学习一个条件概率P(y|x) (learn a conditional probability P(y|x)for any x ∈ χ and y ∈ γ )。

    一、 词性标注(POS tagging):

    a) 例子:Our/PRP$ enemies/NNS are/VBP innovative/JJ and/CC resourceful/JJ ,/, and/CC so/RB are/VB we/PRP ?/?.
     i. 输入域(Input domain):χ是可能的“历史”(χ is the set of possible histories);
     ii. 标记集(Label set):γ是所有可能的标注标记(γ is the set of all possible tags);
     iii. 目标(Goal):学习一个条件概率P(tag|history)(learn a conditional probability P(tag|history))。
    b) 表现形式(Representation):
     i. “历史”是一个4元组(t1,t2,w[1:n],i) (History is a 4-tuples (t1,t2,w[1:n],i);
     ii. t1,t2是前两个标记(t1,t2 are the previous two tags)
     iii. w[1:n]是输入句子中的n个单词(w[1:n]are the n words in the input sentence)
     iv. i 是将要被标注的单词的位置索引(i is the index of the word being tagged)
     χ是所有可能的“历史”集合(χis the set of all possible histories)

    未完待续:第二部分

    附:课程及课件pdf下载MIT英文网页地址:
       http://people.csail.mit.edu/regina/6881/




    MIT自然语言处理第五讲:最大熵和对数线性模型(第二部分)



    自然语言处理:最大熵和对数线性模型
    Natural Language Processing: Maximum Entropy and Log-linear Models 
    作者:Regina Barzilay(MIT,EECS Department, October 1, 2004)
    译者:我爱自然语言处理www.52nlp.cn ,2009年4月29日)

    一、 词性标注(POS tagging):
    c) 特征向量表示(Feature Vector Representation)
     i. 一个特征就是一个函数f(A feature is a function f ):
    特征函数1
     ii. 我们有m个特征fk,k = 1…m(We have m features fk for k =1…m)
    d) 词性表示(POS Representation)
     i. 对于所有的单纯/标记对的单词/标记特征,(Word/tag features for all word/tag pairs):
    特征函数2
    ii. 对于所有特定长度的前缀/后缀的拼写特征(Spelling features for all prefixes/suffixes of certain length):
    特征函数3
    iii. 上下文特征(Contextual features):
    特征函数4
    iv. 对于一个给定的“历史”x ∈ X ,每一个γ中的标记都被映射到一个不同的特征向量(For a given history x ∈ X, each label in γ is mapped to a different feature vector):
    特征向量
    v. 目标(Goal):学习一个条件概率P(tag|history)(learn a conditional probability P(tag|history)

    二、 最大熵(Maximum Entropy):
    a) 例子(Motivating Example):
     i. 给定约束条件:p(x, 0)+p(y, 0)=0.6,a ∈{x, y}且b ∈0, 1,估计概率分布p(a, b)(Estimate probability distribution p(a, b), given the constraint: p(x, 0) + p(y, 0) =0.6, where a ∈{x, y}and b ∈0, 1)):
           最大熵模型举例1
     ii. 满足约束条件的一种分布(One Way To Satisfy Constraints):
           最大熵模型举例2
     iii. 满足约束条件的另一种分布(Another Way To Satisfy Constraints):
           最大熵模型举例3
    b) 最大熵模型(Maximum Entropy Modeling)
     i. 给定一个训练样本集,我们希望寻找一个分布符合如下两个条件(Given a set of training examples, we wish to find a distribution which):
      1. 满足已知的约束条件(satisfies the input constraints)
      2. 最大化其不确定性(maximizes the uncertainty)
     ii. 补充:
      最大熵原理是在1957 年由E.T.Jaynes 提出的,其主要思想是,在只掌握关于未知分布的部分知识时,应该选取符合这些知识但熵值最大的概率分布。因为在这种情况下,符合已知知识的概率分布可能不止一个。我们知道,熵定义的实际上是一个随机变量的不确定性,熵最大的时侯,说明随机变量最不确定,换句话说,也就是随机变量最随机,对其行为做准确预测最困难。从这个意义上讲,那么最大熵原理的实质就是,在已知部分知识的前提下,关于未知分布最合理的推断就是符合已知知识最不确定或最随机的推断,这是我们可以作出的唯一不偏不倚的选择,任何其它的选择都意味着我们增加了其它的约束和假设,这些约束和假设根据我们掌握的信息无法做出。(这一段转自北大常宝宝老师的《自然语言处理的最大熵模型》)

    未完待续:第三部分

    附:课程及课件pdf下载MIT英文网页地址:
       http://people.csail.mit.edu/regina/6881/



    MIT自然语言处理第五讲:最大熵和对数线性模型(第三部分)



    自然语言处理:最大熵和对数线性模型
    Natural Language Processing: Maximum Entropy and Log-linear Models 
    作者:Regina Barzilay(MIT,EECS Department, October 1, 2004)
    译者:我爱自然语言处理www.52nlp.cn ,2009年5月5日)

    二、 最大熵(Maximum Entropy):
    b) 最大熵模型(Maximum Entropy Modeling)
     iii. 约束条件(Constraint):
      每个特征的观察样本期望值与特征模型期望值相一致(observed expectation of each feature has to be the same as the model’s expectation of the feature):
      最大熵模型约束条件
     iv. 最大熵原理(Principle of Maximum Entropy):
      将已知事实作为制约条件,求得可使熵最大化的概率分布作为正确的概率分布:
         最大熵模型原理
     v. 补充:
      自然语言处理中很多问题都可以归结为统计分类问题,很多机器学习方法在这里都能找到应用,在自然语言处理中,统计分类表现在要估计类a 和某上下文b 共现的概率P(a,b) ,不同的问题,类a 和上下文b 的内容和含义也不相同。在词性标注中是类的含义是词性标注集中的词类标记,而上下文指的是当前被处理的词前面一个词及词类,后面一个词及词类或前后若干个词和词类。通常上下文有时是词,有时是词类标记,有时是历史决策等等。大规模语料库中通常包含a 和b 的共现信息,但b 在语料库中的出现常常是稀疏的,要对所有可能的(a,b)计算出可靠的P(a,b) ,语料库规模往往总是不够的。问题是要发现一个方法,利用这个方法在数据稀疏的条件下可靠的估计P(a,b) 。不同的方法可能采用不同的估计方法。
      最大熵模型的优点是:在建模时,试验者只需要集中精力选择特征,而不需要花费精力考虑如何使用这些特征。而且可以很灵活地选择特征,使用各种不同类型的特征,特征容易更换。利用最大熵建模,一般也不需要做在其它方法建模中常常使用的独立性假设,参数平滑可以通过特征选择的方式加以考虑,无需专门使用常规平滑算法单独考虑,当然也不排除使用经典平滑算法进行平滑。每个特征对概率分布的贡献则由参数α决定,该参数可以通过一定的算法迭代训练得到。
    (注:以上两段转自北大常宝宝老师的《自然语言处理的最大熵模型》)

    三、 最大熵模型详述
    a) 概要(Outline)
     i. 我们将首先证明(We will first show that)满足上述条件的概率分布p*具有如下的形式:
         概览分布P
     其中pi是一个归一化常数,α是模型参数(where pi is a normalization constant and the α’s are the model parameters)
     ii. 然后我们将考虑搜寻α的参数估计过程(Then, we will consider an estimation procedure for finding the α’s)
    b) 数学符号表示(Notations)
     i. χ是可能的“历史”集(χis the set of possible histories)
     ii. γ是所有可能的标记集(γ is the set of all possible tags)
     iii. S是事件训练样本集(S finite training sample of events)
     iv. p’(x)是S中x的观察概率(p’(x)observed probability of x in S)
     v. p(x)是x的模型概率(p(x) the model’s probability of x)
     vi. 其它符号公式定义如下:
        数学符号表示

    未完待续:第四部分

    附:课程及课件pdf下载MIT英文网页地址:
       http://people.csail.mit.edu/regina/6881/


    MIT自然语言处理第五讲:最大熵和对数线性模型(第四部分)



    自然语言处理:最大熵和对数线性模型
    Natural Language Processing: Maximum Entropy and Log-linear Models 
    作者:Regina Barzilay(MIT,EECS Department, October 1, 2004)
    译者:我爱自然语言处理www.52nlp.cn ,2009年5月9日)

    三、 最大熵模型详述
    c) 相对熵(Kullback-Liebler距离)(Relative Entropy (Kullback-Liebler Distance))
     i. 定义(Definition):两个概率分布p和q的相对熵D由下式给出(The relative entropy D between two probability distributions p and q is given by)
          相对熵定义
     ii. 引理1(Lemma 1):对于任意两个概率分布p和q,D(p, q)≥0 且 D(p, q)=0 当且仅当p=q(For any two probability distributions p and q, D(p, q)≥ 0, and D(p, q)=0 if and only if p =q)
     iii. 引理2(毕达哥拉斯性质)(Lemma 2 (Pythagorean Property)):若p∈P,q∈Q,p*∈P∩Q,则D(p, q) = D(p, p*) + D(p*, q) (If p ∈P and q ∈ Q, and p*∈P∩Q, then D(p, q) = D(p, p*) + D(p*, q))
     注:证明请参看MIT NLP 的lec5.pdf英文讲稿;
    d) 最大熵解(The Maximum Entropy Solution)
     i. 定理1(Theorem 1):若p*∈P∩Q,则p* = argmax_{p in P}H(p) ,且p*唯一(If p∗∈P ∩Q then p* = argmax_{p in P}H(p). Furthermore, p* is unique)
    注:证明请参看min nlp原讲稿,主要运用引理1和引理2得出。
    e) 最大似然解(The Maximum Likelihood Solution)
     i. 定理2(Theorem 2):若p*∈P∩Q,则p* = argmax_{q in Q}L(q) ,且p*唯一(If p∗∈P ∩Q then p* = argmax_{q in Q}L(q). Furthermore, p* is unique)
    注:证明请参看min nlp原讲稿,主要运用引理1和引理2得出。
    f) 对偶定理(Duality Theorem)
     i. 存在一个唯一分布p*(There is a unique distribution p*)
      1. p*∈ P ∩ Q
      2. p* = argmax_{p in P}H(p) (最大熵解(Max-ent solution))
      3. p* = argmax_{q in Q}L(q) (最大似然解(Max-likelihood solution))
     ii. 结论(Implications):
      1. 最大熵解可以写成对数线性形式(The maximum entropy solution can be written in log-linear form)
      2. 求出最大似然解同样给出了最大熵解(Finding the maximum-likelihood solution also gives the maximum entropy solution)

    未完待续…

    附:课程及课件pdf下载MIT英文网页地址:
       http://people.csail.mit.edu/regina/6881/



    MIT自然语言处理第五讲:最大熵和对数线性模型(第五部分)



    自然语言处理:最大熵和对数线性模型
    Natural Language Processing: Maximum Entropy and Log-linear Models 
    作者:Regina Barzilay(MIT,EECS Department, October 1, 2004)
    译者:我爱自然语言处理www.52nlp.cn ,2009年5月14日)

    三、 最大熵模型详述
    g) GIS算法(Generative Iterative Scaling)
     i. 背景:
      最原始的最大熵模型的训练方法是一种称为通用迭代算法GIS (generalized iterative scaling) 的迭代算法。GIS 的原理并不复杂,大致可以概括为以下几个步骤:
      1. 假定第零次迭代的初始模型为等概率的均匀分布。
      2. 用第 N 次迭代的模型来估算每种信息特征在训练数据中的分布,如果超过了实际的,就把相应的模型参数变小;否则,将它们变大。
      3. 重复步骤 2 直到收敛。
      GIS 最早是由 Darroch 和 Ratcliff 在七十年代提出的。但是,这两人没有能对这种算法的物理含义进行很好地解释。后来是由数学家希萨(Csiszar) 解释清楚的,因此,人们在谈到这个算法时,总是同时引用 Darroch 和Ratcliff 以及希萨的两篇论文。GIS 算法每次迭代的时间都很长,需要迭代很多次才能收敛,而且不太稳定,即使在 64 位计算机上都会出现溢出。因此,在实际应用中很少有人真正使用 GIS。大家只是通过它来了解最大熵模型的算法。
      八十年代,很有天才的孪生兄弟的达拉皮垂(Della Pietra)在 IBM 对 GIS 算法进行了两方面的改进,提出了改进迭代算法 IIS(improved iterative scaling)。这使得最大熵模型的训练时间缩短了一到两个数量级。这样最大熵模型才有可能变得实用。即使如此,在当时也只有 IBM 有条件是用最大熵模型。(以上摘自Google吴军《数学之美系列16》)
     ii. 目标(Goal):寻找遵循如下约束条件的此种形式pi prod{j=1}{k}{{alpha_j}^{f_j}(x)}的分布(Find distribution of the form pi prod{j=1}{k}{{alpha_j}^{f_j}(x)}that obeys the following constraints):
              E_p f_j = E_{p prime}{f_j} 
     iii. GIS约束条件(GIS constraints):
       1、gis约束1
      其中C是一个常数(where C is a constant (add correctional feature))
       2、gis约束2 
     iv. 定理(Theorem):下面的过程将收敛到p*∈P∩Q(The following procedure will converge to p*∈P∩Q):
         gis定理1
      gis定理2 
     v. 计算量(Computation)
      gis计算量1 
      其中S={(a1,b1),…,(aN,bN)}是训练样本(where S is a training sample)
      gis计算量2 
      因为有太多可能的(a,b),为了减少计算量,因而采用下面的公式近似计算:
      gis计算量3 
      时间复杂度(Running time):O(NPA)
      其中N训练集规模,P是预期数,A是对于给定事件(a,b)活跃特征的平均数(where N is the training set size, P is the number of predictions, and A is the average number of features that are active for a given event (a,b))

    四、 最大熵分类器(ME classifiers)
    a) 可以处理很多特征(Can handle lots of features)
    b) 存在数据稀疏问题(Sparsity is an issue)
     i. 应用平滑算法和特征选择方法解决(apply smoothing and feature selection)
    c) 特征交互(Feature interaction)?
     i. 最大熵分类器并没有假设特征是独立的(ME classifiers do not assume feature independence)
     ii. 然而,它们也没有明显的模型特征交互(However, they do not explicitly model feature interaction)

    五、 总结(Summary)
     a) 条件概率建模与对数线性模型(Modeling conditional probabilities with log-linear models)
     b) 对数线性模型的最大熵性质(Maximum-entropy properties of log-linear models)
     c) 通过迭代缩放进行优化(Optimization via iterative scaling)

    一些实现的最大熵工具(Some implementations):
      http://nlp.stanford.edu/downloads/classifier.shtml
      http://maxent.sourceforge.net

    第五讲结束!

    附:课程及课件pdf下载MIT英文网页地址:
       http://people.csail.mit.edu/regina/6881/


    展开全文
  • 基本形式 优点:线性模型形式简单、易于建模。 很多非线性模型是在线性...1、线性回归介绍与离散属性转换为实数值 线性回归(linear regeression)试图学习一个线性模型以尽可能准确预测实值输出标记。 对...
  • 常用的三个线性模型的原理及python实现——线性回归(Linear Regression)、对数几率回归(Logostic Regression)、线性判别分析(Linear Discriminant)。 这可能会是对线性模型介绍最全面的博客一、线性模型 ...
  • 一个采用两个列向量并对数据进行线性回归的函数。... 它需要两个列向量、一个描述、x 标签 y 标签并进行线性回归。 然后绘制数据并输出所有统计数据(r 平方、OLS 斜率、RMA 斜率 95% 置信区间)
  • 从线性到非线性模型-对数线性模型

    千次阅读 2018-08-25 17:41:30
    4、Fisher线性判别和线性感知机 5、三层神经网络 6、支持向量机 二、Logistic回归SoftMax回归,最大熵模型 一、Logistic回归 分类问题可以看作是在回归函数上的一个分类。...
  • Android的音频系统的代码中,应用程序对...对应用程序来说,音量控制通常都是按照线性进行调整的,比如对于具有15级音量的音频流来说,我们预期每级的音量变化都是相当的,也就是说:从第5级调到第6级,从第7级调到第
  • 更多CFA官方教材详解,请关注“边际实验室”。“边际实验室”是一家专注于金融科技...■在估计回归之前,可能需要转换一个或多个回归变量(例如,通过对变量取自然对数)。■回归模型汇集了来自不同样本中不应该被汇集...
  • 煤矿事故死亡率与人力的增产或减资有关,成比例关系。 因此,我们将死亡率映射到对数尺度,转换为加性递减,并使用线性模型预测未来五年的死亡人数,然后将其映射并四舍五入到现实煤矿工人生命风险的预测。
  • 如果系统内只提供了高分辨率的线性数字电位器,在不更改系统硬件的前提下,可以采用以下方式将线性电位器(图1)转换对数电位器。  图1. 该系列数字电位器采用标准配置,具有电阻串的高端、低端以及中心抽头连接...
  • 行业分类-电信-可编程增益值的线性对数信号转换电路.rar
  • 韦伯-费希纳定律与对数关系的深意

    万次阅读 2018-01-20 01:43:44
    我喜欢在秋冬的时候把头发留得很长,一直留到盛夏,然后选这么一天,这天非常炎热干燥,最好再尘土飞扬(可惜上海深圳都没有这样的夏日),然后确认前一天没有洗头,在这天午后最热的时候,跑去一个理发店,直接剃成...
  • 机器学习篇——对数线性模型

    千次阅读 2018-04-14 15:36:29
    对数线性模型包括逻辑回归、最大熵模型条件随机场等 1、模型 条件概率分布(对数线性模型、概率模型)、判别模型 逻辑回归: 概率分布可由广义线性模型推导得到 多分类时,分子部分为:第k类exp(-wk*x+b),...
  • 对数线性回归; y的衍生物 3.1 基本形式 假设样本x有d个属性,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即f(x)=w1x1+w2x2+⋅⋯+wdxd+bf(x)=w1x1+w2x2+⋅⋯+wdxd+bf(x)=w_{1}x_...
  • 跟着博主的脚步,每天进步一点点本文介绍对数线性分类模型,在线性模型的基础上通过复合函数(sigmoid,softmax,entropy )将其映射到概率...
  • 常见的广义线性模型有:probit模型、poisson模型、对数线性模型等等。对数线性模型里有:logistic regression、Maxinum entropy。本篇是对逻辑回归的学习总结,以及广义线性模型导出逻辑回归的过程。下一篇将是对...
  • 常见的广义线性模型有:probit模型、 poisson模型、对数线性模型等等。对数线性模型里有:logistic regression、Maxinum entropy。本篇是对逻辑回归的学习总结,以及广义线性模型导出逻辑回归的过程。下一篇将是对...
  • 3.1 对数变换 3.2 伽马变换 参考资料 1 灰度变换简介 灰度变换是图像增强的一种重要手段,用于改善图像显示效果,属于空间域处理方法,它可以使图像动态范围加大,使图像对比度扩展,图像更加清晰,特征更加明显...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,808
精华内容 14,323
关键字:

对数关系和线性关系转换