optimizers

classicML的优化器.

Optimizer

优化器的基类.

cml.optimizers.Optimizer(name=None)

参数

  • name: 字符串,优化器的名称.

_call_

函数实现.

__call__(x, y, epochs, parameters, *args, **kwargs)

参数

  • x: 一个 Numpy 数组,特征数据.

  • y:一个 Numpy 数组,标签.

  • epochs:整数,训练的轮数.

  • parameters:一个 Numpy 数组,模型的参数矩阵.

run

运行优化器优化参数.

run(x, y, epochs, parameters, *args, **kwargs)

参数

  • x: 一个 Numpy 数组,特征数据.

  • y: 一个 Numpy 数组,标签.

  • epochs: 整数,训练的轮数.

  • parameters: 一个 Numpy 数组,模型的参数矩阵.

  • verbose: 布尔值,显示日志信息.

  • loss: 字符串或者cml.losses.Loss实例,模型使用的损失函数.

  • metric: 字符串或者cml.metrics.Metric实例,模型使用的评估函数.

  • callbacks: 列表,模型训练过程的中间数据记录器.

返回

模型的参数矩阵.

Adam

自适应矩估计优化器.

cml.optimizers.Adam(name='adam',
                   learning_rate=1e-3,
                   beta_1=0.9,
                   beta_2=0.999,
                   epsilon=1e-7)

参数

  • name: 字符串,优化器的名称.

  • learning_rate: 浮点数,优化器的学习率.

  • beta_1: 浮点数,一阶矩估计衰减率.

  • beta_2: 浮点数,二阶矩估计衰减率.

  • epsilon:浮点数,数值稳定的小常数.

run

运行优化器优化参数.

run(x, y, epochs, parameters, *args, **kwargs)

参数

  • x: 一个 Numpy 数组,特征数据.

  • y: 一个 Numpy 数组,标签.

  • epochs: 整数,训练的轮数.

  • parameters: 一个 Numpy 数组,模型的参数矩阵.

  • verbose: 布尔值,显示日志信息.

  • loss: 字符串或者cml.losses.Loss实例,模型使用的损失函数.

  • metric: 字符串或者cml.metrics.Metric实例,模型使用的评估函数.

  • callbacks: 列表,模型训练过程的中间数据记录器.

返回

模型的参数矩阵.

GradientDescent

梯度下降优化器.

cml.optimizers.GradientDescent(name='gradient_descent',
                              learning_rate=1e-2)

参数

  • name: 字符串,优化器的名称.

  • learning_rate: 浮点数,优化器的学习率.

run

运行优化器优化参数.

run(x, y, epochs, beta, *args, **kwargs)

参数

  • x: 一个 Numpy 数组,特征数据.

  • y: 一个 Numpy 数组,标签.

  • epochs: 整数,训练的轮数.

  • beta: 一个 Numpy 数组,模型的参数矩阵.

  • verbose: 布尔值,显示日志信息.

  • loss: 字符串或者cml.losses.Loss实例,模型使用的损失函数.

  • metric: 字符串或者cml.metrics.Metric实例,模型使用的评估函数.

返回

模型的参数矩阵.

forward

优化器前向传播.

cml.optimizers.GradientDescent.forward(x, parameters)

参数

  • x: 一个 Numpy 数组,特征数据.

  • parameters: 一个 Numpy 数组,模型的参数矩阵.

返回

预测的标签(概率形式)和参数(x;1)矩阵.

backward

优化器反向传播.

cml.optimizers.GradientDescent.backward(y_pred, y_true, x_hat)

参数

  • y_pred: 一个 Numpy 数组,预测的标签(概率形式).

  • y_true: 一个 Numpy 数组,真实的标签.

  • x_hat: 一个 Numpy 数组,属性的参数矩阵.

返回

优化器的实时梯度矩阵.

NewtonMethod

牛顿法优化器.

cml.optimizers.NewtonMethod(name='newton_method')

参数

  • name: 字符串,优化器的名称.

run

运行优化器优化参数.

run(x, y, epochs, beta, *args, **kwargs)

参数

  • x: 一个 Numpy 数组,特征数据.

  • y: 一个 Numpy 数组,标签.

  • epochs: 整数,训练的轮数.

  • beta: 一个 Numpy 数组,模型的参数矩阵.

  • verbose: 布尔值,显示日志信息.

  • loss: 字符串或者cml.losses.Loss实例,模型使用的损失函数.

  • metric: 字符串或者cml.metrics.Metric实例,模型使用的评估函数.

返回

模型的参数矩阵.

forward

优化器前向传播.

cml.optimizers.NewtonMethod.forward(x, parameters)

参数

  • x: 一个 Numpy 数组,特征数据.

  • parameters: 一个 Numpy 数组,模型的参数矩阵.

返回

预测的标签(概率形式)和参数(x;1)矩阵.

backward

优化器反向传播.

cml.optimizers.NewtonMethod.backward(y_pred, y_true, x_hat)

参数

  • y_pred: 一个 Numpy 数组,预测的标签(概率形式).

  • y_true: 一个 Numpy 数组,真实的标签.

  • x_hat: 一个 Numpy 数组,属性的参数矩阵.

返回

优化器的实时梯度矩阵.

RadialBasisFunctionOptimizer

径向基函数优化器.

cml.optimizers.RadialBasisFunctionOptimizer(name='rbf',
                                            learning_rate=1e-2)

参数

  • name: 字符串,优化器的名称.

  • learning_rate: 浮点数,优化器的学习率.

run

运行优化器优化参数.

run(x, y, epochs, parameters, *args, **kwargs)

参数

  • x: 一个 Numpy 数组,特征数据.

  • y: 一个 Numpy 数组,标签.

  • epochs: 整数,训练的轮数.

  • parameters: 一个 Numpy 数组,模型的参数矩阵.

  • verbose: 布尔值,显示日志信息.

  • loss: 字符串或者cml.losses.Loss实例,模型使用的损失函数.

  • metric: 字符串或者cml.metrics.Metric实例,模型使用的评估函数.

  • callbacks: 列表,模型训练过程的中间数据记录器.

返回

模型的参数矩阵.

forward

优化器前向传播.

cml.optimizers.RadialBasisFunctionOptimizer.forward(x, parameters)

参数

  • x: 一个 Numpy 数组,特征数据.

  • parameters: 一个 Numpy 数组,模型的参数矩阵.

返回

预测的标签(概率形式)和参数矩阵缓存.

backward

优化器反向传播.

cml.optimizers.RadialBasisFunctionOptimizer.backward(y_pred, y_true, cache)

参数

  • y_pred: 一个 Numpy 数组,预测的标签(概率形式).

  • y_true: 一个 Numpy 数组,真实的标签.

  • cache: 一个 Numpy 数组,参数缓存.

返回

优化器的实时梯度矩阵.

SequentialMinimalOptimization

序列最小最优化算法. SMO算法是一种启发式算法,即每次优化两个变量,使之满足KKT条件;不断迭代,最后使得全部变量满足KKT条件. 整个SMO算法包括:求解两个变量的二次规划问题和选择变量的启发式方法.

cml.optimizers.SequentialMinimalOptimization(name='SMO') # 可以使用缩写 cml.models.SMO()

参数

  • name: 字符串,优化器的名称.

run

运行优化器优化参数.

run(x, y, *args, **kwargs)

参数

  • x: 一个 Numpy 数组,特征数据.

  • y: 一个 Numpy 数组,标签.

  • C: 浮点数,软间隔正则化系数.

  • kernel: 字符串或者cml.kernels.Kernel,分类器使用的核函数.

  • tol: 浮点数,停止训练的最大误差值.

  • epochs: 整数,最大的训练轮数,如果是-1则表示需要所有的样本满足条件时, 才能停止训练,即没有限制.

返回

分类器的支持向量下标数组, 支持向量数组, 拉格朗日乘子数组, 支持向量对应的标签数组和偏置项.

StochasticGradientDescent

随机梯度下降优化器.

cml.optimizers.StochasticGradientDescent(name='stochastic_gradient_descent',
                                         learning_rate=1e-2) # 可以使用缩写 cml.models.SGD()

参数

  • name: 字符串,优化器的名称.

  • learning_rate: 浮点数,优化器的学习率.

注意

  • 如果想固定随机种子,实现复现的话,请在模型实例化的时候将随机种子置为一个常整数.

run

运行优化器优化参数.

run(x, y, epochs, parameters, *args, **kwargs)

参数

  • x: 一个 Numpy 数组,特征数据.

  • y: 一个 Numpy 数组,标签.

  • epochs: 整数,训练的轮数.

  • parameters: 一个 Numpy 数组,模型的参数矩阵.

  • verbose: 布尔值,显示日志信息.

  • loss: 字符串或者cml.losses.Loss实例,模型使用的损失函数.

  • metric: 字符串或者cml.metrics.Metric实例,模型使用的评估函数.

  • callbacks: 列表,模型训练过程的中间数据记录器.

返回

模型的参数矩阵.

forward

优化器前向传播.

cml.optimizers.StochasticGradientDescent.forward(x, parameters)

参数

  • x: 一个 Numpy 数组,特征数据.

  • parameters: 一个 Numpy 数组,模型的参数矩阵.

返回

预测的标签(概率形式)和参数矩阵缓存.

backward

优化器反向传播.

cml.optimizers.StochasticGradientDescent.backward(y_pred, y_true, cache)

参数

  • y_pred: 一个 Numpy 数组,预测的标签(概率形式).

  • y_true: 一个 Numpy 数组,真实的标签.

  • cache: 一个 Numpy 数组,参数缓存.

返回

优化器的实时梯度矩阵字典.