124行python代码写一个中国象棋引擎

前几天在和别人聊天的时候谈到 sunfish 这个开源项目,这是一个只用了111行python代码写成的国际象棋引擎,这个111行引擎本身还不弱。聊天结束后,我几乎立刻有了兴趣在中国象棋上复刻一版sunfish,于是我也这么做了。实际上代码工作顺利地难以置信,短短两天的部分业余时间就已经完成了算法的移植工作,产出了一个只用124行代码就实现的中国象棋引擎elephantfish (github地址https://github.com/bupticybee/elephantfish)。

至于棋力嘛,对于如此精简的中国象棋引擎我本来也没有什么期望,我自己和elephantfish下了两盘棋,由于太久没有下象棋,我两盘都不小心被抓住了漏洞输了,我也将elephantfish和象棋小巫师的傻瓜难度做了对弈,结果是思考时间为1秒的elephantfish不敌象棋小巫师,当思考时间扩展到5秒时终于可以下过了(但此时象棋小巫师思考深度为2,elephantfish思考深度为7~9,所以在局面评估函数上实际进步空间还非常大)。

» Continue Reading (about 2284 words)

深入理解alpha go的方法并应用到中国象棋[草稿]

注意,这篇文章并不是一个单独的博客文章,这只是一个草稿,在之后的时间里我会把这篇草稿整理成一篇文章。

ps: 本草稿配合 https://github.com/bupticybee/icyChessZero 食用

我训练了两种policy network,一种如alpha-go-zero论文中一样,policy的目标是棋子(from-to)的笛卡尔积,另一种方法是我的一个idea,在这个idea中我把policy network分为两部分,select网络和move网络,一个负责选择要移动的棋子,另一个负责选择棋子移动的位置,但是从表现来看,我给予很大希望的select-move two-stage网络并没有比alpha-go zero的网络表现出色。

» Continue Reading (about 2863 words)

icytranslate api 使用指南

icytranslate 是一个开源的英文到中文的翻译系统,你可以通过以下两个工程搭建自己的翻译api和翻译平台:

  1. icytranslate_api
  2. icytranslate_website

如果你不想搭建自己的翻译平台和api系统,又想要使用icytranslate的功能的话,我们提供以下api:

» Continue Reading (about 463 words)

Icy translate 英中翻译系统上线

Icytranslate 是一个完全开源的英文-中文的神经机器翻译系统(NMT),现在这个系统仍有缺陷,为了把一个翻译系统部署到我内存和cpu都不是很好的服务器上我也是在模型上花了点功夫,做了一些妥协,现在这个翻译系统大概可以把高中英语作文水平的句子翻译得比较能看,在更高难度的文章上表现就开始不太好。这篇文章会描述翻译模型的构建和训练过程,并且公布icytranslate的github地址,一方面希望能给对这方面感兴趣的人一个完整的参考,另一方面希望有更厉害的人能够参与进来,提一些pull request,一起改进这个系统。

» Continue Reading (about 2755 words)

icyface api 使用指南

icyface 是一个开源的人脸识别系统,提供人脸检测和人脸对比服务,大家可以在github上找到两个工程:

  1. icyface_offline
  2. icyface_api

这两个工程分别是icyface的模型训练部分和restful api 部分,也可以在 icyface官网 先体验一下demo,如果实在没有条件搭建自己的模型,我们也提供restful api:

» Continue Reading (about 590 words)

Icyface 人脸识别平台上线

icyface是一个人脸识别平台,提供基础的人脸检测和人脸比较方案,icyface 目前在lfw数据集上达到95%的准确率,仍需要后续的迭代,同时icyface 完全开源,从网站,api,到训练模型的代码,一方面是希望作为一个baseline 可能会对真正研究这方面的同学有一些启发,其次是由于并没有很深入地研究人脸识别这块,很多可以做的事情也都暂时没做(下面会提到),所以也希望有更多地人可以参与进来,提出一些有用的意见,或在github者提交自己的pr,这样相信对大家都会很有收益。

icyface可以通过下面这个链接访问:http://face.icybee.cn/

» Continue Reading (about 2316 words)

使用keras训练一个区分不同人声音的模型

随着tensorflow,keras,tflearn,mxnet这种深度学习库的完善,深度学习的门槛降低,很多之前很难的领域都开始对小白开放,比如语音领域,在深度学习火起来之前,语音识别和图像识别这种领域,没有很深的基本功和领域知识,根本不可能踏足,但是时代已经变了...

» Continue Reading (about 1852 words)

用tensflow实现word2vec

word2vec是一个google提出的,用于学习词嵌入的模型,模型可以学习每个短语的语义,并对其进行向量化 实现参考了一部分github tensoflow demo 的代码,最后的结果如下,可以看到算法还是找出一些语义相近的词的:

» Continue Reading (about 3440 words)