TensorFlow从0到1 - 13 - AI驯兽师:神经网络调教综述

作者&投稿:箕使 (若有异议请与网页底部的电邮联系)
~

在未来的AI时代,“手工程序”将变得越发稀有,而基于通用AI程序,通过大数据“习得”而生的程序,会无所不在。到那时,程序员将光荣卸任,取而代之的是一个新职业物种:他们无需像程序员那样了解所有细节,而是关注数据的获取和筛选、模型的训练和调教。他们是 AI驯兽师

在过去的两场人机围棋旷世之战中,替AlphaGo执棋的黄士杰就是AI驯兽师的先驱:一个业余六段棋手作为首席工程师打造出AlphaGo,完胜人类专业九段,至此再无人类对手。

前面MNIST识别的实现,选用的各种参数值看似天经地义,一帆风顺,实则都是前人的经验,而真实情况下的调教过程,必定充满了过去不曾留意过的种种困难和不确定性。还记得在 12 TensorFlow构建3层NN玩转MNIST 中,一个不小心令权重和偏置初始化为0,导致了识别率连60%都无法逾越的结果。

本篇先对神经网络的调教做一个总览,作为“驯兽”的简要指南。

神经网络可调的选项实在太多了,也并不简单,我简单把它梳理为5个层面。

网络的架构是在训练之前就需要确定的,包括:

理论上,网络架构的规模越大,对复杂模型的表达就越充分。可随之而来的副作用也相当明显:训练难度相应增大,同时容易发生过拟合。此外,由于基于梯度下降的神经网络算法自身的局限、计算量等一系列因素,当全连接网络的规模增加到一定程度时(尤其是深度规模),模型性能的提升会越发困难。

所以网络规模并不是越大越好,要根据问题的规模以及数据量的规模来综合考虑。

一旦网络架构定义完毕,那么除了网络自身的可训练参数之外,其余的参数都可以被认为是超参数,包括:

开始学习之前,权重和偏置的数值分布状态,也会很大的影响到模型的精度,以及学习的速度。常见的初始化方式:

其中第一种初始化为0,就遇到了 12 TensorFlow构建3层NN玩转MNIST 提到的“60%识别率”的严重状况。

第二种是我们目前的已有MNIST识别实现所采用的初始化方法。相较于第二种方式,后两种会明显改善学习速度,后面的文章还会具体讲。

用于模型学习的数据当然是越大越好,可现实中它总是稀缺而昂贵。在这种情况下就需要合理的划分和使用数据:

训练集、验证集和测试集的划分方式我们已经了解了(参考 11 74行Python实现手写体数字识别 )。这里简单说下数据的扩展。

以图像数据为例。我们知道,只要把原图像整体挪动1个像素,就会得到一张全新的图像,由于图像的大部分像素的相对位置保持不变,所以其包含的语义信息仍然是完整无缺的。这样就可以在现有的数据基础上,人为产生更多的新数据。方法不限于平移,还可以做旋转、镜像、扭曲、添加噪音等等,以此来训练并提高模型的泛化能力。

即便是处于训练算法最外层的最优化算法框架,也可以被替换:

调教神经网络的终极目标,狭义的说就是测试集上的识别精度。

尽管目标明确,但是整个训练过程只能间接的影响它——模型学习的数据是来自训练集,而测试集的识别精度要依靠 模型的泛化能力 来支撑。

提高模型泛化能力的切入点,并不是盲目的去尝试调整上面所有层面的选项,而通常是从着手改善问题开始的。未经优化的神经网络,通常都存在以下两个问题:

先从它们入手进行神经网络的优化,不失为一个好策略。

本篇从整体上分析了神经网络调教的几个层面,以及调教的目标和策略。每当需要优化神经网络时,可以把它当做一份check list。




tensorflow 优化的时候不动
原因分析:numpy或者TensorFlow那块肯定有一个除了问题,分别调试TensorFlow的代码和numpy的代码分开执行。发现在转换数组的时候np.array()执行效率极低。解决方案:更改numpy版本 tensorflow 加速优化方法 1. stochastic gradient decent(CGD)将data分小批放入神经网络中进行计算 W += -Learning rate * dx ...

【Tensorflow】深度神经网络原理
ConventJS例子: https:\/\/cs.stanford.edu\/people\/karpathy\/convnetjs\/demo\/classify2d.html 那么为什么层数增加而精度提高没有提高呢? 那就是下一个与精度相关的内容:激活函数。https:\/\/www.w3cschool.cn\/tensorflow_python\/tensorflow_python-mesu2f8d.html ...

tensorflow认证有用吗
tensorflow认证有用,顺利通过考试将获得正式的 TensorFlow 开发者证书和徽章,还能分享在简历和社交网络(如 LinkedIn)上,展示自己技能的机会又多了一个。TensorFlow 开发者证书,是一个为学生、开发者和数据科学家提供的基础证书。主要考察开发者将机器学习集成到工具和应用中的基础知识,需要开发者了解在...

tensorflow 数据流图是怎么画的
2017-04-14 tensorflow 中的3DCNN的,其输入怎么组织.就是... 2017-10-01 卷积神经网络tensorflow怎么读取图像 2017-08-09 tensorflow识别后怎么画框 2017-05-01 tensorflow 中的3DCNN的,其输入怎么组织.就是... 1 2017-09-13 tensorflow训练好的模型怎么调用 2014-10-27 用PowerDesigner画数据流图,如何...

tensorflow安装成功的标志
进入python环境输入 import tensorflow 如果没有报错,证明安装成功。1、pip show tensorflow 报错,错误可能有两种,解决办法及思路:(1)你的电脑安装有多个python版本(Anaconda3环境下的也算),并且都给他们配置了环境变量:(2)真的没有下载成功导致没有装上解决办法:为了保险起见先卸载一下,执行...

如何在Jupyter Notebook中使用Tensorflow
,我使用了Anaconda来安装配置TensorFlow 打开终端 运行下面的命令来启用TensorFlow source activate tensorflow 现在我们已经进入了TensorFlow的环境,我们要在这个环境中安装iPython和jupyter,运行下面的命令conda install ipython以及conda install jupyter 下面的步骤基本上按照Using a virtualenv in an IPython ...

tensorlayer tensorflow是什么关系
TensorFlow 是谷歌基于DistBelief 进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow 为张量从流图的一端流动到另一端计算过程。TensorLayer 是为研究人员和工程师设计的一款基于谷歌 TensorFlow 开发的深度学习与...

opencv3与tensorflow的关系,各有什么有优缺点?
1、研究代码(慢,不稳定,独立并与其他库不兼容)。2、耗费很高的商业化工具(比如Halcon, MATLAB+Simulink)。3、依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)这是如今的现状,而标准的API将简化计算机视觉程序和解决方案的开发,OpenCV致力于成为这样的标准API。二、TensorFlow ...

tensorflow能做什么?
1、在营销上 可口可乐在客户忠诚度计划中应用TensorFlow作为营销手段。可口可乐在瓶盖背面打印了14位代码,并创建了一个能使用TensorFlow来轻松识别数字,顺利创建购买证明的机器学习系统。至今已经促成16次推广活动、超过180,000个代码被扫描。2、在农业上 荷兰公司Connecterra运用TensorFlow打造了一款人称"奶牛...

关于TensorFlow的描述,以下选项中错误的是()
关于TensorFlow的描述,以下选项中错误的是()A.TensorFlow是谷歌公司基于DistBeie进行研发的第二代人工智能学习系统 B.TensorFlow是Pyhon语言的套优秀的GUI图形库 C.Tensor(张量)指N维数组,Flow(流)指基于数据流图的计算 D.TensorFlow描述张量从流图的一端流动到另一端的计算过程。正确答案:TensorFlow是...

金沙县13039718942: 如何从零使用 Keras + TensorFlow 开发一个复杂深度学习模型 -
元闹润肠: 最近刚开始使用theano, 经验不多,连个基本的模型都跑不通,于是去看了下Keras,源码比较简洁,可以当作theano的示例教程来看,感受如下: 文档看似很全,每个layer是干啥的,每个参数是啥都写了,但是不去读代码,实际很多人是无法...

金沙县13039718942: 如何安装tensorflow11 -
元闹润肠: 首先下载anaconda 在此需要记住,安装的是4.2版本,4.3的话,会有很多坑,问题无法解决,在这里可以去anaconda 官网下载,如果觉得慢的话,可以考虑到清华的anaconda源里面下载记住 anaconda-4.2.1 之后进行anaconda的安装,一路...

金沙县13039718942: 如何降低自己的tensorflow版本 -
元闹润肠: 在发布逾一周年之际,TensorFlow 终于将迎来史上最重大更新:TensorFlow 1.0.对于不熟悉开源框架的读者,TensorFlow 是谷歌 2015 年底推出的深度学习框架,在开发者社区享有盛誉.去年,它已成为 GitHub 最受欢迎的机器学习开源项目...

金沙县13039718942: 如何在windows上安装tensorflow -
元闹润肠: 准备 安装tensorflow需要比较新的numpy,windows10自带的ubuntu源里的numpy太老,需要自行编译安装numpy.安装numpy需要openblas或者mkl,所以首先安装openblas.安装openblas openblas是华人编写高性能计算库,能够极大的加速...

金沙县13039718942: 如何测试tensorflow配置成功 -
元闹润肠: 如何测试tensorflow配置成功 安装步骤:1、sudo apt-get install python-pip python-dev python-virtualenv2、virtualenv --system-site-packages ~/tensorflow3、cd ~/tensorflow4、source bin/activate # If using bash5、(tensorflow)$ pip install --upgrade ...

金沙县13039718942: tensorflow怎么求导数 -
元闹润肠: f(x) = 1/((1-x)^2), 在x=0进行泰勒展开?f(0) = 1,f'(x) = 2/((1-x)^3), so f'(0) = 2,f''(x) = 2*3/((1-x)^4), so f''(0) = 6,f(x)的n阶导数= (n+1)!/((1-x)^(n+2)), so f(x)的n阶导数在0点取值 = (n+1)!,f(x) = Sigma[(n+1)! *(x^n)],

金沙县13039718942: 如何高效的学习TensorFlow代码 -
元闹润肠: 如果从源码构建TensorFlow会需要执行如下命令:bazel build -c opt //tensorflow/tools/pip_package:build_pip_package 对应的BUILD文件的rule为:sh_binary( name = "build_pip_package", srcs = ["build_pip_package.sh"], data = [ "...

金沙县13039718942: 如何安装配置tensorflow -
元闹润肠: Ubuntu安装tensorflow 先安装python-dev,再安装tensorflow就好了 $ sudo apt-get install python-dev $ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

金沙县13039718942: win10怎么安装tensorflow -
元闹润肠: 1、开机后按下F2或者delete键,进入bios,设置成U盘驱动系统.不同品牌主板设置方法不同,所以设置方法请参阅主板说明书.2、插上启动U盘,保存退出后重启电脑,会出现启动菜单.如图:3、选择01进入pe.如图:4、双击一键装机工具.如图:5、必须保证机子里或者U盘内有win8.1的ghost系统备份.如图:6、选择还原分区,如图:7、按照提示操作,如图:8、完成后重启电脑,如图:9、系统安装完成,重启后进入win8.1系统

金沙县13039718942: 如何查看tensorflow的tensor -
元闹润肠: 官网:安装步骤:1、sudo apt-get install python-pip python-dev python-virtualenv2、virtualenv --system-site-packages ~/tensorflow3、cd ~/tensorflow4、source bin/activate # If using bash5、(tensorflow)$ pip install --upgrade tensorflow-0.5.0-cp27-...

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网