Archive

Archive for 2010-07

Need For Efficiency

07月 22, 2010 2 条评论

很怀念硕士毕业前的我,每天都能很充实地做事情,从一早做到很晚,不知疲倦。现在,虽然也是从一早做到很晚,但效率极其低下,中间总被各种事情打断。有些事情是天上掉下来的,我不得不被打断,但更多的是我自找的,比如周期地check mail,check reader,check bbs,check blog,check cms,check renren,check 241……今天又加上了一个check buzz。天天就在check和reply中度过大半时间,效率当然低下了。 | 转自Sunner’s Blog

最近这段时间做事情的效率真的很低下, 在sunner的博文中找到这么一篇, 发现和现在自己的状态惊人的相似, 每天在check和reply中浪费了很多的时间, 都已经是web2.0向web3.0迈进的时代了, 而我却还在以web1.0的方式check更新, 轮询的效率可想而知. 最近在chrome里添加了一个renren的工具(迷你人人), 导致check renren的次数更频繁了. 看来是时候戒除一下网瘾了, 在工作时间除了GTalk, 屏蔽其他聊天工具和无聊站点.(包括本站)

PS: 前几天安装了人人网开发者的应用, 准备在PROnline所有功能完善后发布到人人上.

分类: MyTrueLife

Principal Component Analysis[python版]

07月 20, 2010 2 条评论

前几天在校内上分享了一个”十二星座的编程语言”的帖子, 虽然我不信宿命论和星座论, 也不是语言论者, 不过看到了这种帖子, 还是会把作者的谬论和自己做比对, 不巧的是往往又是那么符合, 哥的世界观崩溃了.

按照SB作者的谬论, 哥被映射到了Matlab(射手座), 不得不说Matlab在做科学计算方面的确很好很强大, 大部分的算法先通过Matlab验证结果, 然后再翻译成其他语言的版本, 不过我对Matlab一直没兴趣, 不知道为什么, 深层次的原因有待进一步发掘. 而Python(天秤座)才是我的…

讲了一堆废话, 发现和题目完全不搭调. 现在开始进入正题, 本篇将使用python的科学计算包NumPy实现主成分分析(PCA)降维方法, 为PROnline系统所使用的特征提取方法之一.(未完成)

分类: 未分类

PROnline version-0.1

07月 17, 2010 4 条评论

Introduction(version-0.1):

PROnline项目是一个在线手写数字识别系统. 开发语言为Python(GAE服务器端)和Flex(客户端). 开发目的只是为了实践人工神经网络(Aritificial Neural Network)和数字图像处理(Digital Image Processing)这两门课程而已. 其实早在去年学习模式识别(Pattern Recognition)课程的时候就想到做这样的一个系统, 因为时间的关系和对GAE、Flex的不熟悉没有尝试, 现在算是兑现了半年前对自己的承诺吧. In one word, just for fun!

客户端为什么选Flex? Flex开发的程序会生成一个Flash, 而Flash可以嵌入到web页面中, 也可以在本地环境中运行, 介于C/S和B/S开发模式之间. 相比一般的客户端程序, Flash不存在移植性的问题, 而且无需在客户端中安装, Flash的下载由浏览器完成. 服务器为什么选GAE? 对系统资源(CPU、内存、磁盘空间)的需求在一定配额以下是免费的, 为什么不用呢? 而且我相信Google肯定会提供很优质的服务, 还有一个很重要的原因是GAE支持python, 这样就可以使用python来开发服务器端程序了.

Readme(version-0.1):

PROnline的UI由两部分组成: 位于顶部的Menubar和中间的Panel. Panel是手写数字的画板, 通过处理鼠标事件来绘制从鼠标按下到释放过程中移动的轨迹. Menubar是系统的菜单栏, 包含如下菜单项:

  1. Panel->Classify: 将面板Panel中的数据28×28 pixels提交到服务器, 并返回分类结果0-9, 通过弹出式对话框显示, 该对话框提供分类正确与否的反馈信息Right or Wrong, 选择任何一项将关闭弹出对话框.
  2. Panel->Clear: 将面板Panel中的数据清空.
  3. Model: 选择服务器端用于分类的模型. 目前仅有朴素贝叶斯分类器naivebayes.
  4. Image: 提供简单的数字图像处理方法. 目前仅支持膨胀Dilation、腐蚀Erosion.
  5. Help: 系统的帮助信息.

Mailto icesorrow@gmail.com if any bug or suggestion

Pattern Recognition Online

07月 3, 2010 发表评论

PROnline将是一个使用Google App Engine + Flex实现的在线模式识别系统, 最初将实现简单的手写数字识别, 以构建和确定系统的框架, 然后可能会扩展到手写汉字和公式的识别上. (to be continued…)

在发布version0.1之前, 总结一下现在遇到的各种问题:

  1. 手写数字样本库的存储. 手写数字样本库来自”The Mnist Database of handwritten digits”, 它包含60,000条训练样本和10,000条测试样本, 本打算把所有样本数据存储到GAE的datastore中, 但datastore数据查询有1000条的限制, 多少让人有点蛋疼, 那就直接以文件的形式保存在服务器上吧.

  2. 训练模型的存储. 在GAE服务器上不允许写文件, 所以算法模型的训练过程不能在GAE服务器上进行, 只能先在开发端生成所有算法的训练模型, 然后把整个工程上传到服务器.

  3. 手写数字与样本库的数据粗细度不同(如下图). 在目前使用的naiveBayes识别算法下, 不对输入数据做任何处理的话识别率惨不忍睹, 就像国家统计局公布的数据一样扯淡. 人为将输入数据描粗后, 识别率提高了很多. 所以为了使输入手写数字和数据库中的样本有大致一样的粗细度, 需要做Dilation-Erosion(膨胀-腐蚀)操作, 现在的问题是对输入数据做膨胀操作(Flex)呢, 还是对样本数据做腐蚀操作(Python)?

加关注

Get every new post delivered to your Inbox.