使用人工神经网络预测股票价格

《Python Machine Learning By Example》 Third Edition 第八章笔记

1 本章内容介绍

通过本章我们可以学习到:

  • 从浅层神经网络到深度学习概要
  • 激活函数
  • Dropout和早停

2 从浅层神经网络到深度学习

  • 首先介绍人工神经网络,即artificial neural networks (ANNs),脉络:网络中的各层–>激活函数–>反传。

2.1 神经层

  • 一个简单的神经网络分为输入层,隐藏层,输出层,如下图所示:
    图源:《Python Machine Learning By Example》
  • 每一层都是节点的概念集合,输入层表示特征,输出层表示目标变量,在二分类任务中,输出层可能是一个节点,表示目标为正例的概率;在多分类任务中,输出层可能有跟预测类别个数相同的节点,每个节点的值为该类的概率;在回归任务中,输出层只有一个节点,代表预测值。隐藏层可以看作一组从前一层抽取信息的节点组合。相邻的层间由一条被参数化的边相连,并传递信息,参数为wi,其中w的第一维大小是前一层神经元的个数,第二维则是后一层的神经元个数。
  • 在简单的神经网络中,信息仅从输入层往输出层流动,叫做前馈神经网络。逻辑回归实际上就是一种仅有输入层和输出层的简单神经网络,而随着隐藏层的层数的增加,模型就越能学习到输入数据与目标值间的潜在关系。但是,增加隐藏层仅能加强模型的线性表达能力,而非线性表达能力不变,导致模型的上限不足,因此我们引入了激活函数。

2.2 激活函数

  • 顾名思义,激活函数可以表示一个节点的激活程度。加入激活函数后,模型就具备了非线性的表达能力,而非线性神经网络被证实可以表示任何函数,神经网络中常见的激活函数有sigmoid(范围0-1),tanh(范围-1到1,也被认为是sigmoid的重新缩放版本)和ReLU(范围0-正无穷),如下图所示:
    图源:《Python Machine Learning By Example》
  • 其中,重点是ReLU,因为它的函数特征很好,计算复杂度低,不需要计算指数。在SGD中的收敛速度比tanh和sigmoid快,且不会导致梯度饱和和梯度消失问题。不过缺点是它的函数不是0中心的,在一次更新中,所有参数的更新方向相同,即同为正或同为负(但实际上最优的方向可能是部分参数增加而部分参数减小),因此容易导致ZigZag现象;数据的幅度会随着层数增加而不断扩张;有些神经元可能不会被训练,梯度一直是0(负数部分)。Sigmoid本身是单调的,但是它的导数却不是,因此它容易被困在局部最优值。tanh是Sigmoid的优秀版本,部分地方的导数比Sigmoid大,它是0中心的,因此不会出现ZigZag现象,但是会出现梯度饱和现象以及存在计算复杂等问题。
  • 总结来说,在隐藏层经常是使用ReLU,在ReLU表现不好时,也可以尝试Leaky ReLU(在负数部分引入了较小的斜率,如0.01),而Sigmoid和tanh也可以用在隐藏层,但不适合用于深层神经网络。在输出层,线性激活函数可以用于回归任务(因为我们不需要对输出进行任何转换),sigmoid可以用于二分类任务,softmax可以用于多分类任务。

2.3 反向传播

  • 那么我们如何利用这些神经层和激活函数来学习到最优的参数呢?与逻辑回归那章类似,这里同样是用梯度下降法来最小化MSE损失,而与之前不同的是,参数的梯度是通过反向传播来计算的,即每次前向传播后,都会通过反向传播来更改参数值。
  • 输出层的梯度最先被计算,输入层的梯度最后计算,所谓反传,意味着一层的梯度在计算前一层梯度时会被重复使用,具体地,计算遵循链式求导法则。
  • ReLU在零点不可导,在反传中如何处理?特判一下,人为指定一个导数值,如0。

2.4 深度学习

  • 在实际应用中,神经网络的隐藏层是非常多的,因此我们接着往网络中加入更多的层数,就来到了深度学习阶段。
    图源:《Python Machine Learning By Example》
  • 层数增加了,自然网络学习数据中潜在关系的能力也增加了。
  • 计算机视觉被广泛认为是通过深度学习取得巨大突破的一个领域,它的任务包括但不限于图像分类,基于图像的搜索引擎,机器视觉,图像修复等等。
  • 自然语言处理则是另外一个深受深度学习模型影响的领域,它的任务有机器翻译,看图说话,情感分析等等。

3 避免过拟合

  • 神经网络可以很好地适应各种复杂的数据,但是如果不加控制的话,很容易导致过拟合。有三种常见的方法:正则化,Dropout,早停。
  • 1)Dropout意味着在训练阶段,忽略掉隐藏层中的某些结点,即每个结点根据所给定的概率(参数,常设为0.5)来决定是否保留自己。前馈时,被忽略的结点不参与loss的计算,反传时,被忽略的结点不更新参数。原理在于,通过让某些结点失活,可以阻断层与层间结点的相互依赖关系,避免网络变得更复杂。
  • 2)早停,即early stopping,顾名思义,当模型无法再继续提升时,就提前停止训练。在每轮训练完,通过验证集来对模型的泛化性能进行评估,如果模型在验证集上的性能不再提升或者反而下降,则发送了过拟合,应及时停止训练。

知识补充

ZigZag现象:即函数值的总体下降方向虽然朝着最优下降方向,但是整个训练路径呈之字形弯折,导致下降缓慢。

股神--人工智能股票预测系统是专门为股票投资者开发的一套全新的基于人工智能技术的股票趋势预测软件平台。该软件以基因演化算法(GP)为内核对股票交易历史数据进行自动建模和学习,挖掘出股票交易大数据中隐藏的行为规律,并以此为依据对下一个股票日的最高价和最低价的涨跌趋势进行预测分析。该软件能够帮助您了解何时进入股市,何时退出股市,并在最佳的时买进或卖出股票,从而获取最大的利润和收益。 支持6种典型的股票类别:上证指数、上证A股、上证B股、深证指数、深证A股和深证B股。 精确的股票预测信息(如上涨、下跌或持平)和买卖推荐信息(如买入、卖出、持股以及买入价、卖出价等)。 基因演化算法参数支持用户自定义,默认设置为种群大小:30,杂交概率:0.8,变异概率:0.1,最大运行代数:1000。 支持批量操作,如股票批量评测、模型批量训练、股票批量预测、批量增加股票代码、批量添加/撤销我的股票池等。 对大多数股票而言,最高价与最低价的涨跌趋势预测准确度达60%-80%;对部分股票而言,预测准确度最高可达90%。 仅需简单的操作即可完成股票评测、智能选股、模型训练以及股票预测等功能。 系统主界面支持从云数据库和本地数据库自动更新最优股票预测信息。 支持流行的微软Windows操作系统,如Windows 98/Me/2000/XP/Vista/7。 股神--人工智能股票预测系统既适用于专业的股票投资者,也适用于股票初学者。您可以通过股神系统轻轻松松地完成股票评测、智能选股、模型训练以及股票预测等功能,所有操作简单易懂,软件界面友好大方。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值