2017:我为AI点亮火种-第2集:首桶金!LSTM短线狙击
《2017:我为AI点亮火种》第2集讲述AI科学家陈默穿越回2017年,利用未来知识在原始AI环境下创业的故事。本集中,陈默凭借优化版LSTM模型,通过"雄安新区"政策特征精准预测三支短线股,赚到穿越后的第一桶金450元。技术亮点包括:手动实现注意力机制解决LSTM缺陷、独创双层LSTM架构分析多股关联、开发因果数据增强应对过拟合,以及运用贝叶斯神经网络评估预测风险。故事展现了
温馨提示:本书每章配套专属片尾曲,皆为 IT 行业匠心打造,专属填补行业歌曲空白 ,另外先了解本集内容,再听片尾曲才有更多的感受;
下面是我个定制:
《2017:我为AI点亮火种》两个主题曲(大家评选一下):
昨日未来A版: 歌曲地址
昨日未来B版: 歌曲地址
故事大纲(30集微故事版)
核心设定:
主角陈默,2025年顶尖AI科学家,在突破AGI实验时因时序数据溢出,意外穿越回2017年11月——AI爆发前夜,被困在显示着GTX 1070 Ti首发海报的显卡卖场,只剩一部碎屏手机与满脑来自未来的算法记忆。
故事主线:
陈默以“时空错位”的技术认知差为火种,从用微型LSTM模型赚取第一笔五百元启动资金开始,在硬件匮乏、生态原始的2017年,逐步搭建起超前时代的轻量化AI技术栈与商业实践,最终在Transformer革命前夕点亮中国AI的独立进化路径。
第2集:首桶金!LSTM短线狙击
情节:在网吧用二手笔记本跑通了优化版LSTM模型,凭借“雄安新区”政策特征,精准狙击三支短线股,赚到穿越后第一笔450元。
看点:特征工程的力量首次展现。小成本撬动大收益的爽感,主角的孤独奋斗与时代信息差形成的独特优势。

第2集:首桶金!LSTM短线狙击
【开篇:三次心跳】
陈默盯着证券账户的余额:551.8元。
在2025年,这是他实验室里一根散热管的价钱;在2017年,这是他向AI时代叩门的全部资本。
“还是太慢。”他站在网吧厕所的镜子前,用冷水抹了把脸。镜子里的年轻人眼中有一种奇异的分裂感——一半是27岁失业程序员的疲惫,一半是35岁顶尖科学家俯瞰时间轴的冷静。
按照这个速度,他要攒够四张GTX 1070 Ti的钱(14796元),需要290次完美预测。
市场不会给他290次机会。任何规律一旦被过度使用,就会在资金的围剿中失效。
他需要放大杠杆——不是金融杠杆,而是认知杠杆。
回到机位,陈默打开了一个新的Python脚本。这次不是预测单只股票,而是构建一个多股票协同预测系统。
【技术场景一:LSTM的“注意力缺陷”】
“问题出在哪里?”陈默在记事本上写下一行思考:
传统LSTM在处理多股关联时,默认所有输入特征同等重要——这就像让一个人同时听十个人说话,还要求他记住每个人每句话的细微关联。
他需要的,是在2017年还不存在的多头注意力机制。但Transformer的论文才刚发表四个月,连PyTorch官方都还没实现。
“那就先造一个简陋版。”
陈默开始写代码。他的思路很清晰:既然无法让模型自动学习特征重要性,那就手动注入重要性权重。
# 特征重要性加权层(2025年简化版移植)
class ManualAttentionLayer(nn.Module):
def __init__(self, feature_dim=6, stock_count=5):
super().__init__()
# 为每只股票每个特征设置可学习权重
self.importance_weights = nn.Parameter(torch.randn(stock_count, feature_dim))
def forward(self, x):
# x形状: [batch, stock_count, seq_len, feature_dim]
# 为每个特征乘上权重,让模型学会“关注重要信号”
weighted_x = x * self.importance_weights.unsqueeze(1) # 广播
return weighted_x
但这还不够。金融时序数据有两个魔鬼:
- 非平稳性——股票的波动特性会随时间变化
- 异步相关性——A股的上涨可能三天后才传导到B股
陈默调出了五只关联股票的数据:
- 冀东水泥(000401) - 他已经验证过的
- 金隅股份(601992) - 同一产业链
- 华夏幸福(600340) - 雄安地产核心
- 中国建筑(601668) - 基建总包
- 海螺水泥(600585) - 行业对标
“如果LSTM是短期记忆,我需要给它加上长期记忆抽屉。”
他设计了一个双层架构:
- 第一层:5个独立的微型LSTM,分别处理单只股票
- 第二层:一个“协调者LSTM”,接收5个LSTM的隐藏状态,学习股票间的关联模式
class TwoLevelLSTM(nn.Module):
def __init__(self):
super().__init__()
# 五只股票,五个独立专家
self.stock_experts = nn.ModuleList([TinyLSTM() for _ in range(5)])
# 协调者:学习专家们如何互相影响
self.coordinator = nn.LSTM(input_size=5*32, hidden_size=64)
def forward(self, x_list): # x_list包含5个股票的张量
expert_outputs = []
for i, expert in enumerate(self.stock_experts):
out = expert(x_list[i]) # 每个专家处理自己的股票
expert_outputs.append(out)
# 协调者看到的是“专家委员会的意见”
combined = torch.cat(expert_outputs, dim=-1)
final_out, _ = self.coordinator(combined)
return final_out
【技术场景二:对抗过拟合的“左右互搏”】
更大的模型意味着更大的过拟合风险——模型可能只是记住了训练数据的噪声,而非真实规律。
陈默只有2015-2017两年的日线数据,约500个交易日。这在深度学习世界里贫瘠得像沙漠。
“我需要数据增强……但时间序列不能随意扭曲。”
他想起了2023年一篇冷门论文《金融时序的因果数据增强》,核心思想是在保持因果顺序的前提下,对数据进行合理变形。
他实现了三种增强:
- 时间缩放:将股价序列在时间轴上轻微压缩或拉伸(±5%)
- 波动率扰动:在波动率低的时期加入适量噪声
- 事件偏移:将“政策发布日”在前后三天内随机偏移,模拟市场反应的滞后差异
def augment_time_series(series, policy_dates):
"""因果友好的数据增强"""
aug_type = random.choice(['scale', 'jitter', 'shift'])
if aug_type == 'scale':
# 时间轴缩放
new_length = int(len(series) * random.uniform(0.95, 1.05))
scaled = F.interpolate(series.unsqueeze(0).unsqueeze(0),
size=new_length, mode='linear')
return scaled.squeeze()
elif aug_type == 'jitter':
# 只在低波动期加噪声
volatility = series.diff().std()
if volatility < 0.02: # 低波动期
noise = torch.randn_like(series) * 0.01
return series + noise
return series
else: # shift
# 事件日偏移,保持因果顺序
# 实现细节省略...
增强后,训练数据“膨胀”了五倍。
【技术场景三:用贝叶斯做“风险制动”】
模型可以给出预测,但无法评估预测的可信度。在2025年,陈默会用蒙特卡洛Dropout或深度集成——但这些方法在2017年的小模型上计算代价太高。
他想到了一个古老而强大的工具:贝叶斯神经网络近似。
“本质上,我需要知道模型在说‘上涨概率65%’时,这个‘65%’本身有多可靠。”
他在最后一层做了修改:
class BayesianOutputLayer(nn.Module):
def __init__(self, input_dim, output_dim=1):
super().__init__()
# 不直接输出一个值,而是输出分布的参数
self.fc_mu = nn.Linear(input_dim, output_dim) # 均值
self.fc_sigma = nn.Linear(input_dim, output_dim) # 不确定性
def forward(self, x):
mu = torch.sigmoid(self.fc_mu(x)) # 预测概率
sigma = F.softplus(self.fc_sigma(x)) # 不确定性(始终为正)
# 返回均值和方差,可据此计算置信区间
return mu, sigma
现在模型每次预测都会附带一个不确定性分数σ。σ值大,说明模型对这个预测没把握;σ值小,说明模型很自信。
陈默设定了一个规则:只交易σ < 0.1的高信心预测。
【实战:72小时狙击战】
第1小时:增强后的数据开始训练。网吧的GTX 1050发出轻微嗡鸣。
第12小时:模型第一次收敛。验证集准确率68.3%,比第一版的61.7%显著提升。
第24小时:陈默发现一个问题——模型对“下跌”的预测能力明显弱于“上涨”。这是金融数据的天然不对称:上涨往往有明确催化剂,下跌则可能由无数隐形因素引发。
他引入了不对称损失函数:
class AsymmetricLoss(nn.Module):
def __init__(self, up_weight=1.0, down_weight=1.5):
super().__init__()
self.up_weight = up_weight
self.down_weight = down_weight # 给下跌预测更高权重
def forward(self, pred, target):
basic_loss = F.binary_cross_entropy(pred, target, reduction='none')
# 如果真实标签是下跌(target=0),损失乘上更高权重
weight_mask = torch.where(target == 0,
self.down_weight,
self.up_weight)
return (basic_loss * weight_mask).mean()
第48小时:模型调整完毕。陈默喝了第六罐红牛,眼睛布满血丝,但眼神明亮。
模型给出了一个高信心预测(σ=0.07):
- 时间:11月9日(两天后)
- 标的:京东方A(000725)
- 逻辑:苹果供应链情绪传导 + 面板行业周期底部反转
- 预测上涨概率:71.4%
- 建议持仓时间:3个交易日
第55小时:陈默做出了一个决定。他登录了刚注册的股票论坛账号,发了一个看似“技术分析”的帖子:
《面板行业深度:从周期底部看京东方》
内容充满严谨的数据和产业链分析,只在最后一段“顺便”提到:“技术面显示,本周可能迎来关键转折。”
他需要市场情绪的微弱共振。不是操纵,是催化。
第60小时:他将全部资金551.8元,在收盘前以4.12元价格全仓买入京东方A——133股。
第72小时:11月9日,周四。
上午9点31分,京东方A平开。
10点15分,苹果供应链分析师发布报告:“iPhone X需求超预期,供应链企业有望受益。”
10点47分,京东方A开始放量上涨:4.15、4.18、4.22……
陈默设定的目标价是4.36元,涨幅5.8%。
下午1点13分,股价触及4.35元。
他没有贪婪。
在4.34元的位置,他清空了所有持仓。
133股 × (4.34 - 4.12) = 29.26元盈利
本金变成581.06元。
【意外转折:被看见的“技术宅”】
就在陈默准备关机时,一个身影停在他身后。
“你的模型代码,能让我看看吗?”
陈默猛地回头。是那个三天前在显卡卖场与他争论“8GB显存能否训练AI”的女子——苏晚晴。
她今天穿着简洁的白色衬衫,手里拿着一杯咖啡,眼神里没有质疑,只有敏锐的好奇。
“你怎么找到我的?”
“整个网吧,只有你在跑Python而不是玩游戏。”苏晚晴指了指屏幕,“而且你的终端在滚动显示损失曲线——那是在训练什么,对吧?”
陈默迅速最小化窗口:“普通的数据分析。”
“普通数据分析不会用LSTM,更不会用自定义的注意力层。”苏晚晴平静地说出这两个词。
陈默愣住了。2017年,能一眼认出LSTM和注意力机制的人,绝非常人。
“你是谁?”
“一个在找火种的人。”苏晚晴放下咖啡,递过一张名片:
晴空科技 创始人 苏晚晴
下方手写着一行小字:“我相信机器可以做梦,只是还没人教它。”
“我看到你论坛的帖子了。技术分析是幌子,真正的预测来自某个模型,对吗?”她目光如炬,“我出五千元,买你下一周的预测服务。如果准确,我们再谈更大的合作。”
陈默看着名片,又看了看屏幕上刚刚完成的交易记录。
火种需要氧气才能燃烧。
而资本,就是最直接的氧气。
【本集核心知识点总结】
-
多时序协同预测:
- 传统LSTM处理多序列的局限性:平等对待所有输入,忽略特征重要性差异
- 解决方案:手动注意力加权+双层协调架构,模拟“专家委员会”决策过程
-
时序数据增强的因果约束:
- 金融数据不能随意增强,必须保持因果顺序
- 三种因果友好增强:时间缩放、波动率扰动、事件偏移
- 数据增强本质是让模型学会“规律”而非“记忆噪声”
-
预测不确定性量化:
- 贝叶斯神经网络近似:让模型输出预测的均值和方差
- 不确定性分数σ作为“风险制动器”,只交易高信心预测
- 这是AI投资中风险控制的核心思想
-
金融数据的非对称性处理:
- 上涨和下跌的预测难度不同,需要不对称损失函数
- 给予下跌预测更高权重,强迫模型学习下跌模式
-
2017年深度学习工程现实:
- 没有现成的多头注意力实现,需要手写简化版
- 计算资源有限,模型必须极端精简
- 数据稀缺,需要创造性增强
下集预告:苏晚晴的五千元投资到账,但要求陈默现场演示“模型精度如何验证”。在晴空科技的会议室,陈默将用一个简单的脚本揭示AI预测的底层逻辑——而这场演示,将改变两人关系的本质。
本集片尾曲:
七十二小时A版: 音乐地址
七十二小时B版: 音乐地址
版权声明
2017:我为AI点亮火种和主题曲和片尾曲以及相关封面图片等 ©[李林][2025]。本作品采用 知识共享 署名-非商业性使用 4.0 国际许可协议 进行授权。
这意味着您可以:
- 在注明原作者并附上原文链接的前提下,免费分享、复制本文档与设计。
- 在个人学习、研究或非营利项目中基于此进行再创作。
这意味着您不可以:
- 将本作品或衍生作品用于任何商业目的,包括企业培训、商业产品开发、宣传性质等。
如需商业用途或宣传性质授权,请务必事先联系作者。
作者联系方式:[1357759132@qq.com]
更多推荐




所有评论(0)