深度学习初

深度学习logistic回归损失函数

对于二分类问题,Logistic回归的损失函数可以表示为:

$J(\theta)= -\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}log(h_{\theta}(x^{(i)}))+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))]$

其中,$m$是样本数量,$y^{(i)}$是实际标签值(0或1),$h_{\theta}(x^{(i)})$是模型预测的概率值,即:

$h_{\theta}(x^{(i)}) = \frac{1}{1+e^{-\theta^{T}x^{(i)}}}$

$\theta$是模型参数向量,$x^{(i)}$是第$i$个样本的特征向量。

这个损失函数由两部分组成:第一部分是预测为正例的样本的损失,第二部分是预测为反例的样本的损失。对于每个样本,损失是预测为该标签的概率和实际标签的对数之积。

最小化这个损失函数的过程就是寻找一个最优的参数向量$\theta$,使得模型的预测尽可能接近实际标签。这可以通过梯度下降等优化算法来实现。

梯度下降法(Gradient Descent)是一种常用的优化算法,用于最小化损失函数或目标函数。它通过迭代更新模型参数,使得损失函数逐渐减小,从而找到局部最优解或全局最优解。

梯度下降法

下面是梯度下降法的基本流程:

  1. 初始化模型参数:例如,对于线性回归问题,可以初始化权重和偏置为随机值或0。

  2. 计算损失函数关于参数的梯度:使用训练集中的样本数据,计算损失函数对于每个参数的偏导数。这可以通过链式法则来计算,将梯度向量表示为损失函数对每个参数的偏导数。

  3. 更新参数:根据梯度的反方向来更新参数。具体地,使用学习率(learning rate)乘以梯度,然后从当前参数值中减去该结果。学习率确定了每次参数更新的步长,过大或过小的学习率都可能导致优化不收敛或收敛速度过慢。

  4. 重复步骤2和步骤3,直到达到指定的停止条件:停止条件可以是达到最大迭代次数、损失函数变化较小或梯度变化较小等。

梯度下降法有多种变体,包括批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)和小批量梯度下降(Mini-Batch Gradient Descent)等。这些变体使用不同的数据样本数量来计算梯度,并在更新参数时表现出不同的性质。

需要注意的是,梯度下降法可能会收敛到局部最优解,而非全局最优解。为了克服这个问题,可以尝试使用不同的初始化、调整学习率或使用更复杂的优化算法。

导数

在深度学习中,求导数是非常重要的,因为它用于计算损失函数对于模型参数的梯度,从而进行参数更新和优化。

在深度学习中,通常使用反向传播(Backpropagation)算法来有效地计算导数。反向传播利用了链式法则(Chain Rule),将整个神经网络的导数计算分解为每个层的导数计算。

以下是反向传播算法的基本过程:

  1. 前向传播:从输入开始,按照网络结构逐层计算每个神经元的输出。将输入信号通过激活函数进行非线性变换,最终得到模型的预测输出。

  2. 计算损失函数:将预测输出与真实标签进行比较,计算损失函数的值。损失函数的选择取决于具体的问题,例如均方误差(Mean Squared Error)或交叉熵损失(Cross-Entropy Loss)等。

  3. 反向传播:从输出层开始,根据链式法则计算每个层的导数。首先计算输出层的导数,然后逐层向前计算上一层的导数。对于每个神经元,根据激活函数的导数和后一层导数的加权求和,计算出当前层的导数。

  4. 更新参数:根据导数和学习率的乘积,计算每个参数的更新量。通过将更新量加到当前参数值上,更新模型的参数。

  5. 重复步骤1到步骤4,直到达到指定的停止条件(例如达到最大迭代次数或损失函数变化较小)。

需要注意的是,反向传播算法在计算过程中会利用到矩阵运算和自动微分等技术,使得求导数的计算高效而准确。

深度学习框架如TensorFlow和PyTorch等提供了自动求导功能,可以自动计算模型参数的导数,并进行参数更新。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

善程序员文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值