匿名代理访问paypal可能遭封号

前两天空间租期快到了,就用paypal去充钱。。结果今天居然接到paypal从上海打来的电话确认我的付款行为,吓了我一跳。
网上查了查,仔细想了想,原来付款的时候忘记关代理了。。

假如使用匿名代理登录paypal付款的话,他就会直接封paypal帐号了。幸好现在他办事人性化了不少,先电话确认,才动手,否则就麻烦了。

仔细通读了一下user agreement, 又发现了好几条可能注意不到的会被paypal封号的条款

xiii.Opening multiple accounts;
开多个账户

xvi.Name on the bank account associated with the PayPal account does not match the name on the PayPal account;
银行账户名和paypal账户名称不符。

xviii.Use of an anonymizing proxy;
使用匿名代理

xxvi.Logging in from a country not included on PayPal’s permitted countries list.
从不符合paypal允许的国家登录

看来凡是跟钱有关的事情都必须小心谨慎,并且“行不更名做不改姓”,否则出了问题讲都讲不清楚。

最后引用一下月光博客遇到的类似问题,供大家借鉴参考。PayPal帐号的冻结和解冻

goo.gl提供丰富链接信息

google不愧是数据驱动的公司。。数据在他们眼里就是一切。
连做一个缩短网址服务,也不忘任何数据采集。。。

光是这样还不够,每个链接下面还有details。。

这让我想起那个数学家消防员的笑话。。总是把问题转换为一个已知可解的问题。。当然,这是对的。。google通过数据得到了他想要的一切,所以他想把一切都变成数据,都变成他想要的。这是完全正确的。我只是被这种疯狂的想法震慑到了罢了。
做好一件事情。那就够了。然后把所有的事情全都转化成那件事情就行了。
国内很多企业,或者不要说那么大吧,就说身边的人,说自己以及身边的同学吧。。可能缺乏的就是这种钻劲。。其实只需老老实实做好一件事情就可以了。然后需要做的只是把别的事情变成这件事的勇气和想象力而已。。

PS..google一直在SNS领域打败仗呢。。不知他们的数据驱动思维什么时候能取得胜利。。遥祝。。又或者twitter假如被google购买了的话,一定会被这帮工程师脑子给彻底数据化吧。。。

最搓的隐藏按钮

我的chrome装了个ad-block扩展,最近他更新了,索要了更多的权限,还增加了一个闪闪亮的工具栏按钮。
我喜欢他以前不声不响的样子,所以想试试看能否隐藏那个按钮,一看选项,还真有!

于是兴奋的点了下去。结果发现还挺复杂。。。

原来。。其实就是这么一回事。。。

他。。他让我把按钮拖动到最右边,然后拖动地址栏把它挤出去。。。这。。这也可以算是一个功能选项吗。。。orz|||

汗到爆。。。|||

星际2 – 虫族不弱

最近打游戏打得比较high,跟 @rainux 聊了很多战术的问题忽然让我有了纸上谈兵的激情。。

最近大家一直嚷嚷虫族太弱之类的,我最开始玩这个游戏的时候也有深刻的同感,并且立刻抛弃了虫族。。曾经的狂狗不狂了,曾经的刺蛇海不霸道了,新生代的小强打不过mmm, tank, immortal甚至stalker。飞龙不能聚群了感觉冲劲变弱。甚至sc1中的法宝lurker还给暴雪收回了。过去在sc1中所有常用的打法在sc2中似乎都不再有效。

不过后来玩2v2选了random,在反复用z失败之后终于发现了虫族其实不弱。

虫族不是被削弱了,只是他相对sc1的改动是最巨大的。即使是sc1中原有的单位,狗,刺蛇,飞龙,巨象,在新版游戏中的角色也改变了。甚至queen的出现也大大改变了虫族的经济发展模式。由于这个巨大的改变,使得大家对新虫族的理解和适应是最低的。这也是战网上zer少的原因。越是zer少,其战术就需要越慢的时间才能开发出来。所以我越来越理解暴雪的淡定。他们确实是在等待玩家逐渐熟悉和理解z,并开发出合理的战术。

在我看来虫族相对sc1的最大改变是对科技的依赖提高了。在sc1里,扩张和经济是虫族的轴心。狗海,刺蛇。只要1本科技和两个科技建筑就足以构成虫族的绝对主力,2本科技加上一项升级或一个科技建筑,就能得到地刺或飞龙。从而令虫族得到几乎所有他想要的。

狗。狗的威力确实是减弱了。狗的作用在sc2是从主力的角色变成骚扰型机动单位。相对狗的战力,他的速度是个更大的优势。善用他的速度的话,就能开发出更多的有趣的战术。

刺蛇。刺蛇在sc2中提高到了tier 2.5。价格也提高了一倍。刺蛇的价格跟神族的stalker差不多,只是更废气体。而输出则明显超过stalker。可惜的是,生存能力也大大下降。刺蛇不再是虫族的绝对主力。不再可能出现过去的5队刺蛇狂舞躲闪电的华丽场面了。他是虫族的脆弱的高输出火力,需要前方肉盾和后方法师的支援。并且,由于其价格变得更费气体(100矿50气 vs 原版的75矿25气, 矿气消费比例从3:1升到了2:1),因此想要用他做绝对主力的话经济也不支持。肯定会严重缺气体。因此使用它的方式应该重新设计,而不是照搬原版的刺蛇海。

飞龙。飞龙是sc2中对原版修改最少的单位。但是他的变身成为对地火力的技能移植到了corrupter的身上。虽然神族没有了海盗船,人族没有了瓦格雷,不过神族的凤凰和人族的维京对飞龙的控制能力也还保持差不多原状。因此飞龙战术几乎可以说是保留了原版的味道。只不过人类的thor和现在带盾牌的机枪兵给飞龙的压力更大了。加上狗的威力相对原版下滑。因此这个战术尤其对人类还需要思考。相反神族对抗飞龙似乎只能用stalker和凤凰。因此飞龙对神族的压力应该还是不错的。

所以说原版引进的单位似乎都有减弱或者说角色改变,因此在新版中使用虫族必须提高对科技的重视。

前面说到,原版虫族最想要的东西几乎都是在tier 1.5 – tier 2.5得到的。而在新版中几乎都要在tier 2.5 – tier 3才能得到。刺蛇,飞龙之外,虫族新利器infestor和新版本巨象也是在这个高科技等级得到的。没有了地刺,不是说虫族就不能活了。infestor的定身技能绝对是比地刺更好用的范围伤害/控制。前面提到刺蛇脆弱需要支援,而这一技能绝对是刺蛇的绝佳支援。加上控制敌人单位的技能,对使用巨像的神族,使用thor的人族都是严峻的挑战。你甚至可以在前方作战的同时让infestor潜行到人类阵地的后方去感染敌人的tank。加上他潜行入敌人分矿孵化大量感染机枪兵的骚扰能力,绝对是虫族MVP。擅用infestor绝对能给虫族带来非常多的可能性。可惜的是目前SC2社区似乎对这个单位的重视不够。

然后就是新版本的巨象了。这个东西的威力大家应该已经看到了。过去巨象只有单体伤害,因此只是当作肉盾。现在有了范围伤害,几乎对任何东西都有效。神族可能只有虚光舰和不朽能对付他。而人族必须用坦克和marauder才行。而这些东西在狗和infestor的辅助下也都能压制住。使用飞龙骚扰震慑和压迫对方并且查明对方兵力分布的情况下,抓住时机用巨象冲击敌人,能得到非常好的效果。

最最后是BroodLord了。这个东西我用的不多,被对手用的时候也没怎么输过,所以暂时无法提出设想了。他的确是不错的火力输出,皮也厚得可以。发射的小虫子还有肉盾效果,确实是很有趣的设计。但是移动速度太慢,考虑到敌人空军威胁的话,需要飞龙和corrupter的辅助,所以整体军队的造价就成问题。必须到3矿4矿才考虑。不过前期用少量BroodLord对付人类的坦克估计效果会不错。主要是造成坦克的友军火力误伤吧。对神族的不朽应该也会有不错的效果。

好吧,总结一下就是说虫族可以考虑的战术还是非常丰富的。现在虫族社区整体不强的原因很大程度是因为对虫族这个变化最大的种族还不是特别适应。毕竟很多人还是愿意采用sc1的传统打法借鉴过来。这也是人族表现得最强的原因。因为mmm的打法跟过去的mm+科学球的组合相比只有增强没有减弱。

当然我自己其实是菜鸟,最近才打到白金联赛,所以以上主要是YY为主。。欢迎大家板砖啦~~
能讨论的话说不定会有新的想法呢~~

10000小时的自勉

今天又读了励志文章。。说是无论任何职业,只需训练10000小时便可达到世界顶尖水平。

其实这个理论很早之前在《读者》上看到过,说是训练3000小时可达到专业水平,训练10000小时可达到世界级别。当时虽然看得热血沸腾,可惜很快就把这事情忘记了。

不管怎么说,莫名其妙的再次被点燃了。果然励志文章就是像吸毒一样有效啊。。

虽然从初中开始玩VB和TURBO C,到目前为止,总共练习过多少个小时编程呢?估计不多。上大学之前,每个月能练习几个小时就不错了。对什么都只是一知半解,并且只能在家长不在的时候偷着做些实际的coding。大学四年确实做了一些项目,不过大一大二其实还是混混为主,每天能有2小时的练习时间就差不多了。算上寒暑假之类,只能给算1小时每天。大三大四开始有加班加点干活的习惯了,并且假期的时间基本上也都慢慢利用起来了。 可以算每天工作2小时了吧。这样算来,到目前为止我在程序技能上的训练大概是2千小时左右。

所以今后什么打算呢?在北京实习的时候我发现每天工作4个小时是效率最高的。虽然在公司蹲着的时间可能要10个小时都不止,但实际上coding的时间其实差不多也就4个小时。除了自己开小差之外,还要开会,跟同事和boss交换意见汇报情况问问题或者解答问题,发邮件到其他部门询问接口变化或者bug修复情况等等等。。。总之我给自己定的要求不会太高,就是4个小时。

说实话,在学校读书这段时间,想要保持4小时工作时间还是很有困难的。毕竟白天还有课,还要应付考试和做作业。

假如白天上一整天课的话,从7点开始工作做到11点休息,是4个小时,不过考虑到开小差的情况,周末需增加工作量。也就是说,能满足每周工作28小时就可以了。根据我的课程表,一周有两天是全天课有三天是全天休息,于是工作计划定为2h 4h 4h 2h 6h 6h 6h 就差不多了。假如能坚持每天4小时工作5年的话,就能达到7000多个小时的训练量,加上大学积累的2000小时左右就能接近10000小时这个数字了。怎么样,想想就热血沸腾吧。。

不过这个目标是不可能做到的,因为这4个小时的训练,必须练习的是自己不熟悉的内容。而毕业之后进入公司,多半是重复劳动,不可能让你一直学新东西的。当然工作之余可以自己参与开源项目或者玩topcoder, 但精力有限是不可能做到足额时间的。因此这个计算要折半。假如我保持旺盛精力不断学习不断努力工作的话,10年之后就能接近10000小时的训练积累了。

接下来是内容。每天训练4个小时,做什么内容呢?五年这么长的时间是无法预计的,不过我可以考虑今年的目标。我现在手头有一个网站外包项目,一个RFID课程项目,一个uC/OS单片机移植项目,说起来都算是不熟悉的内容,在12月份之前完成,只需高密度工作就能保证训练时间了。之前的AIIDE比赛虽然结果很糟糕,但无论如何已经开始学习机器学习的知识了,接下来就是把他写成论文,先解决研究生毕业的问题,然后看看是否有其他的事情可以做,或者是否有兴趣相投的同学一道共同探讨。说到比赛,chaosBB同学成绩不错啊,这里先祝贺一下,有机会希望能跟你多交流切磋呢~

除了开发和工程的训练,另一方面就是领域知识和学科知识。帮老师做网站外包,看似只是苦力,但我认为这是了解商业领域知识的大好机会,尤其这次项目涉及到在线付款仓储物流等种种内容,能学到的东西应该不少。接下来我那个超级能忽悠的导师又接到或者正准备接好几个项目,有团购相关的,有物流平台相关的,能继续帮他做是情的话,对商务领域的知识学习一定是有帮助的。

至于学科知识,这就要靠个人修为了。本来打算在浙大这两年把zoj的题好好刷一刷,谁知道一进校门项目就这么紧,并且在校时间缩短成不到一年,估计是没时间练习了。不过技术文章一直都在看,对算法的理解慢慢在深化。我越来越发现,其实真正重要的不是掌握很多花哨的算法和数据结构,而是要对算法的基本常识理解得更加深入,对一些最基本最简单的算法要有更深刻的理解和认识。最初学算法的时候,我对线性结构和顺序访问不屑一顾。觉得二叉树啦堆啦快排啦什么的多牛逼(嗤之以鼻的同学请自行替换成线段树、斐波那契堆、哈希等等更高级物。。。),为何还要看这些几乎算不上算法的算法。可是经过几年时间慢慢熟悉了这些东西,最初那种对高级算法的新奇劲过去了,才发现其实朴素才是美。所谓kiss才是真。归根结底,真正常用、强大而有效的数据结构只有三种,数组,链表和堆栈。而数组又是基本的基本。很多高深的算法,其实只是更加高效的利用数组;很多神奇的数据结构,无非也是以某种顺序存储在数组里。这也是更多小时的训练带来的效果吧。以此而论即使没有更多的时间去刷zoj,能把对算法的理解领悟一点一点用到工程中去并且不断精雕细琢的话,算法的修为一定能有长进的吧。实习期间做的恰好是性能分析,感觉对复杂度、性能瓶颈等问题的嗅觉更敏感了,也写了一些小工具去分析代码质量。以后继续保持严谨的开发习惯的话,这些技能的提高应该能继续吧。

前一节讲的是算法,学科知识当然不只这个了,只不过这个是基础。此外必修课当然是操作系统和网络,好在学嵌入式学单片机学驱动开发学物联网,这些知识在校在职应该都会慢慢接触。至于机器学习作为我的研究兴趣点,在可预见的两三年内应该也会继续钻研。另外保持大量阅读技术类的新闻的话,也会磨砺自己的技能吧。因此每天花在reader上的2小时,绝不算是白费呢。

最后说说英文吧。假期里下载了一堆futurama,没有字幕,完全是裸看的。一开始很难熬,一集要反复看两三遍才看明白什么意思,才尴尬的找到已经笑不出的笑点。。。然慢慢看了几季之后,已经可以几乎不费力的理解大部分内容,并且确切知道生词出现在什么位置。甚至可以边看边给弟弟做翻译。。后来打星际,上战网看贴,感觉已经没有以前读英文的那种畏难情绪了。慢慢熟悉之后感觉读英文并不比读中文累多少,当然速度还比不上中文啦,毕竟有生词这个障碍。这就是更多小时的训练的反馈吧。以此作为激励,其他的事情也是一样的,只要坚持努力,一定会有好结果的~

Chrome同步…桌面同步

大学时期有过一个同步桌面的想法,就是说他能做到同步桌面主题,你安装的程序,你的文档,等等,反正就是做到你用两台不同的机器,只要装有一个客户端,他就帮你把两台机器搞成同样的软件环境。当然啦,那个时候只是想法。毕竟尤其是应用程序这一步,很难做到同步,正版软件获得不到权限当然是最主要的问题,除此之外一方面是存储和传输的成本,另一方面则是安装和配置的复杂度。(例如数据库之类,很难做到自动安装配置)

然而今天才看到chrome的同步已经远远超出书签的范围,包含了扩展、配置信息、主题,全部。我才明白这个桌面同步的想法,在本地操作系统时代无法解决,在云系统阶段,就迎刃而解了。想想看chrome就是一个操作系统,那么扩展就是应用程序,书签就是文档,主题、配置信息不一而足。有了这些轻量化的信息,两个系统就可以变成完全相同的设置。甚至可以做到,同一部硬件,谁登录就变成什么样子。两个不同的帐号使用看上去完全不同。

未来果然还是值得期待啊。

google social circle

you can always find google trying new things… challenging the fields they are not good at…
and this time I just find there social circle idea~ seemed cool as a search instruction

as you search, they try to find what your friends said about it on twitter or there blog…(ok this time it’s me myself…=_=)

I follow the link and find google just use the link submitted by the users to the google profile as the information sources… It’s just smart, and included from blog, twitter, flickr, all the way to douban and xiaonei…

as facebook beating google to become the most visited web site, google is definitely finding some way to fight back… I just enjoy the war ;->

博客访问统计

不知不觉博客也写了半年多了,统计一下大家愿意看什么样的文章,聊以自慰。。

从去年12月建立博客以来,迎来652次绝对独立访问,1422PV,最高单日PV 72次,最高单日绝对独立访问30次。平均浏览时长1min32s。

最高独立访问的标题是《chrome无敌插件-Nothing》,总计144次Unique PV,平均浏览时间1min47s。那么短的东西居然平均被看了1分多钟,很感动。。第二名就是愤青文了《谷歌撤离中国及其他》,35次独立访问,平均浏览时间4min46s。文章写得长了浪费大家时间了深表歉意。。第三名是瞎想文,《时间并不是物质》,平均浏览时间只有50s,果然写得太乏味了多数人不爱看。。独立访问31次。第四名《宅男搭讪手册》,扯淡文,30独立访问,平均浏览时间1min7s。第五名《Google pac man》,算是网络热点吧,28独立访问,平均浏览时间1min14s。这些文章之所以看的人多,都是因为有twitter啦,renren啦或者其他的什么有人分享了,然后流量就会一直有保持。那个时间物质的文章,我是自己贴到豆瓣上去公关了一把,结果引来了8个访问。。。

之所以罗罗嗦嗦写到第五名,是发现这前五名几乎包括了我喜欢写的所有类型的文章,网络、时事、猜想、趣事、扯淡。唯一不包含的就是技术类文章。果然既然不是技术牛人,技术文章只能是写给自己看而已。不过本来就是做笔记用的嘛,也是在预料之内的。

然后来看搜索关键字。搜索关键字第一名仍然是chrome nothing(我把相关类似的加在一起算了),独立访问量19,比第二名高出近一倍。第二名是lisp,看来这个还是大家关注的,并且了解的人少,所以搜到我这里来了。可惜我写的内容无关lisp实质,只是泛泛分析lisp原理,估计对大家帮助不大。独立访问量11。第三名是starcraft ai,独立访问量10。第四名图形设计心得。独立访问量7。看来技术文章虽然没有人看,但是还是有人搜的。可惜由于我讨论的问题不太靠谱,搜进来看得不耐烦就走掉了。

xubenyang.me, pushchen.com, atatstone.com, dodowoo.info, justokay.spaces.live.com 引用进来累计30多次访问,而且平均在线时间也还不错。这里应该感谢同学们对我的关注哈~~我在matrix67.com发言留了地址,引来了5次访问,尤其是page/visit比3.4,平均浏览时间1min30s,看来一者傍了大牛就是好,二者果然看matrix67的人大概兴趣爱好都差不多,所以有认真看我写的东西。。

google.com进来的访问有82次之多,而且有1.8的page/visits比和2min8s的浏览时间。我想这些访问应该是从google reader进来的。因为这些访问多数没有对应的关键字记录。。。至少说明rss全文输出仍然能得到很多访问量呢。不过不理解大家是为什么rss读过了还有点进来看呢?尤其是在我这里也没什么人写回复的情况下。。

主要的看客还是上海的同学们啊,有201次访问。差不多可以说每2天就会有一个上海的访问吧,平均来说的话。北京也有102次之多。可能是一些去北京实习的同学?再就是北京实习时候的同事吧。上海的page/visits比是1.5左右,北京达到2.4左右。上海平均浏览时间1min20s左右,北京平均浏览时间3min30s左右。以此而论北京那边的看客可能偏技术的比较多,所以跟我的兴趣比较相符吧。。另外南京成都深圳武汉广州等地也有超过10次的访问量。广州和韶关(佛山也在附近?)的访问想必只有5+了呵呵。。其他还有遍布祖国各地的长尾呵呵,我也用这个词吧。中国送来621次访问来自113座城市。不过里面有很多城市是重复了的,那也有100座城市左右吧。另外台北三重市居然送来45次访问。估计是实习时候的台湾室友介绍的吧。那时候我正好写了一些愤青文,可能是台湾人比较喜闻乐见了类型。。。台湾总计送来72次访问,来自13座城市。美国居然也送来了65次访问。可能里面有咱院出去读书的同学吧?不过也有可能是代理翻墙然后看我博的。尤其是加利福尼亚送来了16次访问,page/visits比1.5,平均浏览时长45s。是学长吗?是同学吗?[编辑]呜果然是代理…就是我自己…这个部分我编辑了很多次了。。一开始我我觉得这么多的访问次数肯定是我了。。不过仔细看过后发现我的代理在犹他州,貌似ga很智能,不会记录自己的IP。。估计是通过过滤登录过ga的IP或cookie来做的吧。。…[/编辑]另外纽约和密歇根也有多次访问超过1分钟的记录。可能也是中国人吧。。瑞典乌普萨拉送来了4次访问平均时长3min5s。这必然是交换的同学了。不知道是哪一位啊~~先感谢一下。

访问次数而言,有一个人超过了100次,那当然是我自己。。囧。。有13人超过50次。。感谢大家!!有52人在26次到50次之间。。再次感谢!!总计108人访问次数超过10次,大家都是好人!!热泪盈眶啦!!

从浏览器上说,chrome第一42.44%, IE第二32.28%, FF第三21.44%, 剩下4%左右是opera,opera mini,mozilla之类。
操作系统,windows第一87.70%,linux第二5.87%(52次),mac第三5.08%(45次), 后面还有百分之零点几的零头,是iphone 5次,android一次,FreeBSD一次。还有一些没设定的就没办法了。比如我的黑莓他就没有记录。

分辨率上说,访问我的最高分辨率居然是1920×1200,还访问了我18次,是同学吧?莫非是push?太吓人了!最低分辨率毫无疑问是1024×768,居然还以15.58%的比率占据排行榜第二(第一是1280×800)。为什么还有这么多人喜欢1024×768啊。。

呜有意思的事情就这么多了。。不知不觉玩了一个多小时了呢。。以后会继续写博客的吧~~

人工神经网络-ANN

最近SC AI做得差不多了,忽然想到应该写一写关于ANN和GA的科普文章呢,毕竟自己学习只是一部分,跟大家分享也很重要嘛。自己叙述一遍的话,也能考察自己掌握的程度。

ANN, artificial neural network, 即人工神经网络,是机器学习的一种模型。我学习这个其实也是读教科书,用的是卡内基梅隆大学那本machine learning。

所以先说说机器学习吧。机器学习的基本思想就是不通过编程来让计算机完全遵守人指定的死板的流程,而是通过定义一个可学习的模型,之后向这个模型不断添加<问题,答案>这样的对(正式名称是<输入样例,目标输出>),来让计算机通过经验判断下一次接收到问题的时候,应该做出怎样的回答。

其解决方案就是根据每一次的计算机回答和人指定的标准答案进行对照,假如相符,则给予鼓励;假如不相符,则给予批评(即正激励和负激励)。通过不断的训练引导计算机逐渐获得对相关知识的理解。

人工神经网络是机器学习的一个解决方案,即采取仿生的神经元结构来对计算机进行训练。由于人的神经元的复杂性,目前用于计算机研究的神经网络通常采取的是一种简化模型。他令神经元有一个输出和多个输入。神经元通过对所有的输入进行加权求和计算出结果,并以这个结果作为输出(可以想象出来,训练一个神经网络,其实就是训练他使得每一个神经元都得到正确的权值组合)。为了保持简洁性,每个神经元的输入和输出都最好保持在0~1之间。于是这里采取了一个挤压函数,将实数域映射到0~1之间的一个小集合上。通常采用的挤压函数是sigmoid函数,sigmoid(x)=1/(1+exp(-x))。当然也可使用其他有类似特点的函数变体啦。定义好神经元之后,须将神经元根据问题需要构造成神经网络。目前业界通用的较为稳定的神经网络是单向无环的结构。往往采取三层。

图片来自维基百科

第一层是输入层,根据需要,要把问题转换为一个编码,并依次作为输入给各个输入曾神经元赋值。例如,用于人脸识别的神经网络,可采取一个人脸照片的32×32的缩略图作为输入,这样的话就需要1024个输入,每个输入是0~255的像素灰度信息。有比如要从今天的天气情况推算明天的天气情况(当然实际是不可行的。。),可将想要考虑的所有天气特征依次作为输入,并传输给各个神经元。
第二层是隐藏层,它的作用是增加神经网络的复杂度,从而使神经网络可以表达更复杂的函数逻辑。已经证明,任意函数可被三层单馈神经网络(一个输入层,两个隐藏层和一个输出层)以任意精度逼近。但是,更复杂的函数就需要更多的神经单元来表征。由于我们在实现神经网络之前,往往并不能确定问题的复杂度,所以隐藏层采用的神经元数量往往是要靠经验得出的。当然也有一些动态修正的方法可以在训练的过程中增加或减少隐藏层的单元数量。
第三层是输出层,输出单元一般不使用挤压函数处理,而是让他输出线性的数据,以便同实际问题相联系。输出层同样要根据实际问题来编码。例如在人脸识别的应用中,可采取两个输出,一个表示“是人脸”,一个表示“不是人脸”,这里输出还是在0~1之间的。可采取一个阈值来确定真假,例如用>0.7表示真,<0.3表示假,之间是模糊状态。之所以采用两个输出而不是自然想到的一个,是为了稳定性。当两个神经元的输出相符时(例如“是人脸”输出0.9,“不是人脸”输出0.1),可认为模型正确得出结论;而当两个输出不符时(例如均输出0.7),则表示模型无法准确判断。

建立好模型之后就是训练了。这里采取的方法称作“梯度下降的反向传播算法”。之所以称作梯度下降,是说根据人确定的正确答案和计算机通过神经网络给出的答案之间应该会有一个差距。将这个差应用到得出这个结果的输出层上,就能得出输出层的每一个权值应该向哪个方向调整。注意到神经元输出是输入的加权和,所以权值较大的那个分量对于结果的贡献越显著,因此在训练时对他的反馈也应该相应得更明显。数学上采用方差对于权值的函数形成曲面的梯度来描写这个特征。沿着梯度下降到曲面的最小值(有时只能达到局部极小值),就是训练成功了。由于梯度从概念上说是一个无穷小增量,这里只能定义一个较小的“学习速率” η 来作为每次修正权值的增量基准。η取得太大会导致无法达到曲面的最小值(总是越过他),而太小则会导致训练的迭代次数过多,同时也会使得只能达到局部极小值(无法越过局部最小值的谷底)的问题变得严重,因此也有采用变化的η值,例如逐渐减小的η(加快训练速度),又或者带有冲量的η(越过局部最小值的谷底)。这里它的取值变成了一个复杂的研究课题这里不表了。
这就解释了什么叫做“梯度下降”,再来解释反向传播。前面说到根据输出o和标准答案t可以得到一个方差,从而修正输出单元的权值,但如何修正隐藏单元的权值呢(输入单元只有一个输入,因此没有权值也无需训练)?这就是要用到反向传播的地方。既然已经得出了修正后的输出层权值,就又可将输出层的每一个输入(即隐藏层的每一个输出)的实际值和目标值,将修正“反馈”到上一层去。当然仍然需按照每一个权值贡献不同按比例反馈。反馈之后即可得到这层单元的“目标值”了,在用这个目标值在这一层做梯度下降进行训练,这样做一直反馈到输入层为止。
总之假如能够训练使得函数达到最小值,就表示训练成功了。因为它的含义是合适的权值取值,使得模型的输出结果o和标准答案t之间的方差最小。注意由于输出单元往往不止一个所以这里o和t都是向量。方差指的是每一个单元的输出方差再求和。

好吧这些就是理论讲解啦。当然实际应用的时候对于不同的问题会有不同的变形。无论是学习速率,挤压函数,还是权值的梯度下降算法,都可以有这样或那样的改变。这些就是一方面凭经验,另一方面也靠创造性的想象力和“尝试-失败-尝试”的方法来验证啦~

链接:
维基百科-人工神经网络 http://en.wikipedia.org/wiki/Artificial_neural_network
维基百科-反向传播算法 http://en.wikipedia.org/wiki/Backpropagation
维基百科-梯度下降算法 http://en.wikipedia.org/wiki/Gradient_descent
维基百科-机器学习 http://en.wikipedia.org/wiki/Machine_learning
图书 《机器学习》 http://www.cs.cmu.edu/~tom/mlbook.html