Deep-Learning NotePad1 : Machine-Learning to Deep-Learning

来源:互联网 发布:网络打字员是真是假 编辑:程序博客网 时间:2024/05/30 04:31

Machine-Learning to Deep-Learning

整理于udacity免费deep learning course

softmax function:

这是一种scores  -> probability  [0,1]  的function    

那么scores可以是neural network 的final output

借用一张udacity上deep learning的图:


那么,如果 我把scores统统 *10 ,效果会如何呢?   ->   probability  会接近1的更接近1     接近0的更接近0

           如果 我把scores统统  /10 ,效果会如何呢?    ->  probability 会更加normal ditribution

想想看 ,在一开始 我们并不希望他们的probability很明显,而到了训练后期,我们希望他们很明显,对不对?

one hot-encoding:

ex:我们有5个labels ,那么如果预测结果为label=2  ,那么表示方法应该是[0,1,0,0,0]

cross entropy:

embeddings: 用于解决太多Labels ,好多0 ,无效率的情况
D用于衡量s(y)和L的distance,  
D(s,L) !=  D(L,s),因为log的存在

上图是到现在为止的回顾,那么这一整套动作称为:multinomial logistic classification

MInimizing Cross Entropy:


这个就是Training Loss了,它是平均了 每一个s和L的distance之和。  我们想要这个Training Loss尽量小,这其中可能要调整许多参数值已达成最小,方法如下:
Gradient Desent:沿梯度方向,快速到达最小值0。

Testing Data  /  Validation Data  / Training Data


根据上图,也就是说 将TestSet中的一部分作为Test Data 不用它进行测试,剩余的TestSet做Cross Validation,当确定好一切参数时,用test做最后的验证
如果所不留这一部分testData,而是所有都做Validation,就没有最后的真的test了。
Cross Validation可以防止overfitting,所以越多的Validation set,越精确。同时,越多的TestData,噪声越小

那么哪种可以算是噪声呢?
如果我们有3000数据,规定30rules,那么但凡增长减小率小于1per都属于noise。即<30个改变其label

Stochastic Gradient Descent(SGD)

批量梯度下降:得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果m很大,那么可想而知这种方法的迭代速度!!所以,这就引入了另外一种方法,随机梯度下降。

(1)批量梯度下降---最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小。

(2)随机梯度下降---最小化每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近。

Learning Rate

学习速率并不是越高越好,低速率优势反而能取得更好效果

Parameters 



SDG有许多Parameters可以改变
AdaGrad可以使问题简化一些,前面3个参数可以去掉,自适应梯度(adaptive gradient)[3]是基于梯度的优化方法(like SGD)
0 0
原创粉丝点击