分类
最安全的交易平台对比

理解Gamma Scaping在外汇期权中策略的应用

Java 如何将控制台应用程序转换为SWING框架?,java,swing,console,jframe,Java,Swing,Console,Jframe,我有一个工人阶级的Holtwiners,这是我的主要包装。它是一个控制台应用程序。我搜索计算机上的一个文件夹,读取该文件夹中所有文件的名称。然后我要求用户打印他想在程序中使用的文件名。之后,我将此名称保存为字符串,并将此文件用于预测 但我需要通过windows应用程序来完成。据我所知,我需要创建新的JavaJFrame(我使用NetBeans,所以我已经使用了它们的构造函数)。我在那里放了1个JText字段和1个JButton。我想在按下按钮时发生下一件事: JText字段中的文本将被读取并保存

理解Gamma Scaping在外汇期权中策略的应用

Java 如何将控制台应用程序转换为SWING框架?,java,swing,console,jframe,Java,Swing,Console,Jframe,我有一个工人阶级的Holtwiners,这是我的主要包装。它是一个控制台应用程序。我搜索计算机上的一个文件夹,读取该文件夹中所有文件的名称。然后我要求用户打印他想在程序中使用的文件名。之后,我将此名称保存为字符串,并将此文件用于预测 但我需要通过windows应用程序来完成。据我所知,我需要创建新的JavaJFrame(我使用NetBeans,所以我已经使用了它们的构造函数)。我在那里放了1个JText字段和1个JButton。我想在按下按钮时发生下一件事: JText字段中的文本将被读取并保存

理解Gamma Scaping在外汇期权中策略的应用

注:思路是参考:http://blog.csdn.net/lichengyu/article/details/8457425点击打开链接

python代码为原创

1 .什么是Gamma校正?

由图可以看出,亮度和输入电压的关系更加近似于指数函数 (output = input ^ gamma )的关系。事实确实如此,CRT显示器厂商都默认将gamma值设为2.5,也就是如上的曲线。这里的指数,也就是我们所讨论的gamma。

Focal Loss 论文理解及公式推导

精度最高的目标检测器往往基于 RCNN 的 two-stage 方法,对候选目标位置再采用分类器处理. 而,one-stage 目标检测器是对所有可能的目标位置进行规则的(regular)、密集采样,更快速简单,但是精度还在追赶 two-stage 检测器.

论文发现,密集检测器训练过程中,所遇到的极端前景背景类别不均衡(extreme foreground-background class imbalance) 是核心原因.

对此,提出了 Focal Loss,通过修改标准的交叉熵损失函数,降低对能够很好分类样本的权重(down-weights the loss assigned 理解Gamma Scaping在外汇期权中策略的应用 to well-classified examples),解决类别不均衡问题.

Focal Loss 关注于在 hard samples 的稀疏子集进行训练,并避免在训练过程中大量的简单负样本淹没检测器.

Focal Loss 是动态缩放的交叉熵损失函数,随着对正确分类的置信增加,缩放因子(scaling factor) 衰退到 0. 如图:

Focal Loss 的缩放因子能够动态的调整训练过程中简单样本的权重,并让模型快速关注于困难样本(hard samples).

基于 Focal Loss 的 RetinaNet 的目标检测器表现.

1. Focal Loss

Focal Loss 旨在解决 理解Gamma Scaping在外汇期权中策略的应用 one-stage 目标检测器在训练过程中出现的极端前景背景类不均衡的问题(如,前景:背景 = 1:1000).

首先基于二值分类的交叉熵(cross entropy, CE) 引入 Focal Loss:

其中,$y \in \lbrace +1 -1 \rbrace$ 为 groundtruth 类别;$p \in [0, 1]$ 是模型对于类别 $y=1$ 所得到的预测概率.

则,$CE(p, y) = CE(p_t) = -log(p_t)$.

CE Loss 如图 Figure 1 中的上面的蓝色曲线所示. 其一个显著特点是,对于简单易分的样本,如,$p_t \gg 0.5$,其 loss 也是一致对待. 当累加了大量简单样本的 loss 后,具有很小 loss 值的可能淹没稀少的类(rare class).

1.1 均衡交叉熵 理解Gamma Scaping在外汇期权中策略的应用 Blanced CE

解决类别不均衡的一种常用方法是,对类别 +1 引入权重因子 $\alpha \in [0, 1]$,对于类别 -1 引入权重 $1 - \alpha$.

符号简介起见,定义 $\alpha _t$:

$$ \alpha_t = \begin \alpha &\text y=1 \\ 1-\alpha &\text \end $$

则,$\alpha$-balanced CE loss 为:

$$ CE(p_t) = 理解Gamma Scaping在外汇期权中策略的应用 -\alpha _t log(p_t) $$

1.2 Focal Loss 定义

虽然 $\alpha$ 能够平衡 positive/negative 样本的重要性,但不能区分 easy/hard 样本.

对此,Focal Loss 提出将损失函数降低 easy 样本的权重,并关注于对 hard negatives 样本的训练.

添加调制因子(modulating factor) $(1 - p_t)^<\gamma>$ 到 CE loss,其中 $\gamma \ge 0$ 为可调的 focusing 参数.

如图 Figure 1,给出了 $\gamma \in [0, 5]$ 中几个值的可视化.

Focal Loss 的两个属性:

[1] - 当样本被误分,且 $p_t$ 值很小时,调制因子接近于 1,loss 不受影响. 随着 $p_t \rightarrow 理解Gamma Scaping在外汇期权中策略的应用 1$,则调制因子接近于 0,则容易分类的样本的损失函数被降低权重.

[2] - focusing 参数 $\gamma$ 平滑地调整哪些 easy 样本会被降低权重的比率(rate). 当 $\gamma=0$,FL=CE;随着 $\gamma $ 增加,调制因子的影响也会随之增加(实验中发现 $\gamma = 2$ 效果最佳.)

直观上,调制因子能够减少 easy 样本对于损失函数的贡献,并延伸了loss 值比较地的样本范围.

例如,$\gamma 理解Gamma Scaping在外汇期权中策略的应用 = 0.2$ 时,被分类为 $p_t=0.9$ 的样本,与 CE 相比,会减少 100x 倍;而且,被分类为 $p_t \approx 0.968 $ 的样本,与 CE 相比,会有少于 1000x 倍的 loss 值. 这就自然增加了将难分类样本的重要性(如 $\gamma= 2$ 且 $p_t \leq 0.5$ 时,难分类样本的 loss 值会增加 4x 倍.)

实际上,论文采用了 Focal 理解Gamma Scaping在外汇期权中策略的应用 理解Gamma Scaping在外汇期权中策略的应用 Loss 的 $\alpha$ -balanced 变形:

$$ FL(p_t) = -\alpha _t (1 - p_t)^ <\gamma>log(p_t) $$

1.3. Focal Loss 例示

Focal Loss 并不局限于具体的形式. 这里给出另一种例示.

定义 $p_t$为(类似于前面对于 理解Gamma Scaping在外汇期权中策略的应用 理解Gamma Scaping在外汇期权中策略的应用 $p_t$ 的定义):

定义:$x_t = yx$,其中,$y \in \lbrace +1, -1 \rbrace$ 是 groundtruth 类别.

当 $x_t > 0$ 时,样本被正确分类,此时 $p_t > 理解Gamma Scaping在外汇期权中策略的应用 0.5$.

$$ \frac = \frac<(1 + e^)^2> * (-y) * e^ = y * p_t * (1 - p_t) = -y * p_t * (p_t - 1) $$

对于交叉熵损失函数 $CE(p_t) = -log(p_t)$,由$\frac = \frac$,

对于 Focal Loss $FL(p_t) = -(1 - p_t)^ <\gamma>log(理解Gamma Scaping在外汇期权中策略的应用 p_t)$,其中 $\gamma$ 为常数.

再者,假设 $p_t^* = \sigma (\gamma x_t + \beta)$,则 $FL^*(p_t^) = -log(p_t^*)/ \gamma$,其中 $\gamma$ 为常数.

则,$FL^*$ 包含两个参数 $\gamma$ 和 $\beta$,控制着 loss 曲线的陡度(steepness) 和移动(shift). 如 Figure 5.

1.4. Focal Loss 求导

$$ \frac = y(1-p_t)^ <\gamma>(理解Gamma Scaping在外汇期权中策略的应用 \gamma p_t log(p_t) + p_t - 1) $$

如图 Figure 6. 三种 loss 函数,对于high-confidence 的预测结果,其导数都趋近于 -1 或 0.

但,与 $CE$ 不同的是,$FL$ 和 $FL^*$ 的有效设置时,只要 $x_t > 0$,二者的导数都是很小的.

2. SoftmaxFocalLoss 求导

Focal Loss 损失函数:

$$ FL(p_t) = - \alpha (1 - p_t)^ <\gamma>log(p_t) $$

其中,$K$ 为类别数,$x$ 是网络全连接层等的输出向量,$x_i$ 是向量的第 $i$ 个元素值.

Softmax 函数关于 x 的求导为:

$$ \frac = p_i - p_i * 理解Gamma Scaping在外汇期权中策略的应用 理解Gamma Scaping在外汇期权中策略的应用 p_i = p_i(1 - p_i) $$

$$ \frac = \begin p_i(1-p_i) &\text i=j \\ -p_i*p_j &\text i \neq j 理解Gamma Scaping在外汇期权中策略的应用 \end $$

$$ \frac = \begin - 理解Gamma Scaping在外汇期权中策略的应用 \alpha (- \gamma * (1-p_i)^ <\gamma - 1>* log(p_i) + (1-p_i)^ <\gamma>* \frac) * p_i(1-p_i) &\text i=j \\ - \alpha (- \gamma * (1-p_i)^ <\gamma - 1>* log(p_i) + (1-p_i)^ <\gamma>* \frac) * (-p_i*p_j) &\text i \neq j \end $$

$$ \frac = \begin \alpha (- \gamma * (1-p_i)^ <\gamma - 1>* 理解Gamma Scaping在外汇期权中策略的应用 log(p_i)p_i + (1-p_i)^<\gamma>) * (p_i-1) &\text i=j \\ \alpha (- \gamma * (1-p_i)^ <\gamma - 1>* log(p_i)理解Gamma Scaping在外汇期权中策略的应用 p_i + (1-p_i)^<\gamma>) * p_j &\text i \neq j \end $$

3. Pytorch 实现

4. Keras 实现

基于 Keras 和 TensorFlow 后端实现的 Binary Focal Loss 和 Categorical/Multiclass Focal Loss.

Gamma校正

Gamma也叫灰度系数,每种显示设备都有自己的Gamma值,都不相同,有一个公式:设备输出亮度 = 电压的Gamma次幂,任何设备Gamma基本上都不会等于1,等于1是一种理想的线性状态,这种理想状态是:如果电压和亮度都是在0到1的区间,那么多少电压就等于多少亮度。对于CRT,Gamma通常为2.2,因而,输出亮度 = 输入电压的2.2次幂,你可以从本节第二张图中看到Gamma2.2实际显示出来的总会比预期暗,相反Gamma0.45就会比理想预期亮,如果你讲Gamma0.45叠加到Gamma2.2的显示设备上,便会对偏暗的显示效果做到校正,这个简单的思路就是本节的核心

Gamma校正

使用OpenGL内建的sRGB帧缓冲。 自己在像素着色器中进行gamma校正。 第一个选项也许是最简单的方式,但是我们也会丧失一些控制权。开启GL_FRAMEBUFFER_SRGB,可以告诉OpenGL每个后续的绘制命令里,在颜色储存到颜色缓冲之前先校正sRGB颜色。sRGB这个颜色空间大致对应于gamma2.2,它也是家用设备的一个标准。开启GL_FRAMEBUFFER_SRGB以后,每次像素着色器运行后续帧缓冲,OpenGL将自动执行gamma校正,包括默认帧缓冲。