Wenjun's blog

  • Home

  • About

  • Tags

  • Categories

  • Archives

Convolutional neural network for NLP

Posted on 2016-05-11 | Edited on 2019-03-14 | In NLP

当我们听到卷积神经网络的时候,我们讨论的都是计算机视觉(CV),对于图像,一般都有如下的假设:图像的某个点的像素值与其周围的值相似,也就是说图像具有光滑性。
如果将句子转换成像图像那样的“像素矩阵”,那同样的就可以在sentence上做卷积操作了。

CNN for CV

当我们听到卷积神经网络的时候,我们讨论的都是计算机视觉(CV),对于图像,一般都有如下的假设:图像的某个点的像素值与其周围的值相似,也就是说图像具有光滑性。图像上的卷积操作是如何做的呢?对于二维卷积,如下图,左边表示一幅图像,右边表示一个filter,在左边图像构造一个与fiter同样大小的窗口,对应元素相乘相加得到的值为feature,然后滑动窗口的位置同样的计算方式计算所有的值。
Convolution with 3×3 Filter.

Source: http://deeplearning.stanford.edu/wiki/index.php/Feature_extraction_using_convolution

到目前为止已经有很多通过卷积神经网络来解决图像问题的模型,最早提出CNN的是LeCun.1989-1998,LeNet。

然后就是解决ImageNet问题的AlexNet模型,还有后来的Google的GoogleNet模型等。

CNN for NLP

如果将句子转换成像图像那样的“像素矩阵”,那同样的就可以在sentence上做卷积操作了。假设每一行向量表示一个词的word embedding(词的低纬向量表示),比如word2vec,GloVe和one-hot向量。
假设10个单词的句子,每个词向量的长度是100维,那么输入的句子矩阵的大小就是10x100,可以把它称之为句子“图像”。

得到sentence矩阵之后,类似于CNN在图像上的卷积,同样在sentence矩阵上做卷积。如下图:

在训练CNN时要求所有图像数据维度都相同,如果不同可以通过图像的reshape操作达到相同大小的图片。然后句子的不可能通过reshape的方式增加或减小长度,所以这里的办法是选定一个合适的长度,短句补0,长句子剪掉后面的单词。

有了这些操作,CNN合理的应用在文本上,本文的介绍的模型是分类,其实其他模型也是可以的。

参考:
UNDERSTANDING CONVOLUTIONAL NEURAL NETWORKS FOR NLP

Dataset-vision

Posted on 2016-04-14 | Edited on 2019-03-14 | In 机器学习

The MINIST database is classify handwriten digits,has a training set of 60,000 examples ,and a test set of 10,000 examples. It is a subset of a larger set available from NIST.

Vision Dataset

MINIST

The MINIST database is classify handwriten digits,has a training set of 60,000 examples ,and a test set of 10,000 examples. It is a subset of a larger set available from NIST. The digits have been size-normalized and centered in a fixed-size image.Original dataset page

  • If your code is python ,you can use download the dataset here mnist.pkl.gz
  • If you want to use the origin image(jpg). origin image

    Read more »

认识Markdown

Posted on 2016-04-14 | Edited on 2019-03-14 | In 技术

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单,容易学习

Markdown简介

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单,容易学习,常用的标记符号十来个。而且功能比纯文本更强,因此有很多人用它写博客。相对于复杂的HTML标记语言来说,Markdown十分轻量,学习成本低,一旦熟悉规则,会有一劳永逸的效果。

Read more »

在Github上搭建一个Hexo博客系统

Posted on 2016-04-08 | Edited on 2019-03-14 | In 技术

什么是Hexo,Hexo是一个基于Nodejs快速简洁高效的博客框架,Hexo使用Markdown语法来编辑文章,只需要几秒钟的时间就可以成生静态的网页。整个系统就是一个博客系统。

什么是Hexo

Hexo是一个基于Nodejs快速简洁高效的博客框架,Hexo使用Markdown语法来编辑文章,只需要几秒钟的时间就可以成生静态的网页。整个系统就是一个博客系统。

Read more »

搭建一个Git服务器

Posted on 2016-04-08 | Edited on 2019-03-14 | In Linux

GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用,那么我们可以自己搭建一台Git服务器。首先你需要一台client和一台server。client可以是windows系统

GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用,那么我们可以自己搭建一台Git服务器。首先你需要一台client和一台server。client可以是windows系统,利用git bash或者cywin类似的软件来执行指令,也可以是ubuntu等linux系统,server可以是本地搭建的服务器,也可以是云服务器。例如:阿里云服务器,对大学生有很大的优惠,非常划算!(没有任何的利益关系)

Read more »

搭建一个svn服务器

Posted on 2016-04-07 | Edited on 2019-03-14 | In Linux

1.安装一个SVN服务端
可以使用apt-get或者yum安装subversion,也可以到官方去下载压缩包然后在本地解压缩安装。

1.安装一个SVN服务端

可以使用apt-get或者yum安装subversion,也可以到官方去下载压缩包然后在本地解压缩安装。

1
sudo apt-get install subversion

2.创建版本库

选着你需要保存的文件目录,你在本地的文件将会保存在此

1
svnadmin create /home/myrepos  #这个目录是自己设置的

3.配置svnserve

执行上述的步骤之后在/home/myrepos下会产生一个配置文件目录conf,打开该目录可以看到有如下几个文件

1
authz   hooks-enz.tmp1   passwd   svnserve.conf

authz: 文件是权限控制文件
passwd:是帐号密码文件
svnserve.conf: SVN服务配置文件

3.1设置密码

使用vim passwd打开文件,在[users]块中添加用户和密码,格式:帐号=密码,如wen=wen

1
2
[users]
username = password //这里的username和password自己设置

3.2设置权限

使用vim authz打开文件

1
2
[/]
* = rw

3.3修改svnserve.conf文件

vim svnserve.conf,打开下面的几个注释:

1
2
3
4
anon-access = read  
auth-access = write
password-db = passwd
authz-db = authz

注意:所有的配置文件顶行开始写,不然会出错

4.启动svn版本库

1
svnserve -d -r /home/myrepos    #填写自己的路径

这样你的svn服务器就配置完成了,可以使用如下的指令查看配置时候成功

1
svn checkout svn://服务器的ip地址/

可以在windows上使用TortoiseSVN客户端来使用svn服务了。
TortoiseSVN客户端的使用可以查看:TortoiseSVN客户端使用方法

【转】关于 AlphaGo 论文的阅读笔记

Posted on 2016-03-10 | Edited on 2019-03-14 | In 机器学习

2016 年 1 月 28 日,Deepmind 公司在 Nature 杂志发表论文 Mastering the game of Go with deep neural networks and tree search,介绍了 AlphaGo 程序的细节。本文是对这篇论文的阅读笔记,以及关于人工智能和围棋进一步的一些想法。

Read more »

Logistic函数(sigmoid函数)

Posted on 2016-01-25 | Edited on 2019-03-14 | In 机器学习

Logistic函数的表示形式如下:它的函数图像如下,由于函数图像很像一个“S”型,所以该函数又叫 sigmoid 函数。

一.Logistic函数

Logistic函数的表示形式如下:

它的函数图像如下,由于函数图像很像一个“S”型,所以该函数又叫 sigmoid 函数。

满足的性质:

1.对称性,关于(0,0.5)中心对称

2.逻辑斯谛方程即微分方程

最早logistic函数是皮埃尔·弗朗索瓦·韦吕勒在1844或1845年在研究它与人口增长的关系时命名的。广义Logistic曲线可以模仿一些情况人口增长(_P_)的 S 形曲线。起初阶段大致是指数增长;然后随着开始变得饱和,增加变慢;最后,达到成熟时增加停止。

当一个物种迁入到一个新生态系统中后,其数量会发生变化。假设该物种的起始数量小于环境的最大容纳量,则数量会增长。该物种在此生态系统中有天敌、食物、空间等资源也不足(非理想环境),则增长函数满足逻辑斯谛方程,图像呈S形,此方程是描述在资源有限的条件下种群增长规律的一个最佳数学模型。在以下内容中将具体介绍逻辑斯谛方程的原理、生态学意义及其应用。

二.Logistic Regression(逻辑斯蒂回归)

Logistic regression (逻辑回归)是当前业界比较常用的机器学习方法,用于估计某种事物的可能性。之前在经典之作《数学之美》中也看到了它用于广告预测,也就是根据某广告被用户点击的可能性,把最可能被用户点击的广告摆在用户能看到的地方,然后叫他“你点我啊!”用户点了,你就有钱收了。这就是为什么我们的电脑现在广告泛滥的原因了。

还有类似的某用户购买某商品的可能性,某病人患有某种疾病的可能性啊等等。这个世界是随机的(当然了,人为的确定性系统除外,但也有可能有噪声或产生错误的结果,只是这个错误发生的可能性太小了,小到千万年不遇,小到忽略不计而已),所以万物的发生都可以用可能性或者几率(Odds)来表达。“几率”指的是某事物发生的可能性与不发生的可能性的比值。

Logistic regression可以用来回归,也可以用来分类,主要是二分类。它不像SVM直接给出一个分类的结果,Logistic Regression给出的是这个样本属于正类或者负类的可能性是多少,当然在多分类的系统中给出的是属于不同类别的可能性,进而通过可能性来分类。

假设我们的样本是{x, y},y是0或者1,表示正类或者负类,x是我们的m维的样本特征向量。那么这个样本x属于正类,也就是y=1的“概率”可以通过下面的逻辑函数来表示:

这里的θ是模型参数,也就是回归系数,σ是sigmoid函数。这样y=0的“概率”就是:

考查逻辑斯蒂回归模型的特点,一个事件的几率(oods)是指这件事发生的概率与不发生概率的比值,如果事件发生的概率是p,那么该事件的几率是p/(1-p),该事件的对数几率(log odds)或者logit函数是

对于逻辑斯蒂回归而言,可以得到如下的对数几率

这就是说,在逻辑斯蒂回归模型中,输出y=1的对数几率是输入x的线性函数,或者说,输出y=1的对数几率是由输入x的线性函数表示的模型,即逻辑斯蒂回归模型。换句话说,y就是我们的关系变量,例如她喜不喜欢你,与多个因素有关,比如你的人品,你的长相,你是否有钱等。我们把这些因素表示成变量x1, x2,…, xm,那么这个女生是怎么考虑这些因素的呢,每个人心理其实都有一杆秤,例如有人比较看重你的人品,人品的权重是0.8,;也有人比较看重你有钱,有钱的权重设置成0.7等等。我们把这些对应于x1, x2,…, xm的权值叫做回归系数,表达为θ1, θ2,…, θm。他们的加权和就是你在心目中的得分。

三.模型参数学习

在参数学习时,可以用极大似然估计方法求解。假设我们有n个独立的训练样本{(x1, y1) ,(x2, y2),…, (xn, yn)},y={0, 1}。那每一个观察到的样本(xi, yi)出现的概率是

对于整个样本集,每个样本的出现都是独立的,n个样本出现的似然函数为(n个样本的出现概率是他们各自的概率乘积)

那么上述的似然函数就是模型的代价函数(cost function),我们要求的参数就是θ*。我们稍微对上式进行转换

对L(θ)的极大值,得到θ的估计值。问题变成了以对数似然函数为木匾函数的最优化问题。用L(θ)对θ求导,得到

无法解析求解的,所以一般使用迭代的方法求解,通常采用梯度下降法和拟牛顿法。

四.多项逻辑斯蒂回归

上面介绍的是儿分类的模型,用于二类分类。可以将其推广为多项逻辑斯蒂回归模型(multi-nominal regression model),用于多分类,假设离散随机变量Y的取值是{1,2,3,…,K}那么多项逻辑斯蒂回归的模型是

同理,二项逻辑斯蒂回归的参数估计的方法也可以推广到多项逻辑斯蒂回归。

 

参考资料:

[1].机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)

[2].《统计学习方法》 李航 著

【转】卖萌的大牛你桑不起啊 ——记CVPR2011一篇极品文章

Posted on 2016-01-06 | Edited on 2019-03-14 | In 机器学习

CVPR2011正在如火如荼的进行中,在网上能看到的部分文章中,我终于找到一篇让我眼前冒光的文章。虽然,其实,也许,主要的理由是我好不容易能看懂一篇。不过,这并不妨碍该文章定会成为今年CVPR的一朵奇葩这件事。

Read more »

通过新浪SAE创建WordPress个人博客

Posted on 2015-12-05 | Edited on 2019-03-14 | In 技术

使用新浪SAE搭建Wordpress博客有几大好处:1.便宜!2.可以绑定独立域名(未备案的域名也可以)3.一键安装Wordpress程序,简单到不能再简单了,不用懂程序。

使用新浪SAE搭建Wordpress博客有几大好处:1.便宜!2.可以绑定独立域名(未备案的域名也可以)3.一键安装Wordpress程序,简单到不能再简单了,不用懂程序。

对于无课玩家(穷)来说,要花钱的东西总会非常谨慎。新浪SAE是使用云豆支付的,人民币与云豆汇率恒定为: 1元 = 100云豆。先别紧张,注册新浪就送你500云豆,实名认证再送你2000云豆,这样就一共有了2500的云豆了,你也可以通过邀请好友注册,邀请一个用户送100的云豆。而且新浪SAE的自费也很便宜,不使用不付费,按照流量付费。如果用完了2500云豆就可以充值。下面是资费情况,常用就是HTTP和HTTPS两项。

好了,下面开始介绍如何在新浪SAE上搭建自己的博客。

一、在新浪SAE上注册一个账号:http://www.sinacloud.com/,免费的500云豆到手。之后你可以实名认证获取到2000云豆。

二、安装Wordpress博客程序

简单版:

WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。

进入控制台->创建新应用

创建一个新应用之后弹出如下的界面,填写你的二级域名(唯一的)作为你的应用的访问地址,即xxxxx.sinaapp.com。然后填写其他相关信息。

填写好应用的信息之后,选择Wordpress for SAE应用安装

创建好之后,依然进入控制台,发现你的应用仓库里面多了一个应用,没错就是你刚才创建的Wordpress应用

点击红色的方框下面的链接就可以配置你的Wordpress了,进去之后界面是这样的。

填写你的站点标题和用户名,密码和电子邮箱,一键点击安装Wordpress即可

点击登入即可进入登入页面了

是不是很简单~_~之后你就可以尽情的写作和管理你的博客了。你的登入界面在http://XXXXXXX.sinaapp.com/wp-admin/

复杂版:

上述的简单版本已经很方便了,但是新浪SAE提供的Wordpress版本不是最新的,现在的版本是Wordpress 4.3.1,而它提供的还是3.4.1(2015.12),很不开心。/(ㄒoㄒ)/~~

所以下面的内容是通过自己上传代码获取最新版本的Wordpress或者自己想要的任何版本。

首先到官网下载最新版或者其它版本的Wordpress,地址:https://cn.wordpress.org/。 下载之后解压缩找到wp-config-example.php文件(根目录下),修改文件名为wp-config.php。然后填写配置信息。这是Wordpress用来配置数据库等信息的,如何配置可以查看SAE给的API。可以在此处下载文件,复制里面的内容到你的wp-config.php文件当中。

可以在上面的步骤基础上进入应用管理,也可以直接创建一个空的应用进行管理。

进入代码管理,创建新的版本(如果是空应用就不需要了)

[QQ截图20151205145015]

然后将刚才的代码压缩成zip文件上传,压缩包命名随便,最好不能有中文,上传之后服务器会自动解压。解压的代码文件要是在根目录,不能有外层的目录。

[QQ截图20151205145347]

[QQ截图20151205145829]

切换至版本2就行了。这样你使用的数据库就是同一个数据库文件,之前你的数据库也就不需要搬运了。

如果发现上传的代码包有问题,也可以在网上搜索wordpress for SAE 可以下载最新的版本然后直接上传即可。这里提供一个较新版的wordpress for SAE 下载 http://down.chinaz.com/soft/37523.htm。

12

Wen Jun

Wllcome to wenjun's blog
20 posts
5 categories
14 tags
GitHub E-Mail
© 2020 Wen Jun
Powered by Hexo v3.8.0
|
Theme – NexT.Muse v7.0.1