分类目录归档:学习

共轭梯度法

共轭梯度法(Conjugate Gradient)是介于最速下降法牛顿法之间的一个方法

  • 仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,
  • 避免了牛顿法需要存储和计算Hessian矩阵(占用空间大)并求逆的缺点
  • 求解大型线性方程组或非线性最优化问题时常用且高效的方法

1 共轭方向法

设$G$为对称正定矩阵,若$d^T_mGd_n=0,\ m\neq n$ ,则称$d_m$和$d_n$为“G共轭”,共轭方向是“互不相关”的方向

共轭是正交的推广,$n$个共轭向量可以作为$n$维空间的非正交基,共轭向量间是线性无关的

共轭方向法

Read more

傅里叶变换

1 傅里叶变换

1.1 基本定义

传统傅里叶变换的定义为(积分形式):$F(\omega)=\mathcal{F}{f(t)}=\int f(t)e^{-i\omega t}dt$

传统逆傅里叶变换的定义为(积分形式):$f(t)=\mathcal{F}^{-1}{F(\omega)}=\frac{1}{2\pi}\int F(\omega)e^{i\omega t}d\omega$

卷积定理:函数卷积的傅里叶变换是函数傅立叶变换的乘积 $$f\ast g=\mathcal{F}^{

Read more

ART-对抗性鲁棒性工具集

1 基本介绍

对抗性鲁棒性工具集(Adversarial Robustness Toolbox,ART)是用于机器学习安全性的Python库

  • 从逃逸,数据污染,模型提取和推断的对抗性威胁等方面捍卫和评估模型
  • 适用广泛,支持所有常见的数据类型、机器学习任务、机器学习框架

本项目由IBM团队在2019年开源。项目文档不是特别完善,但是示例丰富,API设计

Read more

回归内生性问题

1 内生性问题

对于回归方程$Y = a + bX + e$,当解释变量$X$和误差项$e$存在相关性时,说明回归模型存在内生性问题

内生性问题的产生原因:

  • 遗漏变量(比如在分析学历和收入的关系时,容易忽略个人能力的影响)
  • 反向因果(比如分析政策对经济影响时,要意识到经济对政策也是有影响的)
  • 选择偏误(样本选择偏误和自选择偏误)、以及测量误差等

内生性问题的后果:在小样本下,内生变量和外生变量估计系数都有偏。在大样本下,内生变量估计系数不一致。外

Read more

Optuna-超参优化

1 基本介绍

Optuna 是一个为机器学习设计的自动超参数优化软件框架

  • 轻量级、多功能和跨平台架构;依赖少,安装简单
  • Python式搜索空间(条件语句和循环均为Python语法)
  • 高效的优化算法;先进的超参采样方法,支持剪枝算法
  • 易用的并行优化;少量改动代码即可实现多服务器并行
  • 便捷的可视化;支持各种绘图函数展示优化历史记录

项目地址
官方文档
中文文档 :不推荐,因为很久没更新了(230331)

截至230331,Op

Read more

核密度估计

核密度估计(kernel density estimation,简称KDE)是核平滑对概率密度估计的应用,即一种以核为权重估计随机变量概率密度函数的非参数方法。由Rosenblatt (1955)和Emanuel Parzen(1962)提出,又名Parzen窗(Parzen window)

核密度估计的实现:

  • 假设$(x_1,x_2,...,x_n)$是来自同一个单变量未知分布中的独立样本
  • 核密度估计可以根据这些样本推测出该分布的概率密度函数: $$\hat{f}_h(x)=\frac{1}{n}\Sigma_{i=1}^nK_h(x-x_i)=\frac{1}{nh}\Sigma_{

Read more

贝叶斯优化

贝叶斯优化是一种通用的黑盒优化算法,不需要计算梯度便可快速解决最优化问题,贝叶斯优化适合处理目标函数计算成本高或求导困难的情况。贝叶斯优化最常用的场景是超参搜索(尤其是神经网络类算法,计算成本高,超参数还多)

1 贝叶斯优化与代理模型

贝叶斯优化(Bayesian Optimization,BO)

  • 目的是要找到一组最优的超参组合x,能使评价/目标函数f(x)达到全局最优

  • 由于评价/目标函数f(x)计算成

Read more

高斯过程回归

1 高斯过程

给定均值向量和协方差矩阵,可以唯一确定一个高斯分布(Gaussian distribution)

给定均值函数和协方差函数,可以唯一确定一个高斯过程(Gaussian Process,GP)

假设自变量为时间$t$,则每一个时刻$t$,高斯过程都对应着一个高斯分布

当时间$t$是连续型变量时,整个高斯过程便对应着无数个高斯分布,所以高斯过程可看作无限维高斯分布

高斯分布的两

Read more

hyperopt-超参优化

1 基本介绍

hyperopt通过在超参空间内快速搜索,寻找最优的模型超参

  • 目前已实现搜索算法:随机搜索、TPE和自适应TPE
  • 低代码,易上手;支持分布式运算

项目地址
中文文档

注意:虽然该项目有6.6k个⭐,但已经有一年半未更新

截至撰写本文的230315,此项目的上次更新日期是211129

补充说明:对tpe算法原理感兴趣的读者可参阅论文阅读-TPE算法

2 简单上手

  1. 最简单的官方示例:
# 定义目标函数
def objective(args): # objective = c1+c2^2
    

Read more

PyCaret-低代码机器学习

1 基本介绍

PyCaret是一个开源的、低代码的Python机器学习库,可以实现机器学习工作流程的自动化。作为一个端到端的机器学习和模型管理工具,PyCaret可以成倍地缩短实验周期,实现更有效率的科研探索。

  • 以包装器的形式大幅度缩减代码量(用几行代码实现数百行代码的功能)
  • 主要围绕 scikit-learn、XGBoost、LightGBM、CatBoost、Optuna、Hyperopt、Ray等框架
  • 支持初级和中等难度的数据分析与建模工作,适合作为前期探索工具
  • 主要支持以下几种算法场景:聚类,异常检测,关联规则,分类&回归,时序分析

Read more