转:【AI每日播报】从TensorFlow到Theano:横向对比七大深度学习框架
http://geek.csdn.net/news/detail/139235
说到近期的深度学习框架,TensorFlow火的不得了,虽说有专家在朋友圈大声呼吁,不能让TensorFlow形成垄断地位,但对于开发者来说,该学的东西还是要学的。
今天的播报涉及三篇TensorFlow相关技术文章。若您想要了解更多,点击题目(蓝色大字)阅读原文。
一、从TensorFlow到Theano:横向对比七大深度学习框架
在深度学习项目开始前,选择一个合适的框架是非常重要的事情。最近,来自数据科学公司 Silicon Valley Data Science 的数据工程师 Matt Rubashkin(UC Berkeley 博士)为我们带来了深度学习 7 种流行框架的深度横向对比。
以下是结论:
二、TensorFlow 图像识别功能在树莓派上的应用
上周 TensorFlow 1.0 的发布使之成为最有前景的深度学习框架,也在中国 AI 社区中掀起了学习 TensorFlow 的热潮,不过光跑例子怎能脱颖而出?本文是一篇实战派文章,介绍了作者如何创造性的将深度学习与物联网结合起来解决一个实际问题的思路和过程,非常具有启发性。
三、TensorFlow:HMM隐状态链的最优化解法
HMM(隐马尔科夫模型)有三种核心问题:
- 给定隐状态链、转移矩阵、发射矩阵,求状态链发生概率
- 给定状态链求转移矩阵和发射矩阵
- 给定状态链、转移矩阵、发射矩阵,求隐状态链。
三类问题分别对应前向-后向算法、最大熵算法、维特比算法。鉴于第三类问题本质上是优化问题,所以我尝试用TensorFlow进行求解。该方法不比维特比算法效率好,不过可以用在更加复杂的概率图模型上。
四、照亮你机器学习之路的5个Python库
机器学习令人兴奋,但具体工作复杂而困难。通常它涉及很多手动提升——汇总工作流及传输渠道,设置数据源,以及在内部部署和云部署的资源之间来回分流。
用来提高工作效率的手头工具越多越好。庆幸的是,Python 是一个威力巨大的工具语言,在大数据和机器学习之中被广泛使用。下面是 5 个 Python 库,帮助你缓解来自交易提升的重负。
- PyWren:一个带有强大前提的简单包,能使你运行基于 Python 的科学计算工作量,以作为 AWS Lambda 函数的多个例子。
- Tfdeploy:将训练过的TensorFlow 模型输出,借由 Tfdeploy,你可以在 Python 中使用模型。
- Luigi:用于解决所有通常与长期运行成批处理作业有关的管道问题。
- Kubelib:如果你采用 Kubernetes 作为完成机器学习工作的编排系统,Kubelib 为 Kubernetes 提供了一系列的 Python 接口。
- PyTorch:是 Torch 机器学习框架的一个工具,不仅为 Torch 添加了 Python 端口,也增加了许多其他的便利,比如 GPU 加速,共享内存完成多重处理等。
五、深层神经网络结构及可能存在的致命问题详解
本文对深层神经网络可能存在的致命问题进行了较为详细的阐述,可以帮助避免一些常见的坑。这些问题包括:(以下仅列举部分,点击题目,阅读原文,探索更多)
- 非凸优化:这个问题得从线性回归一族的初始化Weight说起。线性家族中,W的初始化通常被置为0.如果你曾经写过MLP的话,应该犯过这么一个错误,将隐层的初始化设为0。 然后,这个网络连基本的异或门函数[参考]都难以模拟…
- Gradient Vanish:这个问题实际上是由激活函数不当引起的,多层使用Sigmoid系函数,会使得误差从输出层开始呈指数衰减。因而,最滑稽的一个问题就是,靠近输出层的隐层训练的比较好,而靠近输入层的隐层几乎不能训练。
- 过拟合:顶层神经元在对输入数据直接点对点记忆,而不是提取出有效特征后再记忆。 这就是神经网络的最后一个致命问题:过拟合,庞大的结构和参数使得,尽管训练error降的很低,但是test error却高的离谱。