ML--LR学习小结

上周学习的是决策树,这周接触了算是第一个最优化问题-Logistic Regression。逻辑斯提回归实际上是一种分类的算法,是广义上的线性回归,与感知机很相似。做个小小的预告,下篇将探讨支持向量机(SVM),算是近期ML学习的一个小的节点,因为接下来将精力转移到深度学习的入门。但仍会一如既往的在博客上更新一些想法,ML的学习不会结束,后面将进行更深入的学习。

线性回归

-线性模型形式简单、易于建模,许多功能更加强大的非线性模型在线性模型的基础上通过引入层级结构或高维映射得到,在神经网络入门的第一个实例XOR问题中有所体现。线性回归问题求解和LR回归类似,只是为了完成分类任务将任务的真实标记联系到单调可微函数上。这种分类学习的优点是无需知道先验分布,同时不仅可以得到“分类”,更可得到近似概率预测。此外对率函数是任意阶可导的凸函数,这个解释一定程度上解答了梯度下降为何可以很好得解决这个问题。

核心思想与推导

-利用回归模型

y=wTx+b
然后对似然函数求极值,转化成最优化问题。今早在看prml的时候在贝叶斯的介绍中提到了频概和贝叶斯的核心都是对这个条件概率,即围绕似然函数做文章。这里用梯度下降求解,随机梯度下降则是将整个数据集梯度的迭代换成随机数据的梯度求解,核心思想不变。
似然函数的表达
梯度下降的原理:
梯度下降原理
下面是梯度下降法的推导,可能有些错误,希望指正:
梯度下降
代码如下:
def gradAscent(dataMatIn, classLabels):
    dataMatrix = np.mat(dataMatIn)             
    labelMat = np.mat(classLabels).transpose() #转置
    m,n = np.shape(dataMatrix)
    alpha = 0.001
    maxCycles = 500#迭代次数
    weights = np.ones((n,1))
    for k in range(maxCycles):             
        h = sigmoid(dataMatrix*weights)     
        error = (labelMat - h)              
        weights = weights + alpha * dataMatrix.transpose()* error 
    return weights

学习过程中的思考

《实战》一书中迭代的代码并没有做公式上的解释,之前我对于LR回归的理解错误在于对梯度下降优化的目标函数理解有误。经过下午的反复思考结合蓝皮书上的似然函数以及梯度下降的基本原理做了简单的推导从而理解了这段代码。学习过程中一个模棱两可可能会导致对知识的一知半解。同时西瓜书上很好的解释了线性回归和LR回归的关系,以及和感知机之间的联系,三个算法的几乎完全一样,但目的和理解上略有不同。在看花书前馈神经网络的时候看到了线性模型的用处,希望以后可以在这里继续补充关于线性模型的进一步思考。张侃建老师上课提到了最优化问题中的全局最优和局部最优问题,也是这类算法需要着重解决的。还有很多思考没有继续,还有很多思考有待补充,先告一段落,谢谢。

LG-MLP-LR 是一种结合了多层感知机(MLP)与逻辑回归(Logistic Regression, LR)的机器学习模型架构,通常用于分类任务,特别是在处理高维稀疏数据时展现出良好的性能。该模型的设计理念是利用 MLP 的非线性建模能力提取特征间的复杂关系,同时通过逻辑回归层进行最终的分类决策,从而在保持模型表达能力的同时控制过拟合。 在实现上,LG-MLP-LR 通常采用以下结构: - **输入层**:接收原始特征向量,通常为数值型或经过嵌入(embedding)处理的类别型特征。 - **隐藏层**:由一个或多个全连接层组成,使用激活函数(如ReLU、Sigmoid)进行非线性变换,以捕捉特征之间的高阶交互。 - **输出层**:使用逻辑回归(Sigmoid 函数)作为最终分类器,输出二分类或多分类的概率结果。 以下是一个基于 PyTorch 的 LG-MLP-LR 模型实现示例: ```python import torch import torch.nn as nn class LGMLPLR(nn.Module): def __init__(self, input_dim, hidden_dims, output_dim=1): super(LGMLPLR, self).__init__() layers = [] prev_dim = input_dim for hidden_dim in hidden_dims: layers.append(nn.Linear(prev_dim, hidden_dim)) layers.append(nn.ReLU()) prev_dim = hidden_dim self.mlp = nn.Sequential(*layers) self.lr = nn.Linear(prev_dim, output_dim) def forward(self, x): x = self.mlp(x) x = torch.sigmoid(self.lr(x)) return x ``` 在训练过程中,通常使用二元交叉熵损失(Binary Cross Entropy Loss)进行优化: ```python model = LGMLPLR(input_dim=100, hidden_dims=[64, 32]) criterion = nn.BCELoss() optimizer = torch.optim.Adam(model.parameters(), lr=0.001) ``` 该模型广泛应用于点击率预测(CTR Prediction)、推荐系统、广告投放等领域。例如,在推荐系统中,LG-MLP-LR 可用于预测用户对某个商品的点击概率,输入包括用户特征、物品特征及上下文特征等[^3]。 此外,LG-MLP-LR 也可以与低秩适应(Low-Rank Adaptation, LoRA)技术结合,在微调大型模型时减少训练参数量[^2]。这种策略在资源受限的场景下尤其有用,能够显著降低计算成本,同时保持较高的预测性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值