损失函数

L0、L1、L2范数正则化

无人久伴 提交于 2019-12-04 10:46:46
参考资料(要是对于本文的理解不够透彻,必须将以下博客认知阅读,方可全面了解LR): (1). https://zhuanlan.zhihu.com/p/74874291 (2). 逻辑回归与交叉熵 (3). https://www.cnblogs.com/pinard/p/6029432.html (4). https://zhuanlan.zhihu.com/p/76563562 (5). https://www.cnblogs.com/ModifyRong/p/7739955.html 一、逻辑回归介绍   逻辑回归(Logistic Regression)是一种广义线性回归。线性回归解决的是回归问题,预测值是实数范围,逻辑回归则相反,解决的是分类问题,预测值是[0,1]范围。所以逻辑回归名为回归,实为分类。接下来让我们用一句话来概括逻辑回归(LR): 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。 这句话包含了五点,接下来一一介绍: 逻辑回归的假设 逻辑回归的损失函数 逻辑回归的求解方法 逻辑回归的目的 逻辑回归如何分类 二、逻辑回归的假设 任何的模型都是有自己的假设,在这个假设下模型才是适用的。 逻辑回归的第一个基本假设是假设数据服从伯努利分布。 伯努利分布:是一个离散型概率分布,若成功,则随机变量取值1;若失败

关于激活函数和损失函数的调研

社会主义新天地 提交于 2019-12-04 10:33:25
1) 激活函数(Activation Function ) 背景 深度学习的基本原理是基于人工神经网络,信号从一个神经元进入,经过非线性的activation function,传入到下一层神经元;再经过该层神经元的activate,继续往下传递,如此循环往复,直到输出层。正是由于这些非线性函数的反复叠加,才使得神经网络有足够的capacity来抓取复杂的pattern,在各个领域取得state-of-the-art的结果。显而易见,activation function在深度学习中举足轻重,也是很活跃的研究领域之一。目前来讲,选择怎样的activation function不在于它能否模拟真正的神经元,而在于能否便于优化整个深度神经网络。下面我们简单聊一下各类函数的优缺点以及其适用场景。 Sigmoid 函数 Sigmoid函数是深度学习领域开始时使用频率最高的activation function Pros 它是便于求导的平滑函数,其导数为 l Cons l 容易出现gradient vanishing l 函数输出并不是zero-centered l 幂运算相对来讲比较耗时 l 适用场景:常用于输出层,多应用在二分类问题、逻辑回归任务及其他神经网络领域 来源: https://www.cnblogs.com/Kobaayyy/p/11854958.html

XGBoost论文阅读

十年热恋 提交于 2019-12-04 09:16:50
论文创新点: 提出了一种能处理稀疏数据的提升生树算法 描述了一种加权分位数方法的大概流程,能够用于处理近似树学习中的实例权重。 并行和分布式设计让这个算法有非常快的训练速度。 XGBoost能够在外存上进行计算,使其能处理更大的数据量。 目标函数 损失函数 上面的这个损失函数在欧几里得空间中用传统的优化方法是没有办法求解,为了解决这个问题,本文中采用了贪婪算法,把上面的加和函数分成一步步迭代的来求解,即第 t 步只优化第 t 个分类器,固定前 t-1 步所有分类器: 对上式进行二阶泰勒展开可以更快速的求解: 来源: https://www.cnblogs.com/xumaomao/p/11852063.html

过拟合解决方案之正则化

﹥>﹥吖頭↗ 提交于 2019-12-04 08:12:37
1.过拟合问题 对于过拟合问题,通常原因是模型选择太过复杂,也有可能是训练数据太少。对于模型太复杂的情况,我们一般有如下考虑:一是通过分析删除部分特征(比如重复多余的特征或者对输出值贡献不太大的特征),但是这样有可能会损失一部分信息。所以,我们可以通过正则化的方法来降低参数值,从而避免过拟合问题。对于过拟合问题的详细描述,可以查看我的另一篇博客 机器学习之欠拟合与过拟合 。 2.正则化 回顾一下,在回归问题中,在确定模型之后,要根据该损失函数找出使得损失函数最小的参数矩阵。在整个回归过程中,最为重要的一步是确定回归模型。通常情况下,如果选择的模型太简单,就会欠拟合。如果模型选择太复杂,就会过拟合。正则化可以很好地解决之一问题,通过对某些参数进行“惩罚”,就可以达到降低参数值的目的。正则化的方法有很多,这里仅介绍L1正则化和L2正则化,对应的分别是Lasson回归和Ridge回归。正则化就是在损失函数中加入正则项(用 \(\Omega(\theta)\) 表示),L1正则对应的正则项为: \(L1 = \lambda\sum_{i=1}^n|\theta_i|\) ,L2对应的正则项是: \(L2 = \lambda\sum_{i=1}^n\theta_i^2\) 。例如线性回归的正则化损失函数为: \[J(\theta)={1\over 2m} \sum_{i=1}^m (h_

python机器学习——自适应线性神经元

我们两清 提交于 2019-12-04 07:13:45
上篇博客我们说了感知器,这篇博客主要记录自适应线性神经元的实现算法及一些其他的训练细节,自适应线性神经元(简称为Adaline)由Bernard Widrow和他的博士生Tedd Hoff提出,对感知器算法进行了改进。 当然Adaline对输入向量x的处理和感知器是一样的,都是使用一个权重向量w与x线性组合后得到z,再使用激活函数将z压缩到二元输入(1/-1),区别在于Adaline使用梯度下降法来更新w。 因为我们的目的是准确分类,那么我们需要来衡量分类效果的好坏,在这里我们介绍目标函数: \[ J(w) = \frac12 \sum_i^n(y^i - \phi(z^i))^2 \] 它也可以叫做损失函数,通过上式我们可以大致理解为什么叫做损失函数,此函数可以计算出所有训练样本的真实值和预测值之间的误差平方和(Sum of Squared Errors,简称SSE),式子前面的那个1/2是为了之后求导方便添加的,没有其他意义。 有了损失函数,于是我们的目的更具体一点,就是为了选择合适的w,使损失函数取得最小值,损失函数越小,就意味着错误分类的情况越少,算法的分类效果也就越好。而因为Adaline的损失函数是一个凸函数,所以我们可以使用梯度下降来找到使损失函数取值最小的权重向量w,我们可以想象为一个小球滚下山: 刚开始的w也许会得到一个很大的损失函数,但是由于损失函数J是w的函数

回归损失函数

冷暖自知 提交于 2019-12-04 01:39:32
1.均方误差(Mean Square Error / Quadratic Loss): MSE保证没有特别异常的预测值,因为平方部分放大了这种误差。 2.平均绝对误差(Mean Absolute Error): MAE保证预测值在大多数情况下表现良好(不会刻意管异常值),因为所有的误差都按相同的线性比例加权。 3.Huber Loss: Huber Loss介于MSE和MAE之间,赋予异常值一些额外的权重但也不给太多。 来源: https://www.cnblogs.com/hanasaki/p/11827245.html

网络权重初始化方法总结(上):梯度消失、梯度爆炸与不良的初始化

杀马特。学长 韩版系。学妹 提交于 2019-12-03 22:41:27
目录 前向传播与反向传播回顾 梯度消失与梯度爆炸 激活函数的影响 权重矩阵的影响 不良初始化 参考 博客: blog.shinelee.me | 博客园 | CSDN 前向传播与反向传播回顾 神经网络的训练过程可以简化成以下步骤, 输入预处理(feature scaling等) 初始化网络weight和bias 前向传播,得到网络输出 计算损失函数,得到当前损失 反向传播,根据链式法则,逐层回传得到损失函数对当前参数的偏导,根据梯度下降算法对当前参数进行更新 重复步骤3 4 5,直到损失不再减小,即收敛 一个简单的前向传播和反向传播的示意图如下,线性组合和非线性激活交替进行,线性组合层可以为全连接层或卷积层等,图片来自 链接 , 梯度下降算法的参数更新公式为, \[ W(t+1)=W(t)-\eta \frac{d C}{d W} \] 其中 \(C=J(W)\) 为损失函数,即通过参数的偏导对参数进行更新。反向传播时,由链式法则,偏导反向回传,逐层计算损失函数对当前参数的偏导。对某个参数的偏导为一串因子的乘积,因子依次为损失函数对网络输出的偏导、激活函数的偏导、线性组合的偏导、激活函数的偏导、线性组合的偏导……如下面所示(来自 链接 ),这里,损失为二分之LMS,用 \(C\) 表示, \(z\) 为线性组合的输出(激活层的输入), \(a\) 为激活层的输出(线性组合的输入),

深度学习基础模型算法原理及编程实现--04.改进神经网络的方法

≡放荡痞女 提交于 2019-12-03 18:45:43
文章列表 1. 深度学习基础模型算法原理及编程实现–01.感知机 . 2. 深度学习基础模型算法原理及编程实现–02.线性单元 . 3. 深度学习基础模型算法原理及编程实现–03.全链接 . 4. 深度学习基础模型算法原理及编程实现–04.改进神经网络的方法 . 5. 深度学习基础模型算法原理及编程实现–05.卷积神经网络 . 6. 深度学习基础模型算法原理及编程实现–06.循环神经网络 . 9. 深度学习基础模型算法原理及编程实现–09.自编码网络 . 9. 深度学习基础模型算法原理及编程实现–10.优化方法:从梯度下降到NAdam . … 深度学习基础模型算法原理及编程实现–04.改进神经网络的方法 4.1 基本激活函数认知 4.1.1 sigmoid 5.1.2 tf.tanh 5.1.3 ReLU 5.1.4 Leaky ReLU 5.1.5 Softplus 5.2 增加隐藏层数 5.3 提升学习速率 5.3.1 梯度下降改为随机梯度下降 5.3.2 输出层激活函数与目标函数的选择 5.3.2.1 激活函数为sigmoid函数、损失函数为交叉项 5.3.2.2 激活函数为线性函数且损失函数为平方损失函数 5.3.2.3 损失函数为交叉项的好处 5.3.2.4 柔性最大值(softmax函数) 5.3.2.5 Softmax-loss 5.3.3

机器学习 --超参数调优

五迷三道 提交于 2019-12-03 17:17:56
 机器学习中,绝大部分模型没有解析解,需要采用梯度下降法求解最有参数,各种各样的梯度下降法都会遇到一个问题,就是如何设置学习率,是一个技术活,更是一个运气活。 一 学习率参数调优的原理 超参数调优,经常会遇到两个问题: 1、 模型发散,参数随着迭代数值绝对值越来越大,甚至发散到无穷,从损失函数来看,误差也会越来越大。 2、 震荡,从损失函数来看,误差出现震荡,模型在局部最优解附近徘徊。 1.1 模型参数发散的原因 假定损失函数为 Q ( β ) > 0 Q ( β ) > 0 //--> ,通常梯度下降法可表示为 β n e w = β o l d − λ ∇ Q ( β ) | β = β o l d β n e w = β o l d − λ ∇ Q ( β ) | β = β o l d //--> 当 Q ( β ) Q ( β ) //--> 满足条件: ∥ ∇ Q ( β ) ∥ ≥ s ∥ β ∥ ; ∀ ∥ β ∥ > M > 0 a n d s > 0 ‖ ∇ Q ( β ) ‖ ≥ s ‖ β ‖ ; ∀ ‖ β ‖ > M > 0 a n d s > 0 //--> 几乎所有损失函数都满足这一条件,比如最简单的 Q ( θ ) = a θ 2 , a > 0 , ∀ θ ≠ 0 Q ( θ ) = a θ 2 , a > 0 , ∀ θ ≠ 0 //-->

一文理清深度学习前馈神经网络

杀马特。学长 韩版系。学妹 提交于 2019-12-03 15:15:08
🚙 Index 多层感知机(MLP)介绍 深度神经网络的激活函数 深度神经网络的损失函数 多层感知机的反向传播算法 神经网络的训练技巧 深度卷积神经网络 前馈神经网络(feedforward neural network)是一种最简单的 神经网络 ,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.各层间没有反馈。是目前应用最广泛、发展最迅速的 人工神经网络 之一。研究从20世纪60年代开始,目前理论研究和实际应用达到了很高的水平 ——百度百科 而深度学习模型,类似的模型统称是叫 深度前馈网络(Deep Feedforward Network) ,其目标是拟合某个函数f,由于从输入到输出的过程中不存在与模型自身的反馈连接,因此被称为“前馈”。常见的深度前馈网络有:多层感知机、自编码器、限制玻尔兹曼机、卷积神经网络等等。 01 多层感知机(MLP)介绍 说起 多层感知器(Multi-Later Perceptron) ,不得不先介绍下 单层感知器(Single Layer Perceptron) ,它是最简单的神经网络,包含了输入层和输出层,没有所谓的中间层(隐含层),可看下图: 也就是说,将输入向量赋予不同的权重向量,整合后加起来,并通过激活函数输出1或-1,一般单层感知机只能解决线性可分的问题,如下图: 我选择了0个隐含层