导数
我们首先讨论导数的计算,这是几乎所有深度学习优化算法的关键步骤。在深度学习中,我们通常选择对于模型参数可微的损失函数。简而言之,这意味着,对于每个参数, 如果我们把这个参数增加或减少一个无穷小的量,我们可以知道损失会以多快的速度增加或减少,
假设我们有一个函数
f
:
R
→
R
f: \mathbb{R} \rightarrow \mathbb{R}
f:R→R ,其输入和输出都是标量。(方法f
的 导数被定义为)
f ′ ( x ) = lim h → 0 f ( x + h ) − f ( x ) h f'(x) = \lim_{h \rightarrow 0} \frac{f(x+h) - f(x)}{h} f′(x)=h→0limhf(x+h)−f(x)
极值
函数的极值我们可以通俗地讲在定义域内某个区间内的最大值和最小值。
对于函数
y
=
f
(
x
)
y=f(x)
y=f(x),对于定义域内某个点
x
=
x
0
x = x_0
x=x0,若存在
δ
>
0
\delta > 0
δ>0
对于区间
(
x
0
−
δ
,
x
0
+
δ
)
(x_0 - \delta , x_0 + \delta)
(x0−δ,x0+δ) 内任一
x
(
x
≠
x
0
)
x(x \not= x_0)
x(x=x0) 都有
f
(
x
)
>
f
(
x
0
)
f(x) > f(x_0)
f(x)>f(x0) ,则称为
x
0
x_0
x0 为函数的一个极小值点,
f
(
x
0
)
f(x_0)
f(x0) 为极小值;
对于区间
(
x
0
−
δ
,
x
0
+
δ
)
(x_0 - \delta , x_0 + \delta)
(x0−δ,x0+δ) 内任一
x
(
x
≠
x
0
)
x(x \not= x_0)
x(x=x0) 都有
f
(
x
)
<
f
(
x
0
)
f(x) < f(x_0)
f(x)<f(x0) ,则称为
x
0
x_0
x0 为函数的一个极大值点,
f
(
x
0
)
f(x_0)
f(x0) 为极大值;
如图所示:
我们根据上图发现,在 x 0 x_0 x0的极值点 y = f ( x ) y=f(x) y=f(x)的导函数 f ′ ( x 0 ) = 0 f'(x_0)=0 f′(x0)=0
- 极值点处的导数值一定为0
- 导数值为0的点未必是极值点
结论:对于函数 y = f ( x ) y=f(x) y=f(x), x 0 x_0 x0的极值点是 f ′ ( x 0 ) = 0 f'(x_0)=0 f′(x0)=0的既不充分也不必要条件。
炒股
我们先看一下,下面这张图
如果我们把k线写成一个函数 y = f ( x ) y=f(x) y=f(x)的话,接下来,找到每个点的 x 0 x_0 x0极值点进行操作,在极小值点买入,在极大值点卖出,那该多舒(zuo)服(meng)。
奇点平台也不炒股,具体情况也不清楚,就简单地写了写代码跑了个回溯,具体情况是这样的:
我简单算了一下,导数收益在**40%**左右,实际指数增长可能在13%,纯数学跑赢指数27%个点。
看到这个数据,我感觉我的计划可能不对,所以,我把未处理的原数据放到公众号里,如果想看详细数据,请关注公众号,回复【股票数据】自己再计算一下。
或回复【预测】,简单体验一下这段代码跑出来的结果。不可用于实际操作!!!