TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人。

简介: 简介TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人。

简介

TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人。

文章包括一下几个部分:
1.为什么要尝试做这个项目?
2.为什么选取了这个模型?
3.模型的数据从哪里来?
4.模型的优化过程?
5.项目可以进一步提升的方向。

对于以比特币为首的数字货币近期的表现,只能用疯狂来形容。来自比特币交易平台的最新价格行情显示,就在此前一天,比特币盘中最高价格达到29838.5元,距离3万元大关仅有咫尺之遥。比特币最近火热的行情,吸引了众多的关注,还有一个人工智能似乎无所不能,那么问题来了,能否用人工智能来进行比特币交易呢?

使用什么模型来进行价格预测?现在热门的 深度神经网络,卷积神经网络,循环神经网络,因为卷积神经网络更适合处理图片,循环神经网络比较适合处理序列化内容,尤其是 LSTM 是 RNN 的升级版。

LSTM(Long Short-Term Memory)是长短期记忆网络,是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。LSTM 已经在科技领域有了多种应用。基于 LSTM 的系统可以学习翻译语言、控制机器人、图像分析、文档摘要、语音识别图像识别、手写识别、控制聊天机器人、预测疾病、点击率和股票、合成音乐等等任务。比特币的成交记录就是事件序列上的加个数据,可以基于过去的成交记录序列来对未来的价格作出预测,和 LSTM 的模型比较合适。接下来的价格可以作为预测结果。

数据集

新的问题来了,数据从哪里来?
需要的数据是一个包含成交价格的序列,然后可以截取一部分作为输入值,接下来的一部分作为预测值。后来找了一下,主流的交易平台都提供了部分历史数据,但都不是很多。最后采用了 btctrade ,用 requests 爬取,它包含比特币的 50 个交易记录。

获取数据集的脚本
get_trades.py 会获取这些交易记录,重新转化为 json ,并且用图片的方式展示出来,供下一步数据分析使用。

运行前需要安装的依赖:
为了爬取数据,需要使用 requests 库,一个非常好用的 HTTP 库。为了把交易的数据可视化,使用了 matplotlib。

pip install requests
pip install matplotlib
AI 代码解读

模型

rnn_predicter.py

使用 LSMT 模型。截取 10个交易记录作为输入,如果 第 11个价格比第10个高,就把输出设置为 [1,0,0],如果低就设置为 [0,0,1] ,如果相同 [0,1,0]。

for i in range(0,20):
    #print(price)
    one_predictor=np.array(price[i:i+20],dtype=float)
    #print(one_predictor)
    train_x.append(one_predictor)
    if(int(price[i+20])>int(price[i+21])):
        train_y.append(np.array([1,0,0]))
    elif (int(price[i + 20]) == int(price[i + 21])):
        train_y.append(np.array([0,1,0]))
    elif(int(price[i+20])<int(price[i+21])):
        train_y.append(np.array([0,0,1]))
AI 代码解读

下一步定义模型:
tensorflow lstm 模型,需要把 tensor 拆分成序列,然后传入模型。否则回报错,也就是代码中的 x = tf.unstack(x, n_steps, 1) 。

def RNN(x, weights, biases):
    #首先把数据拆分为 n 个序列,每一个的维度 (batch_size, n_input)
    x = tf.unstack(x, n_steps, 1)

    # 定一个 lstm cell
    lstm_cell = rnn.BasicLSTMCell(n_hidden, forget_bias=1.0)

    # 获得 lstm 的输出
    outputs, states = rnn.static_rnn(lstm_cell, x, dtype=tf.float32)
    # 加个线性激活
    return tf.matmul(outputs[-1], weights['out']) + biases['out']
AI 代码解读

获得结果,定义损失函数和优化函数

如何优化模型?
预测值获取之后,对比实际的价格,会有一个损失函数。损失函数使用 softmax_cross_entropy_with_logits 来计算预测值和标记值的差,然后用 AdamOptimizer 来优化损失函数优化模型。

pred = RNN(x, weights, biases)
# Define loss and optimizer
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred, labels=y))
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)

# Evaluate model
correct_pred = tf.equal(tf.argmax(pred,1), tf.argmax(y,1))
accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))
AI 代码解读

项目开源地址和训练结果

https://github.com/TensorFlowNews/TensorFlow-Bitcoin-Robot/

训练设备:

GeForce GTX 980 Ti

训练结果:

Iter 998000, Minibatch Loss= 0.730588, Training Accuracy= 0.75000 Optimization Finished!

后续更新发布

http://www.tensorflownews.com/

更新计划

因为交易平台提供的历史交易记录非常少,所以为了进一步提高训练效果,后续要持续的自己保存历史交易数据或者是找到更好的数据来源。还有一个方面是,模型训练完了之后,保存下来,后续可以直接使用。还有针对模型本身还可以做一定的优化,现在只是预测,涨,跌,维持,后续可以进行更加精细的评分,按照历史数据进行回测等等。
模型持久化,训练数据集持久化,测试数据集。

目录
打赏
0
0
0
0
27
分享
相关文章
GR00T N1:全球首个开源人形机器人基座模型!双系统架构解锁通用操作
GR00T N1 是英伟达推出的全球首个开源人形机器人基础模型,基于多模态输入和双系统架构,能够执行复杂操作任务,适用于物流、制造、零售等多个领域。
46 1
GR00T N1:全球首个开源人形机器人基座模型!双系统架构解锁通用操作
SpatialLM:手机视频秒建3D场景!开源空间认知模型颠覆机器人训练
SpatialLM 是群核科技开源的空间理解多模态模型,能够通过普通手机拍摄的视频重建 3D 场景布局,赋予机器人类似人类的空间认知能力,适用于具身智能训练、自动导航、AR/VR 等领域。
33 5
SpatialLM:手机视频秒建3D场景!开源空间认知模型颠覆机器人训练
Seer:上海 AI Lab 与北大联合开源端到端操作模型,结合视觉预测与动作执行信息,使机器人任务提升成功率43%
Seer是由上海AI实验室与北大等机构联合推出的端到端操作模型,结合视觉预测与动作执行,显著提升机器人任务成功率。
120 20
Seer:上海 AI Lab 与北大联合开源端到端操作模型,结合视觉预测与动作执行信息,使机器人任务提升成功率43%
Cosmos:英伟达生成式世界基础模型平台,加速自动驾驶与机器人开发
Cosmos 是英伟达推出的生成式世界基础模型平台,旨在加速物理人工智能系统的发展,特别是在自动驾驶和机器人领域。
365 15
Cosmos:英伟达生成式世界基础模型平台,加速自动驾驶与机器人开发
基于的Qwen模型的智能客服Discord机器人,使用🐫 CAMEL、SambaNova、Firecrawl和Qdrant实现RAG Agent
基于Qwen模型的智能客服Discord机器人,使用CAMEL、SambaNova、Firecrawl和Qdrant实现RAG Agent。构建了一个能够处理复杂问题并能进行快速响应的强大聊天机器人。该机器人可在Discord平台上运行,支持实时对话和语义搜索,提供准确、全面的回答。项目包含详细的安装步骤、代码示例及集成指南,适合开发者快速上手。
RDT:清华开源全球最大的双臂机器人操作任务扩散基础模型、代码与训练集,基于模仿能力机器人能够自主完成复杂任务
RDT(Robotics Diffusion Transformer)是由清华大学AI研究院TSAIL团队推出的全球最大的双臂机器人操作任务扩散基础模型。RDT具备十亿参数量,能够在无需人类操控的情况下自主完成复杂任务,如调酒和遛狗。
250 22
RDT:清华开源全球最大的双臂机器人操作任务扩散基础模型、代码与训练集,基于模仿能力机器人能够自主完成复杂任务
Jim Fan全华人团队HOVER问世,1.5M小模型让机器人获潜意识!
在机器人技术领域,人形机器人的全身控制一直极具挑战。传统方法为不同任务(如导航、移动操作等)单独训练控制策略,限制了策略的可转移性。Jim Fan团队提出HOVER框架,通过全身运动模仿作为共同抽象,整合多种控制模式,实现无缝过渡,显著提升控制效率和灵活性。HOVER不仅为人形机器人应用带来巨大潜力,也为机器人技术发展提供新思路。论文地址:https://arxiv.org/abs/2410.21229
90 23
EMMA-X:新加坡科技设计大学推出具身多模态动作模型,使夹爪机器人具备空间推理和任务规划能力
EMMA-X是由新加坡科技设计大学推出的具身多模态动作模型,具备70亿参数,通过在链式思维推理数据上微调OpenVLA创建。该模型结合层次化的具身数据集,增强空间推理和任务规划能力。
143 3
EMMA-X:新加坡科技设计大学推出具身多模态动作模型,使夹爪机器人具备空间推理和任务规划能力
NeurIPS 2024:机器人操纵世界模型来了,成功率超过谷歌RT-1 26.6%
PIVOT-R是一种新型世界模型,专注于预测与任务相关的路点,以提高语言引导的机器人操作的性能和效率。该模型由路点感知世界模型(WAWM)和轻量级动作预测模块组成,辅以异步分层执行器(AHE),在SeaWave基准测试中表现优异,平均相对改进达19.45%,执行效率提高28倍。
95 26
技术实践 | 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型快速搭建专业领域知识问答机器人
Qwen2-VL是一款具备高级图像和视频理解能力的多模态模型,支持多种语言,适用于多模态应用开发。通过PAI和LLaMA Factory框架,用户可以轻松微调Qwen2-VL模型,快速构建文旅领域的知识问答机器人。本教程详细介绍了从模型部署、微调到对话测试的全过程,帮助开发者高效实现定制化多模态应用。

热门文章

最新文章