基于神经网络的股价预测_第1页
基于神经网络的股价预测_第2页
基于神经网络的股价预测_第3页
基于神经网络的股价预测_第4页
基于神经网络的股价预测_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 1欢迎下载 基于神经网络的股价预测 摘要 随着中国经济的快速增长和金融市场的不断扩大 股票这类对虚拟经济的投资越来越受人 们的青睐 股市出现后 人们试图研究股价波动 掌握价格波动规律 学术界发明了各种 研究方法来预测股票 BP 神经网络在大数据预测的经典算法中受到投资者和研究者的青 睐 然而 BP 算法由于其收敛缓慢而易于落入局部最小值 效率较低 基于对股价预测问题的深入分析和各种预测股价方法的比较 本文通过建立遗传 BP 神经网 络模型探讨了股价预测方法 首先将利用遗传算法搜索的最优个体作为 BP 神经网络的初始 权重和阈值 然后 通过试错法确立隐层节点的数量 构建 BP 神经网络的模型 然后 使 用 BP 算法训练网络 训练过程自动调整学习率 基于遗传算法的 BP 神经网络不仅可以发 挥遗传算法的全局搜索 而且能快速有效地发挥 BP 神经网络的作用 两者的结合 加快了 运算效率 提高了 BP 神经网络学习能力和预测股票的能力 基于该算法的思想 本文构建了预测模型 以 Matlab9 0 为实验平台 进行模拟实验 选 取上海和深圳 300 指数为实验对象 用前 10 天的收盘价和开盘价加上当天的开盘价来预测 当天的收盘价 其中 将 140 天的历史数据中的前 100 组数据用作训练样本 最后 30 组数 据用作测试样本 从收敛速度 稳定性和准确性的三个角度比较和分析 BP 神经网络预测模 型和遗传 BP 神经网络的预测模型 实验表明 提出的基于遗传神经网络的预测股价方法具 有一定的实用性 关键词 机器学习 股价预测 BP 神经网络 遗传算法 绪论 1 1 研究背景和意义 股票市场在全球金融体系中起着至关重要的作用 因为它允许公司通过交易公司所有权股 份来筹集资金 但是 它不仅对企业本身很重要 而且还被用作银行和私人投资者的投资 平台 为了获得良好的股票投资回报 对未来价格的准确预测至关重要 然而 预测股市 是一个艰巨的任务 因为股票的价格走势受经济因素 业务因素 政治因素 市场因素和 心理等因素的影响 从股市表面上看 股市在缺乏一定法律约束的情况下出现变化 同时 中国股民的结构具有特殊性 买家的心理状态和股票交易行为对股票走势有直接的影响 导致股份价格波动 不容易掌握股价 股市的变化和整个市场经济的发展有着密切的关系 在国民经济中发挥了非常大的作用 它的作用不只是受到广大投资者的关注 政府也十分 关注 对于股票投资者 未来股价变动趋势预测越准确 收购的盈利几率和避免风险就越 容易 国家经济发展在建设方面 股票预测研究也起着重要的作用 所以研究股价走势预 测具有重大意义 股票预测是基于过去和现在的股票价值来引入未来价值 这决定了股票预测研究对象不是 精品文档 2欢迎下载 一个特定的事件 而是一个随机的 不确定的事件 这需要使用匹配的科学预测方法来做 出合理的推论 对于股票预测 基本特点如下 1 股票预测是一种非线性动态系统 股票市场是一个非常复杂的系统 没有准确的方式 来满足任何一种股票预测 而且近年来发现试图找到一个非常精确的方法是不现实的 我 们可以做的是在合理的范围内预测出错控制 2 根据股票市场各种因素的复杂关系 一般的预测方法难以准确预测 和股票时间序列 相关的历史数据也很多 建立股票预测模型的一般线性方法显然是一个很大的错误 难以 实现实际效果 3 由于股票系统的非线性动力学 必须使用股票预测方法来拟合非线性数据方法 目前 线性系统等多项成熟的方法 如多元线性回归分析 非线性系统处理理论不完善 进一步 进行理论与实践研究 4 股价数据有一些波动的奇点 这些奇点可能对股票预测的研究有一定的影响 线性方 法可以直接消除这些奇异点 但非线性系统认为系统的鲁棒性不能直接从我们的数据推导 出这些奇异点 5 买家为投资者 投资者是非常主观的动态个人 有良好模式的股价历史数据 使得预 测误差控制在一个很小的范围内 但由于股票受到个人对未来事件的影响 我们对股价走 势的预测仍然有一定的不准确性 6 考虑到我们的股票市场受到明显的国家政策的影响 有必要通过科学的方法来预测国 家政策的这个因素 1 2 国内外研究现状 过去很长一段时间 由于股市规模小 信息共享的速度太慢 股票的技术限制被分析 人 们只能通过自己的主观判断做出决策和投资 随着近几十年股票市场的快速发展 信息披 露的规范化和信息共享的多样化 人们开始寻求一些有效的预测方法来分析和研究股票市 场 进行更有效的投资 但股市是一个复杂的系统 不仅受市场外部因素的影响 还受到 自身内部对股市的影响 预测确实有一定的难度 但人们并没有停止对股票预测的研究和 探索 1 2 1 国内外研究现状 1987 年 神经网络算法第一次被应用于预测领域 此后 神经网络在预测研究中得到迅速 发展 美国前沿金融公司使用神经网络来预测 20 世纪 90 年代中期的股票市场 在 20 世纪 90 年代 White 利用神经网络来预测 IBM 股票的每日收益率 21 然而 预测结果不能令 人满意 此外通过分析神经网络被捕获在局部最小值 发现该网络不能收敛到最小点 1990 年 Kimoto Yada 等学者利用神经网络技术开发 TPOix 预测系统 3 该系统主要在 东京证券交易所股票加权平均指数 类似于道琼斯指数 预测结果显示神经网络模型的预 精品文档 3欢迎下载 测结果优于 TOPix 加权平均值的结果 1996 年 Gen Cay 在 1967 年建立了前身人工神经 网络模型 41 以道琼斯工业平均指数的移动平均线作为输入变量 1988 年道琼斯指数分 批进行了分析 预测结果表明 BP 网络模型的预测能力明显优于简单移动平均法 2000 年 罗德里格斯等研究人员建立了移动平均规则和前向人工神经网络的综合模型 对西班 牙股市的实证分析显示 基于预测结果进行的股票交易收益远高于收购后获得的收益 2003 年 G Peter zhang 实验结果表明 神经网络模型不仅具有比 ARIMA 模型更好的预测 精度 而且具有处理非线性数据的优点 实验结果表明 神经网络模型不仅具有比 ARIMA 模型更好的预测精度 另外 进入二十一世纪以后 神经网络在股市分析中已经出现了很多研究成果 A murat oi Bayogly 和 Ismet Bahadir 比较了神经网络和贝叶斯估计的两种方法在股票市场交易中 的预测效果 71 本文选择 215 个股票的历史数据 根据不同的标准对这些历史数据进行分 析 得出结论 两种方法均可应用于股票市场 但神经网络方法的效果明显好转 Chi Jie Lu 认为 股票市场的数据非常嘈杂 时间变化非常强劲 他尝试使用完整的独立分量分析 进行去噪 然后提出基于神经网络的股票趋势预测模型 该模型首先构建一个独立的 然 后使用它来分析预测变量以产生独立的分量 然后去除数据以重建预测变量 重建的预测 变量将包含低噪声信息作为神经网络模型的新输入变量 该模型使用日本日经 225 指数的 开盘价来评估最终表现 结果表明 Chi Jie Lu 提出的新模式优于与神经网络模型相结合 的小波去噪技术 但对神经网络的内部结构没有深入的分析和研究 Hammd M Alhaj ali 和 L hall 使用 BP 多层神经网络分析了中东约旦股市的股价 9 通过实证分析发现 与统计分析方法相比 BP 神经网络预测方法获得更高准确性 预测能力更好 但是他们的 研究并不涉及 BP 神经网络 一个一个地将问题逐渐转化为局部最小点 Arnold F Shapiro 将三种方法与粗糙集 神经网络和遗传算法结合起来 独立处理时间序列数据 构建了一个综合预测模型 10 进行数据处理和预测 既保留了每种方法的优点 也弥补 了彼此 然而在研究过程中 不分析每种方法单独的效果对综合模型的影响 综合模型的 有效性并没有直观的体现出来 来自 TOBB 大学的 Murat 使用神经网络模型来分析和预测 TKC 证券的数据 11 输入向量的选择从不同类型的模型开始 包括趋势 动机 模式和 波动性 并验证数据 结果表明 与其他预测模型相比 神经网络预测模型更好 可用于 预测投资组合的价格并预测短期交易 然而 研究仍然有一些主观性 没有详细的解释选 择模型输入向量的基础和原因 MelikeBildirici 等将 ARCH GARCH 模型与人工神经网 络模型 12 相结合 分析了近三十年来土耳其股市的股票市场数据 结论表明 ANN APGARH 模型显着提高了股票价格预测的准确性 但仍然缺乏模型处理大规模非线性数据的 能力 1 3 本文所做的工作 本文的主要内容是研究遗传神经网络在股票价格预测中的应用 主要针对 BP 算法在股价预 测中的障碍 例如 收敛缓慢 有很大概率落入局部极小点等问题 使用遗传神经网络算 法建立股票预测模型并验证其可行性 本文主要内容如下 1 使用遗传算法优化 BP 神经网络的初始权重和阈值 通过遗传算法优化 BP 神经网络的权重和阈值 首先编码初始权重和阈值 然后 设置遗传 算法的参数 计算适应度函数 对编码个体进行操作和重新计算 适应度函数确定是否达 精品文档 4欢迎下载 到适当的准确度 2 优化 BP 神经网络的结构 首先确定网络结构中隐藏层节点数的近似间隔和范围 然后使用试错法计算隐层节点的具 体数量 在此过程中 逐渐增加隐层神经元的数量 选择均方误差 Mean Square Error MSE 作为误差的度量 在相同的训练频率下 选择与最小平均误差对应的隐藏层 数 3 提高 BP 网络的学习率 在训练过程中调整学习率 使小时候小 大时间大 可以非常随机地选择所选范围的初始 学习率 您可以在评估条件时参考额外的动量 如果新错误大于过去错误的若干倍数 学 习率将会降低 否则学习速率将保持不变 如果新的错误少小于旧的错误情况 则会增加 学习率 4 建立股票预测模型 利用前十个交易日的开盘价预测第十一个交易日的收盘价 股票预测模型设置为 3 层 输 入层有 20 个节点 隐层有 12 个节点 输出层为只有一个节点 5 使用 Matlab9 0 进行模拟实验 使用沪深 300 指数 130 套历史数据对网络进行训练和测试 并预测未来 30 天的沪深 300 指 数收盘价 分析结果可以得出结论 预测模型具有更好的收敛性和稳定性 预测结果的准 确性更高 论文结构 1 4 本文分为四章 具体安排如下 第一章主要分析了进行股票价格预测的背景和意义 以及国内外股票预测研究现状 最后 总结了本文所做的工作 第二章主要阐述 BP 神经网络和遗传算法的相关理论知识 首先分析影响股票走势的因素 并比较股价预测方法 然后介绍 BP 神经网络和遗传算法及其在股票预测中的应用 第三章分析如何通过遗传算法优化 BP 神经网络 提出遗传神经网络学习效果的改进 构建 基于遗传 BP 神经网络的股票预测模型 在第四章中 利用 MATLAB 的外部接口将股票数据导入到 MATLAB 中 对基于 BP 神经网络和 改进遗传神经网络算法的股票预测模型进行了模拟和验证 验证了遗传神经网络遗传预测 模型的可靠性和准确性 精品文档 5欢迎下载 总结了我所做的工作 分析了提出的方法的缺点 改进了方向 第二章相关理论依据 2 1 神经网络预测方法 神经网络由许多并行 高度关联的数据处理单元组成 类似于神经元 神经网络模型是基 于对人类大脑信息处理机制的初步了解的分布式并行数据处理结构 神经网络根据训练数 据对内部节点之间的关系进行连续调整 达到学习数据变化规律的目的 这可以在下一个 时期预测数据趋势来实现预测功能 神经网络具有分布式存储 并行处理 容错能力强 非线性度高 自组织性强 自学习能力强 适应能力强等特点 被广泛应用于经济数据分 析和价格预测 神经网络预测方法包括径向基函数神经网络 反向传播神经网络 BP 和 感知神经网络 211 在预测神经网络股价走势的具体过程中 有必要全面解决三个问题 它们是输入量确定 回溯期选择 神经网络算法及其参数确定的问题 讨论分析这三个重 要问题 具体如下 1 解决相关投入数量澄清问题 解决股价走势 需要处理大量数据 包括历史数据和实时数据等大量内容 涉及的参数包 括价格 数量等多项内容 虽然这些内容和数据看起来比较简单 但在实际操作过程中 解决相关数据输入输出是个大问题 完成准确的预测工作是非常困难的 其实 由于股价 走势在综合技术分析过程中 股票开盘价 收盘价 数量等综合信息是根据人们的历史经 验 以相关技术手段计算结果 从中发现股市走势的规律是很难的 使用神经网络预测方 法可以实现选定网络的输入变量 预测未来股价走势 2 解决确定问题参数的神经网络算法 本文采用 BP 算法 可以全面实现股价时间序列问题 充分体现时间变化对股价变动的直接 影响 3 解决回溯窗口的选择 在股市发展变化中 日均股价 技术分析指标受股市变动趋势的影响 随着股市的变化 这个过程实际上就是一个时间序列的变化 解决回溯窗口的问题 就是我们面临的一个重 要问题 2 1 2 股票预测困难 股价波动受到干扰因素的影响 在以下几个方面有困难 1 心理预期心理的不确定性 股权投资的目的是为了盈利 通过出售行为实现利润 投资 者的心理影响预计会非常大 投资者不是完全理性的 但对心理偏好的厌恶感 会有 过 度自信 放牧效应 等等 所以投资者预期会有非常强烈的心理不确定性和不可预测 精品文档 6欢迎下载 性 会影响股票价格随着时间的推移 这种效应变得越来越难以衡量 2 股价数据非线性 股价和影响股价的因素数据之间存在很高的非线性度 股票价格预测 系统应具有强大的计算能力来处理大量的非线性数据 传统的预测方法主要是解决线性数 据预测的方法 股票价格预测难以成为高度非线性的复杂系统 3 股价数据高噪音 影响股票价格的因素有很多 一些因素几乎完全无关 所以股价数据 在这个过程中会包含更多的噪音 数据的高噪声会影响股票的预测准确性和准确性价格预 测系统如果不消除等级 那就是股价预测过程需要关注的一个难题 总之 股价预测是一个复杂的系统 具有高度的非线性特征 受到很多因素和功能的影响 2 2 BP 神经网络 通过上述股票预测分析 我们可以看出影响股票价格的因素有很多 而且价格变动是一个 动态过程 难以量化 研究人员难以建立基于股票的历史数据 大多数传统统计方法都是 基于时间序列的线性特征 大量的研究表明 股票价格的运作是非线性的 所以传统的方 法不能对股票价格波动进行有效的分析和预测 BP 神经网络的基本原理是模拟人脑的思 维 行为金融理论认为股价轨迹是人们变化的结果 所以人们以许多方式思考的方式可以 反映股票价格的变化 因此 使用具有非线性特征的 BP 神经网络可以在理论上模拟股票价 格的运作 2 2 1BP 神经网络基础 针对 BP 神经网络的研究可以起源于 19 世纪末 在神经网络的整个历史中 其发展分为四 个阶段 胚胎阶段的第一阶段 从 1890 年到著名的美国心理学家 W James 率先研究人类 大脑结构和功能 到 1969 年 Minsky 和 Papert 发表了 感知器 Perceptions 第 二阶段是低估阶段 从 1969 年到 1982 年 J J Hopfield 出版了着名的文章 神经网络 与物理系统 Neural Network and Physics system 第三阶段是复兴阶段 从 J J Hopfield 研究论文突破性进展开始 1986 年结束 D E Rumlhart 和 J L McClelland 率 领研究团队发表了 并行分布式处理 Parallel Distributed Processing 第四阶段 是高潮阶段 1987 年第一届国际人造神经网络学术会议作为标志 人们对人工神经网络的 研究与应用的热情急剧高涨 至今依然处于上升之中 BP 反向传播 网络是由误差反向传播算法训练的多层前馈网络 241 它是最广泛使用的 神经网络模型之一 BP 网络可以训练和存储大量的输入输出模式映射 不会体现出表现此 映射的函数方程 其学习方法是使用最陡下降法 利用逆向传播从而持续调整算法的权重 和阈值 直到算法误差平方和最小 25 26 BP 神经网络拓扑包括输入层 隐含层和输出 层 如图 2 1 所示 输入层从外部接收输入样本 X 然后执行权重调整 在此过程中 将比较理想的输出信号 和实际的输出信号 用得到的误差来校正权值 精品文档 7欢迎下载 在图中 是输入采样信号 是网络输出信号 其中 输入层 隐含层和输出层的输入 和输出定义如表 2 1 所示 各层输入输出定义 操作 输入层 隐含层 输出层 输入 X G M 输出 G H Y 同时 定义输入层到隐含层的关联权值为 隐含层到输出层的关联权值为 隐含层的输出 阈值为 输出层的各结点输出阈值为 为学习速率 网络适应函数 S f x 输入采样信号受到权值的作用生成结果减去阈值 能够得到隐含层的各个输入 通过隐含层的输入调用 S 函数 能够运算出隐含层的输出 对输出层的输入 M 调用函数 S 得出输出层的各结点输出 Y f 根据输出层的实际输出向量 Y 和期望输出向量 O 能够计算出输出层各结点的 误差 1 利用关联权值 输出层的一般化误差和隐含层的输出 计算隐含层各节点的一般误差 1 用误差和隐含层各节点的输出校正关联权值 N 1 N 用误差和隐含层各节点的输出修正阈值 N 1 N 精品文档 8欢迎下载 使用隐含层各节点的误差 和输入层的输入向量 X 来校正关联权值 N 1 N 使用隐含层各节点的误差 和输入层的输入向量 X 校正关联权值的阈值 N 1 N 反复进行以上步骤 直到误差值达到指定的范围或者训练达到指定次数时结束 2 2 2BP 学习算法 误差反向传播 BP 算法是典型的监督训练算法 学习过程由两个过程组成 即信号的正 传播和误差的反向传播 通过向后分配输出误差 将误差分配给每个层的子模块 以获得 每个子模块的误差信号 进而调整每个子模块的权值 这样输入和输出问题的一组样本就 可以被看作是非线性优化问题 神经网络学习是为了能够学习一个可以获得输出的模型 实际上学习过程在外部样本中不断调整过程的权重 而在这个过程中是调整规则的权重 在学习和优化过程中 使用梯度下降算法得到模型实际和理想输出之间的均方误差 MSE 以此达到神经网络训练的目的 它是一种非循环多重神经网络学习算法 算法流程图如图 2 2 所示 计 算隐含层节点误差 数值学习 求误差梯度 全部满足 开始 初始化 提供输入特征向量和期望输出特 征向量 求隐含层 输出层各结点 精品文档 9欢迎下载 求期望输出特征向量实际输出值的偏差 满足要求 开 结束 是 否 否 是 精品文档 10欢迎下载 BP 神经网络算法流程图 BP 神经网络的初始化包括在每个关联权重范围 1 1 内任意分配一个值 选择合适的误 差函数 e 确立计算精度和最大学习次数 M 有必要确定问题 1 样本数据 第一要有一定量的典型和良好精度的样本 将收集到的数据随机分成训练 样本 检验样本 10 以上 和测试样本 10 以上 确定输入和输出变量值和数据预 处理 输入数据值的一般要求在 0 和 1 之间 2 神经网络拓扑结构确定 优先考虑 3 层 BP 网络 隐含层 最基础的要求是在达到尽 可能少的隐含层结点的精度要求的同时 隐含结点数必须少于 N 1 N 是训练样本数 另 外 训练样本的数量必须大于 BP 神经网络模型的关联权重 一般是 2 10 倍 3 神经网络训练 BP 神经网络训练是应用误差回归网络权重的不断调整原理 让该结构 的输出值和现有的训练样本的输出值之间的平方和最小或者小于预期 由于研究数量有限 主要取决于经验知识和设计师的经验 4 学习率 学习率代表网络学习过程的稳定性 学习率的选择值得重视 大可能会使系统 变得不稳定 学习率不够多可能会使得训练周期过小 收敛速度缓慢 无法逼近目标误差 2171 于是 通常取较小的学习率来保障系统的稳定 从误差下降曲线可以看出 学习 率的选取较为恰当 则误差下降速度较快 假使存在大的振荡 则说明学习率过大 在实 际应用中 我们通常取 0 1 之间的常数 5 模型的初始关联权重 BP 神经网络算法本身的结构和性质会导致误差函数具有不少局 部最小点 BP 神经网络算法在最终收敛中 局部 全局最小点由不同初始权重的网络确定 转换函数 Sigmoid 要求分配初始权重在 0 5 至 0 5 之间 6 网络模型的性能和泛化能力 确定网络模型的泛化能力是高还是低 不是关注测试样本 本身的大小 是要比较测试样本误差是否与训练样本和测试样本类似 7 确定合理的网络模型 如果要确定全局最小点 第一步要做的是利用不断更改网络的初 始关联权重来获取对应的最小点 然后找到最小的网络误差在极点上获得网络关联权重的 最优解 为此网络的结果 2 2 3 基于 BP 神经网络的股票预测模型 精品文档 11欢迎下载 股市数据量非常大 可能导致股市波动很大因素 这些因素之间的关系也非常复杂 基于 这些大型模糊和非线性股票市场数据 传统的计算方法难以建立在合适的数学模型上 BP 神经网络具有非线性模拟 自主学习等优点 金融市场数据分析的方法得到众多研究人员 的喜爱 并且经过他们的不懈努力 很多研究成果被发明出来 本节运用 BP 神经网络算法 来构建股票预测模型 实现第十一个交易日的收盘价预测 反映股价的技术指标包括股票 开盘价格 当天收盘价格 当天最高价格 当日最低价格 如果所有这些指标都用作预测 模型的输入向量 则预测模型将不能承受如此大量的计算 此外 神经分支越多即输入变 量的数目越多 神经网络的训练时间会越长 而且经实验表明 这种正相关增加趋势是呈 指数增长 本文将利用 BP 神经网络算法来建立股票预测模型 将网络输入定作 10 个连续 交易日收盘价数据 从而预测第 11 个交易日收盘价 使用 BP 神经网络进行股票预测的具 体过程如下 首先根据用户输入的股票价格指数确定输入样本 并将样本数据归一化 然 后输入到 BP 神经网络 然后 BP 神经网络用于独立输入数据学习 测试 根据网络权重 的输出自动调整 最后 通过不断重复学习和调整 实现正确配套训练所需的产值 达到 预测未来股票价格的目的 BP 神经网络预测模型的大致过程如图 2 3 所示 开始 数据输入 数据归一化处理 网络建立及初始化 网络训练与学习 满足要求 网络仿真 结束 精品文档 12欢迎下载 否 是 BP 神经网络预测模型的流程图 1 选择输入和输出样本集 利用 MATLAB 的外部接口将股票数据导入到 MATLAB 中 并从中提取 130 个样本数据 样本 数据分为两类 当进行网络训练时 我们用前 100 个当做是训练输入样本 剩下的 30 个当 做测试时所用数据 2 样本数据进行归一化 为了保持数据的原始特性 输入数据被预处理并转换成 0 1 之间的数字 3 确定 BP 网络预测模型结构 结果表明 三层前馈神经网络可以以近似任意精度逼近任意非线性关系 在本文中 我们 搭建了一个 3 层 BP 网络结构来对股价的走势进行预测 输入层神经元数是 n 10 输出 精品文档 13欢迎下载 层神经元数是 m 1 BP 神经网络隐层神经元数为 12 规划的 BP 神经网络预测模型在图 3 2 中 4 训练网络 网络的初始权重通常采取较小的任意常数 在该文中 我们假定初始权值是在 1 1 区 间的某一任意权重 隐含层激活函数选择双曲正切 S 型传递函数 tansig 输出层激活函 数选择线性传递函数 purelin 学习算法采用具有高收敛速度和高精度的 Levenberg Marquardt 算法 训练 2000 次 使用误差平方和作为误差函数 目标误差为 1 0e 30 学 习率设定为 0 01 5 网络仿真 股票预测模型的 BP 神经网络采取调用 Sim 函数的方式来模拟仿真数据 调用 mse 函数来计 算拟合误差 最后评估计算出来的结果 2 3 遗传算法 2 3 1 遗传算法基础 在上个世纪八十年代 密西根大学的荷兰教授和他的同学们在自然和人工自适应系统的研 究中开创了遗传算法 GA 的思想 GA 是一种直接搜索算法 遗传算法的思想来源于达尔 文进化与遗传学理论 不依赖于问题本身 而是解决问题 基于科学家们对 GA 的多年研究 目前遗传算法已经广泛应用于社会科学 经济学和机器学习等方向 利用 291 概念的大 量进化和遗传方面的遗传算法 结合达尔文进化论和遗传学理论提出了一种新的直接搜索 优化方法 作为一个新的事物 遗传算法重新定义了一些概念 包括 位串 Bit String 在染色体 染色体 的遗传学中 是表示个体的概念 群体 Population 对应于染色体收集的遗传学 是代表性的组合 基因 Gene 是构成字符串的一种元素 它可以表示每个个体独有的特征 基因特征 Gene Feature 基因位点相同的基因值 基因位置 Gene Locus 基因在染色体上的坐标 适应度 Fitness 将单一染色体适应环境 适应良好的个体将优先继承 相对较差 适 应性差 获得遗传的可能性非常小 其基本原理是处理染色体上的基因 然后找出理想的染色体来进行试验 这个原理也可以 精品文档 14欢迎下载 理解为模拟自然选择和遗传发生的复制 交叉和突变现象 原则可以来自任何一组初始种 群 选择随机选择 交叉和突变 将导致一组对环境更加敏感的个体 并最终将群体演变 成更好更好的搜索空间区域 通过这样的一组行动将继续发展 直到最适应个人环境 并 最终得到最优解的问题 30 遗传算法在问题优化过程的运行中是完全随机的 通过求解最优运算直到遗传代数或适应 度达到最终要求 才能获得最优解 算法的过程是一个循环的过程 基本过程如图 2 3 所 示 3 从图 2 3 可以看出 算法所需的基本步骤包括 1 编码策略选择 要解决问题的解决方案 首先必须选择适当的编码策略 将所选代码解 决的问题转化为字符串结构空间 2 选择目标函数来定义适应度函数 f x 3 选择遗传策略 确定初始种群数 具体遗传操作 设定概率值等遗传参数 4 人口初始化 5 通过函数计算适应度值 f x 6 根据遗传策略 再次对群体进行遗传操作 实现人口的演变 7 确定组的进化是否在多大程度上 是否满足先前设定好的循环条件 如果不满足 则返 回步骤 6 或直接通过修改遗传策略返回到步骤 6 2 3 2 遗传算法求解过程 1 遗传密码 染色体的编码是遗传算法中需要解决的主要问题 好的和坏的编码直接影响整个遗传算法 是否收敛 是否更快的收敛 通用编码方式一般为三 符号编码 二进制编码 浮点编码 f3 列 如果您使用上述三种编码方法之一 无论根据具体问题选择哪种类型的编码 只需 充分了解遗传算法中三种编码方法的特征 从而做出正确的染色体代码将会有一个收敛可 以和速度最好的解决方案 这里有一些三种编码方法做一些介绍 1 符号编码 符号编码在使用过程中不是常用的编码方法 因为在交叉和突变方面难以实现这种编码 字符串的符号组合是一些符号或字母 而这些符号和字母没有具体含义 而是一个代码 在问题难以以数字和二进制方式进行编码的情况下 或者在特定方向上解决实际问题的情 精品文档 15欢迎下载 况下 易于使用编码 例如 遗传算法中的块编码 2 二进制编码 二进制编码在使用过程中是非常常见的编码 其特点是操作简单 无论是编码还是解码都 比较简单 二进制编码是 0 和 l 的组合 易于实现编码和解码 遗传算子的操作过程比较 简单 然而 二进制编码的缺点也是很多的 对于连续多维函数的一些优化问题 它不是 可测试性 不能直观地表达 并且编码精度受到编码长度的限制 在浮点编码和二进制编 码时容易产生对方的错误 从而影响整体的成败 二进制编码具有优点和缺点 3 实数编码 实际编码也是使用编码方法最常见的 相对于二进制代码 实际编码更适合于连续函数优 化问题 对于高精度的需要 需要对大量真实编码的值进行编码更为合适 与二进制码相 比 编码空间的实数也更大 然而 使用浮点编码来注意 染色体的值必须在浮点范围内 否则解将会溢出 总的来说 实数编码有更多的优势 2 人口初始化 遗传操作前必须有涉及进化的原始人群 人群可以随机生成 可以由用户给出 人口规模 的选择很重要 如果选择人口太大 虽然可以找到最优解 但收敛速度相对较慢 这需要 很多时间 如果你选择一个小的人口 虽然收敛速度更快 但是找到的解决方案并不一定是 最佳的解决方案 因此 人口规模的选择应以实际问题为依据 以前的经验合理设定 考 虑到收敛速度和遗传结果 一般来说 初始组可以采取以下策略 根据问题的固有知识 尝试把握整个问题空间分布 范围内的最优解占用空间 然后根据分布范围设置初始组 您也可以随机生成一定数量的个 人 然后选出最初添加到初始组中的个人 重复该过程直到初始种群中的个体数目达到预 定大小 3 适应度函数设计 适应度函数是一个独立的个体 其范围定义的领域 功能是不断的不同的 无论这些问题 是不是固定的限制 其设计是基于现实的解决方案 适应度函数设计会影响质量对于遗传 算法的搜索结果 因为遗传算法的选择操作是基于个体的适应度值 组中的每个人是否被 消除 该度量是根据适应度函数的个体的适应度值 在自然界中 每个生物体的演化是适 应周围的自然环境 健身功能作为环境的性质 看每个人的个体 离开个人能够适应个人 的环境 通过演化 将更适应个人 从而提高人口整体竞争水平 适应度函数通常由正在 研究的问题的目标函数来转化 这里有一些最常见的适应度函数 1 直接从要解决的目标函数中转化的适应度函数 即 精品文档 16欢迎下载 当目标函数是求解最小化问题时 Fit f x f x 当目标函数是求解最大化问题时 Fit f x f x 要直接解决的目标功能的适应度功能太简单 有两个方面的弊病 一方面可能与非负面需 求的概率相反 另一方面 各种适应度值的分布 所以平均适应度不能完全反映人口的平均 表现 而且还没有看到遗传算法的整体优化 2 如果目标函数最小化 则 如果目标函数是最大化的问题 则 其中 是 f x 的最小估计 与第一种方法相比 第二种方法是一种改进的适应度函数 称为 极限施工方法 但其阈值难以估计或不能估计 3 如果目标函数最小化 则 1 类似于 2 C 是目标函数边界的保守估计 在遗传算法的过程中 适应度函数的选择是关 键的一步 这将影响遗传算法的演化 这可能会影响遗传算法 从而找到更好的结果 4 遗传操作 遗传算法由三个基本的遗传操作组成 选择操作 交叉操作和变体 这三种遗传算法是遗 传算法的核心 它们可以产生新的群体 然后完成整个群体的演化 1 选择运算符 在遗传算法中 选择找到更适应个体 消除低适应性个体 操作的选择允许优秀的基因被 保存 导致更高的健康个人 331 选择操作是通过一组个人来适应能力的估计 以下介绍 今天几个主要的选择运算符 A 适应度比例法 健身比法也称赌博选择方法 是一种常用的方法 这样一来 个体在适应水平和个人能力 水平可以从概率中选出的群体是一定的比例 其理论基础如下 我们可以设一个群体为 N 其中一个是 i 其适应度是 所以个体 i 被选择的概率是 精品文档 17欢迎下载 通过上述公式 我们可以看出 如果适应度的适合度值较低 则选择个体的概率将较小 另一方面 适应性越高 个人被选择的概率就越大 B 最好的个人保存方法 最好的个人保存方法是在人口中 具有较高适应度的个体不必参与任何遗传操作 直接拷 贝 继承到下一代 这种方法避免了具有高适应度的个体的破坏 但不能单独使用 如果 给定人口中没有最优解 则该方法不太适合本地解决方案 所有这些都需要其他选择算法 的组合可以更全面 C 期望方法 在选择投注时 当个人数量小时 不能完全反映个人的适应度 可能存在高度的适应度被 淘汰 并且保持较低的适应度 该方法的预期值可以解决这个问题 主要思路如下 计算组中每个个体的期望值 如果个人被选中并交叉配对 下一代计算 期望需要输 0 5 另一方面 如果个人没有参 与交叉配对操作 那么预期的数量应该减少 1 期望小于零的个人不再参与任何选择 D 排序选择方法 该方法基于适应度计算的功能 首先需要计算每个人的适合度值 然后根据约定的概率对 某一种方式排序的概率进行排序 从而使每个人概率是他们自己的选择概率值 E 联赛选择方法 该方法是将最高适应度的组直接输入到下一代继承中 每次执行迭代直到迭代结束 2 交叉算子 跨越的思想是保留遗传算法中良好个体的特征 探索新的遗传空间 产生新的个体 并保 持多样性 341 交叉运行可以提高人口的整体适应度 主要交叉方式如下 A 一点交叉 单点交叉是一个相对简单的交叉 在个人的基因串中设置一个交叉点 交叉点的设置是随 机的 交叉的 两个人之间交叉的前后两个部分交叉 如果基因组具有 N 个编码位置 则 可以跨越 N 1 个点 精品文档 18欢迎下载 B 算术交叉 当浮点编码时 算术交叉的选择是一种比较常见的形式 新的代码串由两个子代码的任意 组合生成 例如 假设两个子编码字符串 进行算术交叉操作 并且通过该交叉操作生 成的两个新的编码字符串如下 在上述公式中 编码的字符串 X1 和 X2 是组中的母体染色体 是算术交叉后获得的后代 的个体 a 0 1 被设置为常数 上述操作过程中 使用交叉运算是均匀算术交叉的方 式 当使用算术交叉操作时 需要设置线性运算的组合系数 然后根据上述公式可以得到 两个新的编码字符串 代码前后的交点需要特别注意 一定要做同样的格式 长度相同 是促进遗传操作实施的唯一途径 3 变异算子 为了保持人口的多样性 有必要改变单个基因序列的某个位置的编码 这是突变算子的基 本内容 当使用二进制编码时 通过选择一些基因的值进行否定 即 1 0 或 0 1 进行突 变 一般来说 变异算子的实现基于 A 确定该基因座是在群体中所有个体的编码范围内随机选择的 B 基因突变的概率以提前设定的突变概率 P 进行 遗传算法中使用变异算子有两个目的 1 当遗传算法搜索最优解时 出现悬停现象 变 异算子具有随机搜索的能力 它提供遗传算法向最优解逼近 如果突变概率太大 个体接 近最优解 整个搜索过程被破坏 2 遗传算法需要保持人口的多样性 遗传算法需要保 持人口的多样性 避免 早熟 现象 存在交叉算子 遗传算法具有强大的全局搜索能力 是遗传算法中最重要的遗传算子 遗 传算法的变异算子提供了本地搜索能力 因此需要将其作为运算符的辅助函数 在遗传操 作过程中 只有当交叉算子和变异算子结合使用时 全遗传将快速 准确地解决问题 在 解决复杂和现实的问题时 基本的变异算子不能满足 这导致了对变异算子的更多研究 以下是几种变体方法 基本位变化 基本位变化主要用于二进制编码 即随机选择一些基因位 然后根据所选位上的突变概率 为负 将 1 变为 0 或 0 变为 1 B 均匀变化 当编码方式为浮点编码时 使用均匀的变化更多 通过以较小的替代基因座上的原始基因 精品文档 19欢迎下载 的概率来代替均匀分布的随机数来进行均匀变化 C 边界变化 根据上述操作的均匀变化进行边界变化 在执行此操作时 我们需要选择位于轨迹上方的 两个相应边界基因的值 并选择其中一个被替换 当没有其他约束时 遗传编码很长 这 种变化会产生负面影响 只有当个人接近最优解时 这段代码才会起到很好的效果 D 不均匀变化 变分运算符与人口的进化代数相关联 因此在进化的早期阶段 变异范围具有相对较大的 空间 而在进化过程中 变异空间将越来越小 操作员接近零 所有的变异算子对整个遗 传进化都有微调效应 5 参数选择 根据遗传算法的应用 我们需要设置一些参数 包括总组的大小 染色体的长度和各种操 作符的出现概率 这些参数是重要的 需要设置为适当的参数值 因为它们与以后优化的 结构有关 下面我们将对这些参数进行一些简短的描述 1 染色体长度选择 染色体的长度不尽可能长 染色体计算精度的长度虽然较高 但计算时间却很长 为了平 衡计算精度和计算时间 有学者在优化过程中研究了染色体编码 同时具有良好的遗传优 化效果 2 人口规模的选择 人口规模的大小应该在适当的范围内 如果所选择的人口规模太大 可以找到最优解 但 如果所选择的群体规模太小 遗传时间将会使遗传时间特别长会很短 但不一定找到最优 解 因此 人口规模的选择应根据实际问题 一般选择范围 20 200 3 交叉概率的选择 由于交叉算子的存在 遗传算法将具有全局搜索的能力 交叉概率的选择也应在适当的范 围内 交叉概率太大会导致优秀基因的损失 交叉概率太小会影响整个遗传的效率 在大 多数情况下 交叉概率的选择范围从 0 6 到 1 如果在遗传过程中 使用自适应调整交叉概 率 可能会有更好的结果 4 突变概率的选择 突变操作是遗传位突变操作的个体编码 变异概率必须选择合适的范围 一般变异概率在 0 005 0 01 之间 过多的突变概率将导致个体接近最优解的更大变化 这不利于收敛 变 异概率太小将导致 早熟 现象 如果遗传过程中使用自适应调整突变概率 可能会有较 精品文档 20欢迎下载 好的效果 其实在遗传算法的实际应用中 没有一套数据可以应用于所有参数的情况 参 数的选择受到很多因素的影响 没有绝对的标准 如果要选择最佳参数 则需要根据实际 问题进行深入研究 2 3 3 遗传算法的优点 遗传算法在处理复杂系统优化方面具有很强的适用性 遗传算法在搜索过程中 只需要确 定目标函数的搜索方向和相应的适应度函数 遗传算法为解决复杂系统问题提供了一个共 同的系统 它不依赖于具体领域的问题可以广泛用于许多科学 35 61 与其他系统优化搜 索算法相比 遗传算法在解决系统优化方面具有很大的优势 主要表现在以下几个方面 遗传算法由于其进化特征 解决问题的方法并不多 经过编码处理 遗传算法应用于遗传 过程中基因的遗传和遗传过程 导致优化过程的适应性 编码问题的方法比一般算法更为 普遍 优越 2 遗传算法从多个搜索点同时进行搜索 有利于全局优化 遗传算法从解决方案的求解器 开始 而不是从单个解决方案开始 传统优化算法的主要缺点是单点搜索开始 算法很容 易陷入局部最小点 37 这不能解决全局最小点 直接进入局部最优解 遗传算法可以同 时处理群体中的多个个体 具有潜在并行性 因此 遗传算法整合了定向搜索和随机搜索 的优势 在更好的区域搜索和强大的空间扩展之间取得了一定的平衡 3 遗传算法只需要根据适应度函数值即可确定搜索方向 f3 81 其最大的优点基本上不用 搜索空间知识或找到其他辅助信息 只有适应度函数值可以评估个人 作为相应遗传操作 的基础 一些传统的优化算法使用辅助功能信息来根据目标函数值来确定搜索的方向 适 应度函数不受连续可微约束的约束 其定义域也可以根据需要任意设定 该特征使得遗传 算法的应用大大扩展 这种确定搜索方向的方法使得在具有高适应度函数值的解空间中定 位搜索空间变得容易 从而在一定程度上提高了搜索的效率 2 4 总结 本章介绍了 BP 神经网络的原理和算法 并分析了 BP 神经网络在股票预测中的应用 同时 介绍遗传算法的原理和基本操作 分析遗传算法在优化问题求解中的优势 第三章基于遗传神经网络的股票预测模型 评估学习算法有许多标准 但核心依然是 简单性 可塑性和有效性 一般来说 简单的 算法很难有效 塑料算法不是太简单 有效的算法需要完善和特异性 从而与可塑性和简单 精品文档 21欢迎下载 性相冲突 BP 算法是基于梯度法 简单和塑性是其主要优点 但 BP 算法这种方法也有其缺陷 一方 面收敛速度较慢 另一方面也受到局部极小的麻烦 遗传算法是一种全球搜索算法 它是从 多个初始点到多方向搜索组的潜在解决方案 该搜索允许其跳出局部最优解的能力 具有 良好的全局搜索能力 为了补偿 BP 算法的缺点 提高算法的效率 我们可以使用遗传算法 优化 BP 神经网络 目前 有三种常用的优化方法 41 1 使用遗传算法优化 BP 神经网络的权重和阈值 2 采用遗传算法优化 BP 神经网络的拓扑结构 3 利用遗传算法对 BP 神经网络学习规则进行优化 使其能够适应问题和环境的要求 3 1 遗传神经网络算法 遗传算法优化 BP 网络包括三种方法 包括 1 连接权重和阈值的优化 42 在学习 BP 网络的过程中 根据连接权的一定变更规则获得连接权重 在训练过程中进行连 续调整 以获得较好的连接权限分配 然而 由于要优化的目标函数非常复杂 BP 算法不 能使用一维搜索方法来计算每个调整的步长 导致算法的效率 如果训练时间太长 则 BP 算法将落入局部最小值 无法获得最优连接权重分布 使用遗传算法优化连接权可以解决 这个问题 具体优化过程如下 A 首先 随机生成一组分布 形成一系列权重 或净值 使用编码方案进行编码 然后构 造一个表示网络权重分配的字符串 因为以前的网络结构并且学习规则已经确定 则字符 串对应于权重和阈值以获取神经网络的特定值 B 其次 计算新生成的神经网络的误差函数 通过该函数确定其适应度函数的值 一般来说 误差越大 适应度越小 C 将个体中适应度最大的直接送到下一代 D 最后 目前一代群体进行交叉和突变等遗传操作 造成新一代群体 精品文档 22欢迎下载 E 重复步骤 b d 不断发展初始权重分布直到满足训练目标 2 网络结构优化 网络结构由网络拓扑结构和节点转换功能两部分组成 优点结构将严重影响网络处理能力 良好的结构需要同时满意解决 不产生冗余节点和冗余连接 到目前为止 人们在设计网 络结构时 一般使用以下两种方式 首先是预先确定的 二是使用增量或减少检测方法 增量检测方法是 在训练过程中 从较小的网络结构 最小数量的隐层 节点和连接权 根据具体需要不同的问题 逐步增加各种结构部分 直到找到相应的网络结构解决问题 使 用该方法的减少检测方法恰恰相反 通过遗传算法演化神经网络结构的步骤是 A 随机生成 N 个结构 对每个结构进行编码 使得每个编码的个体对应于一个结构 B 以多种不同的初始权重分布训练个体浓度的结构 C 根据培训结果或其他策略确定每个人的适应度 D 选择一些具有最大适应度值的个体 直接继承下一代 E 遗传作业 如当代一代的交叉和突变以产生下一代群体 F 重复 b e 的步骤 直到当前一代的个人能够满足要求 3 优化学习规则 在神经网络系统中 学习规则决定了系统的功能 在采用遗传算法之前 先进行神经网络 训练中的学习规则 采用遗传算法后 神经网络中的学习规则将演变为满足问题和环境的 要求 进化学习规则的过程可以描述为 44 A 随机生成 N 个个体 每个个体代表学习规则 B 构建训练集 每个元素代表一个结构 连接是一个随机或预先确定的神经网络 然后 用每个学习规则对训练集的元素进行训练 C 计算每个学习规则的适应度 D 根据适应度选择 E 遗传操纵每个编码学习规则以产生下一代个体 F 重复 b e 步骤 直到满足要求 精品文档 23欢迎下载 遗传神经网络的构建步骤主要包括优化方案 编码方案 适应度函数 遗传操作和神经网 络的训练算法 1 确定优化程序 您可以选择使用 4 1 1 中描述的优化方案之一 或组合多个场景进行优化 在本文中 方 案 1 用于使用遗传

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论