深度学习初

深度学习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等提供了自动求导功能,可以自动计算模型参数的导数,并进行参数更新。

相关推荐
陈苏同学4 分钟前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
吾名招财22 分钟前
yolov5-7.0模型DNN加载函数及参数详解(重要)
c++·人工智能·yolo·dnn
FL162386312933 分钟前
[深度学习][python]yolov11+bytetrack+pyqt5实现目标追踪
深度学习·qt·yolo
羊小猪~~39 分钟前
深度学习项目----用LSTM模型预测股价(包含LSTM网络简介,代码数据均可下载)
pytorch·python·rnn·深度学习·机器学习·数据分析·lstm
鼠鼠龙年发大财1 小时前
【鼠鼠学AI代码合集#7】概率
人工智能
龙的爹23331 小时前
论文 | Model-tuning Via Prompts Makes NLP Models Adversarially Robust
人工智能·gpt·深度学习·语言模型·自然语言处理·prompt
工业机器视觉设计和实现1 小时前
cnn突破四(生成卷积核与固定核对比)
人工智能·深度学习·cnn
醒了就刷牙1 小时前
58 深层循环神经网络_by《李沐:动手学深度学习v2》pytorch版
pytorch·rnn·深度学习
985小水博一枚呀1 小时前
【对于Python爬虫的理解】数据挖掘、信息聚合、价格监控、新闻爬取等,附代码。
爬虫·python·深度学习·数据挖掘
想要打 Acm 的小周同学呀2 小时前
实现mnist手写数字识别
深度学习·tensorflow·实现mnist手写数字识别