rnnlm代码分析
这几天分析了一下rnnlm-0.3e的代码,做了一点点笔记,很多细节自己还没搞清楚,写的也非常粗略。因为懒得贴过来排版了,直接share一下evernote上的链接吧,请大家多多指正!
为像我这样的初学者了解rnnlm所需要的一些预备知识,sigmod和softmax的cost function和derivative,如何展开rnn,以及如何更新rnn的weights。
如何为孩子挑选冰球装备
我们在为孩子(包括为我自己)购买冰球装备上走了一些弯路,积累了一些经验和教训。我这里总结一下个人的心得,多为一家之言,供大家参考,请大家批评指正。
球刀鞋
推荐Bauer的Vapor系列,因为Vapor系列的鞋帮部分是比较前倾的,能帮助孩子养成滑行时下蹲的习惯。不过要注意的是,Bauer的鞋都偏瘦,如果孩子脚比较胖,可以选EE型号的(普通型号是D)。给孩子买鞋,不要贪大,大半号就可以了。鞋子太大会影响前脚尖滑行的感觉(所谓toe push)。球刀开刃时不要磨太深,日常用磨刀器保养一下就OK了。上冰时一定要给孩子穿比较厚的袜子(例如迪卡侬的轮滑袜),不容易磨脚,也更舒服一点。试鞋的时候要穿滑冰时穿的袜子。另外好一点的鞋,都可以做一下热定型,穿起来更舒服一点。建议到实体店试穿。
头盔
欧美人的头型和亚洲人的不同,亚洲人的头型是比较圆,脸比较宽的类型。头盔一定不能夹头,否则孩子会非常难受(同队的很多孩子都遇到夹头的问题)。头盔建议一定去实体店试戴。头盔建议可以买好一点的,毕竟孩子的头围长得不是那么快。例如$230左右的Bauer RE-AKT头盔,比较轻,而且比较圆(同队好多孩子的家长都买的这款)。
护具
如果孩子在115~120cm左右,可以考虑直接买Junior的S号的护具,Youth的护肘有点太单薄。如果Junior的护腿板对孩子来说有点长,可以先买Youth的。防摔裤不能太长,只要下沿和护腿板之间不要有空隙就可以了,不要盖住护腿板,否则会影响孩子的滑行动作。手套个人觉得可以买好一点的,保护手指的关节比较重要;入门级的手套,貌似手心部分遇冰容易湿,孩子的手可能因此长时间受凉。护颈和护裆都是必须要买的,平常训练也应该穿上。我就见过训练中的小朋友,裆部撞到球门柱上的情况,幸亏有带护裆。
速干衣/帽
这个不用迷信专业冰球品牌,买类似迪卡侬的速干衣就很好了,而且专业冰球品牌的号码都没有太小的。根据教练的建议,应该买长袖高领的。吸汗帽最好不要有那种很厚的沿儿,否则带上头盔容易夹头,或者也可以用吸汗的那种头巾。
球杆
5岁左右可以买Youth的,6岁左右买Junior的就可以了。Junior的拍头更大一点,容易控制住球。球杆的curve非常重要,个人感觉Reebok的P87A是比较好的选择,和它类似的还有Easton的Sakic,Warrior的Draper,CCM的Nugent-Hopkins,以及Bauer的P92等。这里有一个介绍各品牌球杆pattern的网站,可以了解一下各种curve的优缺点以及适合的球员类型。对孩子来说,可以买flex比较低(弹性比较强)的球杆,有利于孩子练习传球和射门等技术。
Lie(球杆和拍头的倾角,这个数越大倾角越倾向直角),大部分球杆都在4到6之间。考虑到孩子身高长的比较快,一般截短球杆的高度可以是,将球杆直立(拍头在下),不穿冰鞋的时候到眼睛的高度,穿上冰鞋到鼻子的高度。成人可以考虑到鼻子(不穿冰鞋时)或下嘴唇(穿冰鞋时),具体其实还和球杆的Lie有点关系,一般Lie比较低的可以稍微留长一点。
杆身还有一个Grip和Clear的区别,Grip的是杆身有防滑涂层。一般Youth的杆身都是Grip的;Junior/Senior的买非Grip的比较好,球杆在下方手的手心中,很多时候不是握死的,而是需要快速滑动。各品牌的高端球杆大多是True-1-Piece的,比Fused-1-Piece(杆头和杆身是熔在一起的),控球的感觉要更好一些。Warrior目前的一些中低端球杆(例如DT3/DT4/DT5)也开始用True-1-Piece了,另外他家球杆换季的时候打折比较狠,性价比很高。
球杆的重量,当然越轻越好,孩子本来手部和臂部力量就小,球杆太沉的话,对控球的技术练习有很大影响。其实对成人也是一样的。沉的球杆(或者自己加重的)可以用于专项的力量练习,但不适于日常的要求比较细腻的控球/射门练习。
最后,球杆还有一个左手/右手的区别,如果右手更有力量,通常应该选左手杆,即右手在上,左手在下的姿势。一般来说和你拖地或者用铁锨铲土的姿势是一样的,不过估计孩子们做家务的机会不多,还是看孩子怎么顺手
。
海淘
海淘的价格优势是巨大的,就是有时候到货周期比较长,建议避开美国的感恩节和圣诞节,以及国内的国庆和春节等时间段。推荐hockeymonkey.com和icewarehouse.com,其中icewarehouse超过$50免美国国内的运费,且会员能打9折。hockeymonkey比较奇怪,总额$99以内的运费是$9.99,超过之后是$14.99的运费。不过hockeymonkey上的货更全一些。海淘建议用paypal来付费,注意账单地址必须和你信用卡注册时使用的地址一致。如果是mastercard,小心汇率的陷阱(详情可以google一下paypal mastercard 汇率)。最后,通过转运公司,将货物从美国(一般海外仓库在免税州)转运到中国,转运公司会负责清关(有时会被抽关税,冰球装备是10%)。个人一直用转运中国,服务和速度整体感觉还是不错的,不过现在关闭新用户注册了…
另:本文很多参考了icewarehouse的learning center里的文章和视频,因为其视频放在youtube上的,可能国内的很多朋友不便观看,我把这些视频转到youku上了。
线性回归求解幼儿园数学题
题目的原意是要数数字有多少个圈儿。微博上的@梁斌penny和@ML_120两位讨论说可以用机器学习来求解结果,并且@ML_120同学还特别指出,这应该是一个线性回归可解的问题。我最初觉得数字有几个圈儿,怎么可能让机器学习到这个feature呢?
不过既然两位ML专业人士都认定这是个LR问题,不由得再多去想一想。如果将0-9每个数字出现的次数,作为feature vector(忽略了数字出现的次序),用线性回归的结果会如何呢?遂用octave写了一个小程序来验证一下结果,代码如下:
因为样本和参数规模都很小,故直接用Normal Equation来求解了。结果出乎意料,非常符合。最后theta的结果也非常有趣,0/6/9的权重都接近1,8的权重接近2。
theta(2:11) = 0.80769 -0.19231 -0.19231 -0.19231 -0.19231 -0.19231 0.80769 -0.19231 1.80769 0.80769
雪后的爨底下村
约好周日带国际友人去爨底下村转转,早起一看,白茫茫一片,心里有点打鼓,担心路上不好走;约好的是7点到城铁站接他,到城铁站一看,仨出口。我对这个城铁站也不熟悉,没有约哪一个出口,而这位帅哥没有国内的手机号码,这要碰不上还挺麻烦的。停在路边正在寻思,看到远处有个帅哥正穿过马路,朝我这边走过来,边走边打量我的车,身形也像,走近一看果然就是他,还是挺巧的。
路上的景色很赞,白雪挂在枝头,非常漂亮,北大西门的那条路,就已经漂亮的不像话了,可惜没有办法停下来拍两张。路上还算顺利,稍稍有两次侧滑,好在车速比较慢;9点多一点,我们就到了爨底下村,停车场只有我们一辆车。原本约这么早出门一是要避开人群,另外有点私心,因为光线是早9晚5最好嘛。我们两个都没吃早饭,在村子里找了户人家,进去要了两份大饼卷鸡蛋+棒渣粥,一则是因为有点饿,二是因为天气有点寒冷,吃得格外的香。
然后顺着村子和两侧的游览栈道走了一大圈,雪景很漂亮,狂拍了一通;行人很稀少,很安静。中午两点吃完饭再一看,雪都已经化了,早起赶路的辛苦真是值得了…
2011香港亲子游
儿子渐渐也大了,老婆和我觉得可以带他出去旅行一下了,目标就定在了香港,主要原因是有迪斯尼乐园。提前一个月就开始准备了,先是给小小办了身份证、护照、和港澳通行证;然后老婆很辛苦,在淘宝上定了各种门票,在芒果上定了机票酒店等。小小这一个月来,一直念叨着,什么时候去香港啊?终于在上个周末,一家人出发!
第一天到酒店已经6点了,找地方吃晚饭,颇费了些周折。儿子一天舟车劳顿,有点累了,晚上很快就入睡了。第二天早起去迪斯尼乐园,第一个项目去玩了飞越太空山,接着是巴斯光年(本来看了攻略要去拿FP的,结果进去的时候只有我们一家三口在玩,这是去的早的优势呀);这两个项目,小小都有些害怕,导致一上午情绪都不是很放松。小小很喜欢看米奇幻想曲和狮子王音乐剧,还有那个史迪仔的表演,对各种低龄的旋转类项目都很有兴趣。晚上9点看烟花表演,还是很精彩的。晚上到乐园旁边的好莱坞酒店,小小也是很快就睡着了,实在是累坏了。第三天继续在园里玩,若干项目玩了第二遍(疯帽子的茶杯玩了三遍)。第一次看狮子王时没有经验,做的位子虽然很靠前,但是没有办法和演员互动,第二次去看的时候,我排在第一个占了一个最好的位子还能和演员互动,加上儿子戴着一个“毛怪”的帽子,演员们都过来逗逗儿子,儿子特别的开心,还不停的问我“他们都说我什么呀?”,说你是可爱的小毛怪呀。看表演的时候一定要靠走廊坐尽量往前。总体感觉,如果要细细玩的话,香港迪斯尼乐园虽然不大,但是还是2天为宜。
第四天去海洋公园,上次和老婆来过一次,本来不在这次的计划中。考虑到带小小去看看水母馆等我们觉得比较有特色的馆,还是决定去转转,然后晚上顺便去太平山。海洋公园的熊猫馆和熊猫之旅绝对值得去看看。北京动物园里也有熊猫馆,但是人太多了,根本没办法近距离看到熊猫。来到香港,才真正“看见”熊猫了… 大部分游乐项目,小小都不能参加,身高不够1.2m,小小有点不高兴。最后玩了一个类似激流勇进的项目,小小终于开心了起来。太平山的蜡像馆,小小对里面的人物基本没什么感觉,主要是找漂亮姐姐合影,呵呵… 太平山顶的夜景对小小来说也没什么吸引力。
第五天去海港城反斗玩具城给儿子买玩具,儿子很开心… 老婆一直挂念上次去的许留山,这次带儿子一起去,吃得很开心。下午去星光大道转了一下,然后5点坐天星维港游,我和老婆都有点晕船。晚上8点,在维港看幻彩咏香江的灯光表演,拍照的位置没有选择好,儿子看得很开心,然后问怎么这么短啊,的确是时间不长,呵呵
然后晚上9点才吃晚饭,回到酒店儿子还是很兴奋,那着他新买的玩具,玩了半天才肯睡觉。不过一个哈欠过后,就睡着了…
第6天就是回程了,飞机晚点,因为导航系统的故障,两次返回停机坪维修,迟了约两个小时才起飞。到北京还堵车,快10点才回到家吃了晚饭。这几天可是累坏了,我感觉后面几天,我的腰跟断了一样,走不了几步,就酸痛起来。不过终于回到家了…
798…
周六带儿子去了趟798,一来是让儿子感受一些“艺术气息”,二来是用新入的5DII多做些练习。作为土鳖的我,不是很能欣赏那里的“艺术品味”,而且很多展厅也不适合小朋友去参观。很多长枪短跑的摄友,还有很多学生,聚集在各个标志性景点前。其中各色小巷,有很多有趣的小店,不过店内基本不允许拍照,无法呈现给各位了。总体来说,此行感觉一般…
废片若干:
用GPU加速拼音输入法?
看到IBM申请了用GPU加速数据库的专利,想起来自己之前还有过用GPU来加速拼音输入法的想法,当时写在了twitter上,幸亏当初有在google reader里订阅了twitter中有关sunpinyin的关键字搜索,否则还真翻不出来了呢…
Jun/16, 2011:
这几天我一直在想,能否用GPU来加速输入法,我可以把SunPinyin Syllable Graph的所有组合,发到GPU上去开足够多的线程做并行搜索,或者在做viterbi时,栅格间的状态节点转移,也可以放到GPU上来并行运算,可大幅度提高beem宽度… 个人倾向于第一种方式…
当时还和熟悉GPU/OpenCL的@reminisce1989同学探讨来着,reminisce1989同学认为用GPU加速Graph算法是很困难的,不过后来reminisce1989同学好像删推了,没有原推可以refer了。
yongsun: @reminisce1989 @jjgod 既然是基础服务,肯定不能随便down掉,应该是可以想办法避免的… 我的想法主要是,现在sunpinyin的搜索规模还很小,不知道能否借助GPU来大幅提高搜索的规模,回头有问题还要向您请教了
reminisce1989: @yongsun @jjgod 最后提醒一下,GPU是不支持指针的(或者说只能模拟指针)。而我不知道你的sunpinyin用的搜索是什么图算法。如果用到任何常规图论算法,不用说难用OpenCL之类的语言实现,实现了效率也提不上去,因为是非顺序化读取,而且还要考虑拷贝数据的时间。
后来,我仔细阅读了OpenGL的一些文章和书籍,觉得应该是有希望的,不过一直没有时间去做实验,先记录在这里吧…
关于触摸屏输入法误按键纠错的一点想法
现在许多用于触摸屏的输入法,都有误按键纠错的功能,例如本意是按下i,但由于键盘比较小而手指比较粗,实际按下的是o,输入法可以自动将其修正为i。Wi和Sogou的手机输入法都支持这个功能,据说Sogou的纠错比较aggressive。不过目前看来,好像还没有人考虑用户手持手机的习惯,例如我是左撇子,那么容易误按的键和右手用户是不同的,具体来说,左撇子在按屏幕右方的按键时,容易向左侧偏;还有如果我是习惯用双手拿着手机进行输入,这个容易误按的键也是有所不同的。
前两天有一则新闻,是关于重力感应器可以用来截获用户输入内容的,而且原文是说用户将手机平放在桌子上,重力感应也可以达到如此的精度。我由此想到,是否可以通过重力感应器和电子罗盘,甚至陀螺仪,来判断当前用户手持手机的方式,例如是单左/右手,还是双手等。在判断出手持的方式(或姿势)之后,调整纠错的行为,使之更符合用户的使用场景。
我的初步想法是,在单手持机时,用户按比较远的键时,手机会有一定的转动或位置移动的轨迹。左手持机和右手持机的模式,可能会不同。如果我们能总结出一些pattern,就可以做一些工作了…
不过,还不清楚是否已经有类似的工作已经开展了,或者在技术上是否真正可行。希望大家多给些意见…
Gibbs采样的粗浅理解
前段时间一直在看LDA,原论文采用的Variational Inference有点看不懂,后来看到很多人推崇Gibbs采样是求LDA参数的一种非常有效的方式,于是就埋头去看Gibbs采样去了。不过还是有些云里雾里,这里记下一些自己粗浅的理解,请大家批评指正…
1. MC积分巧妙的把对解析式的积分,拆解成一个概率期望问题,并通过大量采样来得到近似的期望;为了将采样集中在概率比较大的地方,提出了多种采样方法,例如rejection,importance,sampling-importance-resampling等等,MCMC就是其中的一种…
2. MCMC中的MH算法所构造的Markov链,其状态节点x^(t),是在样本空间X上,⑴ 其构造方法是具有Markov性质的 ⑵ 且MH kernel满足交换性 P(j→k) π_j = P(k→j) π_k;因此MH构造的是一个非周期不可约稳定收敛的马氏链…
3. 而因为Gibbs采样是MH算法的一种特例(α==1),因此可以保证Gibbs抽取的样本,也构成一个非周期不可约稳定收敛的马氏链;Gibbs采样适用于样本是两维或以上的情况;通过积分去除掉相关但是不感兴趣的变量,称为“collapsed”的Gibbs采样;并且个人的一个感觉是,观测量所直接依赖的那些变量是不能被积分掉的,否则无法有效的进行抽样…
4. Gibbs采样中的概率 P(z_i|Z_\i),(其中Z_\i表示不含有z_i的向量),只是用来进行下一个随机采样(z_i的采样服从这个条件概率的分布),而最后反复迭代得到的关于z的分布,可以用count(z)/sample_numbers,来近似得到。而这个P(z)也是Gibbs采样形成的Markov链的收敛后的概率分布…
参考:






