Free考研资料 - 免费考研论坛

 找回密码
 注册
打印 上一主题 下一主题

[其他方面] 心理学读博日记(2016年1月完结)

  [复制链接]
201#
 楼主| 笔为剑 发表于 14-3-7 18:05:08 | 只看该作者
3月7日
文章是写给人看的,要写得让读者能看懂。
202#
 楼主| 笔为剑 发表于 14-3-12 16:39:52 | 只看该作者
3月12日
意识到CD-CAT的题库大小是个很重要的东西。
如果题库小了,必然精度不高,所以大家都希望题库大一些。但是如果题库太大,计算量就会变得非常大,以至于速度很慢。
比如题库有300题。某被试做第一题时,需要把这300道题对他的信息量都算一遍,然后挑信息量最大的题给他做。然后,根据他的作答,再计算余下299道题对他的信息量……如果每个被试做20道题,那么要进行的信息量计算次数就达到了300+299+298+……+281=5810次。如果题库翻一倍呢?那就是600+599+598+……+581=11810次。这个数字大于5810的2倍。也就是说,如果题库大小翻倍,那么计算次数翻了一倍还多一些。由此需要的运算时间也就大大增加。
所以要让题库规模适当,不能小也不要大。这几天被过大的题库弄得很郁闷,一个程序运行了一个通宵都没弄完。
203#
 楼主| 笔为剑 发表于 14-3-17 21:23:35 | 只看该作者

3月17日
用了一个晚上和一个上午推导公式,推到后面发现结果很诡异,估计是推错了。
可是,错误在哪里呢?找不到一个懂香农熵的人来帮忙看啊。

晚上开会,导师说学院把博士毕业要求又提高了。同时,若干名迟迟不能毕业的博士即将被清退。好可怕。



204#
 楼主| 笔为剑 发表于 14-3-22 17:37:25 | 只看该作者

3月22日

推一个香农熵的公式,推了6天才总算推完。
然后用了一天时间编程,编完以后一运行,发现结果不对。一定是代码出了问题,赶紧检查。
一查代码,果然,有个地方搞错了,是我错误地理解了公式里一个符号的含义。
可是改完了以后再运行,结果还是不对……

  
205#
 楼主| 笔为剑 发表于 14-3-24 01:14:12 | 只看该作者
3月23日
发现昨天的“发现有个地方搞错了”是错的,于是又把代码改回去了。
现在看来陈老师的公式推导有错误。
206#
 楼主| 笔为剑 发表于 14-3-25 13:13:32 | 只看该作者
3月25日
又一次检查我的程序。这次发现:有个sum函数里面,对变量多写了一个下标,于是一个向量就变成了一个元素。难怪前面的运行结果一直不对!
在改掉了这个问题以后,把程序运行了好几遍,每次结果都很理想。
回想四年前,在某个变量后面少写了一个下标,于是一个元素就变成了一个向量,导致结果错误,白白浪费了我大量的时间和精力,几个月以后我才弄明白。
而这次是多写了一个下标,又白白浪费好几天时间,还害得我熬得两眼通红、耳朵发聋(神经性耳聋)。
做科学研究真是来不得半点马虎啊。

另外,在这次编程中,我意识到了两点:
1、相对熵要选最大的,而香农熵要选最小的。
2、陈老师的博士论文和一篇发表论文,都在同一个公式上漏乘了一项。而最早提出香农熵选题法的XU(2003),则在文中有一处笔误,误把minimum写成了maximun。


生成Q矩阵的小程序,早就编完了,也成功运行过很多次。但是现在发现运算效率比较低,于是我请seeya博士帮忙优化一下。
等我拿到他优化以后的代码,运行,吓了一跳。本来这个程序要走6分钟,现在只要1秒就能搞定,而且运算结果完全相同!
学艺精湛就能大大提高效率啊!





207#
 楼主| 笔为剑 发表于 14-3-27 00:16:54 | 只看该作者

3月26日
在尝到了代码优化的甜头以后,我决定将代码深入优化。
仔细看了公式以后,发现有些在连加号里面的项其实跟这个连加号的下标无关,那么这一项的代码就不用写到for循环里去。也就是说,不需要每次循环的时候都把它重新算一遍。可以把它先算出来,然后到循环里面来调用结果。
对代码进行了这些改造,然后重新运行了香农熵的程序。结果发现,原来要7135秒才能跑一遍的程序,现在只要863秒就能完成了。哦也!这下效率提高了好几倍了!
心得就是:写代码不一定要根据公式原样来,怎么高效就怎么写,只要结果不发生错误就行。



208#
 楼主| 笔为剑 发表于 14-3-29 00:33:35 | 只看该作者

3月28日
在对代码进行优化的时候一定要小心,不能加快了运算速度却出了错误。
对KL选题法的代码逐步优化,看见这段代码的运行时间从1364秒变成368秒,再变成305秒,真开心。这下可以节约出大量时间了。


209#
 楼主| 笔为剑 发表于 14-4-1 23:41:43 | 只看该作者

4月1日
根据目前的研究进度,我对完成研究一的时间做了个估计,一估算,吓一跳:已经完成的运算量大约相当于电脑在不关机的情况下连续运算5天,而余下的运算量还要算50天!
这是不行的,要是这样算下去,时间耗不起。赶紧想办法。
联系了当年的室友涂大哥,请他帮忙租了个远程服务器,希望能加速工作。至于要耗费一些money,那就没办法了。
拿到服务器一看,靠,里面什么都没有,除了有windows之外完全是个裸机!要给它安装OFFICE,还要装MATLAB、BILOG等多个软件……
耗费了十个小时,还没把MATLAB拷完。希望明天上午能完成安装。
啊啊啊啊啊啊啊啊啊,电脑是给人解决问题的,但有时候它自己就是个问题。
服务器的运算很快,但是把文件拷过去是很慢的。也许等明天就可以让它真正派上用场了。



210#
 楼主| 笔为剑 发表于 14-4-2 18:15:41 | 只看该作者

4月2日
在涂兄的帮助下,到了中午,终于把远程服务器的office和matlab装好了。
下午来测试运行速度。咦?没有想象得那么快嘛。一个KL选题法的程序,在我的电脑上运行一遍是305秒,在服务器上运行一遍是186秒,看来它的运算速度就是我的电脑的1.64倍。
照这么算,我的研究一的第一个子研究,原来运算量是55天,现在我的电脑和服务器一起用,也要21天的时间。这个还是长了一些啊。
要不要换个配置更好的服务器呢?
另外,现在是在每种模拟条件下运行30遍,这个太多了。我决定改为运行20遍,这样可以节约三分之一的运算时间。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系我们|Free考研资料 ( 苏ICP备05011575号 )

GMT+8, 24-12-30 02:18 , Processed in 0.378645 second(s), 8 queries , Gzip On, Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表