做什么与怎么做

前面跟 mm 讨论了一些 TODO list 的作用。其实我自己 practice 的也比较少,最近其实杂事挺多的,决定好好 practice 一把。原先实验过 emacs 的 org-mode,iPad 上的 things 和 omnifocus,其实大家都大同小异,emacs 其实除了没有 iPad 的 port 这个问题以外是个很不错的选择。不过既然有了 iPad 更方便 track 进度。

现在列一些需要做的事情,按照 omnifocus 的可以分解成几个 projects,

  • 杂:比如这篇 blog,给出一个 overview 的 planning(没错,plan 本身也应该进入 TODO list),对原先一个 optimization framework 的 review;
  • 算法方面的,前面计划要把近似算法一些结果通过 BGL 实现出来,但是最近似乎时间不大够用,相关 planning 暂放;
  • vision 方面的,前面接触了 saliency 和 retargeting 方面的东西,也有一定的 code 积累,但是那只是为某些 projects 准备的,下面很需要进一步 planning 增加一些文献的了解,以及实现一些新的东西;
  • machine learning 方面的,一个是对 visualization 方面的 review,然后进行一些初步的 planning;另一个是继续推荐系统方面的学习,昨天更新了应该说是跟我研究最相关的一部分知识,但是这个领域其实还有很多,首先还是处于一个扩展眼界的阶段。
  • 公司的一些事务,这里就不列出了。

有了按照 project 组织的一些问题就可以 break down 一些比较大的问题。比如就拿 visualization 这个很模糊的 task 来说,我现在并没有具体的 idea 做什么,怎么做下去,仅仅有一些模糊的想法,那如果在 TODO list 希望加一条,千万不能写“我要做 visualization”,因为这个名堂太模糊,没法操作,更没法通过 TODO list 来 track progress,TODO list 一般适合有明确的 deadline 的事情,比如我要投 NIPS,那么有个 deadline 在那里,我可以先设定这么一个 TODO item 在 x 月 x 日提交 NIPS 一篇,但是这仍然是无法细化的,对我来说也是无法操作的。因此需要 break down 整个 task,你可以为此创建一个 project,比如叫 paper submission,然后添加 NIPS submission deadline 这个 item,但是记住更重要的是你得添加一些下面这些帮助你 track progress 的 item。比如:

  • 我现在手头有两三个 projects ongoing 中,是不是每个都有机会提交?还是我得 brainstorm 一个新的 idea 来做?so 为了避免这个地方卡住,我必须先设定一个 TODO item,projects review for NIPS,如此比如给定 1-2 天期限,到那时我就应该大致知道什么可能合适投递了;
  • 如果你说我还不了解 NIPS 需要些什么类型的文章,OK 另外加一个 item,并且让前面一个 item 依赖于它(似乎现在的 TODO list 还不能够 track item 之间的 dependency,所以只能将完成时间上区别开两者的先后)。
  • 那么如果我觉得某个 project 的内容比较适合提交到 NIPS 了,我就能完成这两个 TODO item,然后开始设计新的  item
  • 比如 project detailed review,看看这个选中的 project 做到什么程度了,离 paper 到底还差些什么(一个新的 item)
  • 又比如我知道这个 project 有一些 ongoing 的 TODO item,我是否应该调整其完成时间以满足 paper 提交时间;

等等。总而言之 TODO list 上如果没有可操作的 item 就没有什么用了。记得在闲来无事的时候多看看 TODO list,然后将一些虚无缥缈的 item 细化到你自己能够操作,将完成的 item check,同时偶尔 review 一下各个 project 的 progress。就这么简单的一个帮手。

BTW 这玩意这么简单,iPad 上一个就要 10$,坑爹啊…

—————–
And Abraham hastened into the tent to Sarah, and said, Make ready quickly three measures of fine meal, knead it, and make cakes on the hearth.

Advertisements
做什么与怎么做

一个有关“做什么与怎么做”的想法

  1. zt 说:

    visualization 的现状比较麻烦:
    原先的设计理念是使用 signal/slot,最近在 video processing 上面尝试使用静态的 composite。这样一来性能可能能够提高(如果写的方式正确、优化打开了的话)。
    然后从结构上来看,现在没有使用动态链接库来把 IO 部分剥离出去,也显得比较笨拙,不够灵活。
    还有一方面是没有利用 parser,每次都是直接将每行数据读进内存然后才 parse,这也显得比较低效。

    然后算法上希望能确认新的想法是可行的,这可能需要在 matlab 里面做实验。

    系统上另外需要做得一个较大的调整,是我希望能把单机版的实现通过 OpenMP 并行,而不再使用完全的 map/reduce 的策略。这样可以使得这个算法在单机上至少能够处理上万甚至十万级别的数据,而不是现在这样在大量的 IO 上耗费。另外为了能在单机上处理更大规模的数据,感觉还是要有一个数据库(简单的如 SQLite)的支持。

    那么现在看来,首先还是要有算法上的 breakthrough,后面做一些改进才值得。因此后面还是从 matlab 的实验开始吧。planning~

  2. zt 说:

    在 visualization 里面有一个比较独立的模块就是 optimization,当时的想法是剥离 algorithm 与 space 本身的一些性质。当然这样对一些无约束(或者可以有约束,但是这些约束能归结到某种 space)的优化问题算是比较好解决了。

    前面实现了 SGD、CG 这些算法,后面看看加上 Newton 法、BFGS 和 l-BFGS 吧。另外一些比较有用的技术包括 active region 等。

    比较麻烦的就是在存在约束情况下怎么能把这个库扩展下去,暂时没有这方面的经验。看 Matlab 实现的某些 optimizer 的讨论似乎也是分开了一些情形,比如有上下界约束、线性约束,最后才考虑一般函数的约束。

    可能的过程我想一方面需要继续在原先的框架下面把无约束的算法丰富下去。然后就得看看相关书籍了…

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s