在机器学习和深度学习中,通常需要把目标函数设置或者假定为凸函数(Convex Function),这样能够满足局部最小值就是全局最小值的特点,方便进行梯度计算

阅读全文 »

在数据处理过程中经常使用函数式命令,确实能够方便和快捷的实现功能,下面小结一下python实现函数式编程

python提供了lambda、map、filter、reduce和sorted等基础函数进行函数式编程

阅读全文 »

softmax回归常用于多分类问题,其输出可直接看成对类别的预测概率

假设对k类标签([1, 2, ..., k])进行分类,那么经过softmax回归计算后,输出一个k维向量,向量中每个值都代表对一个类别的预测概率

下面先以单个输入数据为例,进行评分函数、损失函数的计算和求导,然后扩展到多个输入数据同步计算

阅读全文 »

逻辑回归常用于二元分类任务,其使用交叉熵损失进行梯度计算,实现步骤如下:

  1. 加载、打乱、标准化训练和测试数据
  2. 设计分类器、损失函数和梯度更新函数
  3. 用训练数据计算目标函数和精度
  4. 用训练数据计算损失函数和梯度,并更新梯度
  5. 重复3-4步,直到精度达到要求或达到指定迭代次数
  6. 用测试数据计算目标函数和精度

使用numpypytorch分别实现小批量梯度下降的2分类逻辑回归

阅读全文 »

首先利用numpy实现梯度下降解决多变量线性回归问题,然后逐步将操作转换成pytorch

实现步骤如下:

  1. 加载训练数据
  2. 初始化权重
  3. 计算预测结果
  4. 计算损失函数
  5. 梯度更新
  6. 重复3-5步,直到完成迭代次数
  7. 绘制损失图

多变量线性回归测试数据参考ex1data2.txt

阅读全文 »

梯度下降是求解函数最小值的算法,也称为最速下降法,它通过梯度更新不断的逼近最优解

常用的比喻是下山问题,通过计算梯度能够找到函数值变化最快的地方,通过步长决定收敛的速度

梯度下降方法包括批量梯度下降、随机梯度下降和小批量梯度下降,下面通过梯度下降计算多变量线性回归问题

阅读全文 »