随机梯度下降算法
pysgd的Python项目详细描述
pysgd
==
``pysgd``包包含一个执行各种随机梯度下降算法的函数。该函数接受数据、目标函数、梯度下降自适应和算法超参数作为参数。
主模块中的一个主函数,
``sgd`,一个类,``objective`,以及用于自适应和
目标函数的模块。`` sgd``使用
自适应和目标功能模块以及指定的任何数据创建一个``objective``实例。
目标模块包括梯度和成本函数。gradient
函数接受"theta"和"batch"作为参数,而cost
函数接受"theta"和"data"。自适应设置为
修饰的生成器函数,接受"params"和"grad\u fun"作为
参数。`` params``是超参数的字典,``grad_fun`是一个
梯度函数。`` objective``创建一个梯度生成器和一个cost
函数(根据需要注入批处理生成器和数据),每个
都接受``theta``作为单个参数。然后,这些函数被用于``sgd``中的主梯度下降算法中。
该包的结构便于包含附加
算法和最小附加样板。附加目标
函数和渐变适配可以按照包含函数和渐变适配的基本
形式添加,并将它们放在各自的文件夹中。
:
||--达达格拉德。py
——adam.py
——常数。py
;——目标
——线性。py
/>梯度下降是一种方法使目标函数最小化。在机器学习应用中,要最小化的目标函数是预测模型的误差(或成本)。预测模型由一个应用于输入的参数"theta"、"x"、"br"(也称为训练样本、特征、观察或独立变量)组成,以估计输出"y"hat(也称为标签或因变量)。梯度下降试图确定当应用于一组输入时导致最低总误差的
参数(实际结果与模型预测的
之间的差异)。下面是基本的预测公式。
``h(x,theta)=y_hat``
根据
应用程序使用,但上面的公式表达了尽可能接近预测实际结果的本质。
确定成本下降最快的"方向"(称为"梯度")。向那个方向更新``theta``少量
(称为学习率或``alpha``),然后重复,直到成本最小化。
``theta`(j+1)=theta j-alpha*梯度`
api
~~
一个``j x(n+2)`
数组,其中``j``是迭代次数,``n``是特征数
。`` Theta_j``位于前``n+1``列中,成本
``j_j``位于后一列中。
--"————————————————————————————————————————————————————————————————————————————————————————————————————————————————\|\|\`` obj='stab-tang````目标函数
以字符串的形式最小化,其值为``stab-tang``,
``linear``或``logistic``。`` stab_tang``是用于"stablinsky tang
函数<;https://en.wikipedia.org/wiki/test_functions_for_optimization>;``uu,
用于测试和说明目的。\|
\\``adapt='常量````渐变渐变适应,以值为``constant``、``adagrad``或``adam``的字符串形式出现。
原始:html
<;ul>;
…raw::html
<;li>;
``constant``不应用自适应
…原始:html
<;/li>;
…raw::html
``adagrad``实现`自适应梯度
算法<;http://stanford.edu/~jduchi/projects/duchihasi10懔colt.pdf>;``uuu
。原始:html
<;/li>;
…原始::html
<;li>;
``adam``实现`自适应矩
估计<;https://arxiv.org/pdf/1412.6980v8.pdf>;``uuu
……原始:html
<;/li>;
…raw::html
<;/ul>;
::
\\`data=np.array(闭括号)```\\`data,格式为
``m x(n+1)``array,包括第一列中的"one",如果有必要,其中"m"是训练观察次数。\|
\`` size=50```批处理大小,以``1``和
``m``之间的整数形式表示。连续地在数据上生成批,直到θ收敛或所有观测值都包含在批中,其中
点在使用其他批处理之前对数据进行洗牌。\
\ ``alpha=.01```````学习率``alpha``以浮点
点整数的形式。\|\|\`` epsilon=10**-8```超参数,由
``adagrad``和``adam``用于平滑。\|\|\`` beta1=0.9``
\``adam`使用的超参数,用于控制
移动梯度平均值的衰减率。\|\|\`` beta2=0.999`````由控制移动梯度平均值衰减率的
``adam`使用的超参数。
``delta` min=10**-6``````所有元素中建立收敛所需的最大变化量,以浮点
点整数的形式。如果在较少的迭代中没有实现收敛,则要计算的最大批数为
。\|
测试使用
`pytest<;http://doc.pytest.org/en/latest/index.html>;``进行,覆盖代码的100%
https://en.wikipedia.org/wiki/test_functions_for_optimization>;`uuu
用于测试。该函数是非凸的,具有直接的
梯度计算,使得可以将算法产生的
值与已知值进行比较。通过使用二维
输入``j``在``theta`
范围内的所有可能值都可以绘制为曲面。`` j(theta)``对于
的每次迭代,可以在曲面上绘制算法,以便可视化
梯度下降。
包含笔记本中的绘图中曲面的颜色比例
对应于``j``的值。
曲面上的点在每次迭代时表示"j"(θj)的色阶对应于算法的迭代。
==
``pysgd``包包含一个执行各种随机梯度下降算法的函数。该函数接受数据、目标函数、梯度下降自适应和算法超参数作为参数。
主模块中的一个主函数,
``sgd`,一个类,``objective`,以及用于自适应和
目标函数的模块。`` sgd``使用
自适应和目标功能模块以及指定的任何数据创建一个``objective``实例。
目标模块包括梯度和成本函数。gradient
函数接受"theta"和"batch"作为参数,而cost
函数接受"theta"和"data"。自适应设置为
修饰的生成器函数,接受"params"和"grad\u fun"作为
参数。`` params``是超参数的字典,``grad_fun`是一个
梯度函数。`` objective``创建一个梯度生成器和一个cost
函数(根据需要注入批处理生成器和数据),每个
都接受``theta``作为单个参数。然后,这些函数被用于``sgd``中的主梯度下降算法中。
该包的结构便于包含附加
算法和最小附加样板。附加目标
函数和渐变适配可以按照包含函数和渐变适配的基本
形式添加,并将它们放在各自的文件夹中。
:
——adam.py
——常数。py
;——目标
——线性。py
/>梯度下降是一种方法使目标函数最小化。在机器学习应用中,要最小化的目标函数是预测模型的误差(或成本)。预测模型由一个应用于输入的参数"theta"、"x"、"br"(也称为训练样本、特征、观察或独立变量)组成,以估计输出"y"hat(也称为标签或因变量)。梯度下降试图确定当应用于一组输入时导致最低总误差的
参数(实际结果与模型预测的
之间的差异)。下面是基本的预测公式。
``h(x,theta)=y_hat``
根据
应用程序使用,但上面的公式表达了尽可能接近预测实际结果的本质。
确定成本下降最快的"方向"(称为"梯度")。向那个方向更新``theta``少量
(称为学习率或``alpha``),然后重复,直到成本最小化。
``theta`(j+1)=theta j-alpha*梯度`
api
~~
一个``j x(n+2)`
数组,其中``j``是迭代次数,``n``是特征数
。`` Theta_j``位于前``n+1``列中,成本
``j_j``位于后一列中。
--"————————————————————————————————————————————————————————————————————————————————————————————————————————————————\|\|\`` obj='stab-tang````目标函数
以字符串的形式最小化,其值为``stab-tang``,
``linear``或``logistic``。`` stab_tang``是用于"stablinsky tang
函数<;https://en.wikipedia.org/wiki/test_functions_for_optimization>;``uu,
用于测试和说明目的。\|
\\``adapt='常量````渐变渐变适应,以值为``constant``、``adagrad``或``adam``的字符串形式出现。
原始:html
<;ul>;
…raw::html
<;li>;
``constant``不应用自适应
…原始:html
<;/li>;
…raw::html
``adagrad``实现`自适应梯度
算法<;http://stanford.edu/~jduchi/projects/duchihasi10懔colt.pdf>;``uuu
。原始:html
<;/li>;
…原始::html
<;li>;
``adam``实现`自适应矩
估计<;https://arxiv.org/pdf/1412.6980v8.pdf>;``uuu
……原始:html
<;/li>;
…raw::html
<;/ul>;
::
\\`data=np.array(闭括号)```\\`data,格式为
``m x(n+1)``array,包括第一列中的"one",如果有必要,其中"m"是训练观察次数。\|
\`` size=50```批处理大小,以``1``和
``m``之间的整数形式表示。连续地在数据上生成批,直到θ收敛或所有观测值都包含在批中,其中
点在使用其他批处理之前对数据进行洗牌。\
\ ``alpha=.01```````学习率``alpha``以浮点
点整数的形式。\|\|\`` epsilon=10**-8```超参数,由
``adagrad``和``adam``用于平滑。\|\|\`` beta1=0.9``
\``adam`使用的超参数,用于控制
移动梯度平均值的衰减率。\|\|\`` beta2=0.999`````由控制移动梯度平均值衰减率的
``adam`使用的超参数。
``delta` min=10**-6``````所有元素中建立收敛所需的最大变化量,以浮点
点整数的形式。如果在较少的迭代中没有实现收敛,则要计算的最大批数为
。\|
测试使用
`pytest<;http://doc.pytest.org/en/latest/index.html>;``进行,覆盖代码的100%
https://en.wikipedia.org/wiki/test_functions_for_optimization>;`uuu
用于测试。该函数是非凸的,具有直接的
梯度计算,使得可以将算法产生的
值与已知值进行比较。通过使用二维
输入``j``在``theta`
范围内的所有可能值都可以绘制为曲面。`` j(theta)``对于
的每次迭代,可以在曲面上绘制算法,以便可视化
梯度下降。
包含笔记本中的绘图中曲面的颜色比例
对应于``j``的值。
曲面上的点在每次迭代时表示"j"(θj)的色阶对应于算法的迭代。