来源:大数据文摘

作者:Emil Wallnér

本文长度为4600字,建议阅读7分钟

本文带你快速创建神经网络,开启深度学习之旅。


前言

深度学习的浪潮在五年前开始兴起。随着计算能力的爆炸型增长和几个成功的案例,深度学习引起了大肆宣传。深度学习技术可以用来驾驶车辆,在Atari游戏中进行人机对抗,以及诊断癌症。

开始学习神经网络时,我花了两周的时间进行探索,选择合适的工具,对比不同的云服务以及检索在线课程。但回想起来,我还是希望我可以从第一天就能创建神经网络,这也是这篇文章的目的。

你不需要有任何预备知识。当然如果你对Python,命令行和Jupyter notebook有基础的了解会对你有所帮助。

深度学习是机器学习的一个分支,它被证明是一种可以在原始数据(如一幅图、或者一段声音)中找到固定模型的有效方法。 如果你想对猫和狗的图像进行分类。不需要具体的编程,它首先会找到图片中的边,然后从不同的边中构建模式。接下来,它会检测到鼻子,尾巴和爪子。通过这样的方式,神经网络最终可以实现对猫和狗进行分类。

但是,结构化的数据可以使用更好的机器学习算法。举个例子,如果你的excel表中记录了有序的客户数据,你希望可以预测他们的下一张订单,那么你可以使用传统的方法,使用一个更简单的机器学习算法。

核心逻辑

想象一个安装了很多随机调整齿轮的机器。这些齿轮堆叠在很多层上,而且会相互影响。最初,这个机器无法正常工作。然后随机地调整齿轮,直到调整到可以给出正确输出。

然后一个工程师会开始检查所有的齿轮,然后标记出来哪些齿轮会造成误差。他会从最后一层的齿轮开始,因为这里是所有误差累计的结果。一旦他找到了最后一层的误差,他就会开始查看前一层。通过这种方法他可以计算出每一个齿轮对于误差的贡献值。我们把这个过程称为反向传播。

然后这个工程师开始根据之前找到的误差对每一个齿轮进行调整,然后重新运行整个机器。运行机器,计算误差,调整齿轮,不断循环这个过程直到机器给出正确输出。

预测 – 计算误差 – 调整预测值 (训练周期)

神经网络的运行方式也是如此,有输入和输出,然后通过调整齿轮来寻找输入和输出之间的关系。给定一个输入,通过调整齿轮来预测输出,然后将预测值和真实值进行对比。


神经网络通过调整齿轮来追求最小误差(预测值与实际值之间的差异),它会不断调整齿轮,直到预测值与真实值之间的差异尽可能小。

最小化误差的一个最佳方法是梯度下降,即通过误差函数、或者说成本函数来进行误差的计算。

浅层神经网络

许多人认为人工神经网络是我们大脑新皮质的数字化复制品。 这是一个错误的观念。

我们并不知道大脑如何能够做出这样的声明。这只是神经网络发明人弗兰克·罗森布拉特(Frank Rosenblatt)的一个灵感源泉。

浅层神经网络 输入-权重-加和-判断 –> (预测值-实际值)*学习率

与神经网络模拟器玩一两个小时,你就可以获得对其的直观感受。

我们将从实现一个简单的神经网络开始,以了解TFlearn中的语法。从经典的101问题开始,也就是OR运算符。虽然神经网络更适合于其他类型的数据,但这是了解其工作原理的一个很好的问题。

所有的深度学习程序都遵循同样的核心逻辑:

  • 首先加载库,然后加载数据并清洗。不管是照片,音频还是知觉数据,所有的输入都会被转化为数字。这些很长的数字列表就是我们神经网络的输入。

  • 现在开始设计神经网络。选择你的神经网络层的类型和数量。

  • 然后它会进入学习过程。

  • 神经网络知晓输入和输出,然后自行寻找二者之间的关系。
    最后会用训练好的模型中给到你一个预测值。

下面是这个神经网络的程序:


输出:

第一行 以“#”开头的行表示备注,一般用来解释代码

第二行 加载TFlearn库 通过这个语句我们可以使用谷歌Tensorflow的深度学习函数

第五行和第六行 将上述表中的数据存储在列表中

每个数字末尾的点会将整数映射到浮点数。它存储具有十进制值的数字,使计算更加精确。

第七行 初始化神经网络,并指定输入数据的维度或者说尺寸

所有的OR运算都是在一对数据中进行的,所以维度是2.

空值是默认值,表示批量的大小

第八行 输出层

激活函数将过程中的结果映射到输出层

在这个例子中,我们使用Sigmoid函数将其映射到(0,1)区间范围内

第十一行 应用回归

使用优化器选择合适的算法来最小化成本函数
学习率决定了神经网络的调整速度,而损失变量决定了如何计算误差。

第十二行 选择使用哪个神经网络

一般情况下也可以用来指定存储训练日志的位置

第十三行 训练你的神经网络和模型

选择你的输入数据(OR)以及实际的标签(Y_truth)

Epochs决定了你的神经网络运行数据的循环次数

如果你设置 snapshot=True,那么每次循环后都会进行模型验证

第十四到十八行 使用训练好的模型进行预测

在这个例子中,返回的是结果是1/True的概率

输出层:

第一个结果表示[0.]&[0.]组合为真的可能性为4%,以此类推。“Training step”显示了你训练了多少批。

在每一批中所有数据都将训练一次,类似于Epoch。如果数据相对内存较大,你需要停止分段训练。损失函数会计算每一次迭代的错误数量。

SGD指随机梯度下降法及最小化代价函数方法。

Iter指当前数据索引以及输入项的总和。

你可以在大多数TFlearn神经网络中找到上述逻辑和语法。学习这段代码最好的方法就是修改代码并产生一些错误。

损失曲线显示了每一次训练的错误量。

你可以通过Tensorboard来可视化每一次实验,并了解每一个参数是如何影响训练的。

这里有一些你可以运行的例子的建议。我推荐你花费几小时练习这些例子,以更好地适应运行环境以及TFlearn中的参数。

实验

  • 增加训练与迭代次数

  • 尝试添加或改变文档中提到的每一个函数的参数

例如g = tflearn.fullyconnected(g, 1, activation=’sigmoid’)改成tflearn.fullyconnected(g, 1, activation=’sigmoid’, bias=False)在输入项增加整数

  • 改变输入层的形状

  • 改变输出层的激活函数

  • 使用不同的梯度下降方法

  • 改变神经网络计算代价的方式

  • 用X和Y来替代“AND”和“NOT”逻辑运算

  • 例如将最后一项Y_truth从[1.]改为[0.]。为了使其有效,你需要在网络中增加一层。

  • 使其学得更快

  • 想办法使得每一步学习都超过0.1秒

新手入门 

结合Python来使用Tensorflow在深度学习中是最常见的手段。

TFlearn是一个运行在Tensorflow之上的高层次框架。

另一个常见的框架是Keras。这是一个更加健壮的库,但是我发现TFlearn的语法更加简洁易懂。

它们都是运行在Tensorflow之上的高层次框架。

你可以使用你的电脑CPU来运行简单的神经网络。但是大多数实验需要运行数个小时甚至几周。这也是为什么大多数人通过现代GPU云服务来进行深度学习。

最简单的GPU云服务解决方案是FloydHub(https://www.floydhub.com/)。如果你掌握了基础的命令行技能,部署FloydHub将不会超过5分钟。

使用FloyHub文档来安装floyd-cli命令行工具。FloydHub还为遇到问题的客户提供内部客服支持。

新手神器!不用部署深度学习环境、上传数据集!(附代码视频教程)相关推荐

  1. docker 利用docker拉取Nvidia/cuda官方镜像,部署深度学习环境

    利用docker拉取Nvidia/cuda官方镜像,部署深度学习环境 1.拉取Nvidia/cuda官方镜像 2.生成容器 3.在容器内安装深度学习环境 看完这篇博文,可以查看我总结的另一篇博文教程: ...

  2. Jetson AGX Xavier部署深度学习环境

    最近的项目需要在英伟达的盒子上部署目标跟踪算法,配环境踩了不少坑,做一个简单的记录. 拿到盒子之后需要注意jetpack的版本,还有是不是已经装好了cuda,这关系到后续安装pytorch和torch ...

  3. Centos8安装英伟达显卡驱动并通过docker部署深度学习环境

    20201107 - 每个人的机器和实际需要的环境都不一样,本文只是提供了在自己实验室centos8上的部署过程,部署过程中,没有什么问题.请谨慎参考本篇文章,以免浪费宝贵时间. 0. 引言 之前的时 ...

  4. Windows Server 2019服务器远程桌面服务部署+深度学习环境配置教程

    文章目录 1.安装Windows Server 2019 2.开启WLAN服务 3.固定IP地址 4.开启远程桌面服务 4.1 添加远程桌面服务 4.2 激活服务器 4.3 安装许可证 5.配置远程桌 ...

  5. 10个深度学习软件的安装指南(附代码)

    来源:AI前线 本文长度为2385字,建议阅读4分钟 本文为你介绍10个深度学习软件安装指南. 由于近期论文的需要,我搭建了一个基于 Ubuntu 和英伟达的深度学习环境.尽管已经有很多非常棒的关于英 ...

  6. 基于keras和深度学习的视频分类实战(附代码)

    作者首先通过train.py训练微调模型,之后用训练好的模型在predict_video.py进行视频分类. 在执行图像分类时,我们: 输入一幅图像到我们的CNN中: 从CNN中获得预测: 选择相应概 ...

  7. Docker 部署深度学习 运行deeplabV3

    文章目录 前言 一.Docker简介 二.帮助命令 三.镜像常用命令 四.容器常用命令 五.配置深度学习环境 六.运行deeplabV3代码 七.提交容器,保存镜像 总结 前言 本文主要介绍docke ...

  8. PaddlePaddle开发者福利:深度学习环境一键部署+基础入门指导书

    2019独角兽企业重金招聘Python工程师标准>>> 由河北科技大学许云峰老师团队打造和分享,线下深度学习实验环境镜像(PaddlePaddle Fluid 1.1.0版+Pyth ...

  9. 在英特尔硬件上部署深度学习模型的无代码方法 OpenVINO 深度学习工作台的三部分系列文章 - CPU AI 第一部

    作者 Taylor, Mary, 翻译 李翊玮 关于该系列 了解如何转换.微调和打包推理就绪的 TensorFlow 模型,该模型针对英特尔®硬件进行了优化,仅使用 Web 浏览器.每一步都在云中使用 ...

最新文章

  1. c3p0 参数 模糊查询_mybatis之动态sql,模糊查询,结果集处理,mybatis分页及特殊字符处理...
  2. MongoDB教程-使用Node.js从头开始CRUD应用
  3. 智慧交通day03-车道线检测实现02-1:相机校正
  4. 小微企业——客户借款原因分析
  5. SQL SERVER游标浅析
  6. 避免 rm -rf * 的悲剧,你值得拥有
  7. 神秘的Windows7 Send To
  8. 我的世界服务器怎么显示玩家和怪,我的世界怎样用指令来让怪物不攻击玩家 | 手游网游页游攻略大全...
  9. acer软件保护卡怎么解除_Acer软件保护卡下载
  10. php 降低视频分辨率,将低分辨率视频变成1920*1080高分辨视频,可自由调节分辨率宽高...
  11. 如何卸载 STEP 7-MicroWIN编程软件?
  12. 微信小程序或微信网页里关注公众号
  13. 理解手机中的感应器模块:重力感应/光线感应/电子罗盘/陀螺仪模块功能
  14. 已知函数comp的C语言,在C ++ STL中设置value_comp()函数
  15. 北京喜意来误请“熊猫烧香”骗子团伙“毒王”解决password01.txt.shs病毒(图)
  16. 预训练模型与传统方法在排序上有啥不同?
  17. 2022年度PANTONE流行色发布
  18. RT-thread基础移植//依据rtt实战学习记录
  19. Eplan P8安装在win10系统运行卡顿解决方案(适用于Version 2004及之后的版本)
  20. 联想小新V1000安装win7教程

热门文章

  1. openfiler 工具栏和快捷方式
  2. 总结一下classpath
  3. 社区企业云操作系统 (不错的开源虚拟化系统,期待中)
  4. 外省籍进城务工人员随迁子女在浙江就地升学政策出台
  5. excel表格中IP地址排序
  6. Petshop3.0学习笔记(二)Global.asax文档分析
  7. padding在css中是什么意思,CSS里的padding是什么意思?
  8. 从文本中提取知识图谱代码比较好的,代码对齐,可以使用的
  9. 2020-10-26如何在Amazon AWS上设置一台免费Linux云主机
  10. AWS上创建的notebook实例提示没有导入pytorch模块的解决办法 直接在编辑块中执行如下命令,最后重启kernel问题解决