先来看看机器学习是什么,能够看作寻找一个可以获得咱们指望解的函数。经过训练数据,咱们能够找到包含若干函数的集合,在其中找一个对问题有良好响应的函数(对给定的输入,都能获得一个正确的解)。算法
有监督的学习指训练的时候对每个输入,咱们都已知其应该的输出(标签),咱们的目的是学到一个函数,可以知足全部训练集的输入,都会获得其对应正确的输出。这么说吧,咱们有一组(x,y),咱们要找到一个函数,对应每个x,都会获得其对应的y值。网络
步骤:机器学习
给出一个参数,来定义一个函数;对应给出一个网路结构,定义一个函数集合(权重和偏置是网络的参数)。函数
单个神经元性能
这里须要重点引入一下softmax layer,文章中指出,通常来讲,神经网络的输出多是任意值,May not be easy to interpret。这里看来彷佛是对输出作了一个归一化。
学习
须要找到一个网络结构使得你的函数集合中有一个好的集合测试
目的:损失最小即网络输出与目标之间的距离最小化,找一组参数最小化整个的损失。优化
找网络参数使得损失最小化。穷举老是不可能滴。反向传播很经典,竟然在推导之后我已经忘记了为何要选择梯度了。。。。从新温习一下,为何是负梯度方向。梯度方向是函数变换最快的方向,方向导数推出负梯度方向是函数在该点处减小最多的方向(方向导数最小那部分推导),梯度方向是函数增加最快的方向。因此在设置激活函数时,要求可微,便可求偏导数,便可获得负梯度方向,从而知道该点使函数降低方向,逐步使得损失函数最小的参数。(下图中,对x求偏导数是关于各变量的偏导数,获得的是梯度。而对p求导,则是方向导数。)spa
上图中,获得的梯度值自己为负值,负梯度即变成正值,即w增大的方向为函数降低的方向。反向传播是一个有效计算梯度的方法。3d
任何一个连续函数均可以用带一个隐含层(足够多隐含神经元)的网络来实现。
为何网络是要愈来愈深而不是愈来愈胖?
基于逻辑电路为背景来讲,逻辑电路由门组成,两个逻辑门能够表示任何的布尔函数,使用多层的逻辑门较为简单的创建一些函数(须要更少的门)。神经网络由神经元组成,包含一个隐含层的神经网络能够表示任何连续函数,多层神经元表示函数更加简单(须要更少的参数)。
Deep与Modularization
后面层使用前面层做为模块进行创建新的分类器(只须要少许的数据就能够训练得到)
这里推荐的keras。
2.1 深度学习的方法
训练数据上取得好的结果
网络并非越深越好,会出现梯度消失的问题,输入端的梯度较小,学习的慢,几乎是随机的;输出点的梯度较大,学习的较快,收敛的快。
如何去解决这样的问题?在2006年开始,使用RBM作预训练。2015年,开始使用ReLU(Rectified Linear Unit)做为激活函数,缘由有:快速计算,生物学缘由,无限的激活函数有不一样的偏置,尤为是其解决了梯度消失的问题。一张图来解释全部:梯度没有减小,而且获得了一个更瘦的网络。
ReLU有多个变形形式,还能够看到ReLU是Maxout的特例,maxout network的激活函数能够是任何分段线性凸函数,一共有多少段,取决于这个网络中有多少个元素。
学习率若是很大,那么可能会一直错过最小极值点(步长太大)。若是设定很小,训练速度会很慢。流行的简单方法是在每隔几个epochs,以必定比例进行减小学习率。在训练开始的时候,咱们但愿学习率要大一些,在几个epochs之后,咱们对学习率进行减小。学习率不太可能可以通用,不一样的参数,有不一样的学习率。
各类改变学习率的算法(Adagrad、RMSprop、Adadelta、AdaSecant、Adam、Nadam)
找最优的网络参数是困难的,可能只到近似平坦的地方、鞍点或者陷入局部最优。把物理中的动量现象放到梯度降低找最优势会怎么样呢?
加上动量,可以在平坦的地方或者鞍点继续“运动”“顺势”找最优势,同时在局部最优的地方,会(添加)有一个动量,彷佛是在努力看看能不能越过这个小山坡,指不定山坡的另外一边才是最优势。
测试数据上能取得好结果
大脑的剪掉了神经元之间无用的链接,这里对机器的大脑作一样的事情,去提升性能。
训练时,对于每一次更新参数时,有必定比例的神经元被“抛弃”,也就是说网络结构是改变的,使用新的改变的网络结构去训练,对于每个mimi-batch,咱们对重新采样(选择)要抛弃的神经元。测试时,选用所有的神经元进行预测,在训练时,按照必定比例p舍弃神经元,即保留了(1-p)比例的神经元个数。那么测试的时候,就要将权重乘以(1-p),即保证了最终输出大小一致。
这里的随机Dropout,原文举例类比其做用,在整个团队都工做的,假如每一个人都指望小伙伴能把工做作好,那么最后工做必然作很差,若是你知道你的小伙伴已经没法起做用(dropout),那就只能靠本身好好作好,激发每个人最大的潜力,同时随机性,又能保证必定的适应能力,意思是你和他能把事情作好,没了他,你和她也能把事情作好,消除了神经元之间的依赖关系。还有一些观点从动物的繁殖的基因重组比植物的无性生殖具备更强大的适应环境的能力方面进行类比解释。
dropout是一种ensemble,最后的结果至关于多个网络的输出的平均。
CNN是一个很是好的例子。
3.1 卷积神经网络(普遍用在图像处理中)
why CNN for Image?
图片中的一些模式比整张图片要小,一个神经元不须要去看见整个图片来发现这种模式,只用少许的参数来去链接小的区域便可。卷积网络的特性:某些模式比整个图片小,相同的模式出如今不一样的区域。下采样像素不会改变目标。
3.2 递归神经网络(Recurrent Neural Network)