【深度学习】这里有一份神经网络入门指导,请收下!

2017 年 12 月 11 日 产业智能官 AI科技大本营


图片来源于网络


翻译 | 林椿眄

编辑 | Donna



本周,我们为您准备了一份数据科学家Ben Gorman撰写的神经网络指导。这份指导包含了他具体的学习思路,包括所遇到的难点以及多种详细的解决方法。


文章不短,但是值得深读,请收藏!


人工神经网络当下非常流行。与任何流行的事物一样,人工神经网络也收到了不少质疑。它究竟是卖弄玄虚,还是真正可以使无数人获益的新技术呢?

为了让大家入门神经网络,我从一个并不太了解的专业数据科学家的角度,和大家分享我的学习过程,希望对你们有所帮助。


需要注意的是,本文中所涉及的示例都是用R语言写的代码。


让我们从一个动机问题开始思考。这里是一个灰度图片的集合,每个2×2的像素网格的像素取值都是在0(白)到255(黑)之间。我们的目标是构建一个模型,用“阶梯”的模式来识别图片。



在这里,我们来探讨如何找到一个能够合理拟合数据的模型感兴趣。



方法一:预处理


对每张图片,我们标记像素X1,X2,X3,X4 ,  并生成一个输入向量X=[X1 X2 X3 X4],作为我们模型的输入值。我们希望我们的模型能够预测“True”(图像具有阶梯模式)或为“False”(图像不具有阶梯模式)。




方法二:单层感知器(模型迭代0次)


单层感知器是我们可以构建的一个简单模型。当一个感知器使用线性权重组合的输入时,可以得到一个预测值。如果预测的数值超过所选用的阈值,感知器则会判定为“True”,否则判定为“False”。更具体的说,



我们可以将它重新表示为如下形式:



这里表示预测值。


图形上,我们可以将感知器表示为一个由输入到输出的节点。



例如,我们假定构建如下的感知器:



这里可以看到感知器是如何在我们的训练图像上执行的。



这是合理的结果,肯定优于随机猜测的效果。所有的阶梯模式在其底部都有带有深色阴影的像素,能支持X3和X4采用更大的正系数。尽管如此,这个模型还是存在一些明显的问题。


  • 该模型输出一个实数,它的值与自然的概念相关(值越大隐含着有更大的可能性说明图像表现为阶梯模式),但是将这些值解释为概率值是没有依据的,特别当它们的取值范围在[0,1]之外。

  • 该模型无法捕捉到变量之间非线性的关系。


为了解这个问题,可以考虑以下的假设情况:


情况A:从一张图像开始,x = [100, 0, 0, 125],从0增至60.



情况B:从最后一张图像开始,x = [100, 0, 60, 125],从60增至120.



直观上,相对于情况B来说,情况A的应该会有更大的增幅。然而,由于我们感知器模型只是一个线性等式,对于这两种情况,X3增加了60,而只增加了0.12。


同时,我们的线性感知器还会有更多的问题,但是我们先来解决这两个问题。


问题一:以Sigmoid为激活函数的单层感知器(模型迭代1次):


我们可以通过将我们的感知器包在Sigmoid函数里面(随后选择不同的权重值)来解决上述的问题1和2。回顾下Sigmoid函数是一条垂直方向上界定在0到1之间的S型曲线,因此经常被用来模拟二元事件发生的概率。



顺着这个思路,我们用下面的图片和方程式来更新我们的模型。



这就是Logistic回归。然而,将这个模型解释为以Sigmoid为激活函数的线性感知器也是很好的,因为这给了我们更多的空间去泛化。此外,由于我们将解释为概率值,所以我们必须相应地更新我们的决策规则。



问题二:假定我们提出以下的拟合模型:



对比先前的部分,可以看出这个模型在相同的图像上是如何起作用的。


解决方法:


情况A:从一张图像开始,x = [100, 0, 0, 125],从0增至60.



情况B:从最后一张图像开始,x = [100, 0, 60, 125],从60增至120.



请注意,随着的增加,Sigmoid函数是如何引起情况A的“触发”现象(快速增加),但随着z的持续增加,速度会减慢。这与我们的直觉是相一致的,即对于出现阶梯的可能性,情况A应该反映出比情况B更大的增长。



不幸的是,这个模型仍然存在问题:


  1. 与每个变量都有单调的关系。如果我们想识别轻微的阴影阶梯,那该怎么办?

  2. 该模型不考虑变量的交互问题。假设图像的底部是黑色的,如果左上角的像素是白色,则右上角的像素变暗会增加阶梯出现的可能性。如果左上角的像素是黑色的,则右上角的像素变暗会降低阶梯出现的可能性。换句话说,就是根据其他变量的值,增加X3应该可能增加或减少的值。目前我们的模型还无法实现这一点。


问题三:以Sigmoid为激活函数的单层感知器(模型迭代2次):


我们可以通过在我们感知器模型上额外增加一个层来解决上述的两个问题。我们将以上面的模型为基础构建一系列基本模型,然后将每个基本模型的输出作为输入提供给另一个感知器。这个模型实际上就是一个 “香草型”的神经网络。让我们通过一些例子看看它是如何工作。


例子1:识别阶梯模式


  1. 构建一个模型,当左阶梯模式被识别时触发,

  2. 构建一个模型,当右阶梯模式被识别时触发,

  3. 增大每个基础模型的得分,以便最后的S型函数只有在都很大时才会被触发。



或者

  1. 构建一个模型,当底部为暗色时才触发,

  2. 构建一个模型,当左上角像素为暗色且右上角像素为亮色时才触发,

  3. 构建一个模型,当左上角像素为亮色且右上角像素为暗色时才触发,

  4. 增大基础模型以便最后的sigmoid函数只有在都很大,或者都很大时才触发(请注意无法同时有很大的值)。



例子2:识别带轻微阴影的阶梯


  1. 构建一个模型,当底部为阴影,阴影x1和白色x2,阴影x2和白色x1时才被触发,

  2. 构建一个模型,当底部为暗色,暗色x1和白色x2,暗色x2和白色x1时才被触发, 

  3. 将模型组合起来以便在使用sigmoid函数压缩之前, “暗色”的标识符能够基本上从 “阴影”标识符中除去。




专业术语注释


单层感知器具有单个的输出层。因此,我们刚刚构建的模型将被称为双层感知器,因为模型的一个输出层,是另一个输出层的输入。然而,我们可以将这些模型称为神经网络,就这方面而言,网络有三层--输入层,隐藏层和输出层。



可替代的激活函数


在我们的例子中,我们使用了一个sigmoid作为激活函数。但是,我们可以使用其他的激活函数。双曲正切函数、 修正线性单元都是常用的选择。激活函数必须是非线性的,否则神经网络将等价于单层的感知器。


多目标分类


通过在最终输出层中使用多个节点,我们可以轻松地将我们的模型扩展成多分类模型。这里用到的想法是,每个输出对应于我们想要预测的类别之一C,我们可以使用Softmax函数将空间中的一个向量映射到中的另一个向量,如此使得向量的元素之和为1,而不是通过sigmoid函数映射空间的一个输出元素并将其压缩在[0,1]之间输出。换句话说,我们可以设计一个网络使得它的输出向量是如此的形式:




使用不止两层的神经网络,即深度学习


你可能想知道,我们是否可以扩展我们的香草式神经网络,使得其输出层被输入到第四层(进而第五层,第六层等等)?


是这样的,这就是通常所说的“深度学习”。实践中,它非常高效。但是值得注意的是,任何一个隐藏层都可以通过一个单隐藏层的网络来模拟。实际上,根据通用逼近定理,可以使用具有单个隐藏层的神经网络来逼近任何连续的函数。


深层神经网络架构经常选择偏向于单个隐层结构的原因就在于,他们更倾向于在拟合过程中更快速地收敛并得到最终的结果。




用模型去拟合带标签的训练样本 (反向传播法)


在拟合阶段,到目前为止,我们已经讨论了神经网络如何能够有效地工作,但是我们还没有讨论如何用神经网络去拟合带标签的训练样本。


一个等价的问题就是:给定一些带标签的训练样本,我们该如何选择网络的最佳权重值?


对此,梯度下降法是常见的答案(尽管用最大似然估量法也可以做到)。


下面继续我们的示例问题,梯度下降的过程会像这样:


  1. 以一些带标签的训练数据开始

  2. 选择一个可微的损失函数并最小化,

  3. 选择一个网络结构。具体地说就是确定网络的层数以及每层的节点数

  4. 随机地初始化网络权重

  5. 用网络运行训练数据来生成每个样本的预测值。根据损失函数来度量总体的误差值(这就是所谓的前向传播过程)。

  6. 当每个权重发生小的变化,确定当前的损失值将改变多少。换句话说,计算L对于网络中每个权重的梯度值(这就是所谓的后向传播过程)。

  7. 沿负梯度的方向走一小步。例如,,那么小幅度的减少会导致当前损失小幅度的降低。因此我们更新(这里0.001就是我们所预定义的步长)。

  8. 以固定的次数重复进行这个过程(从步骤5开始),直至损失函数收敛为止。


这些是最基本的想法。实际中,这面临了一系列的困难:


挑战一: 计算复杂度


在拟合的过程中,我们需要计算的一个东西是L对于每个权重的梯度值。这是个棘手的问题,因为L依赖于输出层中的每个节点,并且每个节点依赖于之前的层中的每个节点,以此类推。这就意味着计算是一个链式规则的噩梦(请记住,实际上许多神经网络都有数十层数千个节点)。


我归纳了解决这个噩梦的四个技巧。


处理这个问题的关键是要认识到,在应用链式规则的时候,将重用相同中间层的导数值。


如果你仔细追踪这个的话,你就可以避免重新计算相同的东西几千次。


另一个技巧就是使用特殊的激活函数,其衍生物可以写成他们值的函数。例如,=的导数。这是很方便的,因为在正向传播过程中,当我们计算每个训练样本时,我们必须为某个向量x逐元素地计算


在反向传播过程中,我们可以在计算L相对于权重的梯度时重用这些值,从而节省时间和内存的占用。


第三个技巧就是将训练数据分成“小批量”,并逐一更新每个批次的权重。例如,如果将训练数据划分为{batch1,batch2,batch3},则训练数据首先将


  • 使用batch1更新权重值

  • 使用batch2更新权重值

  • 使用batch3更新权重值


这里,L的梯度将在每次更新后重复地计算。


最后的一个值得注意的技巧就是使用GPU而不是CPU,因为GPU更适合并行地执行大量的计算。


挑战二:梯度下降法可能会无法找到绝对最小值点


这不仅仅是一个神经网络的问题,因为它也是一个梯度下降问题。在梯度下降的过程中,权重可能会陷入局部最小值。权重也可能超过最小值。


处理这个问题的一个技巧就是调整不同的步长。


另一个技巧就是增加网络中的节点数或网络层数(注意过拟合现象)。


此外,一些像使用动量的启发式技巧也可能有效。


挑战三: 如何泛化?


我们如何编写一个通用的程序来拟合任何数量的节点和网络层的神经网络呢?


答案是, 你不用这样做,你是用Tensorflow。但是,如果你真的想这么做的话,最困难的部分就是计算损失函数的梯度。


这么做的技巧就是意识到你可以把梯度表示为一个递归函数。5层的神经网络只是一个4层带一些感知器的神经网络,而4层的神经网络只是一个3层带一些感知器的神经网络。诸如此类。更正式的说,这称为自动分化。


作者:Ben Gorman

原文链接:

http://blog.kaggle.com/2017/11/27/introduction-to-neural-networks/


热文精选



重磅 | 2017年深度学习优化算法研究亮点最新综述火热出炉

Reddit热点 | 想看被打码的羞羞图片怎么办?CNN帮你解决

多图 | 从神经元到CNN、RNN、GAN…神经网络看本文绝对够了

重磅 | 128篇论文,21大领域,深度学习最值得看的资源全在这了(附一键下载)

资源 | 多伦多大学“神经网络与机器学习导论”2017年课程表

爆款 | Medium上6900个赞的AI学习路线图,让你快速上手机器学习

Quora十大机器学习作者与Facebook十大机器学习、数据科学群组

TensorFlow下构建高性能神经网络模型的最佳实践




揭秘深度学习的核心:掌握训练数据的方法


来源:云栖社区

概要:今天我们将讨论深度学习中最核心的问题之一:训练数据。

Hello World!

今天我们将讨论深度学习中最核心的问题之一:训练数据。深度学习已经在现实世界得到了广泛运用,例如:无人驾驶汽车,收据识别,道路缺陷自动检测,以及交互式电影推荐等等。

我们大部分的时间并不是花在构建神经网络上,而是处理训练数据。深度学习需要大量的数据,然而有时候仅仅标注一张图像就需要花费一个小时的时间!所以我们一直在考虑:能否找到一个方法来提升我们的工作效率?是的,我们找到了。

现在,我们很自豪的将Supervisely令人惊叹的新特性公诸于世:支持AI的标注工具来更快速地分割图像上的对象。

在本文中,我们将重点介绍计算机视觉,但是,类似的思路也可用在大量不同类型的数据上,例如文本数据、音频数据、传感器数据、医疗数据等等。

重点:数据越多,AI越智能

让我们以吴恩达非常著名的幻灯片开始,首先对其进行小小的修改。

深度学习的表现优于其它机器学习算法早已不是什么秘密。从上图可以得出以下结论。

结论 0:AI产品需要数据。

结论 1:获得的数据越多,AI就会越智能。

结论 2:行业巨头所拥有的数据量远超其它企业。

结论 3:AI产品的质量差距是由其所拥有的数据量决定的。

因此,网络架构对AI系统的表现影响很大,但是训练数据的多少对系统表现的影响最大。致力于数据收集的公司可以提供更好的AI产品并获得巨大的成功。

常见错误:AI全都是关于构建神经网络的。

如上图所示,当人们一想到AI,就会想到算法,但是也应该考虑到数据。算法是免费的:谷歌和其他巨头更倾向于向世界分享他们最先进的(state-of-the-art)研究成果,但是他们从不会共享数据。

许多人已经跳上了人工智能炒作的列车,并且创造了极棒的构建和训练神经网络的工具,然而关注训练数据的人却少的可怜。当企业打算将人工智能转换成实际应用时,会倾尽全部工具用于训练神经网络,却没有用于开发训练数据上的工具。

吴恩达说论文已经足够了,现在让我们来构建AI吧!

好主意,我们完全赞同。目前有许多论文和开源成果论述了最先进的(state of the art )且涵盖所有的实际应用的神经网络架构。想象一下,你获得了一个价值10亿美元的新想法。首先想到的肯定不会是:我将使用哪种类型的神经网络?最有可能的是:我在哪里可以得到能建立MVP的数据?

让我们来寻找一些有效的方法训练数据,可行的方法如下:

1.开源数据集。深度神经网络(DNN)的价值是用于训练数据,在计算机视觉研究中,大多数可用数据都是针对特定研究小组所研究的课题而设计的,通常对于新研究人员来说,需要搜集更多额外的数据去解决他们自己的课题。这就是在大多数情况下开源数据集并不是一个解决方案的原因。

2.人工数据。它适用于类似OCR文字识别或者是文本检测,然而很多实例(如人脸识别,医学影像等)表明人工数据很难甚至是不可能产生,通常的做法是将人工数据和带标注的图像相结合使用。

3.Web。自动收集高质量的训练数据是很难的,通常我们会对收集的训练数据进行修正和过滤。

4.外面订购图像标注服务。一些公司提供这样的服务,我们也不例外。但其很大的缺点是不能进行快速的迭代。通常,即使是数据专家也不确定如何标注。通常的顺序是做迭代研究:标注图像的一小部分→建立神经网络架构 →检查结果。每个新的标注都将会影响后续的标注。

5.手动标注图像。仅适用于你自己的工作,领域内的专业知识是很关键的。医学影像就是个很好的例子:只有医生知道肿瘤在哪里。手动注解图像这个过程很耗时,但是如果你想要一个定制化的AI,也没有其他办法。

正如我们所看到的,其实并没有万能方法,最常见的方案是创建我们自己任务特定的训练数据,形成人工数据,如果可能的话再整合到公共数据集中。这其中的关键是,你必须为特定的任务建立自己独一无二的数据集。

让我们深入学习来构建深度学习

深度学习接近于数据匮乏,且其性能极度依赖于可供训练数据的数量。

通过实例我们可以看出标注的过程有多困难。这里是标注过程所花费时间的一些原始数据,例如使用Cityscapes数据集(用于无人驾驶),在对Cityscapes数据集中单个图像的精细像素级的标注平均需要花费1.5h,如果标注5000个图像,则需要花费5000*1.5=7500h。假设1h=$10(美国最低工资),那么仅仅是标注该数据集就需要花费约$7.5万左右(不包括其他额外的成本)。同样吃惊的是,像这样一家拥有1000名做无人驾驶图像标注员工的公司,只不过是冰山一角。

神经网络能否帮助我们提高图像标注的效率呢?我们可不是第一个试图回答这一问题的人。

半自动化实例标注很早就开始使用了, 有很多经典的方法可提高标注的效率,如超像素块算法(Superpixels),分水岭算法(Watershed),GrabCut分割算法等。近几年,研究人员试图用深度学习完成这一任务(link1, link2, link3),这些经典的算法有很多缺陷,需要很多超参数对每一幅图像进行检索,难以对结果进行标准化和修正。最新的基于深度学习的成果要好很多,但在大多情况下这些成果是不开源的。我们是第一个为每个人提供基于AI的标注工具的人,我们自己独立设计了与上边三个links概念类似的神经网络架构。它有一个很大的优势:我们的神经网络不需要对对象实例进行分类。这就意味着,可以对行人、汽车、路面上的凹陷处、医学影像上的肿瘤、室内场景、食物成分、卫星上的物体等等进行分割。

那么,它是如何工作的呢?如下图所示:

你只需要剪裁感兴趣的对象,然后神经网络将会对其进行分割。人机交互非常重要,你可以点击图像的内部和外部标签进行修正错误。

语义分割是将图像划分为多个预定义语义类别的区域,与它不同的是,我们的交互式图像分割旨在根据用户的输入提取其感兴趣的对象。

交互式分割的主要目标是根据用户最少的操作,即可精确的提取对象以改善整体的用户体验,因此我们大大提高了标注的效率。

这是我们的第一次尝试,当然在有些情况下,好的标注依然会有缺陷。我们会不断的提高质量,并做出适用于领域适应性的简单方法:在不编码的情况下,为适应内部特定的任务自定义工具。

结语

数据是深度学习的关键,训练数据是费时和高代价的。但是我们和深度学习的团体积极尝试着去解决训练数据的问题,并且成功的迈出了第一步,希望能够在以后提供更好的解决方案。




TensorFlow实现深度学习算法的教程汇集:代码+笔记


来源:大数据挖掘DT数据分析


这是使用 TensorFlow 实现流行的机器学习算法的教程汇集。本汇集的目标是让读者可以轻松通过案例深入 TensorFlow。


这些案例适合那些想要清晰简明的 TensorFlow 实现案例的初学者。本教程还包含了笔记和带有注解的代码。


  • 项目地址:https://github.com/aymericdamien/TensorFlow-Examples


教程索引

0 - 先决条件

机器学习入门:

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/0_Prerequisite/ml_introduction.ipynb

  • MNIST 数据集入门

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/0_Prerequisite/mnist_dataset_intro.ipynb

1 - 入门

Hello World:

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/1_Introduction/helloworld.ipynb

  • 代码https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/1_Introduction/helloworld.py

基本操作:

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/1_Introduction/basic_operations.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/1_Introduction/basic_operations.py

2 - 基本模型

最近邻:

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/nearest_neighbor.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/nearest_neighbor.py

线性回归:

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/linear_regression.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/linear_regression.py

Logistic 回归:

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/logistic_regression.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/logistic_regression.py



3 - 神经网络

多层感知器:

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/multilayer_perceptron.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/multilayer_perceptron.py

卷积神经网络:

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/convolutional_network.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/convolutional_network.py

循环神经网络(LSTM):

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/recurrent_network.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/recurrent_network.py

双向循环神经网络(LSTM):

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/bidirectional_rnn.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/bidirectional_rnn.py

动态循环神经网络(LSTM)

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/dynamic_rnn.py

自编码器

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/3_NeuralNetworks/autoencoder.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/autoencoder.py

4 - 实用技术

保存和恢复模型

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/4_Utils/save_restore_model.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/4_Utils/save_restore_model.py

图和损失可视化

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/4_Utils/tensorboard_basic.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/4_Utils/tensorboard_basic.py

Tensorboard——高级可视化

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/4_Utils/tensorboard_advanced.py

5 - 多 GPU

多 GPU 上的基本操作

  • 笔记:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/5_MultiGPU/multigpu_basics.ipynb

  • 代码:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/5_MultiGPU/multigpu_basics.py

数据集

一些案例需要 MNIST 数据集进行训练和测试。不要担心,运行这些案例时,该数据集会被自动下载下来(使用input_data.py)。MNIST 是一个手写数字的数据库,查看这个笔记了解关于该数据集的描述:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/0_Prerequisite/mnist_dataset_intro.ipynb

  • 官方网站:http://yann.lecun.com/exdb/mnist/

更多案例

接下来的示例来自 TFLearn,这是一个为 TensorFlow 提供了简化的接口的库。你可以看看,这里有很多示例和预构建的运算和层。

  • 示例:https://github.com/tflearn/tflearn/tree/master/examples

  • 预构建的运算和层:http://tflearn.org/doc_index/#api

教程

TFLearn 快速入门。通过一个具体的机器学习任务学习 TFLearn 基础。开发和训练一个深度神经网络分类器。

  • 笔记:https://github.com/tflearn/tflearn/blob/master/tutorials/intro/quickstart.md

基础

  • 线性回归,使用 TFLearn 实现线性回归:https://github.com/tflearn/tflearn/blob/master/examples/basics/linear_regression.py

  • 逻辑运算符。使用 TFLearn 实现逻辑运算符:https://github.com/tflearn/tflearn/blob/master/examples/basics/logical.py

  • 权重保持。保存和还原一个模型:https://github.com/tflearn/tflearn/blob/master/examples/basics/weights_persistence.py

  • 微调。在一个新任务上微调一个预训练的模型:https://github.com/tflearn/tflearn/blob/master/examples/basics/finetuning.py

  • 使用 HDF5。使用 HDF5 处理大型数据集:https://github.com/tflearn/tflearn/blob/master/examples/basics/use_hdf5.py

  • 使用 DASK。使用 DASK 处理大型数据集:https://github.com/tflearn/tflearn/blob/master/examples/basics/use_dask.py

计算机视觉

  • 多层感知器。一种用于 MNIST 分类任务的多层感知实现:https://github.com/tflearn/tflearn/blob/master/examples/images/dnn.py

  • 卷积网络(MNIST)。用于分类 MNIST 数据集的一种卷积神经网络实现:https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_mnist.py

  • 卷积网络(CIFAR-10)。用于分类 CIFAR-10 数据集的一种卷积神经网络实现:https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_cifar10.py

  • 网络中的网络。用于分类 CIFAR-10 数据集的 Network in Network 实现:https://github.com/tflearn/tflearn/blob/master/examples/images/network_in_network.py

  • Alexnet。将 Alexnet 应用于 Oxford Flowers 17 分类任务:https://github.com/tflearn/tflearn/blob/master/examples/images/alexnet.py

  • VGGNet。将 VGGNet 应用于 Oxford Flowers 17 分类任务:https://github.com/tflearn/tflearn/blob/master/examples/images/vgg_network.py

  • VGGNet Finetuning (Fast Training)。使用一个预训练的 VGG 网络并将其约束到你自己的数据上,以便实现快速训练:https://github.com/tflearn/tflearn/blob/master/examples/images/vgg_network_finetuning.py

  • RNN Pixels。使用 RNN(在像素的序列上)分类图像:https://github.com/tflearn/tflearn/blob/master/examples/images/rnn_pixels.py

  • Highway Network。用于分类 MNIST 数据集的 Highway Network 实现:https://github.com/tflearn/tflearn/blob/master/examples/images/highway_dnn.py

  • Highway Convolutional Network。用于分类 MNIST 数据集的 Highway Convolutional Network 实现:https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_highway_mnist.py

  • Residual Network (MNIST) (https://github.com/tflearn/tflearn/blob/master/examples/images/residual_network_mnist.py).。应用于 MNIST 分类任务的一种瓶颈残差网络(bottleneck residual network):https://github.com/tflearn/tflearn/blob/master/examples/images/residual_network_mnist.py

  • Residual Network (CIFAR-10)。应用于 CIFAR-10 分类任务的一种残差网络:https://github.com/tflearn/tflearn/blob/master/examples/images/residual_network_cifar10.py

  • Google Inception(v3)。应用于 Oxford Flowers 17 分类任务的谷歌 Inception v3 网络:https://github.com/tflearn/tflearn/blob/master/examples/images/googlenet.py

  • 自编码器。用于 MNIST 手写数字的自编码器:https://github.com/tflearn/tflearn/blob/master/examples/images/autoencoder.py

自然语言处理

  • 循环神经网络(LSTM),应用 LSTM 到 IMDB 情感数据集分类任务:https://github.com/tflearn/tflearn/blob/master/examples/nlp/lstm.py

  • 双向 RNN(LSTM),将一个双向 LSTM 应用到 IMDB 情感数据集分类任务:https://github.com/tflearn/tflearn/blob/master/examples/nlp/bidirectional_lstm.py

  • 动态 RNN(LSTM),利用动态 LSTM 从 IMDB 数据集分类可变长度文本:https://github.com/tflearn/tflearn/blob/master/examples/nlp/dynamic_lstm.py

  • 城市名称生成,使用 LSTM 网络生成新的美国城市名:https://github.com/tflearn/tflearn/blob/master/examples/nlp/lstm_generator_cityname.py

  • 莎士比亚手稿生成,使用 LSTM 网络生成新的莎士比亚手稿:https://github.com/tflearn/tflearn/blob/master/examples/nlp/lstm_generator_shakespeare.py

  • Seq2seq,seq2seq 循环网络的教学示例:https://github.com/tflearn/tflearn/blob/master/examples/nlp/seq2seq_example.py

  • CNN Seq,应用一个 1-D 卷积网络从 IMDB 情感数据集中分类词序列:https://github.com/tflearn/tflearn/blob/master/examples/nlp/cnn_sentence_classification.py

强化学习

Atari Pacman 1-step Q-Learning,使用 1-step Q-learning 教一台机器玩 Atari 游戏:https://github.com/tflearn/tflearn/blob/master/examples/reinforcement_learning/atari_1step_qlearning.py

其他

Recommender-Wide&Deep Network,推荐系统中 wide & deep 网络的教学示例:https://github.com/tflearn/tflearn/blob/master/examples/others/recommender_wide_and_deep.py

Notebooks

  • Spiral Classification Problem,对斯坦福 CS231n spiral 分类难题的 TFLearn 实现:https://github.com/tflearn/tflearn/blob/master/examples/notebooks/spiral.ipynb

  

可延展的 TensorFlow

  • 层,与 TensorFlow 一起使用  TFLearn 层:https://github.com/tflearn/tflearn/blob/master/examples/extending_tensorflow/layers.py

  • 训练器,使用 TFLearn 训练器类训练任何 TensorFlow 图:https://github.com/tflearn/tflearn/blob/master/examples/extending_tensorflow/layers.py

  • Bulit-in Ops,连同 TensorFlow 使用 TFLearn built-in 操作:https://github.com/tflearn/tflearn/blob/master/examples/extending_tensorflow/builtin_ops.py

  • Summaries,连同 TensorFlow 使用 TFLearn summarizers:https://github.com/tflearn/tflearn/blob/master/examples/extending_tensorflow/summaries.py

  • Variables,连同 TensorFlow 使用 TFLearn Variables:https://github.com/tflearn/tflearn/blob/master/examples/extending_tensorflow/variables.py

转自:http://www.jiqizhixin.com/article/1648

 


人工智能赛博物理操作系统

AI-CPS OS

人工智能赛博物理操作系统新一代技术+商业操作系统“AI-CPS OS:云计算+大数据+物联网+区块链+人工智能)分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利用AI-CPS OS形成数字化+智能化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生。


AI-CPS OS的真正价值并不来自构成技术或功能,而是要以一种传递独特竞争优势的方式将自动化+信息化、智造+产品+服务数据+分析一体化,这种整合方式能够释放新的业务和运营模式。如果不能实现跨功能的更大规模融合,没有颠覆现状的意愿,这些将不可能实现。


领导者无法依靠某种单一战略方法来应对多维度的数字化变革。面对新一代技术+商业操作系统AI-CPS OS颠覆性的数字化+智能化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位:

  1. 重新行业布局:你的世界观要怎样改变才算足够?你必须对行业典范进行怎样的反思?

  2. 重新构建企业:你的企业需要做出什么样的变化?你准备如何重新定义你的公司?

  3. 重新打造自己:你需要成为怎样的人?要重塑自己并在数字化+智能化时代保有领先地位,你必须如何去做?

AI-CPS OS是数字化智能化创新平台,设计思路是将大数据、物联网、区块链和人工智能等无缝整合在云端,可以帮助企业将创新成果融入自身业务体系,实现各个前沿技术在云端的优势协同。AI-CPS OS形成的字化+智能化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置:

  1. 精细种力量能够使人在更加真实、细致的层面观察与感知现实世界和数字化世界正在发生的一切,进而理解和更加精细地进行产品个性化控制、微观业务场景事件和结果控制。

  2. 智能:模型随着时间(数据)的变化而变化,整个系统就具备了智能(自学习)的能力。

  3. 高效:企业需要建立实时或者准实时的数据采集传输、模型预测和响应决策能力,这样智能就从批量性、阶段性的行为变成一个可以实时触达的行为。

  4. 不确定性:数字化变更颠覆和改变了领导者曾经仰仗的思维方式、结构和实践经验,其结果就是形成了复合不确定性这种颠覆性力量。主要的不确定性蕴含于三个领域:技术、文化、制度。

  5. 边界模糊:数字世界与现实世界的不断融合成CPS不仅让人们所知行业的核心产品、经济学定理和可能性都产生了变化,还模糊了不同行业间的界限。这种效应正在向生态系统、企业、客户、产品快速蔓延。

AI-CPS OS形成的数字化+智能化力量通过三个方式激发经济增长:

  1. 创造虚拟劳动力,承担需要适应性和敏捷性的复杂任务,即“智能自动化”,以区别于传统的自动化解决方案;

  2. 对现有劳动力和实物资产进行有利的补充和提升,提高资本效率

  3. 人工智能的普及,将推动多行业的相关创新,开辟崭新的经济增长空间


给决策制定者和商业领袖的建议:

  1. 超越自动化,开启新创新模式:利用具有自主学习和自我控制能力的动态机器智能,为企业创造新商机;

  2. 迎接新一代信息技术,迎接人工智能:无缝整合人类智慧与机器智能,重新

    评估未来的知识和技能类型;

  3. 制定道德规范:切实为人工智能生态系统制定道德准则,并在智能机器的开

    发过程中确定更加明晰的标准和最佳实践;

  4. 重视再分配效应:对人工智能可能带来的冲击做好准备,制定战略帮助面临

    较高失业风险的人群;

  5. 开发数字化+智能化企业所需新能力:员工团队需要积极掌握判断、沟通及想象力和创造力等人类所特有的重要能力。对于中国企业来说,创造兼具包容性和多样性的文化也非常重要。


子曰:“君子和而不同,小人同而不和。”  《论语·子路》云计算、大数据、物联网、区块链和 人工智能,像君子一般融合,一起体现科技就是生产力。


如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!


新一代技术+商业的人工智能赛博物理操作系统AI-CPS OS作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。





产业智能官  AI-CPS



用“人工智能赛博物理操作系统新一代技术+商业操作系统“AI-CPS OS:云计算+大数据+物联网+区块链+人工智能)在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链






长按上方二维码关注微信公众号: AI-CPS,更多信息回复:


新技术“云计算”、“大数据”、“物联网”、“区块链”、“人工智能新产业:智能制造”、“智能农业”、“智能金融”、“智能零售”、“智能城市、“智能驾驶”新模式:“财富空间、“数据科学家”、“赛博物理”、“供应链金融”


官方网站:AI-CPS.NET



本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!



版权声明产业智能官(公众号ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源。部分文章推送时未能与原作者取得联系。若涉及版权问题,烦请原作者联系我们,与您共同协商解决。联系、投稿邮箱:erp_vip@hotmail.com




登录查看更多
4

相关内容

【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【ICML2020】持续图神经网络,Continuous Graph Neural Networks
专知会员服务
149+阅读 · 2020年6月28日
基于多头注意力胶囊网络的文本分类模型
专知会员服务
76+阅读 · 2020年5月24日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
354+阅读 · 2020年2月15日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
深度学习算法与架构回顾
专知会员服务
80+阅读 · 2019年10月20日
深度学习面试100题(第31-35题)
七月在线实验室
8+阅读 · 2018年7月16日
入门 | 深度学习模型的简单优化技巧
机器之心
9+阅读 · 2018年6月10日
深度学习入门必须理解这25个概念
AI100
7+阅读 · 2018年6月6日
独家 | 一文为你解析神经网络(附实例、公式)
数据派THU
5+阅读 · 2018年1月11日
如何简单形象又有趣地讲解神经网络是什么?
算法与数据结构
5+阅读 · 2018年1月5日
小白都能看懂的神经网络入门,快收下吧~
码农翻身
3+阅读 · 2018年1月4日
入门 | 一文了解神经网络中的梯度爆炸
机器之心
8+阅读 · 2017年12月22日
TensorFlow实现神经网络入门篇
AI研习社
11+阅读 · 2017年12月11日
入门 | 一文概览深度学习中的激活函数
深度学习世界
4+阅读 · 2017年11月3日
卷积神经网络(CNN)学习笔记1:基础入门
黑龙江大学自然语言处理实验室
14+阅读 · 2016年6月16日
A Survey on Bayesian Deep Learning
Arxiv
63+阅读 · 2020年7月2日
Arxiv
9+阅读 · 2019年4月19日
A Comprehensive Survey on Graph Neural Networks
Arxiv
21+阅读 · 2019年1月3日
Arxiv
23+阅读 · 2018年10月1日
Neural Architecture Optimization
Arxiv
8+阅读 · 2018年9月5日
Arxiv
7+阅读 · 2018年6月8日
Arxiv
14+阅读 · 2018年5月15日
Arxiv
6+阅读 · 2018年1月11日
Arxiv
7+阅读 · 2018年1月10日
VIP会员
相关VIP内容
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【ICML2020】持续图神经网络,Continuous Graph Neural Networks
专知会员服务
149+阅读 · 2020年6月28日
基于多头注意力胶囊网络的文本分类模型
专知会员服务
76+阅读 · 2020年5月24日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
354+阅读 · 2020年2月15日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
深度学习算法与架构回顾
专知会员服务
80+阅读 · 2019年10月20日
相关资讯
深度学习面试100题(第31-35题)
七月在线实验室
8+阅读 · 2018年7月16日
入门 | 深度学习模型的简单优化技巧
机器之心
9+阅读 · 2018年6月10日
深度学习入门必须理解这25个概念
AI100
7+阅读 · 2018年6月6日
独家 | 一文为你解析神经网络(附实例、公式)
数据派THU
5+阅读 · 2018年1月11日
如何简单形象又有趣地讲解神经网络是什么?
算法与数据结构
5+阅读 · 2018年1月5日
小白都能看懂的神经网络入门,快收下吧~
码农翻身
3+阅读 · 2018年1月4日
入门 | 一文了解神经网络中的梯度爆炸
机器之心
8+阅读 · 2017年12月22日
TensorFlow实现神经网络入门篇
AI研习社
11+阅读 · 2017年12月11日
入门 | 一文概览深度学习中的激活函数
深度学习世界
4+阅读 · 2017年11月3日
卷积神经网络(CNN)学习笔记1:基础入门
黑龙江大学自然语言处理实验室
14+阅读 · 2016年6月16日
相关论文
A Survey on Bayesian Deep Learning
Arxiv
63+阅读 · 2020年7月2日
Arxiv
9+阅读 · 2019年4月19日
A Comprehensive Survey on Graph Neural Networks
Arxiv
21+阅读 · 2019年1月3日
Arxiv
23+阅读 · 2018年10月1日
Neural Architecture Optimization
Arxiv
8+阅读 · 2018年9月5日
Arxiv
7+阅读 · 2018年6月8日
Arxiv
14+阅读 · 2018年5月15日
Arxiv
6+阅读 · 2018年1月11日
Arxiv
7+阅读 · 2018年1月10日
Top
微信扫码咨询专知VIP会员