[转载]词向量和语言模型

王开新 发表了文章 • 1 个评论 • 19 次浏览 • 2017-04-16 19:42 • 来自相关话题

好文转载
http://licstar.net/archives/328

[转载]推荐系统算法小结

王开新 发表了文章 • 0 个评论 • 21 次浏览 • 2017-04-15 16:58 • 来自相关话题

好文转载
http://bdsc.lab.uic.edu/docs/survey-critique-deep.pdf
 

[转载]CS231n卷积神经网络Lecture notes

王开新 发表了文章 • 0 个评论 • 60 次浏览 • 2017-04-10 11:20 • 来自相关话题

http://cs231n.github.io/convolutional-networks/
写的很详细,适合先看过一遍视频后再去复习一遍(视频在网易云课堂上有)
同时上传了份PDF版的
http://cs231n.github.io/convolutional-networks/
写的很详细,适合先看过一遍视频后再去复习一遍(视频在网易云课堂上有)
同时上传了份PDF版的

第三篇--加法模型与提升方法boost

韩韬 发表了文章 • 3 个评论 • 117 次浏览 • 2017-03-24 23:43 • 来自相关话题

    开始记录算法,和前两篇相比是不是有点太突然?(本文断断续续写了一天,今天上三节课都迟到了……老油条的感慨)
    了解一个领域最重要的就是知道它的思维方式以及它在做什么事情。通过一些积累和总结,我们知道了机器学习就是认为:在掌握的数据和我们的任务之间存在某一个模式,我们要利用机器,学习出这个模式。
     我们仔细审视这句话。问题一:这些数据可以表达出这样的模式吗?问题二:机器怎怎么学习?问题三:怎样判断学出的这个模式的好坏?
     这几个问题会引申出很多讨论。问题一的回答引向数据清洗、特征工程,这决定了学习机器表现的上限;问题二的回答引出算法与优化,重要性不言而喻;问题三的回答引出性能评价方法,通常从具体任务的特性中抽象出来。

     上面的话基本……额……不是今天主要的内容。
     今天想讨论问题二——算法与优化,内容并不符合正常的学习顺序





一、加法模型
(注意:不同于统计学时间序列处理的加法模型)
基本逻辑:
      生活中有很多复杂的事情,单项较弱的个人能力,解决起来总是会有盲点,因此我们就想找人商量商量,组合成强的能力——“三个臭皮匠顶个诸葛亮”嘛(一只小企鹅不行,四个小企鹅就很(。・∀・)ノ゙嗨了)。这是下面我们开展工作的自然的逻辑。数学抽象为:





(M个人每个人的重要性是β(m),γ(m)是这个人的特点,x是这个问题,此人的建议就是b(x;γ(m)))
好的,以上就是加法模型, 的确就是这么简单。下面变换个说法,用基学习器代替人,用学习器权重代替重要性,每个人的特点就是学习器的参数,x就是训练数据集。
       有时候做分类任务时,弱分类器好做,强分类器难做,就适用加法模型了。但是弱分类器不能太差(比如精度小于50%),那说明和随机猜测没什么分别,不能饥不择食。
       不过实质上,还有更多的事情需要处理。显然的两个问题:第一、找什么样人讨论?(基学习器怎么生成)第二、每个人重要性怎么定(权重怎么确定)?这就是我们需要做的真正复杂的工作。
      思考:如果学习器都有同样的优缺点,那就造成冗余,而且没有提高的可能。所以最好是什么情况:各有所长,互缺点互补。(就算是十个臭皮匠,组合之后最多也是开一个臭·皮匠の店)
       好,那我们就利用数学和算法实现这个想法。
       首先,我们量化一下所谓的缺点,它的表示形式应当是训练中预测值与真实值的差距,也就是损失函数  L( y,f(x) ) (loss between real y and prediction f(x)).我们要把它降到最小,也就是:




       这个东西怎么求最小?有求和的公式,很复杂。利用算法思想——前向分步算法。前向就是沿着计算方向向前进行,不断加入新的学习器,分步就是一步一步优化总学习器。我们只需要在第m步(m>=1)求解参数β和γ,这就方便使得新加进学习器之后模型损失最小:




(一步步积累模型,在已有的f(m-1)基础上优化 f(m-1)+βb(x;γ). 显然这是一个greedy strategy)
以下算法描述来自《统计学习方法》




损失函数如何求最小值,这就需要数学解答了。通常没有约束容易求导,会使用梯度下降;有约束条件,常用拉格朗日橙子(杠掉)乘子,转化为对偶问题(dual problem)。




二、提升方法(boost)
当你理解加法模型后,你就知道,加法模型本身就是一种提升方法。
事实上,著名的Adaboost本身就是加法模型的特例。不过Adaboost我更感觉像是从一个学习器出发,根据他的弱点构造互补型学习器,最后将其进行加权线性组合。如何根据他的弱点构造呢?就是将前任做错的事情强迫他更“认真地”去做(加大分类错误样本惩罚权重)。具体的过程很有意思,可以看一看。
提升方法中对于树模型的提升研究较多。对于错误(损失函数)和"有错就改"这个思想的表达的不同分为很多boost算法。如下图所示:




需要说明的是,提升方法太多了,后面可能会讲的模型融合方法bagging、stacking、boosting……这是一个很广泛的理念。
 
不过这里实在是写不下了,我就不写了(费马脸.jpg)
其实整个学习过程就是一个自我教育的过程,机器学习应当归属教育学。
微信阅读不是很深刻,所以留条活路,写得轻松一点。
转载请 联系 注明(字字看来皆是困,一天辛苦不寻常)
不是很烦,可以关注





  查看全部
    开始记录算法,和前两篇相比是不是有点太突然?(本文断断续续写了一天,今天上三节课都迟到了……老油条的感慨)
    了解一个领域最重要的就是知道它的思维方式以及它在做什么事情。通过一些积累和总结,我们知道了机器学习就是认为:在掌握的数据和我们的任务之间存在某一个模式,我们要利用机器,学习出这个模式。
     我们仔细审视这句话。问题一:这些数据可以表达出这样的模式吗?问题二:机器怎怎么学习?问题三:怎样判断学出的这个模式的好坏?
     这几个问题会引申出很多讨论。问题一的回答引向数据清洗、特征工程,这决定了学习机器表现的上限;问题二的回答引出算法与优化,重要性不言而喻;问题三的回答引出性能评价方法,通常从具体任务的特性中抽象出来。

     上面的话基本……额……不是今天主要的内容。
     今天想讨论问题二——算法与优化,内容并不符合正常的学习顺序

0.png

一、加法模型
(注意:不同于统计学时间序列处理的加法模型)
基本逻辑:
      生活中有很多复杂的事情,单项较弱的个人能力,解决起来总是会有盲点,因此我们就想找人商量商量,组合成强的能力——“三个臭皮匠顶个诸葛亮”嘛(一只小企鹅不行,四个小企鹅就很(。・∀・)ノ゙嗨了)。这是下面我们开展工作的自然的逻辑。数学抽象为:

1.png

(M个人每个人的重要性是β(m),γ(m)是这个人的特点,x是这个问题,此人的建议就是b(x;γ(m)))
好的,以上就是加法模型, 的确就是这么简单。下面变换个说法,用基学习器代替人,用学习器权重代替重要性,每个人的特点就是学习器的参数,x就是训练数据集。
       有时候做分类任务时,弱分类器好做,强分类器难做,就适用加法模型了。但是弱分类器不能太差(比如精度小于50%),那说明和随机猜测没什么分别,不能饥不择食。
       不过实质上,还有更多的事情需要处理。显然的两个问题:第一、找什么样人讨论?(基学习器怎么生成)第二、每个人重要性怎么定(权重怎么确定)?这就是我们需要做的真正复杂的工作。
      思考:如果学习器都有同样的优缺点,那就造成冗余,而且没有提高的可能。所以最好是什么情况:各有所长,互缺点互补。(就算是十个臭皮匠,组合之后最多也是开一个臭·皮匠の店)
       好,那我们就利用数学和算法实现这个想法。
       首先,我们量化一下所谓的缺点,它的表示形式应当是训练中预测值与真实值的差距,也就是损失函数  L( y,f(x) ) (loss between real y and prediction f(x)).我们要把它降到最小,也就是:
3.jpg

       这个东西怎么求最小?有求和的公式,很复杂。利用算法思想——前向分步算法。前向就是沿着计算方向向前进行,不断加入新的学习器,分步就是一步一步优化总学习器。我们只需要在第m步(m>=1)求解参数β和γ,这就方便使得新加进学习器之后模型损失最小:
4.2_.png

(一步步积累模型,在已有的f(m-1)基础上优化 f(m-1)+βb(x;γ). 显然这是一个greedy strategy)
以下算法描述来自《统计学习方法》
5.jpg

损失函数如何求最小值,这就需要数学解答了。通常没有约束容易求导,会使用梯度下降;有约束条件,常用拉格朗日橙子(杠掉)乘子,转化为对偶问题(dual problem)。
6.jpg

二、提升方法(boost)
当你理解加法模型后,你就知道,加法模型本身就是一种提升方法。
事实上,著名的Adaboost本身就是加法模型的特例。不过Adaboost我更感觉像是从一个学习器出发,根据他的弱点构造互补型学习器,最后将其进行加权线性组合。如何根据他的弱点构造呢?就是将前任做错的事情强迫他更“认真地”去做(加大分类错误样本惩罚权重)。具体的过程很有意思,可以看一看。
提升方法中对于树模型的提升研究较多。对于错误(损失函数)和"有错就改"这个思想的表达的不同分为很多boost算法。如下图所示:
7.jpg

需要说明的是,提升方法太多了,后面可能会讲的模型融合方法bagging、stacking、boosting……这是一个很广泛的理念。
 
不过这里实在是写不下了,我就不写了(费马脸.jpg)
其实整个学习过程就是一个自我教育的过程,机器学习应当归属教育学。
微信阅读不是很深刻,所以留条活路,写得轻松一点。
转载请 联系 注明(字字看来皆是困,一天辛苦不寻常)
不是很烦,可以关注

8.png

 

PRML 笔记(不定期更新)

王开新 发表了文章 • 0 个评论 • 49 次浏览 • 2017-02-23 10:44 • 来自相关话题

基本上算是翻译了,有些部分加了点自己的理解,英文看烦了的可以来看看
贝叶斯与多项式拟合信息论基础决策论基础偏差方差分解支持向量机(Support Vector Machine) 概率论基础1——伯努利分布及其共轭先验 概率论基础2-多元高斯分布的边际分布和条件分布 概率论基础3-高斯分布及其共轭先验条件独立 查看全部

VC维与学习理论

王开新 发表了文章 • 0 个评论 • 48 次浏览 • 2017-01-26 21:22 • 来自相关话题

例行转载
http://keson96.github.io/2017/01/26/2017-01-26-VC-Dimensions-And-Learning-Theory/
 
祝大家新年快乐哈!
2017多多发帖!
例行转载
http://keson96.github.io/2017/01/26/2017-01-26-VC-Dimensions-And-Learning-Theory/
 
祝大家新年快乐哈!
2017多多发帖!

#专题分享会第二期#资料汇总

郜梦蕊 发表了文章 • 0 个评论 • 105 次浏览 • 2016-12-22 10:19 • 来自相关话题

         12月17日晚6:30,信管数据挖掘兴趣小组专题分享会第二期于信息管理学院316教室举办。此次分享会主要由四位同学进行分享。分享内容如下:






         首先由15级硕士王腾飞同学分享word2vec的内容。王腾飞先简单介绍了huffman编码、softmax回归等预备知识的内容,以方便大家更容易理解word2vec的内容。然后王腾飞介绍了词向量和统计语言模型的相关知识,其中统计语言模型中涉及到了模型参数的计算方法:n-gram模型、决策树、最大熵模型、最大熵马尔科夫模型、条件随机场和神经网络等算法。作为获得词向量的方法,LSA、LDA和神经概率语言模型都是常用的模型。接着她介绍了word2vec的两个主要模型:其一是基于Hierarchical Softmax框架的CBOW模型,这个模型包括输入层、投影层和输出层三个层次;其二是基于Hierarchical Softmax框架的Skip-gram模型。通过王腾飞同学的分享,大家对word2vec有了一个很好的认识和了解。
 










         接着,16级硕士史昱天以一个很有意思的“魔鬼的游戏”的故事引入了SVM(支持向量机)算法,很形象地指出了SVM算法是用来干什么的,并通过类比引入了SVM算法里面的数据、分类器、最优化、核函数和超平面等概念。史昱天同学分享了SVM算法的优点,即我们为什么选择SVM算法来解决很多问题。后面是SVM算法的重点:SVM算法是怎么实现的?史昱天同学介绍了假设函数、映射函数、分类函数等知识,并指出了理解SVM算法实现过程的有效方法是记住“最小距离最大化”,这也是是SVM的目的。他接下来介绍了SVM算法求解过程中必不可少的几何距离的概念,以及求解过程主要用到的拉格朗日乘子法。当然,其推导过程涉及到了很多公式,不过在史昱天同学的仔细讲解下,大家对其构造和推导过程有了一定了解。再深入一层次,SVM可以处理非线性可分的数据,可以通过将数据向量映射到高维空间来实现。






         后面,由15级硕士孟凡赛介绍一下LR(逻辑回归)和GBDT(迭代决策树)的主要思想。其中LR是逻辑回归,孟凡赛同学给出了理解其思想的主要方法。对于GBDT,其中GT是决策树,接着分别详细介绍了回归树分类模型和GBDT分类模型的例子。然后介绍了DT和GBDT的区别,即指出了二者在模型过拟合方面的相关内容;LR和GBDT在模型本身、数据需求和特征选择方面的差别,鉴于LR和GBDT的优缺点,将二者融合使用成为一种实用性很强的方法。






         最后,由15级硕士戚尔鹏分享最大熵模型的有关内容。首先,戚尔鹏同学先指出了机器学习中监督学习模型包括概率模型和非概率模型。最大熵模型属于概率模型,其中,“熵”的概念及其公式很重要。然后展示了最大熵模型的推导公式和最大熵原理——“选择熵最大的模型”,并展示了一个最大熵模型的例子。紧接着,又以统计建模形式的角度对最大熵模型进行了介绍,给大家展示了模型的经验分布、特征函数等内容,使得大家对最大熵模型的理解更进一个层次。












感谢四位同学的分享,感谢李新春同学认真细致的会议记录!本次分享会成功举办,会上大家进行了积极地讨论与交流,让我们一起共同学习,共同进步吧!

附上相关资料链接:
【word2vec】
http://121.196.217.92/?/article/45 
【SVM】
http://121.196.217.92/?/article/57 
【LR和GBDT的区别】
http://121.196.217.92/?/article/62 
【最大熵模型】
http://121.196.217.92/?/article/52 

                                                     查看全部
         12月17日晚6:30,信管数据挖掘兴趣小组专题分享会第二期于信息管理学院316教室举办。此次分享会主要由四位同学进行分享。分享内容如下:

目录.PNG


         首先由15级硕士王腾飞同学分享word2vec的内容。王腾飞先简单介绍了huffman编码、softmax回归等预备知识的内容,以方便大家更容易理解word2vec的内容。然后王腾飞介绍了词向量和统计语言模型的相关知识,其中统计语言模型中涉及到了模型参数的计算方法:n-gram模型、决策树、最大熵模型、最大熵马尔科夫模型、条件随机场和神经网络等算法。作为获得词向量的方法,LSA、LDA和神经概率语言模型都是常用的模型。接着她介绍了word2vec的两个主要模型:其一是基于Hierarchical Softmax框架的CBOW模型,这个模型包括输入层、投影层和输出层三个层次;其二是基于Hierarchical Softmax框架的Skip-gram模型。通过王腾飞同学的分享,大家对word2vec有了一个很好的认识和了解。
 
2.jpg


1.jpg


         接着,16级硕士史昱天以一个很有意思的“魔鬼的游戏”的故事引入了SVM(支持向量机)算法,很形象地指出了SVM算法是用来干什么的,并通过类比引入了SVM算法里面的数据、分类器、最优化、核函数和超平面等概念。史昱天同学分享了SVM算法的优点,即我们为什么选择SVM算法来解决很多问题。后面是SVM算法的重点:SVM算法是怎么实现的?史昱天同学介绍了假设函数、映射函数、分类函数等知识,并指出了理解SVM算法实现过程的有效方法是记住“最小距离最大化”,这也是是SVM的目的。他接下来介绍了SVM算法求解过程中必不可少的几何距离的概念,以及求解过程主要用到的拉格朗日乘子法。当然,其推导过程涉及到了很多公式,不过在史昱天同学的仔细讲解下,大家对其构造和推导过程有了一定了解。再深入一层次,SVM可以处理非线性可分的数据,可以通过将数据向量映射到高维空间来实现。

3.jpg


         后面,由15级硕士孟凡赛介绍一下LR(逻辑回归)和GBDT(迭代决策树)的主要思想。其中LR是逻辑回归,孟凡赛同学给出了理解其思想的主要方法。对于GBDT,其中GT是决策树,接着分别详细介绍了回归树分类模型和GBDT分类模型的例子。然后介绍了DT和GBDT的区别,即指出了二者在模型过拟合方面的相关内容;LR和GBDT在模型本身、数据需求和特征选择方面的差别,鉴于LR和GBDT的优缺点,将二者融合使用成为一种实用性很强的方法。

4.jpg


         最后,由15级硕士戚尔鹏分享最大熵模型的有关内容。首先,戚尔鹏同学先指出了机器学习中监督学习模型包括概率模型和非概率模型。最大熵模型属于概率模型,其中,“熵”的概念及其公式很重要。然后展示了最大熵模型的推导公式和最大熵原理——“选择熵最大的模型”,并展示了一个最大熵模型的例子。紧接着,又以统计建模形式的角度对最大熵模型进行了介绍,给大家展示了模型的经验分布、特征函数等内容,使得大家对最大熵模型的理解更进一个层次。

5.jpg


6.jpg



感谢四位同学的分享,感谢李新春同学认真细致的会议记录!本次分享会成功举办,会上大家进行了积极地讨论与交流,让我们一起共同学习,共同进步吧!

附上相关资料链接:
【word2vec】
http://121.196.217.92/?/article/45 
【SVM】
http://121.196.217.92/?/article/57 
【LR和GBDT的区别】
http://121.196.217.92/?/article/62 
【最大熵模型】
http://121.196.217.92/?/article/52 

                                                    

约束优化问题

王开新 发表了文章 • 0 个评论 • 57 次浏览 • 2016-12-20 22:52 • 来自相关话题

例行转载
约束优化与机器学习中不少算法都有关系
 
约束优化问题
 
 
例行转载
约束优化与机器学习中不少算法都有关系
 
约束优化问题
 
 

深度学习tensorflow入门-5

张帅 发表了文章 • 1 个评论 • 67 次浏览 • 2016-12-17 14:43 • 来自相关话题

线性模型,以及wide and deep learning 查看全部

SVM能否用于回归分析以及用法

徐铭 发表了文章 • 0 个评论 • 252 次浏览 • 2016-12-15 00:57 • 来自相关话题

分类与回归:
分类问题和回归问题都要根据训练样本找到一个实值函数g(x).
回归问题的要求是:给定一个新的模式,根据训练集推断它所对应的输出y(实数)是多少。也就是使用y=g(x)来推断任一输入x所对应的输出值。
分类问题是:给定一个新的模式,根据训练集推断它所对应的类别(如:+1,-1)。也就是使用y=sign(g(x))来推断任一输入x所对应的类别。
综上,回归问题和分类问题的本质一样,不同仅在于他们的输出的取值范围不同。分类问题中,输出只允许取两个值;而在回归问题中,输出可取任意实数。Svm是经典的分类模型。
Svm:
支持向量机(support vector machine)是一种分类算法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类,器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
如果想详细了解svm,在这我推荐一篇入门级的svm学习文章,写的比较啰嗦,但十分详细。http://www.dataguru.cn/thread-371987-1-1.html;
Svm用于回归分析:
Svm可以用来做回归分析,其基础主要是通过升维后,在高维空间中构造线性决策函数来实现线性回归,用e不敏感函数时,其基础主要是 e 不敏感函数和核函数算法。
若将拟合的数学模型表达多维空间的某一曲线,则根据e 不敏感函数所得的结果,就是包括该曲线和训练点的“ e管道”。在所有样本点中,只有分布在“管壁”上的那一部分样本点决定管道的位置。这一部分训练样本称为“支持向量”。为适应训练样本集的非线性,传统的拟合方法通常是在线性方程后面加高阶项。此法诚然有效,但由此增加的可调参数未免增加了过拟合的风险。支持向量回归算法采用核函数解决这一矛盾。用核函数代替线性方程中的线性项可以使原来的线性算法“非线性化”,即能做非线性回归。与此同时,引进核函数达到了“升维”的目的,而增加的可调参数是过拟合依然能控制。
详细了解具体步骤的可参考“SVM解回归问题”此贴:http://blog.csdn.net/luoshixia ... 21767,此处就不再重复叙述。
参考文献:
关于SVM一篇比较全介绍的博文:http://www.dataguru.cn/thread-371987-1-1.html
SVM解回归问题:http://blog.csdn.net/luoshixia ... 21767
svm分类与回归:http://www.cnblogs.com/houkai/p/3331101.html
支持向量机(SVM)、支持向量回归(SVR):http://blog.csdn.net/liulina60 ... 56009 查看全部
分类与回归:
分类问题和回归问题都要根据训练样本找到一个实值函数g(x).
回归问题的要求是:给定一个新的模式,根据训练集推断它所对应的输出y(实数)是多少。也就是使用y=g(x)来推断任一输入x所对应的输出值。
分类问题是:给定一个新的模式,根据训练集推断它所对应的类别(如:+1,-1)。也就是使用y=sign(g(x))来推断任一输入x所对应的类别。
综上,回归问题和分类问题的本质一样,不同仅在于他们的输出的取值范围不同。分类问题中,输出只允许取两个值;而在回归问题中,输出可取任意实数。Svm是经典的分类模型。
Svm:
支持向量机(support vector machine)是一种分类算法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类,器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
如果想详细了解svm,在这我推荐一篇入门级的svm学习文章,写的比较啰嗦,但十分详细。http://www.dataguru.cn/thread-371987-1-1.html
Svm用于回归分析:
Svm可以用来做回归分析,其基础主要是通过升维后,在高维空间中构造线性决策函数来实现线性回归,用e不敏感函数时,其基础主要是 e 不敏感函数和核函数算法。
若将拟合的数学模型表达多维空间的某一曲线,则根据e 不敏感函数所得的结果,就是包括该曲线和训练点的“ e管道”。在所有样本点中,只有分布在“管壁”上的那一部分样本点决定管道的位置。这一部分训练样本称为“支持向量”。为适应训练样本集的非线性,传统的拟合方法通常是在线性方程后面加高阶项。此法诚然有效,但由此增加的可调参数未免增加了过拟合的风险。支持向量回归算法采用核函数解决这一矛盾。用核函数代替线性方程中的线性项可以使原来的线性算法“非线性化”,即能做非线性回归。与此同时,引进核函数达到了“升维”的目的,而增加的可调参数是过拟合依然能控制。
详细了解具体步骤的可参考“SVM解回归问题”此贴:http://blog.csdn.net/luoshixia ... 21767,此处就不再重复叙述。
参考文献:
关于SVM一篇比较全介绍的博文:http://www.dataguru.cn/thread-371987-1-1.html
SVM解回归问题:http://blog.csdn.net/luoshixia ... 21767
svm分类与回归:http://www.cnblogs.com/houkai/p/3331101.html
支持向量机(SVM)、支持向量回归(SVR):http://blog.csdn.net/liulina60 ... 56009