一个初级阶段的五子棋ai

一、前言

16年alpha狗接连击败李世石和柯洁后,自己就有个想法,能不能利用机器学习也鼓捣一个类似的五子棋ai?最初的想法是训练一个机器学习模型,喂给它一些棋局,让它自己能够学会落子规则,能够积累优势,最终取得胜利,而且随着下棋盘数的增加,自身的能力可以进一步的提高。但是传统的机器学习需要输入和响应,对于一局棋输入和响应又是什么呢,搜肠刮肚的把自己知道的的几种算法想了一遍,也在网上查了半天,或者模型太复杂,短时间没法掌握相关的知识,或者模型计算代价太高,动辄训练个几天,所谓远水解不了近渴,最好的能一个周末能整出一个初级的ai,能打败我就行,以后有时间功能可以慢慢加,这也是标题的由来。

Read More

浅谈Java泛型

相信每个Java程序员对泛型都不陌生,不少人也用过泛型,但是泛型中确实有些点容易让人迷惑,下面我结合自己的使用经历和理解谈谈对泛型的认识,不求面面俱到,但求切中要害。

Read More

简洁高效的Boyer-Moore算法

子串检索有着很广泛的应用,例如在文档软件中查找关键词,网站过滤敏感词,生物学家查找某种模式的基因组序列等等,很多人听说过著名的KMP算法,Boyer-Moore算法做到的更多,有迹象表明在某些情况下效率是前者的3-5倍,且实现起来更加简单,符合我简单高效的原则。

Read More

大道至简:朴素贝叶斯分类器

万物之始,大道至简,衍化至繁。

       ——ifelse(is.element(this, 道德经), 道德经, unknown)

一、背景
提到贝叶斯分类,首先来看下贝叶斯其人,贝叶斯(Thomas Bayes,1701—1761)英国牧师、业余数学家。可别小看了欧洲的牧师,孟德尔,被誉为“遗传学之父”也曾为一名神父,假如你不记得孟德尔是谁,那么你肯定记得高中生物上那个著名的豌豆实验。

Read More

三生万物:决策树

一、概述

不知怎么回事,提到决策树我就想起”道生一,一生二,二生三,三生万物“这句话,大概是因为决策树从一个根节点慢慢“长”成一棵树,也要经历“一生二,二生三”的过程。决策树本质上就是一种二叉树,根据特定的标准不停的分成左右两个子树,直到符合某种条件停止。树算法解释性强、简单直观以及接近人的决策方式使它成为流行的机器学习算法之一。当决策树与装袋法(Bag)、提升法(Boosting)结合之后,可以成为更强大的算法。

Read More

VIM中的正则表达式

VIM作为一款编辑软件有着强大的操作指令,灵活的配置方法,通过适当的组合能够实现令人眼花缭乱的功能,而正则表达式作为一门处理文本和数据的重要工具,和VIM异曲同工,通过元字符的简单组合就可以匹配千变万化的文本和数据,它是如此的强大以至于有些任务如果没有正则表达式几乎没有其他好的方法实现。下面看看这两个强大的武器是如何结合在一起的。

Read More