目录卷积神经网络参数解析 神经网络中学习步长与学习速率一样吗 xgboost参数调优 神经网络BP算法中,如何选择网络学习效率及阈值调整效率 Deep Learning 概念概览
楼上说的很好,我补充一下 也可以扒码结合优化算法 遗传橡握算法 蚁群算法 优化出来初始值和随机数以及春如哪 学习速率 可以加快收敛速度
学习要讲究效率,提高效轿简率,途径大致有以下几点:一、每天保证 8 小时睡眠。晚上不要熬夜,定时就寝。中午坚持午睡。充足的睡眠、饱满的精神是提高效率的基本要求。二、学习时要全闭弯裤神贯注。玩的时候痛快玩,学的时候认真学。一天到晚伏案苦读,不是良策。学习到一定程度就得休息、补充能量。学习之余,一定要注意休息。但学习时,一定要全身心地投入,手脑并用。 三、坚持体育锻炼。身体是 " 学习 " 的本钱。没有一个好的身体,再大的能耐也无法发挥。因而,再繁忙的学习,也不可忽视放松锻炼。有的同学为了学习而忽视锻炼,身体越来越弱,学习越来越感到力不从心。这样怎么能提高学习效率呢?四、学习要主动。只有积极主动地学习,才能感受到其中的乐趣,才能对学习越发有兴趣。有了兴趣,效率就会在不知不觉中得到提高。有的同学基础不好,学习过程中老是有不懂的问题,又羞于向人请教,结果是郁郁寡欢,心不在焉,从何谈起提高学习效率。这时,唯一的方法是,向人请教,不懂的地方一定要弄懂,一点一滴地积累,才能进步。如此,才能逐步地提高效率。五、保持愉快的心情,和同学融洽相处闹历。 每天有个好心情,做事干净利落,学习积极投入,效率自然高。另一方面,把个人和集体结合起来,和同学保持互助关系,团结进取,也能提高学习效率。六、注意整理。学习过程中,把各科课本、作业和资料有规律地放在一起。待用时,一看便知在哪。而有的学生查阅某本书时,东找西翻,不见踪影。时间就在忙碌而焦急的寻找中逝去。我认为,没有条理的学生不会学得很好。
一. 确定最佳决策树数量
选择较高的学习速率(learning rate)。一般情况下,学习速率的值为0.1。但是,对于不同的问题,理想的学习速率有时候会在0.05到0.3之间波动。选择对应于此学习速率的理想决策树数量。XGBoost有一个很枝此有用的函数“cv”,这个函数可以在每一次迭代中使用交叉验证,并返回理想的决策树数量。
先给定boosting主要参数一个初始值,后续再进行调优。
1、max_depth = 5 :这个参数的取值最好在3-10之间。我选的起始值为5,但是你也可以选择其它的值。起始值在4-6之间都是不错的选择。
2、min_child_weight = 1:在这里选了一个比较小的值猛樱迅,因为这是一个极不平衡的分类问题。因此,某些叶子节点下的值会比较小。
3、gamma = 0: 起始值也可以选其它比较小的值,在0.1到0.2之间就可以。这个参数后继也是要调整的。
4、subsample,colsample_bytree = 0.8: 这个是最常见的初始值了。典型值的范围在0.5-0.9之间。
5、scale_pos_weight = 1: 这个值是因为类别十分不平衡。
二. 主要参数调优
对于给定的学习速率和决策树数量,进行决策树特定参数调优(max_depth, min_child_weight, gamma, subsample, colsample_bytree)。
这里通常使用GridSearch。可先寻找max_depth、min_child_weight,确定后,再对gamma、subsample等调优颂指。
三. xgboost的正则化参数的调优。(lambda, alpha)。这些参数可以降低模型的复杂度,从而提高模型的表现。
四. 降低学习速率,确定理想参数。
xgboost 中,objective 是模型学习任务参数(learning task parameters)中的目标参数,它指定训练任务的目标。
objective参数默认值为reg:squarederror 。
https://zhuanlan.zhihu.com/p/29649128
[更新中...]
---------------------------------Reference---------------------------------
参考:
https://zhuanlan.zhihu.com/p/27186569
https://dvl.in.tum.de/teaching/i2dl-ss19/
---------------------------------目录---------------------------------
(1) Neuron/神经元
(2) Machine Learning
(3) Basic classifier
(4) Cross Validation 6/2/2
(5) Linear Decision Boundaries
(6) Linear Regression
(7) Weights/权重
(8) Bias/偏移
(9) Affine function
(10) Activation Function
(10.a) Sigmoid函数
(10.b) 线性整流函数(ReLU-Rectified Linear Units)
(10.c) softmax函数
(11) Loss function
(11.a) [Regression] MSE
(11.b) [Regression] MAE
(11.c) Cross-entropy loss
(11.d) [Classification] MLE (Maximum Likelihood Estimation)
(12) 成本函数(cost function)
(13) Concept:Gradient VS Derivative
(13.a)Gradient: 导数
(13.b)Derivative/Nabla Operator(∇): 偏导
(14) Optimization
(15) NN神经网络
(16) Input/Output/Hidden Layer 输入层/输出层/隐藏层
(17) 多层感知器(MLP-Multi Layer Perceptron)
(18) 正向传播(forward propagation)
(19) 学习速率(learning rate)
(20) 反向传播(back propagation)
(21) 分批(Batches)
(22) 周期(epochs)
(23) Dropout方法
(24) 分批标准化(Batch Normalization)
(25) Regularization
(26) Precision and Recall
(27) Parametric Statistic
---------------------------------Basics---------------------------------
正如我们大脑中的基本组成单元,神经元是组成神经网络的基础结构。设想一下当接敏禅差触到新的信息时,我们的身体会对其进行处理,最后产生一些桥皮特定的反应。
相似地,在神经网络中,在袭含收到输入的信号之后,神经元通过处理,然后把结果输出给其它的神经元或者直接作为最终的输出。
A way to make use of data:train/valid/test
决策边界就是能够把样本正确分类的一条边界,主要有线性决策边界(linear decision boundaries)和非线性决策边界(non-linear decision boundaries)。
Questionwhat’s the relationship between LDB and SVM?
AnswerSVM is an algorithm/method to find the best LDB (that’s why SVM is also called Large Margin Classifier)
支持向量机(Support Vector Machine, SVM)是一类按 监督学习 (supervised learning)方式对数据进行 二元分类 的广义线性分类器(generalized linear classifier),其[决策边界]( https://baike.baidu.com/item/%E5%86%B3%E7%AD%96%E8%BE%B9%E7
Suppose there are N observations and M features in training data set. A sample from training data set is taken randomly with replacement.%95%8C/22778546)是对学习样本求解的最大边距超平面(maximum-margin hyperplane) [1-3]。
SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在 margin ,并且需要使各侧的margin最大化。比较容易理解的是,从决策边界到各个training example的距离越大,在分类操作的差错率就会越小。因此,SVM也叫作Large Margin Classifier。
最简单的情况是,在二维平面中的,线性可分情况,即我们的training set可以用一条直线来分割称为两个子集,如下图所示。而在图中我们可以看到,H2和H3都可以正确的将training set进行分类,但细细想来,使用H2进行分类的话,我们对于靠近蓝线的几个训练样例其实是不敢说100%的,但对于离蓝线最远的小球,我们却很有把握。这也是H3这条SVM红线出现的原因:尽量让两侧的训练样例远离决策边界,从而让我们的分类有把握对每个球Say Absolutely。
---------------------------------以下开始讲 Linear Regression---------------------------------
当输入信号进入到神经元后,会被乘以相应的权重因子。举例来说,假设一个神经元有两个输入信号,那么每个输入将会存在着一个与之相应的权重因子。在初始化网络的时候,这些权重会被随机设置,然后在训练模型的过程中再不断地发生更改。
在经过训练后的神经网络中,一个输入具有的权重因子越高,往往意味着它的重要性更高,对输出的影响越大。另一方面,当权重因子为0时意味着这个输入是无价值的。
如下图所示,假设输入为a,相应的权重为W1。那么通过赋权节点后相应的输入应变为a*W1。
除了权重之外,输入还需要经过另外一种线性处理,叫做偏置。通过把偏置b与加权后的输入信号a*W1直接相加,以此作为激活函数的输入信号。
~ is a function between different affine space/仿射空间 .
Goal : after the transformation the data still has it's original characters!
Content : is a functioncomposed of a linear function+ a constant.
Graph : a straight line.
General equation : y = Ax + c.
对数据使用affine function后都满足以下条件:
下文的u=∑w*x+b就是affine function
~ of a nodedefines the output of that node, given an/more input.
之前线性处理之后的输入信号通过激活函数进行非线性变换,从而得到输出信号。即最后输出的信号具有f(a*W1+b)的形式,其中f()为激活函数。
在下面的示意图中, 设X1…Xn等n个输入分别对应着权重因子Wk1…Wkn以及相应的偏置b1…bn。我们把输入Xi乘以对应的权重因子Wki再加上bi的结果称为u。
u=∑w*x+b 这个激活函数f是作用在u上的,也就是说这个神经元最终的输出结果为yk = f(u)
接下来我们讲一讲常用的一些激活函数:Sigmoid函数, 线性整流函数(ReLU) 和 softmax函数
作为最常用的激活函数之一,它的定义如下:
sigmoid函数为值域在0到1之间的光滑函数,当需要观察输入信号数值上微小的变化时,与阶梯函数相比,平滑函数(比如Sigmoid函数)的表现更好。
近来的神经网络倾向于使用ReLU替代掉sigmoid函数作为隐层的激活函数,它的定义如下:f(x) = max(x,0).
The rectified linear activation function is a piecewise linear function that will output the input directly if is positive, otherwise, it will output zero.
使用ReLU函数的好处是,对于所有大于0的输入,导数是恒定的,这能够加快训练网络的速度。
softmax激活函数通常应用在分类问题的输出层上。
It´s a Multinomial Logistic Regression
它与Sigmoid函数相似,唯一的不同是softmax函数输出结果是 归一化 的。sigmoid函数能够在双输出的时候奏效,但当面对多种类分类问题的时候,softmax函数可以方便地直接将各个分类出现的概率算出。
sigmoid()仅仅是二元,softmax可以多元
例子:
输入向量[1,2,3,4,1,2,3]对应的Softmax函数的值为[0.024,0.064,0.175,0.475,0.024,0.064,0.175]。输出向量中拥有最大权重的项对应着输入向量中的最大值“4”。这也显示了这个函数通常的意义:对向量进行归一化,凸显其中最大的值并抑制远低于最大值的其他分量。
Normalization!
We use the following Loss Function to evaluate the loss , measures how good my model is.
or L2 loss, or mean squared deviation (MSD), or Linear Least Square.
Attention: From Normal-Expression to Matrix-notation it emit the (1/n), we are just looking for the minimal value so it doesn't matter!
or L1 loss
or log loss, measures the performance of a classification model whose output is a probability value between 0 and 1.
You can see from the graph, that cross-entropy penalizes both types of errors, but especially those predictions that are confident and wrong!(when predicted probability drops around 0.15)
是用来估计一个概率模型的 参数的一种方法。
Reference: https://www.youtube.com/watch?v=XepXtl9YKwc
--> The goal is to find the optimal way to fit the distributionof data.
For example, if it's normal distribution, then the parametersmean ,deviationcan be modify in order to fit the data better!
猜测分布函数的参数,以尽量多的涵盖observation中的数据点(举例:如果满足normal distribution,那么这里的参数就指mean和standard deviation)。
为了找到使p最好的参数Theta.
例子:
Step 1: Maximum Likelihood for the Mean
The name of "likelihood" basically means, how like you are going to find data-points according to theestimated distribution>> And it stops when it finally find the highest likelihood >> where we should put our meanon it:
Cost function即loss的综合,loss由loss function求的
在神经网络的建造过程中,建造者们希望输出的结果能够尽可能地接近实际值,因此使用成本函数来描述网络的这种准确性。
神经网络的目标是增加预测的准确性从而减少误差,即最小化成本函数。通常情况下,最优化的输出结果往往对应着成本函数的最小值。
如果采用均方误差作为成本误差,即表示为C= 1/m ∑(y – a)2,其中m是训练过程中输入数据的个数,a是相应的预测值,y代表实际值。
模型学习的过程就是围绕着最小化成本而进行的。
https://stats.stackexchange.com/questions/179026/objective-function-cost-function-loss-function-are-they-the-same-thing
Useful concepts: Component& Variable
Suppose there are N observations and M features in training data set. A sample from training data set is taken randomly with replacement.
Component:该matrix有几行
Variable:x1,x2,,,共有几个变量
举例:
** 梯度下降(gradient descent)**
梯度下降是一种最小化成本函数的优化算法。
在梯度下降中,从起始点x开始,一次移动一点,比如说移动delta h,然后将位置信息更换为x-delta h,如此重复下去,直到达到局部的极小值,此时认为极小值就是成本最小的地方。
In order to find the minimal value of the Loss function , we need to use derivative .
Here are the common formulas:
Now through the review from loss function , I want to improve the Model, this process we call it Optimization
And the gradientis our tool to optimze the model
---------------------------------以下开始讲 Neural Network---------------------------------
神经网络是构成深度学习的框架。神经网络的任务是找到一个未知函数的近似表达方式,它是由彼此相连的神经元所组成,这些神经元会在训练网络的过程中根据误差来更改它们的权重和偏置。激活函数将非线性变化用线性变化的组合来表示,最终产生输出。
关于神经网络最好的定义是由Matthew Mayo给出的:
神经网络是由大量彼此相连、概念化的人造神经元组成的,这些神经元彼此之间传递着数据,相应的权重也会随着神经网络的经历而进行调整。神经元们有着激活的阈值,当它们遇到相应的数据以及权重时会被激活,这些被激活的神经元组合起来导致了“学习”行为的产生。
从名字中就能看出,输入层代表接受输入数据的一层,基本上是网络的第一层;输出层是产生输出的一层,或者是网络的最后一层,而网络中间的处理层叫做隐藏层。
这些隐藏层对输入的数据进行特定的处理,再将其输入到下一层。输入层和输出层是可见的,而中间层通常是被隐藏起来的。
一个单一的神经元不能够完成复杂的任务,因此需要将它们堆叠起来工作进而产生有用的输出。
最简单的神经网络包括一个输入层、一个隐藏层和一个输出层。每一层都由多个神经元组成,每一层的每个神经元都与下一层中的所有神经元相连。这样的网络可以被称为是全连接网络。
正向传播是指信号从输入层经过隐藏层到输出层的传输过程。在正向传播中,信号是沿着单一方向进行传播,即输入层给隐藏层提供输入,进而最终产生相应的输出。
学习速率定义为在每次迭代过程中对 成本函数最小化 的次数 。简单来说,学习速率就是指朝着成本函数最小值的 下降速率 。选择学习速率需要很谨慎,过大会导致可能越过最优解,过小会导致收敛花费太多的时间。
在定义一个神经网络的过程中, 每个节点会被随机地分配权重和偏置。一次迭代后,我们可以根据产生的结果计算出整个网络的偏差,然后用偏差结合成本函数的梯度,对权重因子进行相应的调整,使得下次迭代的过程中偏差变小。这样一个结合成本函数的梯度来调整权重因子的过程就叫做反向传播。
在反向传播中,信号的传递方向是朝后的,误差连同成本函数的梯度从输出层沿着隐藏层传播,同时伴随着对权重因子的调整。
比如一共有10000条数据,分成10个batch,每个batch就是100条数据。
当在训练一个神经网络的时候,相对于一次性将所有的数据全输入进去,有一个更好的方法:先将数据随机地分为几个大小一致的数据块,再分批次输入。跟一次性训练出来的模型相比,分批训练能够使模型的适用性更好。
比如一共有10000条数据,分成10个batch,每个batch就是100条数据。正向,反向跑完所有10000条数据,即一个epoch。
一个周期表示对所有的数据批次都进行了一次迭代,包括一次正向传播和一次反向传播,所以一个周期/纪元就意味着对所有的输入数据分别进行一次正向传播和反向传播。
训练网络周期的次数是可以选择的,往往周期数越高,模型的准确性就越高,但是,耗时往往就越长。同样你还需要考虑如果周期/纪元的次数过高,那么可能会出现过拟合的情况。
Dropout是一个可以阻止网络过拟合(overfitting)的规则化方法(regularization)。就像它的名字那样,在训练过程中隐藏的某些特定神经元会被忽略掉(drop)。这意味着网络的训练是在几个不同的结构上完成的。
这种dropout的方式就像是一场合奏,多个不同结构网络的输出组合产生最终的输出结果。
分批标准化就像是人们在河流中用以监测水位的监察站一样。这是为了保证下一层网络得到的数据拥有合适的分布。在训练神经网络的过程中,每一次梯度下降后权重因子都会得到改变,从而会改变相应的数据结构。
但是下一层网络希望能够得到与之前分布相似的数据,因此在每一次数据传递前都需要对数据进行一次正则化处理。
Goal: Penalize the complexity of the model, avoid explicitly fitting the training-data.
Different regularization methods:
They are different ways to define the "complexity" of a model
参数统计 是 统计学 的一个分支,它假设样本数据来自总体,而总体可以通过具有固定参数集的 概率分布 进行充分建模。 [1]相反, 非参数模型 的确切区别在于其参数集(或 机器学习 中的 特征集)不是固定的,如果收集到新的相关信息,则该参数集可能会增加甚至减少。 [2]
Example:
正态分布族 都具有相同的一般形态,并可以通过均值和标准差进行 参数化。这意味着,如果均值和标准差已知,并且分布是正态的,则任何将来观察到的给定范围内的概率都是已知的。
假设有一个存在99个测试分数的样本,平均值为100,标准差为1。如果假设所有99个测试分数都是从正态分布中随机观察到的,那么我们预测第100个测试分数有1%的概率将高于102.33(即平均值加2.33标准偏差)。给定99个来自相同正态分布的 独立 观测值,可使用参数统计方法计算上述标准偏差值。
对同一事物的 非参数 估计是前99个分数中的最大值。不需要假设考试分数的分布情况就可以推断出,在我们进行考试之前,最高分数会出现在前100个分数中。因此,第100个分数有1%的可能性高于之前的99个分数。
学习速率是一个超参数,它控制了我们在多大程度上调整了我们的网络的权重,并对损失梯度进行了调整。值越低,沿着向下的斜率就越慢。虽然这可唤竖能是个好的办法(使用低学习率),以确册饥保我和姿大们不会错过任何局部极小值,但这也可能意味着我们要花很长时间才会收敛——尤其是如果我们陷入了停滞不前的区域。