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, sociology, cognitive science, and philosophy.连接人机交互、AI 与系统编程。构建智能的人在环优化系统。融合心理学、社会学、认知科学与哲学。

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

282 Blogs博客
171 Tags标签
Changkun's Blog欧长坤的博客

删除 GitHub 上已经提交的敏感信息

Published at发布于:: 2017-11-12   |   Reading阅读:: 1 min
最近两天参加了 SIMENSE 举办的 AI Lab Hackathon,手残在 GitHub 上把账号和密码信息泄露上去了。 不过好在账号是临时注册的账号。虽然是临时账号,但我还是比较希望能够删掉。 于是需求变成了:如何删除一个已经 push 了的 repo 的某些历史信息? 我们知道,git 仓库的信息一般是不能随便修改的,这是因为所有的 commit hash 值都是根据提交的数据、commit信息计算出来的,想要轻易修改还是比较苦难的。 搜索一番发现了一个很有用的工具叫做:bfg-repo-cleaner 使用说明在他们的网站上已经写得很清楚了,这里举一个例子,就拿我想删掉已经 push 了的文件文件: 首先从 bfg 的首页上下载 .jar 工具包。 执行下面的命令: 1 2 3 4 $ git clone --mirror https://github.com/changkun/gitchain.git $ java -jar bfg.jar --delete-files config.ini gitchain.git $ git reflog expire --expire=now --all && git gc --prune=now --aggressive git push 然而还是会有坑在里面,因为最新的 commit 不能被删掉或者修改,也就是说 HEAD 指向的 commit 如果包含了这个文件,那么你就不能删除这个文件,这好办啊,再删掉远程仓库的最后一个 commit 就完了呗:
Read More阅读更多 »

硕士生涯的第一年就这样告一段落了

Published at发布于:: 2017-09-03   |   Reading阅读:: 1 min
前段时间学长李喆问我:「来,小伙子,说说你来德国这一年的收获是什么?」我当时给他的回答是:「我已经正儿八经的把目前计算机科学的各个领域给研究了一遍,已经没有我不了解的领域了。」这个话说得很狂,确实,我知道自己的充其量不过是在某几个领域已经足够深入,大部分其他领域在长期在这个领域研究的人看来我不过是一个刚刚跑过「Hello World」的小屁孩。计算机毕竟是一个实践科学,没有长期实践,那都是狗屁。有一句话我觉得说得特别好:「Theory is when you know everything but nothing works. Practice is when everything works but no one knows why. In the industrial, theory and practice are combined: nothing works and no one knows why.」 我当时来德国的契机是什么,真的都做到了吗?翻看我自己在读研之前给自己列的 TODO-DONE-LIST 如今已经有一大半完成了,这一年里收获了很多知识,精进了很多知识,至少我已经能够在大部分领域发表我自己的看法了。今天就要登上飞机回国了,于是我没事儿就喜欢总结一下的老毛病又犯了。从哪儿说起呢? 生活 在一个非母语的环境里确实能够让非母语有突飞猛进的进步。前几天在知乎答了一个问题,问题说「为什么部分中国人(留学生)说汉语时,常夹带英文?」是的,我也变得开始喜欢说话夹英文了,我的答案是: **出国前英语不好。**因为英语不够好,所以很多英文词汇其实在出国之前并没有在脑海中建立记忆网络。而出国后无论是英语的交流还是阅读量都远远高于出国前,于是乎很多以前不知道的词,会以英文上下文情境的形态在脑中建立突触,形成某个概念第一反应是英文词的状态。 **出国后母语变差。**是的,虽然偶尔还是会克制自己不能落下母语的学习,在用母语写作时坚决不使用英文单词,经常参与翻译工作,但我还是发现自己的母语水平几乎成直线下降。老实说,前几天到和一个中国人助教聊事情,聊事情都是用中文聊的,聊完了之后要把谈话内容总结一下发给给另一个中国同学,然后写邮件的时候发现自己居然没办法用中文流畅的打出来(天哪,全程可都母语啊),脑子里经常卡壳,然后我换成了用英语写,一口气给敲完了点了发送。 之前本科大四来交换那一个学期还没有如此明显的感受,但经过这次一年的训练,我发现自己已经可以开始使用英语进行思考,并能够在面对他人不假思索的用英语脱口而出了。这是我觉得收获最大的一点。 然而要知道,德国不是一个英语为母语的国家,尽管在大学里大家都会说英语,大家的英语都挺不错,我主动和别人说英语,大家也都会主动和我说英语。但有时候还是不可避免的需要和德国本地当地人打交道,总不能期望一个母语不是英语的国家每个人都会说英语吧?试想中国的某个路边的小卖部老板会英语的概率有多高?所以,第一个学期我还是意识到了这种不便性,在第二个学期我便正儿八经的开始研究德语了。为此我还初步写了一本德语的基础教程,也算是自己在硕士生涯里一个相当不小的收获,当拿到成绩单和语言证书的时候,我终于可以拍着胸脯的说:嗯,德语也不是很难嘛,当初交换的时候那一个月就是没好好学,现在老夫也是一个会说三门自然语言的人了。 当然,千万别以为这个国家就好得不得了,生活上的糟心事其实也是一大堆的。与交换期间产生的强烈对比,可能是第一次来这边时一切都是新鲜的,各方面缺点都被我忽略而关注在了优点上。就住处来说,起初我曾住在一个拥有双层楼房的小别墅中,本以为这就是慕尼黑人们的标准住宿条件,其实只不过是交换生的福利罢了。而这次没有了福利后,加上突如其来的行程安排,导致我前半年挤在了一个破旧阴暗的车库杂货间里,不仅生活条件极差,还被收着高额的房租,直到第二个学期才搬进了一个条件稍有改善的单人间。 这一年里与这里的同学、同事、老板、本地居民这些不同身份的人打过足够多交道后,不得不说在这里生活确实不如国内自在。最令我反感的就是德国人不紧不慢的生活状态。确实,他们并不需要为自己操心太多,领着一份不错的薪水,在如此高福利的社会环境下,不需要操心自己的经济抗压能力,生病了有免费的医疗,失业了还有高额的政府补助,甚至于土耳其难民都能领上超过我们一个月生活费还高的无偿补贴。很多人就逐渐安于现状,觉得「现在这样也挺好」。这就导致了,哪怕是一丁点的小事、一个很简单的任务分配可能会邮件来邮件去,甚至一个上午时间全部浪费在了毫无收获的小组讨论上了。也罢,吐槽的过去的事情就不再展开了。 学业 回过头去看这一年的时间过得真是飞快,感觉本科毕业简直就是昨天的事情,然而理论上讲,我已经完成了大部分的修课计划,除了最后一两门小打小闹、可有可无的课程外,就是自己的毕业论文了 —— 但我目前还没有特别想要完成的题目。我也可以选择不用着急着毕业之类的,每个学期修一门课好好享受一下在德国的这段时间。确实,这会让我有足够的时间来思考接下来的步伐,但可能已经违背了我自己词典里对效率的定义。在这一年里学习时间中,我正儿八经的搞明白了这些个领域,这正好都是我本科阶段还没来得及仔细研究的领域: 人机交互 Human-Computer Interaction 在线媒体 Online Multimedia 并行计算 Parallel and High Performance Computing 知识表示 Knowledge Representation and Reasoning 数据分析 Big Data Management and Analytics 知识发现 Knowledge Discovery in Databases 人肉计算 Human Computation 机器学习Machine Learning 当然,「人机交互」是我的主业,这个肯定要搞明白。本科的时候虽然学过这门课的一些基础知识,而且还考出了不错的成绩,但实际上脑子里对这个领域并没有多少看法,自认为就是一些炫酷技术的拼凑,技术决定一切。而实际上当我真正静下心来阅读和实践过一两个项目之后,我才明白了「人」这个字被放在了「人机交互」的第一位的意义,这个领域真正关注的是什么,这个领域真正关心的是什么。作为积累,希望我自己能在毕业之前写完一本关于人机交互的书。
Read More阅读更多 »

人肉计算(10): 系统参与激励

Published at发布于:: 2017-07-20   |   Reading阅读:: 5 min

这是「人肉计算」系列文章的最后一篇。我们来讨论参与激励的相关问题。

Read More阅读更多 »

人肉计算(9): 陷阱的解法

Published at发布于:: 2017-07-20   |   Reading阅读:: 1 min

上一篇文章我们讨论了人肉计算中的相关陷阱,这篇文章我们来看看这些陷阱都有什么样的解法。

Read More阅读更多 »

别聊,一聊你就暴露

Published at发布于:: 2017-07-07   |   Reading阅读:: 1 min
这周吃饭的时候遇到个人,说什么自己对机器学习非常有兴趣,一直都在做这个。 好嘛,既然你这么自信我就随便问了几个问题: What’s the difference between L1 and L2 regularization? What’s the difference bewteen kernel function and basis function? What’s the benefits to use Rectified Linear Function instead of Sigmoid Function? Explain the relationship between Maxout and ReLU. Is dropout theoretically works when activation function is not a linear function? Why? 好嘛,这几个问题真的很基础,如果你说你做机器学习,搞深度学习,连这几个问题都答不上来,或者答得没办法让我满意。 我最多只能认为你在机器学习领域的建树就是跑过几个 Demo ,了解一些基本概念,把它当「黑盒」来用。 我只能说,基础不牢,连一些基本的东西都搞不清楚的话,真的很难在这条路走得很远。 真的,别聊,别在我面前装,一聊你就暴露水平。

人肉计算(8): 人肉计算与数据科学中的陷阱

Published at发布于:: 2017-07-05   |   Reading阅读:: 3 min

这个人肉计算的系列主题差不多快要接近尾声了。在之前的几篇文章里我们已经看了足够多的输入数据聚合的例子,了解到了一些数据处理的方法。是时候从伦理道德的角度来讨论人肉计算领域存在的问题了。

Read More阅读更多 »

人肉计算(7): 社会行为分析

Published at发布于:: 2017-06-28   |   Reading阅读:: 3 min

在上一篇文章中我们讨论了预测市场在某种意义上也是在聚合人类的输入。到目前为止我们已经看过足够多的金融领域在人肉计算中将人类输入进行聚合的例子。这次我们来看一看社会行为分析领域中的三个相关的技术和问题:

  1. 基于代理人的建模与模拟
  2. 随机模型
  3. 社会同步性

社会行为分析旨在探索人口规模下的用户行为的模型的结果。

Read More阅读更多 »

Hexo + GitHub + Travis CI + VPS 自动部署

Published at发布于:: 2017-06-21   |   Reading阅读:: 2 min

最近和朋友交流到 Hexo 博客的自动部署问题。其实很早以前我就思考过,由于博客是部署在阿里云上的,而 Hexo 从 本地部署到阿里云这个过程要走国际线路,上传时非常缓慢,于是决定利用 Travis CI 来实现自动构建及部署。

博客的源码结构

这个博客的源码其实从上次维护开始就完全通过 GitHub 私有项目进行托管了。这里截个图可看,大概是这个样子:

Read More阅读更多 »

人肉计算(6): 预测市场

Published at发布于:: 2017-06-15   |   Reading阅读:: 1 min

上一篇文章我们介绍了如何将人肉计算应用到金融领域的信用风险评级。 在这个模型上,我们只看到了在进行数据聚合时,对当前的信用进行评估,却没有对未来事件进行预测。 这一节我们就来看一个关于预测的例子:预测市场。 同样在开始之前,我们需要铺垫一些金融知识。

Read More阅读更多 »

人肉计算(5): 信用风险评级模型

Published at发布于:: 2017-06-10   |   Reading阅读:: 3 min

上一篇文章我们简单「水」过了已经耳熟能详的 PageRank。这里简单总结一下:

  • 一个社交网络其实就是一个矩阵;
  • 如果这个社交网络是一个加权有向图,那么通过 PageRank 算法可以根据边的权值和流向确定网络中节点的重要性排名;
  • 排名最高者就是特征向量中心,这个节点在整个网络中的地位最为重要。

这一篇文章我们来真正看看输入数据聚合的实际例子,如何将人肉计算应用到信用风险评级当中。 本文讨论内容基于这篇文章1,但在谈论具体的模型之前,我们需要铺垫一些金融学知识,首先就是:什么是信用风险评级?它有什么问题?

Read More阅读更多 »
9 10 11 12 13 14 15 16 17
© 2008 - 2026 Changkun Ou. All rights reserved.保留所有权利。 | PV/UV: /
0%