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 ;->

人工神经网络-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

使用chrome下载资源

以前一直不清楚怎样方便地下载网页上的资源。假如是图片自可以另存为啦。但如何下载一个flash呢?往往只能跑到缓存里面去慢慢找,很麻烦。或者用ie和迅雷的flash感知功能配合。不过总不至于为了下载个flash就非要开ie开迅雷吧。。

今天发现chrome的审查元素功能的“资源”项非常强大。无论看得见看不见的,无论藏在网页的什么位置,无论是img, 是div背景还是嵌入的富媒体(如flash或video),只要浏览器加载了,都可轻松下载。

方法自然是先打开审查元素界面啦

打开资源界面,可以看到所有加载的资源列表。假如是流媒体的话,请开始播放流媒体,让网页将缓存加载完毕。你会发现流媒体的总大小和已传输大小都已清楚地被chrome标明。

当缓存加载完毕,这里就有个小trick啦。。要双击左边显示的资源名称。。浏览器就会开始下载这个资源啦。。
注意假如同时下载多个资源的话,可能会弹出对话框,需要确认一下才行。

希望这个对大家有帮助~~

网页设计的人性和反智

今天正好又看到同学share了关于UCD的文章,就忽然想把肚子里早就有的想法说出来。

http://ucdchina.com/snap/7536 这篇文章是讨论例如展示blog的某篇内容时,给出的前后链接往往是“上一篇,下一篇”,是否改成“新一篇,旧一篇”更好,甚至还不够清晰,是不是“较新一篇,较旧一篇”更好。

其实我似乎已经在什么地方见识过“较新一篇,较旧一篇”了。不过我认为这些尝试的方向已经完全错误了。确实,网页设计应该以尽可能清晰,让用户的误操作尽可能少为原则。可是过度的注释只会导致更多的混乱。

之前就有人在讨论这个问题,说UCD的目的是让用户更少思考,随便怎么点都不会犯错。于是结果是网页变成了反智的东西。他是把人变得更傻的东西。因为在网络上你根本不需要思考,只需要按照那帮设计师给你安排好的路线去点就行了。感觉像是捕鼠夹上的一块奶酪。根据本能,你一定会这样点击那样点击。网络假如按照这种方式去设计,并没有遵循这个自然界的本来面目,也不会是最合适的。

所谓人性化的设计,应该是更加符合人性的设计,而不仅仅是把顾客当成傻逼然后随意摆弄他们(当然这句话的前提是针对相当的网络人群而言了,对老年人和小学生,采取更加亲切的界面当然是合理的)。人所处的自然界,原本就是没有那么多注释和描摹的,是留给人自己去探索的。而人,尤其是青少年,拥有的极大的好奇心,正好与这个世界的特性相适应。同样的道理,网页设计也应该在方便清晰的基础上保持简洁,额外的注释完全可以去掉,让人去想。这样反而能够给人带来足够的空间。以“上一篇,下一篇”为例,用箭头同样能得到不错的效果,当然具体还是看整体网页的布局和格调而定。

又比如搜索引擎的搜索框,是不是需要在前面加一个注呢?“搜索框:”

假如网页的安排更加合理有序,网页的功能本身就应该是自解释的,甚至达到看不懂本国文字的外国人根据网页布局的形状颜色也能猜到差不多,那么就不需要过多的文字解释啦。当然能否做到这一点也要看网页的功能类型不同而定。

因此我一直不喜欢淘宝的首页界面,改了那么多次版,只感觉一次比一次糟糕。过多的功能一次性展示在首页,繁冗的文字纠结就像电线杆上密密麻麻的小广告。不过回头想找个网站跟他对比,忽然发现不太可行。虽然国外有eBay,不过国人性格不相同嘛,无法类比。我是确实知道中国人就喜欢热热闹闹密密麻麻的那种感觉。假如页面搞得过于清冷,肯定会被人鄙视的。但就使用的方便程度上来说,我还是认为不应该把所有的内容展示在第一页,稍微分一下层次不会让用户完全没有耐心的,并且ajax的存在也完全可以在分层的前提下避免跳页。话又说回来,把所有的内容放在第一页反而耽误了整页加载的速度。其实很多用户上来想做的事情不多,可能最主要的就是登录支付宝和用那个搜索框搜索了吧,其他的东西都可以往后放。

就好比,百度把他的图片搜索mp3搜索等等都单独跳页,也没有降低其他服务的使用率嘛(当然baidu是学google的但是人家不是自称懂中国来这么。。)

于是完全没有设计过网页的人随便吼几句啦,到此为止啦。。。

火车见闻

终于回到家了…然告别网络实在痛苦…只好手机爬上来发发博…

很久没坐上海到大连的火车了。当年特快还是最好的火车,中间只停五六站,又干净人又少。现在有了动车有了高铁,特快沦为慢车。一路上什么小站都停,上来形形色色的人,大包小包挤得够呛…

有一个上海上车的大娘,带着她的儿子,没有座位。大娘说她第一次坐火车出远门,更是从没去过北方。他们是安徽到上海打工的,那位大娘干过不少工作,至少听她说先是做过环卫,现在在什么单位的厨房做事。儿子的师傅是汽车维修站的站长,于是自己应该是修汽车的吧。他们上车前才买票,请了假急急忙忙往大连赶,是要做什么呢?看焦急的样子,可是不像旅游。

旁边一个去天津的三七分,带着精英阶层的不屑和自负在快要发车的时候挤了上来。他说话的时候喜欢瞪圆两眼并发出满意的笑容,并不断将额头前面的头发拨弄到略微的秃顶上面去。说话间他曾很不屑的提到,他参与设计了世博的主题馆和日本馆。在天津买了房子,但公司给他在北京和上海也安排了住处,以及他如何不屑的拒绝了上海户口。一路上他一直在向旁边的大娘介绍火车行程,还有同样的行程还有哪些其他的车次可以坐,坐了之后会快一点还是慢一点。

坐在我旁边的是一个沉默的小伙子,长得很墩实,很黑,脸上有一块明显的红疤。一路上他都很少说话,只是不断让座给大娘,然后跑到车厢连接处去吸烟。有时我看到他站在我身边,就站起来叫他坐一坐。可他仍然很少说话。

到了天津,三七分的设计师下车了,上来了一对老夫老妻。老爷爷对老奶奶很不放心,让她去找座位,又想帮她找好让她直接走过去,后来又想扶着她过去。可是车上人又多又乱,他们的行李还没放好,老爷爷只好自己先放行李,让老奶奶自己去找座位。老爷爷是山东人,年轻的时候在东北工作,六十年代去了青海,后来到了四川,没问他是在什么地方认识的老奶奶。最近单位组织他们到秦皇岛和大连疗养旅行。

聊着聊着,安徽的大娘终于说了他们去大连的目的。她的哥哥在大连打工没有着落,后来被人骗到荒山野岭一家空心砖厂做工,已经三个月没发工资了。工人都跑光了,她哥哥也想跑,可是没钱,荒山野岭跑不远,跑出来也没饭吃也回不了安徽。他们母女俩就是要去大连把他接出来。地址应该是在瓦房店附近的福州湾。大娘很是着急,怕出事,因为听说那老板还雇了打手,逃跑失败的话,怕要被打。

这个时候,四川的老爷爷劝他应该报警,这样妥当。但是大娘又怕那空心老板有后台,那样一旦报警就更危险更糟糕了。老爷爷又提议应该向媒体求援,让新闻曝光。这样就有救了。但是这么小的事情,怕媒体又没有兴趣。我们正聊着,远远的老爷爷的老伴骂过来了,跟老爷爷说,没事净胡说什么,之类的。看来这两口子经常吵架,两个人当场就吵起来了。是老奶奶怕老爷爷说太多说错话吧。我们赶紧劝架,把两个人拉开了,这个话题也就没有在聊下去。

到了瓦房店安徽母女二人下车,大家都给他们祝福还有鼓劲。不知道他们的行动是否顺利呢…把人接出来,他们应该会来大连放松旅游的吧。

哦,毕业

恩今天拿到毕业证了

毕业典礼其实就是一场超级巨大的集体cosplay。。。相当欢乐~~

毕业照还有散伙饭实在没下限什么的。。酱油人表示低调飘过。。。

5+说某首歌很适合我,恩,很适合。。

You are beautiful,  you are beautiful ~
You are beautiful,  it’s true.

I saw your face in a crowded place, and I don’t know what to do…
’cause i’ll never be with you.

You’re beautiful, you’re beautiful ~
You’re beautiful, it’s true.

there must be an angel, with a smile on her face,
when she thought that I should be with you…
But it’s time to face the truth,
I’ll never be with you.

Continue reading

cntv的增强脚本被chrome屏蔽

今天看到一则新闻,说在ie上看cntv清晰度会比较低,而在chrome上看清晰度就会比较高。

http://www.google.org.cn/posts/chrome-world-cup-live.html

这个问题其实我也很早就发现了。因为寝室里面网速太慢,用chrome看7点和10点的比赛基本不可能,卡的要命。每几十秒钟就要缓冲一次。然而用ie看居然就能非常流畅的看完比赛。当然我也注意到了用ie看得时候前面会插播4条广告,以及清晰度大大不如chrome的情况。不过我目测的情况来说,在ie上切换成高清是没有用的,清晰度仍然很低。相反,在chrome上无论是否切换高清,清晰度也都是很高的。当然可能我的目测也有点问题吧。

一开始我以为这是cntv对ie的特殊照顾。所以又用firefox试了一下(哦哦。。firefox已经多年不用了。。)。他弹出了一个对话框,问我是否启用cntv的增强脚本。我尝试了分别选择是和否,然目测firefox的行为与ie基本上完全相同。因此也不太清楚他的增强脚本究竟是用在什么地方的。。

不过基本上可以认为,是chrome不支持或者屏蔽了一段cntv的脚本,以至于chrome上的行为与firefox和ie大不相同。不过,至少,最大的好处就是在chrome上看可以没有广告啦!

另外我的chrome还经常出现网页加载完毕,然而中间的视频flash刷不出来的情况。非常纠结。不可能是网速的问题,因为同时使用ie就能顺利刷出那个flash。

校内忘记密码新方案

很久没上校内了。。基本上是有人加我好友,才会跑上去瞄一眼来着。。
今天也是这个原因跑上去,不小心输错了密码,校内直接发了一封邮件给我,说可以通过邮件内的一个链接直接访问校内。

这个做法稍微有点spamy。如果是三次输错密码才发邮件可能更好。

不过这确实是一个忘记密码流程改善的新尝试。甚至,这还是一种取消密码的尝试。尤其是对手机用户。发送包含链接的短信到用户,假如用户的手机支持短信内的链接直接打开浏览器就更加完美了。从这个角度说,这个方案算是很有创造力吧,不知道校内是不是首创。

当然,这个方案的安全性可能会差一点。不知道这个链接是否是通过ssl传输的。我相信这个链接必然是有时效性的,来稍微保护一下安全性。前面我自己提到了发短信,由于短信便于拦截,可能这不是个好主意。。但是很多网络应用目前在通过短信发认证信息,甚至有些银行通过电话可以改密码,或者在电话上输密码来进入他们的电话银行系统。这些服务理论上是不安全的,但也在应用。毕竟不会有那么多人那么闲去天天监听无线电情报吧。。