过拟合(overfit)是深度学习乃至机器学习过程中的又一大问题,通常的解决方法为L2正则化、Dropout正则化等等
使用Requests和BeautifulSoup编写简单的网络爬虫
前段时间一个任务需要获得日本所有主要城市的经纬度坐标,手头没有现成的数据,只能写一个简单的爬虫来爬取某旅游公司的页面来获得我要的经纬度数据。。采用一个方便简单的爬虫框架Request与BeautifulSoup,由于项目时间很赶,只是一个很简单的脚本,并不考虑动态页面,也没有与数据库进行交互,这部分的笔记以后再补,我会就着这次的代码简单介绍它们的使用方法
LSTM(Long Short Term Memory)与GRU(Gated Recurrent Unit)
循环神经网络(RNN)是深度神经网络最重要的的形式之一,其被广泛运用于时序形数据的处理上、例如文字、音频、视频等等;而RNN在训练的过程中同样也会发生梯度不稳定的情况,同时还面临着新的数据不断加入循环而旧的数据不断被冲淡的情况,导致一个句子中开始的部分在最终结果的影响程度中较低,于是LSTM模型就诞生并用于改善这种情况
Xavier方法用于神经网络参数初始化
之前我们学习了使用RBM对深度置信网络进行逐层训练初始化,或用类似的方法对多层深度神经网络进行预训练(pretraining),以求最终收敛的结果接近最优且加快收敛速度,同时还能避免梯度消失(gradient vanishing)和梯度爆炸(gradient explosion)的问题。今天介绍一个更加方便快速的初始化方法,来近似达到相同的目的。
受限制玻尔兹曼机(RBM)的能量函数及其梯度求解
在前面的一篇文章 受限制玻尔兹曼机(Restricted Bolzmann Machine)以及自编码器(Autoencoder)中我们提到了RBM的能量函数这一概念以及对比散度(CD)的快速采样的训练方法,但我一直纠结与为何Hinton大神能够从能量函数和Gibbs Sampling中获得CD-k采样算法,两个式子看似没有关联。于是我花了几天的时间,终于对RBM这个结构有了更深一步的了解。
受限制玻尔兹曼机(Restricted Bolzmann Machine)以及自编码器(Autoencoder)
受限制玻尔兹曼机(Restricted Bolzmann Machine, RBM)与自编码器(Autoencoder, AE)是神经网络的两种基本结构,两个结构都能起到降维的作用,都可以用来对神经网络进行预训练(pre-training),这种预训练都是无监督的。由于RBM与MLP及其相似,一直以来我就困惑于他们两者,终于花了几天时间来搞清楚他们的区别和训练方法,发现他们甚至不是并列的关系。。
在Ubuntu下安装Nvidia最新驱动
众所周知Nvidia和Ubuntu向来不对付,Nvidia不会将自己的驱动开源,而Ubuntu社区开发的nouveau开源驱动又极大的限制了Nvidia显卡驱动原有的性能,给基于深度学习的研究造成了不小的麻烦。而有的时候由于Windows的种种原因,深度学习的开发又不得不在Linux上完成。这篇笔记将会记录一种安装Nvidia最新驱动的简便方法(不过当然不是直接用系统给的那个选项直接改),使用官方PPA源来安装最新驱动。
Importance Sampling (重要性采样)
重要性采样是我在学习强化学习的过程中遇到的一种采样方法,是为了应对当要进行采样的样本分布难以获得时的问题。重要性采样使用另一个采样来代替当前的采样