Changkun's Blog欧长坤的博客

Science and art, life in between.科学与艺术,生活在其间。

  • Home首页
  • Ideas想法
  • Posts文章
  • Tags标签
  • Bio关于
Changkun Ou

Changkun Ou

Human-AI interaction researcher, engineer, and writer.人机交互研究者、工程师、写作者。

Bridging HCI, AI, and systems programming. Building intelligent human-in-the-loop optimization systems. Informed by psychology, philosophy, and social science.连接人机交互、AI 与系统编程。构建智能的人在环优化系统。融合心理学、哲学与社会科学。

Science and art, life in between.科学与艺术,生活在其间。

276 Blogs博客
165 Tags标签
Changkun's Blog欧长坤的博客

终于全面启用了 HTTPS

Published at发布于:: 2016-07-16   |   Reading阅读:: 2 min
经历过这次迁移,我的博客站点算是维护过四次之多了。这个博客最初诞生的时候是部署在一个网友的服务器上的,第一次上线的时候还是一个 Wordpress 的站点。后来因为想弄到自己的服务器上,就搬了出来。随后了解到了 Hexo,就干脆整个迁移到 GitHub 上。而这次,却又从 GitHub 上迁移回个人的服务器,算是折腾了好大一圈。估计这次迁移后,就不会再有太大改动了。 这次迁搬出来后主要维护了以下几点: 将服务器系统从 CentOS 更改为 Ubuntu 将博客的整体主题做了更换 关闭了原有的博客站点 强制使用 HTTPS 访问本站 从 GitHub 迁移到自己的服务器上 下面来依次谈谈这几点维护的原因。 从 CentOS 更换到 Ubuntu 以前整个站点用的 LNMP 的架构,因为第一版的博客是使用 Wordpress 搭建的,第一次接触 Linux,就是接触的 CentOS。但随着时间的推移,我个人接触更多的反而是 Ubuntu,索性这次搬迁,全部做一次规整了。 博客整体主题做了更换 博客的主题使用的是 Hexo Next,在页面的 Footer 处我也保留了主题的链接,如果对这个主题感兴趣,可以点过去。 主题做了很多修改,最明显的修改就是可以看到博客的背景上有 一个粒子特效。 有不少人来信问我是怎么做到的,其实并不复杂,GitHub 上面有一个项目叫做 ParticlesJS。 有兴趣的可以自己研究一下。还有一些修改,比如底部 Footer 的修改,菜单栏的修改等等。由于只是一些符合自己品味的优化,这里就不做详细说明了。 关闭了原有的博客站点 最初的时候脑子被门挤了,注册了个 euryugasaki.com 的域名,则根本不可能有人记得住啊。但是这个长得恶心的域名还是被我上线了三年左右的时间,一些我留下过痕迹的地方,都有这个域名在。 而恰好,这个域名还是在国内的服务商里购买的。保不准那一天挂了,就完蛋了。所以后来就注册了几个好记的域名:changkun.us。并且,我决定以后一直用这几个域名而再不更换了。 强制使用 HTPPS 访问本站 从去年开始,我就一直想要将整个博客部署成 HTTPS 站点,当时也只是随便一搜发现证书还得花钱,对于我这种个人网站,是很不地道的。 直到最近,几经周折,总算找到一个比较满意的证书提供商,StartSSL。 制作证书非常方便,假设在 /etc/nginx/ssl/ 目录下: 1 $ sudo openssl req -newkey rsa:2048 -keyout server.
Read More阅读更多 »

苹果开源了LZFSE无损压缩

Published at发布于:: 2016-07-11   |   Reading阅读:: 2 min
开源地址:https://github.com/lzfse/lzfse 苹果开源了新的无损压缩算法 LZFSE ,该算法是去年在iOS 9和OS X 10.10中引入 的。按照苹果公司的说法,LZFE的压缩增益和ZLib level 5相同,但速度要快2~3倍,能源效率也更高。 所以,马上找来测试与 zip 的情况 PK 一下,感觉无论从压缩速度还是压缩率来说都有点差强人意,说好的速度更快能源效率利用率更高呢? 文件1: 2014data.csv 文件大小: 83.5 MB zip 压缩大小: 7.3 MB lzfse 压缩大小: 9.2 MB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 $ time zip test.zip 2014data.csv -v updating: 2014data.csv ....... (in=83523458) (out=7286164) (deflated 91%) total bytes=83523458, compressed=7286164 -> 91% savings zip test.zip 2014data.
Read More阅读更多 »

Hash 碰撞的一种思路

Published at发布于:: 2016-07-09   |   Reading阅读:: 3 min

今天在熊猫 TV 上看乌云白帽子大会,下面有三道互动的题目挺有意思的。

前面两题都很简单,第一题是解一个莫斯电码、第二题答案很简单,但是要提交答案需要在网页源码上懂点手脚。

第三题是重头戏,不过难度也不高,题目如下:

第三题每个人的答案都不一样,图片里被我划掉的这部分是我的用户名(手机号) K。

红色部分的一串数字就是经过上面的 DEKHash 算出的结果,所以题意就很明显了,找到 K' 使得 DEKHash(K') == DEKHash(K)。

题目中给出的是 Java 代码,我作为 Java 黑,显然是不能忍受的,所以弄成了 C++的版本:

1
2
3
4
5
6
7
long DEKHash(string str) {
    long hash = str.length();
    for(int i = 0; i < str.length(); i++) {
        hash = ((hash<<5)^(hash>>27))^str.at(i);
    }
    return hash;
}

下面来看我是怎么寻找这样的 K'。

Read More阅读更多 »

记一次完整的 Kaldi-TIMIT 示例运行

Published at发布于:: 2016-06-05   |   Reading阅读:: 35 min

整个例子从 Sat Jun 4 22:45:55 CST 2016 开始,于 Sun Jun 5 11:16:53 CST 2016 结束,共经历约 12 个小时。

在 TIMIT 的代码中,一共分为了以下几个示例:

  1. 数据预处理;
  2. MFCC 特征提取 & 训练集和测试集的 CMVN,这里只提取了 MFCC,Kaldi 里支持 MFCC,PLP,PITCH;
  3. 单音树训练和解码,是语音识别最基础的部分
  4. 三音素的训练和解码(Deltas + Delta-Deltas)
  5. 三音素模型基础上做了LDA + MLLT变换的训练和解码
  6. 三音素模型基础上做了LDA + MLLT +SAT变换的训练和解码
  7. 三音素模型基础上做了SGMM2的训练和解码,SGMM2是povey 提出的
  8. 三音素模型基础上做了 MMI + SGMM2 的训练和解码
  9. DNN 混合训练和解码(povey 版本模型,看网上说不建议使用?)
  10. 系统融合(DNN+SGMM)
  11. Karel DNN 通用深度学习模型的训练和解码
  12. 获取结果
Read More阅读更多 »

Kaldi 上的 TIMIT 例子

Published at发布于:: 2016-06-04   |   Reading阅读:: 3 min

Kaldi 上提供了很多例子让我们学习,这里有一个 Kaldi 上提供例子的列表:

http://kaldi-asr.org/doc/examples.html

但是大部分的数据库来源于LDC,并且需要成为会员才能下载。

我们这里使用一个叫做 TIMIT 的例子,当然他也是需要付费才能使用的数据集。

然而幸运的是我们可以在这个链接里找到所有的内容:

http://www.fon.hum.uva.nl/david/ma_ssp/2007/TIMIT/

因为版权问题我不准备提供直接下载的链接,但是我作为老司机可以指一条路:wget -r,剩下的就看你自己的造化了。

数据拿到后,目录下会多出很多 .html 的文件。我这里写了一个脚本用于删除这些多余的文件,并将小写目录转换成大写目录(在 Kaldi 的 TIMIT 脚本中写出的目录都是大写的):

Read More阅读更多 »

Kaldi 安装与部署

Published at发布于:: 2016-06-04   |   Reading阅读:: 2 min

Kaldi 是一个用于语音识别的开发平台(工具包),目前已经较为成熟,而且文档很多。

本文提供一个 Kaldi 在 Mac OS X 10.11。5 下的安装教程,如果你用 Windows,请买一台 Mac。

下载源码

Kaldi 在 Github 上开源,我们应该直接下载他最新的源码执行编译。

1
git clone https://github.com/kaldi-asr/kaldi

编译

编译这种大型框架不应该去互联网上搜索任何安装教程,而是应该阅读官方的安装教程。(那我写这篇文章干嘛呢…(╯‵□′)╯︵┻━┻

Read More阅读更多 »

从科研写作谈起

Published at发布于:: 2016-05-24   |   Reading阅读:: 3 min

目录

  • 写在前面的话
  • 科研创意的来源
  • 准备篇
    • 主题的选取
    • 确定论文的类型
    • 提出论点
    • 会议投稿
    • 期刊投稿
  • 写作篇
    • 写作动机
    • 写作阶段
  • 工具篇
    • 写作工具
    • 版本控制和存储
    • 文献工具
    • 图表工具
  • 后记
  • 进一步阅读的文献
## 写在前面的话

马上就要进入研究生阶段了,本科的最后一个学期很多人问我为什么不直接找工作,而是选择继续读研。这里面有两个原因:

  1. 喜欢做研究,可以说我读研的最根本目的就是搞研究、做科研;
  2. 学历不补回来,这个算作是次要目的,那就是提高自己的学历。

总的来说,我个人的想法就是:一辈子只有一次机会,钱什么时候都可以赚,但错过了深造的机会,就一切都不可挽回了。

作为整个大学阶段的总结,我决定写一系列文章来总结我在大学中学到的一些科研经验和心得,并以此激励我在日后的路上发表更多更有价值的论文。

Read More阅读更多 »

Swift API 设计指南

Published at发布于:: 2016-05-11   |   Reading阅读:: 8 min

原文链接:https://swift.org/documentation/api-design-guidelines/

译者:Changkun Ou

2016-05-11 初稿

本文未经授权禁止转载

目录

  • 目录
  • 基本准则
  • 命名
    • 明确用法
    • 为使用舒适而努力
    • 合理使用术语
  • 约定
    • 一般约定
    • 形参
    • 实参标签
  • 特殊说明

译者注:

Argument 和 Parameter 两个词在很多文献中均翻译为参数,这是一个历史遗留问题。

但实际上 Argument 专用于 Actual Argument(实际参数,实参),Parameter 专用于 Formal Parameter(形式参数,形参)。

本译文在上下文没有歧义的情况下均翻译为参数,在其他情况下使用实参和形参来对 Argument 和 Parameter 加以区分。

进一步阅读:ISO/IEC 9899 - 在这份标准中,第 3 页的 actual parameter 和第 6 页的 formal argument 两种说法均被弃用。

Read More阅读更多 »

有趣的人类

Published at发布于:: 2016-04-15   |   Reading阅读:: 1 min
中国人对于这种坐下来玩玩手表、动动手指然后填两张表就拿钱的方式还是很不习惯的?居然还死活不肯收… 此外,德国人还是很欣然接受的,可能是小费拿惯了? Human, interesting. :)

所以其实论文并没有什么鬼用

Published at发布于:: 2016-04-15   |   Reading阅读:: 1 min
最近看到个题,说是,一个人患某个病的概率是 $1%$ ,现在有某个仪器可以检测患这种病的人,但是正确率只有 $99%$ 。问如果某人被检测出患这种病,那么他真正患这种病的概率是多少呢? 这个问题很有意思,我们可以简单更改一下问题的环境,就能找到做科研的价值到底几何。 假设科学事实被发现这个事件为$A$,其发生的概率是$a$,科学家做研究能够发现这个科学事实,这个事件记为为$B$,但是其正确率$P(B|A)$只有$b$。那么问: 在一个科学家声称其发现了某个科学事实的情况下,那么其真正发现科学事实的概率是多少呢? 这个问题只要学过一点概率的人都能算出来,首先 原文题的概率其实是一个条件概率,因为根据贝叶斯公式: $$ P(A丨B)=\frac{P(AB)}{P(B)} $$ 而 $$ P(B)=P(A)P(B|A)+P(\bar A)P(B | \bar A) =ab+(1-a)(1-b) = 2ab+1-a-b $$ 所以: 科学事实真正被发现的概率是:$\frac{ab}{(2ab+1-a-b)}$ 如果我们假设 $a=0.01$(这是被放大了的,因为科学事实很难被发现)$b=0.99$(这也是被放大了的,因为我们连学术道德都忽略了),很容易算出,这个概率只有$50%$。 当科学事实的发现概率固定时,这个函数在0至1的开区间内递增。 所以,学术垃圾在以至少大于$50%$的概率产生。 而我,就是其中之一。 深入阅读 Scientific Regress: http://www.firstthings.com/article/2016/05/scientific-regress
9 10 11 12 13 14 15 16 17
© 2008 - 2026 Changkun Ou. All rights reserved.保留所有权利。 | PV/UV: /
0%