Pycon 2016 tensorflow 研讨会总结 — tensorflow 手把手入门, 用”人话”解释CNN #第三讲 CNN

上一期我们讲到Pycon 2016 tensorflow 研讨会总结 — tensorflow 手把手入门 #第二讲 word2vec . 今天是我们第三讲, 仔细讲一下CNN.

所讲解的Workshop地址:http://bit.ly/tf-workshop-slides
示例代码地址:https://github.com/amygdala/tensorflow-workshop

首先什么是CNN? 其实, 用”人话”简洁地说, 卷积神经网络关键就在于”卷积”二字, 卷积是指神经网络对输入的特征提取的方法不同. 学过卷积的同学一定知道, 在通信中, 卷积是对输入信号经过持续的转换, 持续输出另一组信号的过程.

convolution_of_box_signal_with_itself2

上图来自维基百科, 经过红色方框的持续转换, 我们关注红色方框和蓝色方框的重叠面积, 于是我们得到新的输出: 黑色线的函数. 这正是通过卷积生成新函数的过程. 继续阅读Pycon 2016 tensorflow 研讨会总结 — tensorflow 手把手入门, 用”人话”解释CNN #第三讲 CNN

聊聊集成学习和”多样性”, “差异性”的那些事儿~

在第3期 “#3 集成学习–机器学习中的群策群力” 中我们谈到, 集成学习是使用一系列学习器进行学习,以某种规则把各个学习结果进行整合,从而获得比基学习器有更好学习效果集成学习器.

集成学习之所以有更好的学习效果, 与单个基学习器的“多样性”或者说“差异性”密不可分.

正像大自然万物的多样性随处可见, 生物繁衍产生下一代的过程.

集成学习的关键是允许每个单个学习器有各自的差异性, 同时又有一定错误率上界的情况下, 集成所有单个学习器. 正如在繁衍下一代时, 父母各自贡献自己的DNA片段, 取长补短, 去重组得到新的下一代基因组合.

对此, [Krogh and Vedelsby, 1995]给出了一个称之为”误差-分歧分解“(error-ambiguity decomposition)的漂亮式子:

E =\overline{E} - \overline{A}

E 表示集成后模型的泛化误差. 继续阅读聊聊集成学习和”多样性”, “差异性”的那些事儿~

五分钟解释什么是蒙特卡罗(Monte Carlo Method)方法

我们经常在各类算法中看到”蒙特卡罗”(Monte Carlo)的字样, 比如MCMC(Markov Chain Monte Carlo) , 还有AlphaGo使用的蒙特卡洛搜索树. 其实, “蒙特卡罗”并不是一个特定算法, 它是一个思想或者方法的统称. 听起来很神秘, 其实用正常”人话”就能简单解释.

维基百科对蒙特卡罗方法英语:Monte Carlo method)给出的解释是:

二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。

与它对应的是确定性算法

所以说, 蒙特卡罗算出的值, 不是精确的而是一个估计, 但是在人们可以接受的错误范围.

下面是维基百科上一个很直观的例子:

330px-pi_30k

使用蒙特卡洛方法估算π值. 放置30000个随机点后,π的估算值与真实值相差0.07%.

这张图其实很简单, 就像我们玩飞镖一样, 随机地在一个方形平面上投掷30000个飞镖, 事先我们并不知道圆周率π的值究竟是多少, 但是我们知道这里有1/4的圆, 于是我们把红色面积上的点数m, 和蓝色面积上的点数n, 以及圆周率π的关系, 可以写出一个约等于的式子:

π ≈ 4m/(n+m) 继续阅读五分钟解释什么是蒙特卡罗(Monte Carlo Method)方法