美文网首页
neuron net

neuron net

作者: satyrs_sh | 来源:发表于2017-10-29 20:54 被阅读0次

*【neuron network】

{

*【function set】

1logistic ,linear都是决定set的一种方法,neuron network也是一样,只是换种方式来决定func set。这种方法包含的func set大于之前,包含之前方式所得func set中无法包含的。

2ml需手动选择feature(自己知道好的feature是怎样的),dl需思考如何设计神经网络结构(语音、图像)。

3可以自动找到结构吗?有Evolutionary Artificial Neural Networks,但不普及。

4如何设计?CNN,fully connect,rnn...

*【problem】

几个layer?几个neuron?(领域知识)

如何connect(即设计结构的问题)?

*【backpropagation】

属于数学问题即计算微分,可使用框架

forward ,backward

}

*【keras】

{

tensorflow or theano =>flexible,有难度

怎么把image存到numpy array

batch_size

nb_epoch = 10 时最稳定、快  太大则GPU无法并行这么多或卡住

gradient descent需要随机性

为什么minibatch更快?batch将一个batch里的example组成matrix进行运算。GPU使同时运算。GPU+minibatch

*【tips】{

1检查在training上的结果,不好则修改network

2testing不好则overfitting=>未必,因为dl与ml不同,dl的training无法保证结果是良好的,也因此需要进行步骤1。有时是overfit有时不是。

3选择解决方案时考虑是为了training的提高还是testing

*【如何】

1换activation function

σ现象 vanishing gradient descent:当前几层gradients很小、参数几乎随机,后几层很大时、参数收敛,但结果不会太好。

方法:对其中一个参数进行变动,看loss变化多大,估测偏微分。对learning rate动态化或直接改σ,后者方法几乎总是可以奏效。换成ReLU。

原因:σ总是会将input衰减,即每个layer都会使得变化衰减,因此loss对靠近input layer的参数偏微分会小,gradient descent小。而ReLU将整个neuron变成一个线性的network,那么gradient就不会变小。

*【ReLU 变种】

leaky, parametric

ELU

(都是将小于0的输入变为另一种形式输入,不是0而是线性或exponential)

*【Maxout】

learnable activation function,可自行学习参数

ReLU是其中一种(将maxout参数调成适当的则为ReLU)

需要更多参数才能得到相同数量的输出

将几个作为一组,自己调参 2,3,5...

*【RMSProp】

比adagrad复杂

当training NN的时候,error surface更加复杂

* 【Momentum】

* 【Adam】

* 【 以下为了解决overfitting】{

* 【early stopping】

validation set的结果已经不再好的时候停止training

* 【dropout】

从training 中sample一个minibatch再丢掉部分neuron,再update参数

为什么要在testing时候×(1-p)?

ensemble思想,dropout的结果和n个nn的结果进行平均得到最后的结果,两者相近

线性+dropout结果会更好。

* 【regularization】

(svm是有regularization的项的)

不希望参数大 ,越接近0越好( early stopping如果比较小,那么不需要regularization)

L2 是对较大的参数给以较大地惩罚

L1 一视同仁,但都向0的方向移动

}

}

}

相关文章

网友评论

      本文标题:neuron net

      本文链接:https://www.haomeiwen.com/subject/kycupxtx.html