浅谈股价预测模型:全能大明星——神经网络模型

本文探讨了使用神经网络进行股价预测的原理和方法,详细介绍了神经网络的正向传播、反向传播算法以及梯度下降策略。作者通过构建一个简单的两层神经网络模型,并利用Tushare获取的金融数据进行训练和回测,展示了模型在预测股价方面的潜力。文章强调了神经网络的自我学习和适应性,以及在金融领域的应用价值,但指出模型的局限性和市场复杂性,提醒投资者结合基本面分析做出决策。

1:本文主要讨论将神经网络的理念运用在股价预测或估值上;

2:本文主要为理念的讲解,模型也是笔者自建,因此不涉及任何主流机器学习框架,如果有读者是为了学习使用thensorflow,sklearn或者PyBrain这些模块就不必往下看了;

3:出于个人原因笔者暂不打算公开具体模型,函数及参数,仅使用部分简单代码及回测结果以作展示;

4:本文主要数据均通过Tushare(ID:444829)金融大数据平台接口获取;

5:笔者希望搭建出一套交易体系,原则是只做干货的分享。后续将更新更多模块,但工作学习之余的闲暇时间有限,更新速度慢还请谅解;

6:文中假设与观点是基于笔者对模型及数据的一孔之见,若有不同见解欢迎随时留言交流;

7:模型实现基于python3.8;


目录

1. 论玄学

2. 什么是神经网络

2.1 认识世界的过程

2.2 神经网络正向传播

2.2.1 权值的作用

2.2.2 激活函数存在的必要性

2.3 反向算法

2.3.1 损失函数

2.4 梯度下降算法

2.4.1 学习率的调整

2.4.2 全局最优解和局部最优解问题

2.5 神经网络偏置项

3. 赋予神经网络金融思维

4. 模型实现

4.1 数据准备

4.2 构建网络

4.2.1 前向运算

4.2.2 反向算法

4.3 回测

5. 写在后面


1. 论玄学

        相信不少朋友在看了笔者上期发布的股价随机游走的文章后纷纷表示玄学,前两天笔者看见了更为玄学的东西,直接上图(关键部位打码,感兴趣的朋友去搜索都能搜到):

         以笔者的经历,隔壁老缠师日夜“说缠论道”,楼上黑盘子团队打着灯笼在韭菜面前用阴阳八卦图找买卖点都没能吓退我,看到这幅图的瞬间虎躯一震, 这。。这莫非就是“天干地支择时,五行相生相克选股”大法,而且还是出自某券商首席。

        不知和它比起来笔者上期经过数学推演的随机游走还算不算得玄学? 如果您的答案还是玄学,那么本期笔者将带来经过数学逻辑严密推演的神经网络模型,在基本面和技术面的加持下彻底摘下玄学的帽子。

2. 什么是神经网络

        对于神经网络,度娘给出的解释是介样的:

         看了半天跟没看一样。。

2.1 认识世界的过程

        对于神经网络笔者有自己的理解,它其实是仿生学,即通过程序来模仿生物认识世界的过程,使得程序能自己“思考”。 

        笔者记得本科时候数学老师是位密码专家,一次上课时他语重心长的说:“万物皆可函数”。 当时笔者上课只感觉:

 

         后来笔者在学习神经网络的时候明白了这句话的深意, 神经网络网络就是将现实存在的事或物以函数的形式抽象表达出来,下面笔者举一个例子:

这是一只橘猫

        

         但我们为何知道这是一只橘猫?

        这就涉及到特征的辨识,身体形状,颜色,眼睛大小,鼻子,胡子形状,总之这只动物有着橘猫的所有特征,因此大脑将它分类成脑中存在的一个标签——橘猫。

        事实上,对一个初生小婴儿来说,大脑就是一片白纸,橘猫所有的特征都是我们人类通过后天学习得到的。第一次给小婴儿看这张橘猫图并且告诉他这是一种叫橘猫的动物, 在脑中形成一个橘猫的印象, 比如耳朵尖尖的,脑袋圆圆的样子,第二次再看一模一样的图,橘猫这个标签就自然而然地与这张图对应上了。

        那么再看这张图:

        尽管耳朵被遮住了,我们还是能分辨出它还是一只橘猫。这是因为我们已经不是单纯靠耳朵来辨认了,可我们的小baby只认识上面那张橘猫图,当把这张图给他看的时候我们可以误导他说这是一只英短或者橘狗,如图一,于是就有了赵高指鹿为马的典故。。

 图一:图片单个特征

         但如果我们依然告诉小baby这是一只橘猫,而且可以随机给他看很多橘猫耳朵被遮住和不被遮住的图,小baby或许会明白耳朵是不是尖尖的猫耳朵不重要,关键是这只猫要萌。

         好吧,关键是鼻子,嘴巴,颜色,体态也很重要, 如图二:

图二:多个特征

        想象一下,当重复成百上千张不同的橘猫图,通过不断提取特征信息,下次再给小baby看一张陌生的橘猫图时,他自然而然就把橘猫这个标签匹配上了。我们小时候看的很多识字卡,看图说话的小游戏其实一直在重复这个过程。 可以说世上本没有橘猫,只是人们给他打了个标签一样的名字便成了橘猫。

2.2 神经网络正向传播

        上一个小标题只是解释了特征量对辨识准确度的影响,但大脑内部是如何工作的?它就像一只black box, 我们依然无法建立模型。

        如图三,生物的神经网络结构大家或许见怪不怪,一个细胞周边被无数丝线一样的东西连接到其它细胞, 一个成人的大脑中有上千亿个神经细胞相连。

 图三:生物的神经网络

       人工神经网络是一门仿生学, 心理学家McCulloch和数学家Pitts在1943年参考了生物神经元的结构,发表了抽象的神经元模型MP。 既然自然界中的生物神经网络长成这样, 我们何不人工造一个?反正一个圆圆的细胞加一些突触,为了简化,就画上两个突触, 一个负责输入信号,另一个输出信号。由于神经元是要进行“思考”的,笔者将神经元分成两个半圆,白色表示输入,橙色表示经过处理后的输出,于是我们有图四:

 图四:一个神经元

        正如笔者老师所言,“万物皆可函数”。输入到输出的过程即是神经元处理数据的过程,可以用函数y = f(x)表示, 例如:

                                                        橘猫 = f(耳朵,鼻子,颜色)

        我们也称这个函数叫激活函数, 可以简单理解为将这一堆数据激活得到橘猫的效果。

        通过输入耳朵,鼻子和颜色的数据,经过这个函数计算得到橘猫这个结果。但这显然也太粗糙了,补上几个规定: 

        1:输入数据——蓝色圆表示

        2:神经元命名(输入):                

        3:神经元命名(输出):

        3:输入数据为输入层;中间神经元为隐藏层 

        4:最后一层为输出层,以白蓝色圆形表示

        于是可以丰满一下网络,如图四所示:

 图四:两个神经元

        完善到这里,这个神经网络还只有形状,没有灵魂。 神经元之间的连接仅仅只是一条“虚”线线,只有赋值才能化虚为实。

2.2.1 权值的作用

        生物神经元之间传递信号是通过神经信号, 这是一种电信号,度娘给出的解释是:

         好吧,我们不是研究生物。笔者的理解是,当电信号越强烈,刺激越大。说人话就是被100度开水烫和60度水烫的区别。 如果用数学语言表达就是权重, 当被100度开水烫,传递一个非常大的权重值。

        那么我们给刚刚图四种中的神经网络加上权重,再丰满一下,多加一层隐藏层,约定神经元权重表示如下:

         把代号也标上,于是有图五:<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simon Cao

创作不易,您的鼓励将是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值