第二周的课程终于拼死拼活的拼过去了。
DB 的麻烦之处上篇已经提过,不再重复。后来学的 AI 和 ML 也算是显示出了分量,homework 得反复查看视频、课本、wiki 还有 google 相关资料才勉强做出来了。ML 的常规作业倒是没有太大麻烦,但 Octave 的 programming exercises 很让人头疼,特别是 3.1 Feature Normalization,典型的需求不明确。这是在源代码中给出的要求:
% Note that X is a matrix where each column is a
% feature and each row is an example. You need
% to perform the normalization separately for
% each feature.
此时 X 是个 2 columns matrix,所以我就把 X 分两列处理了,但是 submit 死活都 failed。于是我就在这里空耗了两、三个小时。当时是北京时间2011年10月23日晚,已经是 deadline (北京时间第二天早上8点)前的最后一晚了。但我的 AI homework 2 还卡了两题,这个的 deadline 就在 ML programming exercises 的后一天。所以我就不打算管 ML 了,先去琢磨 AI homework。结果第二天发现 ML programming exercises deadline 推到了 Tue, Oct 25 23:59 PDT。于是我在琢磨 AI homework 到没有出路,头痛欲裂的时候又去研究了下 Feature Normalization ,终于 google 到某位同学说只要把 X 作为任意列考虑就可以 successful (好象是 reddit 上看到的)。于是照做了,加上 for loop,然后 submit,successful。后三问就势如破竹了。
我很好奇,多少人在看到两列的 X 后,可以直接从这里看出是要把 X 作为任意列考虑的?我真是感觉被坑死了。还好 deadline 推后,要不我真是冤死了。
后来 AI homework deadline 也延了一天,不过我是赶在原来的 deadline 之前完成的。第二天早上准备查分,结果分没出来,再看公告才发现延后了,公告时间在原来的 deadline 前一小时左右。这次分数很好看,满分。第一次只有 92。第二次 homework 就能得次满分,运气还是很不错的。但是对
2. Simple Bayes Net 和
3. Simple Bayes Net 2 ,我还是有疑问:这两题包括上面的讲解
20. Two Test Cancer 和
23. Conditional Independence 2 明显是认为,
P(X1, X2, X3 | not A) = P(X1 | not A) P(X2 | not A) P(X3 | not A) 1
2
换句话说就是,professor 认为 not A 时,X1, X2, X3 也是 conditional independent ,但 wiki 认为只有 A 时,X1, X2, X3 是 conditional independent ,not A 时不是,1式应该是不成立的。这到底是 professor 讲错了,还是有什么预设条件,当时虽然按这个模式做了,但对这点还是不能确定,希望以后能弄清楚。