参数更新

学习率(一阶)

初始值通常设置在1e-3,在学习过程中随着时间降低学习率通常很有用,

降低学习率的方式有:

  • 递减step decay

每几个epoch降低一次,如每5次降低一半,或每20次降低0.1,视情况而定.可以通过尝试不同的固定的学习率对验证集的错误率进行观察来找合适的学习率.

  • 指数下降

\(\alpha = \alpha_0 e^{-k t}\),t是迭代次数,其它是超参数.

  • 1/t下降

\(\alpha = \alpha_0 / (1 + k t )\)

实际中step decay更常用一些,因为参数更容易解释,更直观.无非是设置较小的递减速率,训练更长的时间.

内网穿透之3

在之前的两篇博文ssh反向隧道ngrok反向隧道中所使用的方式建立连接之后所有数据需要经过中间服务端的中转。这一般来说也没有什么大问题,但是当中转服务器的网速较慢时,操作反应迟钝,传递大文件时比较耗时。

本文介绍n2n这个工具,其在顺利打洞之后会p2p传输数据,而失败时通过服务器中转。

n2n

v1版本的用法 sudo apt install -y n2n sudo edge -d edge1 -a 10.0.0.99 -c 组名 -k 密码 -s 255.255.255.0 -l bytemark.leggewie.org:1234 之前使用ipv6地址在两台主机间用scp复制文件时约7~10M/s,使用n2n的地址进行scp的速度仅能达到1M/s.说明p2p打洞没有成功。 -d 指定将要创建的本地接口, -a 是想要得到的ip,同时需要使用-s指定子网掩码 -l 指定超级节点的地址,如n2n.lu8.win:10082 来自(http://nat.red/)

frp

frp的新版本增加了对p2p的支持。与n2n的用法类似,将多个主机组建到一个内网。

Bittorrent Sync

主要功能是同步,也是点对点,没有中心服务节点。

深度学习网络层之 Pooling

pooling 是仿照人的视觉系统进行降维(降采样),用更高层的抽象表示图像特征,这一部分内容从Hubel&wiesel视觉神经研究到Fukushima提出,再到LeCun的LeNet5首次采用并使用BP进行求解,是一条线上的内容,原始推动力其实就是仿生,仿照真正的神经网络构建人工网络。 至于pooling为什么可以这样做,是因为:我们之所以决定使用卷积后的特征是因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计。这个均值或者最大值就是一种聚合统计的方法。 做窗口滑动卷积的时候,卷积值就代表了整个窗口的特征。因为滑动的窗口间有大量重叠区域,出来的卷积值有冗余,进行最大pooling或者平均pooling就是减少冗余。减少冗余的同时,pooling也丢掉了局部位置信息,所以局部有微小形变,结果也是一样的。 pooling层通常的作用是:减少空间大小,减少网络参数,防止过拟合。

pooling 种类

最常见的池化操作为最大池化和平均池化:

最大池化 Max Pooling

前向传播:选图像区域的最大值作为该区域池化后的值。 反向传播:梯度通过最大值的位置传播,其它位置梯度为0。

平均池化 Average Pooling(也称mean pooling)

前向传播:计算图像区域的平均值作为该区域池化后的值。 反向传播:梯度取均值后分给每个位置。 对于Average Pooling的输入\(X=x_1,x_2,...x_n\),输出\(\displaystyle f(X) = \frac{1}{n} \sum_{i=1}^n x_i\) \[ \begin{align} \displaystyle \frac{\partial f}{\partial x_j} (X) = \frac{\partial f}{\partial x_j} \frac{1}{n} \sum_{i=1}^n x_i \\ \displaystyle = \frac{1}{n} \sum_{i=1}^n \frac{\partial f}{\partial x_j} x_i \\ \displaystyle = \frac{1}{n} \sum_{i=1}^n \delta(i-j) \\ 当i=j时,δ(x)=1,否则为0. \end{align} \]

Stochastic Pooling

论文Stochastic Pooling for Regularization of Deep Convolutional Neural Networks提出了一种简单有效的正则化CNN的方法,能够降低max pooling的过拟合现象,提高泛化能力。对于pooling层的输入,根据输入的多项式分布随机选择一个值作为输出。训练阶段和测试阶段的操作略有不同。

训练阶段

,