深度学习笔记(二):训练神经网络

image

Part 1

一.Activation Function激活函数

image

当激活函数是线性的时候,两层的神经网络就可以逼近所有的函数了。激活函数的作用就是给network加入非线性因素,因为线性模型尽管组合还是一个线性模型,对于数据的表达和分类效果不强。详情

常用的激活函数:

image

1.sigmoid函数存在三个问题:
1)当数据正太大和负太小时会陷入饱和,也就是梯度为0,这时候back propagation的时候数据为0,kill了这个gradients
2)sigmoid输出不是以0为中心的。这会导致数据进入神经元的时候是正的,那么w计算出的梯度也会始终都是正的。而我们通常使用这种zigzag path去逼近最佳向量。

image

3)exp计算比较非时间

2.tanh函数:比sigmoid好的地方是他是零均值的。

3.LeRU函数是今年受欢迎的一种函数,存在几个优点:
1)在正区域不会饱和
2)计算更方便
3)收敛起来比sigmoid/tanh更快

但是缺点是在负区域还是会饱和,并且很容易就die了。举个例子,一个非常大的梯度流过一个 ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了。实际操作中,learning rate较大时神经元容易die,较小时发生的较少。

image

4.Leaky-ReLU,P-ReLU,R-ReLU
这些都是ReLU的变体,为了解决dying ReLU的问题。最终效果众说纷纭。

5.Maxout:ReLU和Leaky-ReLU的泛化形式,不会饱和也不会die。缺点是参数被double了。

如何选择激活函数?

  • 如果使用ReLU,那么一定要小心设置 learning rate,而且要注意不要让你的网络出现很多 “dead” 神经元,如果这个问题不好解决,那么可以试试 Leaky ReLU、PReLU 或者 Maxout.
  • 最好不要用 sigmoid,你可以试试 tanh,不过可以预期它的效果会比不上 ReLU 和 Maxout.
  • 很少会把各种激活函数串起来在一个网络中使用的。

二.数据预处理

常见的数据预处理方式有zero-centered(减去平均值)和normalized(归一化),也有进行PCA和whitening的。但是对于image来说,一般采取两种:

  • 减掉mean image
  • 减掉每个channel的mean

数据预处理可以很好的减低分类损失对于weight matrix的敏感度。比如下面,左边直线稍微摆动影响要比右边大很多。在深度学习中,也要保证第一层均值不为0,方差不为0


image

三.权值初始化

常见的权值初始化方式:随机小数。随机小数又有好几种设置:

  • 全为0:代价函数将不会减少,而且训练效果和预测效果都不好。这是因为权值设置全为0的网络是对称的,也就是说任一层的每个神经单元将学习相同的权值,最终学习的结果也是线性的,因此效果甚至还没有单个线性回归分类的效果有效。
  • 初始化为大值:代价函数非常大,几乎所有的神经都会饱和为1或-1,最终梯度值为0

通常我们会使用Xavier initialization。

W = np.random.randn(fan_in, fan_out) / np.sqrt(fan_in)

四.Batch Normalization

归一化操作通常在FC或conv层之后进行,在nonlinearity之前进行。

image

进行批量归一化的步骤是:

  • 对数据的每一维都计算平均值E和方差R。这样当我们需要的时候也可以复原原来的数据
  • 使用下面的公式进行归一化:
    image

五.调控学习过程

学习过程:

  • 预处理数据
  • 选择框架,多少层,多少个neuron
  • 通过增加正则项,看loss是否提高的方式来判断loss计算是否合理。
  • 首先选择少量数据训练,保证能过拟合这些数据,然后再加全量数据
  • 学习率选择:太小则loss更新很慢,太大loss会爆炸。通常的学习率在[1e-3,1e-5]之间。

六.Hyperparameter Optimization

当我们在进行参数调优时,Random Layout有时会比Grid Layout更有效,因为这样能增加达到较优值的可能性。


image

七.Fancier optimization

1.带冲量的SGD
前面我们使用了SGD来求得目标函数的最小值,但是SGD存在着一些问题:

  • 当loss在一个方向上变化快,一个方向上变化慢的时候,梯度会进入到曲折中。
    image
  • 容易陷入局部最优解和鞍点

为了解决这个问题,提出了一种更有效的方法,就是在SGD的基础上加上一个冲量。

image

这里的rho是摩擦系数,通常取0.95或0.9。通过这种操作,在最小点和鞍点的时候,就算梯度为0,冲量也不为0,可以冲过最小点和鞍点。

还有更好的是Nesterov Momentum:

image

2.RMSProp
RMSProp是AdaGrad的变体,解决了AdaGrad对于局部最小值学习率逐渐下降直到为0的问题。

image

3.Adam算法:Adam是上面几种算法的集合。


image

4.learning rate decay
先不用decay,然后看看学习率,再加上学习率decay,观看效果

八.Regularition

正则是提高算法性能的方法。常见的有L2,L1和Elastic net.

image

但是这个正则法在大型神经网络中不能实现。大型网络中通常使用的是Dropout。

Dropout是在一个网络层(通常选择FC层)中随机的选择部分节点,将他们的激活函数设置为0。

image

这样的好处有两点:

  • 通过将部分神经元置零,可以避免特征之间的互相适应,一定程度上减少了过拟合。
  • 每一次Dropout都是一次随机选择,这样就相当于一个超级巨大的网络库进行训练。

但是Dropout在测试的时候就不是特别的好,因为需要减少这种随机性,否则会对测试结果造成不必要的改变。这样就需要一些处理。

先对简单的加以判断,对于一个简单的x+y--> a的网络,测试时我们就只想得到w1x+w2y的均值,但是在训练时由于Dropout选择不同,均值就只有1/2(w1x+w2y)。所以我们就想到能不能再测试的时候乘以,或者训练的时候除以dropout概率。当然更倾向于训练的时候除以概率,因为训练可以在高配置机器上长时间运行。

九.Transfer Learning迁移学习

迁移学习其实就是当我们遇到的问题和数据跟原有的一些问题和数据有联系的时候应该怎么利用好原来的数据。比如,当我们想要处理一些自己的动植物的图片,只要使用好ImageNet预训练的模型,在最上面加个线性分类器就行了。


image

cs231n assignment实现在这:https://github.com/oubindo/cs231n-cnn

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,290评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,107评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,872评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,415评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,453评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,784评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,927评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,691评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,137评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,472评论 2 326
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,622评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,289评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,887评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,741评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,316评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,490评论 2 348

推荐阅读更多精彩内容