机器学习笔记

这篇是学习笔记,主要摘抄学习过程中看到的一下东西和理解。

Tensorflow MNIST

在看Tensorflow的教程。首先是对MNIST数据集进行一个扁平化处理。就是把二维数据变成了一维数据。为了更好地帮助大家理解这个操作,tf教程直接扔了下面的这个链接——

Visualizing MNIST
这篇文章在讲该如何改变自己看数据的角度。其中举了一个例子,任意选一张图片中的两个点的灰度值为x,y得到一张散点图,就会发现有时候处于中间区域的点只属于一个或者两个类别。那么就很容易根据这两点来分辨是否属于某个类别了。
由于图片的像素很多,这样的组合方式也有很多,所以,我们可以有很多角度来看这堆数据。
选择什么角度来看数据呢?PCA.主成分分析。
Principal Components Analysis

这个是一种数据处理手段,将看起来有关联的数据转换成无线性关联的数据。是一种流行的数据降维方法,寻找最少的成分使得能够最大程度区分不同类别
丘~酱建议我将KL变换和PCA一起看,然后查到“PCA的变换矩阵是协方差矩阵,K-L变换的变换矩阵可以有很多种(二阶矩阵、协方差矩阵、总类内离散度矩阵等等)。当K-L变换矩阵为协方差矩阵时,等同于PCA。”
PCA tries to preserve linear structure, MDS tries to preserve global geometry, and t-SNE tries to preserve topology (neighborhood structure).

Softmax 回归

UFLDL的讲解有太多数学概念了,我还是选择看更加通俗一点的博客
教程里说到把二维的图像数据转换成一维数组会丢失其中的结构信息,但是Softmax回归方法作为一个简单自然的方法,其实是用不到这些结构信息的。
Softmax回归(SR)本质是Logistic回归(LR)的一种扩展,所有的回归问题都可以看作是分类问题,LR用来解决二分类,SR可以解决多分类。
LR主要有两个概念,预测函数和目标函数。预测函数h(x,w)是根据输入值x和训练得到的权重值w来预测x的标签y。目标函数C(w)是通过训练数据,不断调整w的值使得损失最小。
SR的预测概率模型为P(y=j|x,w)P(y=j|x,w),即在当前学习到的参数ww下,预测xx属于每一类的概率,而通常我们选择概率最大的一类作为最终的预测结果。
softmax回归像素权重
红色代表负权重,蓝色代表正权重。如果某个像素的强度越强越不能属于某个类别的话,它的权重值就为负。
SR就是通过计算每个像素属于每个类别的权重再累加就可以得到某张图的属于各个分类的概率。

卷积网络理解

intermediate convolutional layer 描述了影像的 local feature (局部特征),而最后的几层(倒数第二、第三层) fully connected layer,描述了影像的 global feature (全局特征)。如果一个 deep architecture 只有 convolutional layer, 那么 input image 可以任意大小,可是一旦在convolutional layer 上面叠加上 fully connected layer,input image大小就需要固定了。

图像分类 AlexNet

AlexNet 是一种典型的 convolutional neural network,它由5层 convolutional layer,2层 fully connected layer,和最后一层 label layer (1000个node, 每个node代表ImageNet中的一个类别) 组成。2012年,deep learning的大牛教授 Geoffrey Hinton (University of Toronto, Google) 的学生Alex Krizhevsky 设计了一个8层的CNN,并把它用于ImageNet的image classification,直接把当时最好算法的错误率差不多减半。这引起了computer vision community 的强烈关注。这篇文章的出现也是 deep learning 开始被 computer vision community 接受的关键转折点。
1. ReLU Nonlinearity
ReLU比tanh能够更快的收敛,大型学习网络需要更快的学习速度
2. 多GPU上训练
3. LRN
这个似乎是用来规范化输出的?
4. 重叠池化
传统的池化是不重叠的,重叠池化可以避免过拟合。
【1】Dropout
Dropout也是经常听说的一个概念,能够比较有效地防止神经网络的过拟合。 相对于一般如线性模型使用正则的方法来防止模型过拟合,而在神经网络中Dropout通过修改神经网络本身结构来实现。对于某一层神经元,通过定义的概率来随机删除一些神经元,同时保持输入层与输出层神经元的个数不变,然后按照神经网络的学习方法进行参数更新,下一次迭代中,重新随机删除一些神经元,直至训练结束
【2】Data Augmentation
最简单的增强模型性能,防止模型过拟合的方法是增加数据,但是其实增加数据也是有策略的,paper当中从256*256中随机裁剪出多个227*227的patches(paper里面是224*224)来丰富实验数据,还有就是通过PCA来扩展数据集。这样就很有效地扩展了数据集,比如做基本的图像转换如增加减少亮度,一些滤光算法等等之类的,这是一种特别有效地手段,尤其是当数据量不够大的时候。

图像分类VGG

VGG-Net同样也是一种CNN,它来自 Andrew Zisserman 教授的组 (Oxford),VGG-Net 在2014年的 ILSVRC localization and classification 两个问题上分别取得了第一名和第二名,VGG-Net不同于AlexNet的地方是:VGG-Net使用更多的层,通常有16-19层,而AlexNet只有8层。另外一个不同的地方是:VGG-Net的所有 convolutional layer 使用同样大小的 convolutional filter,大小为 3 x 3。

图像分类GoogLeNet

GoogLeNet提出之时,说到其实idea是来自NIN,NIN就是Network in Network了。
NIN有两个特性,是它对CNN的贡献:
[1]MLP代替GLM
[2]Global Average Pooling
全连接层的存在有两个缺点:
1全连接层是传统的神经网络形式,使用了全连接层以为着卷积层只是作为特征提取器来提取图像的特征,而全连接层是不可解释的,从而CNN也不可解释了
2全连接层中的参数往往占据CNN整个网络参数的一大部分,从而使用全连接层容易导致过拟合。

一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,这也就意味着巨量的参数。但是,巨量参数容易产生过拟合也会大大增加计算量。
文章认为解决上述两个缺点的根本方法是将全连接甚至一般的卷积都转化为稀疏连接
一方面现实生物神经系统的连接也是稀疏的,另一方面有文献1表明:对于大规模稀疏的神经网络,可以通过分析激活值的统计特性和对高度相关的输出进行聚类来逐层构建出一个最优网络。这点表明臃肿的稀疏网络可能被不失性能地简化。 虽然数学证明有着严格的条件限制,但Hebbian准则有力地支持了这一点:fire together,wire together。

早些的时候,为了打破网络对称性和提高学习能力,传统的网络都使用了随机稀疏连接。但是,计算机软硬件对非均匀稀疏数据的计算效率很差,所以在AlexNet中又重新启用了全连接层,目的是为了更好地优化并行运算。

所以,现在的问题是有没有一种方法,既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。大量的文献表明可以将稀疏矩阵聚类为较为密集的子矩阵来提高计算性能,据此论文提出了名为Inception 的结构来实现此目的。

Deep Residual Learning for Image Recognition

来自知乎评论
1. 提出一种新的非线性单元, 也就是参数化的LeakRelu。这种非线性单元一定程度上提升了模型的拟合能力以及收敛速度,而且不会带来额外的成本。免费的午餐你喜欢吗?说一个背景大家可能更容易理解这个这个工作的意义。神经网络已经出现几十年了,大家都默认使用Sigmoid/Tanh函数作为非线性单元,直到近几年大家才意识到Relu更好(更适合优化,精度也更好)。看似很小的变动却花了几十年的时间。参数化LeakRelu将人们对神经网络非线性单元的理解又向前推进了一步。个人觉得这个工作以及maxout, inception都是在非线性单元的研究上非常有价值的工作。
2. 更好的初始化方法。很多人玩神经网络遇到的第一个棘手问题可能就是如何初始化。经常一个网络调半天(literally)才能收敛。当网络变深时这个问题就更加严重。这是因为多层之间的乘积关系,初始化不好会造成反向传播的导数指数放大或者衰减,导致不收敛。这个工作很好的解决了初始化的问题,即使二三十层的网络也能正常收敛。我刚知道这个方法的时候感觉自己像飞了起来,瞬间脱离了苦海。如果你曾今也遇到过神经网络不收敛的问题相信你也会有相同的感受。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值