TensorFlow

在刚开始学习使用TF的过程中,我不是很理解什么是“batch”。也经常有人问,到底minibatch是干什么的? 然而这是一个在TF中,或者说很多DL的框架中很常见的词。 这个解释我觉得比较贴切也比较容易理解。引用如下: 深度学习的优化算法,说白了就是梯度下降。每次的参数更新有两种方式。 第一种,遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度。这种方法每更新一次参数都要把数据集里的所有样本都看一遍,计算量开销大,计算速度慢,不支持在线学习,这称为Batch gradient descent,批梯度下降。 另一种,每看一个数据就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降,stochastic gradient descent。这个方法速度比较快,但是收敛性能不太好,可能在最优点附近晃来晃去,hit不到最优点。两次参数的更新也有可能互相抵消掉,造成目标函数震荡的比较剧烈。 为了克服两种方法的缺点,现在一般采用的是一种折中手段,mini-batch gradient decent,小批的梯度下降,这种方法把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面因为批的样本数与整个数据集相比小了很多,计算量也不是很大。 Michael Nielsen在这一章节也有解释,mini-batch是什么,为什么有这个东西。 Deep Learning的这一章节的5.9小节也有解释,还给出了batch的典型值。 结合上面给出的中文解释,再看这两个小节,应该会对batch有所理解。 如果您觉得作者的博客对您有用,不妨鼓励作者一下,作者将会更加努力写出高质量博客。

新手向的TensorFlow学习之路(Learning paths)

UPDATE:请看更新篇新手向的TensorFlow学习之路2 在学习Tensorflow的过程中磕磕碰碰,总结一些个人心得记录于此,志同道合之友共勉~~ 这篇文章算是新手向“纲领性”目录吧,近期正好在做一个有关TensorFlow的小项目,如果有时间就分章分篇详细写几篇TF的教程,还请大家关注本博客~ 1.翻墙:这个是个不是技术的技术,TensorFlow毕竟出自Google,官方文档访问不是很稳定,而且Google搜索的结果要比Baidu好很多。有些免费一键翻墙的软件比如Lantern,打不开就这个(在releases中下载对应操作系统版本),或者赛风。高级一点的是Shadowsocks。 在这里插一句,本来是不想说这些的,有推销嫌疑,但是有很多人文这个问题,有些推荐的梯子。我是用的是Digitalocean(这是我的推荐链接 ,使用的话你我都可以获得奖励)搭建服务器,很稳定,$5(约30人民币)一个月,1T流量(肯定是用不完的,好像超了也不收费),在服务器上跑了一个shadowsocks的服务端外加这个wordpress的博客。网上有很多搭建教程。或者如果想省事,可以与我合租,服务器已经搭建好了,简单配置即可。可以发我Gmail,在网站的About页面有。p.s. 几人合租就几分之一$5,无额外费用,程序员纯纯的友谊你懂的:) 2.Github:这是个开源程序的网站,Linux内核就在这个网站托管。Github的核心是Git,一种版本控制系统,已经逐渐取代SVN。这个网站托管了很多高质量的或者说世界顶尖的开源项目,比如TensorFlow。学习一下这个网站如何使用,注册个账号,学习一下Git的使用方法。这个网站有自己的tutorial和guide。 3.Linux: TensorFlow的主要运行平台就是Linux,目前在Windows上运行的方案是虚拟机,但是深度学习对计算要求还是比较高的,虚拟机效率不是太高,因此还是推荐在原生Linux中运行。新手推荐发行版是Ubuntu 或者Linux mint。这个可以自行搜索。学习Linux也有很多好处,因为很多开源软件都only linux的。 4.Python:这是一种非常流行的脚本语言,庞大的第三方库可以快速写出短小容易理解的代码,而且也是TensorFlow的推荐开发语言。教程太多了,这里给几个优秀的教程:官网教程,Learn Python the Hard Way,Python2.7教程 5.深度学习(Deep Learning,DL):虽然TensorFlow已经封装好了大部分DL的细节,但是如果不了解DL的相关核心概念,就会很难着手分析问题。首先强烈推荐这个教程,通读一遍,然后还有这个,可以快速浏览或者只看自己不太明白的地方,还有这个分块介绍的,还有几篇blog,这个和这个讲的是卷积神经网络。图像识别用的比较多的就是卷积神经网络,这两篇可以看看。 6.Tensorflow:前面都是铺垫,是为了更好地使用TensorFlow。官方的文档不错,可以从get started然后tutorial看起,有个中文的翻译版,但是更新不及时(官方已经v0.10,这个可能是v0.8或者v0.7),可能有坑,可以和英文对照着看,还有个TensorFlow的教程,也不错。有篇FIRST CONTACT WITH TENSORFLOW也不错。 7.优秀博客:http://acko.net/,https://bost.ocks.org/mike/,http://colah.github.io/,https://ireneli.eu/,这几个都是我在学习中遇到的非常nice的blog,有时间读读定会有所收获。 8.经典论文及书籍:收集了一些DL的经典论文&书籍,有些杂乱,不过几乎都是经典,各取所需吧。百度云地址(密码: 4w91)。各位有更好的欢迎推荐,我会整理上传。 其中,Python,DL,TensorFlow是重点,其他都是辅助, 自己感觉够用即可,无需深入。学习中遇到困难首先向搜索引擎询问。   […]