人工智能深度学习入门练习之(12)TensorFlow – 数学基础

在创建TensorFlow中的应用程序之前,最好能先理解TensorFlow所需的数学概念。数学被认为是任何机器学习算法的核心。标量(scalar) 一个单独的数向量(vector) 一列数,即一维数组矩阵(matrix) 二维数组张量(tensor) 多维数组矩阵加法如果2个矩阵维数相同,则这2个矩阵可以相加。矩阵相加时,2个矩阵对应位置的元素进行相加。示例  矩阵减法矩阵减法与矩阵加法类似,2个维数相同的矩阵,对应位置元素进行相减运算。示例 矩阵乘法2个矩阵相乘,跟加减法稍有不同,不是对应元素相乘。假设矩阵A(形状mxn)与B(形状pxq)相乘,必须n=q,即A的列数必须与B的行数相同,得到的结果是C(形状mxq),其中元素的算法如下:示例    矩阵转置矩阵转置是指把一个矩阵的列转置为行得到一个新矩阵,矩阵A的转置可以表示为A^TAT。示例  向量点积向量是一维数组,2个长度相同的向量可以求点积。点积是指2个长度相同的向量,对应元素相乘然后再相加得到的...

人工智能深度学习入门习之(11)TensorFlow – 理解人工智能

具有感知、学习、推理和解决问题等认知功能的机器被认为拥有人工智能。当机器具有认知能力时,人工智能就产生了。人类在相关领域的能力是人工智能的衡量标准。弱人工智能 弱人工智能执行特定任务,甚至比人类做得更好,例如,围棋人工智能AlphaGo。弱人工智能是目前人工智能的主要研究领域。强人工智能 强人工智能能够像人类一样精确地执行任何智力任务。人工智能(AI)出现在20世纪中期,当时科学家们试图设计智能机器。机器学习是在20世纪后期发展起来的,是人工智能的一种方法,机器学习技术让科学家可以训练人工智能机器。机器学习领域中有一类算法,模拟人类大脑中的神经网络工作模式,称为人工神经网络。本世纪初,多层神经网络的突破进展,导致了深度学习的出现。机器学习人工智能的一种方法,是人工智能的子集。机器学习系统通过从输入和输出数据中提取模式来学习。机器学习(ML)基于样本数据学习,程序从有标记的数据(监督学习)、无标记的数据(无监督学习)或两者的组合(半监督学习)中学习。人工神经网络,模拟人类大脑中的神经网络工作模式,是机器学习领域中的一种算法。人工神经网络由许多简单的处理单元(神经元)...

人工智能深度学习入门习之(10)TensorFlow – 介绍

TensorFlow是一个开源的深度学习框架,由谷歌团队开发。TensorFlow使用方便,开发人员可以用来开发各种人工智能应用。TensorFlow的官方网站:www.tensorflow.orgTensorFlow的主要特性:以张量(一种多维数组)为基础,轻松定义、计算数学算式提供对深度神经网络和机器学习技术的编程支持高可伸缩性,对各种数据集可以进行并行计算。TensorFlow支持GPU计算TensorFlow文档完备,功能强大,使用简单,已经在很多项目中得到成功应用。TensorFlow的API可分为2类:TensorFlow低阶API–深度学习底层开发TensorFlow高阶API–集成度更高的API,如Estimator、Keras等TensorFlow低阶APITensorFlow低阶API提供完整的编程控制,深度机器学习研究人员和其他需要对模型进行精细控制的人员。TensorFlow高阶APITensorFlow上层API构建在TensorFlow核心API之上,集成度更高,比底层API更容易学习和使用例如Estimator、Keras等。...

人工智能深度学习入门习之(9)机器学习深度学习的区别

近年来,随着科技的快速发展,人工智能不断进入我们的视野中。作为人工智能的核心技术,机器学习深度学习也变得越来越火。一时间,它们几乎成为了每个人都在谈论的话题。那么,机器学习深度学习到底是什么,它们之间究竟有什么不同呢?机器学习(MachineLearning,ML)是人工智能的子领域,也是人工智能的核心。它囊括了几乎所有对世界影响最大的方法(包括深度学习)。机器学习理论主要是设计和分析一些让计算机可以自动学习的算法。举个例子,假设要构建一个识别猫的程序。传统上如果我们想让计算机进行识别,需要输入一串指令,例如猫长着毛茸茸的毛、顶着一对三角形的的耳朵等,然后计算机根据这些指令执行下去。但是如果我们对程序展示一只老虎的照片,程序应该如何反应呢?更何况通过传统方式要制定全部所需的规则,而且在此过程中必然会涉及到一些困难的概念,比如对毛茸茸的定义。因此,更好的方式是让机器自学。我们可以为计算机提供大量的猫的照片,系统将以自己特有的方式查看这些照片。随着实验的反复进行,系统会不断学习更新,最终能够准确地判断出哪些是猫,哪些不是猫。深度学习(DeepLearning,DL)属于机器学习的子类。...

人工智能深度学习入门习之(8)比较深度学习三大框架

人工智能的浪潮正席卷全球,诸多词汇时刻萦绕在我们的耳边,如人工智能,机器学习深度学习等。“人工智能”的概念早在1956年就被提出,顾名思义用计算机来构造复杂的,拥有与人类智慧同样本质特性的机器。经过几十年的发展,在2012年后,得益于数据量的上涨,运算力的提升和机器学习算法(深度学习)的出现,人工智能开始大爆发。但目前的科研工作都集中在弱人工智能部分,即让机器具备观察和感知能力,可以一定程度的理解和推理,预期在该领域能够取得一些重大突破。电影里的人工智能多半都是在描绘强人工智能,即让机器获得自适应能力,解决一些之前还没遇到过的问题,而这部分在目前的现实世界里难以真正实现。若人工智能有希望取得突破,是如何实现的,“智能”又从何而来呢?这主要归功于一种实现人工智能的方法——机器学习。一、机器学习概念机器学习一种实现人工智能的方法。机器学习最基本的做法是,使用算法来解析数据从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练&rdquo...

人工智能深度学习入门习之(7)线性回归

代码实现:importnumpyasnpdefcompute_error_for_line_given_points(b,w,points):totalError=0foriinrange(0,len(points)):x=points[i,0]y=points[i,1]#computermean-squared-errortotalError+=(y-(w*x+b))**2#averagelossforeachpointreturntotalError/float(len(points))defstep_gradient(b_current,w_current,points,learningRate):b_gradient=0w_gradient=0N=float(len(points))foriinrange(0,len(points)):x=points[i,0]y=points[i,1]#grad_b=2(wx+b-y)b_gradient+=(2/N)*((w_current*x+b_current)-y)#grad_w=2(wx+b-y)*xw_gradient+=(2/N...

TensorFlow从0到1之浅谈深度学习(5)

DNN(深度神经网络算法)现在是AI社区的流行词。最近,DNN在许多数据科学竞赛/Kaggle竞赛中获得了多次冠军。自从1962年Rosenblat提出感知机(Perceptron)以来,DNN的概念就已经出现了,而自Rumelhart、Hinton和Williams在1986年发现了梯度下降算法后,DNN的概念就变得可行了。直到最近DNN才成为全世界AI/ML爱好者和工程师的最爱。主要原因在于现代计算能力的可用性,如GPU和 TensorFlow 等工具,可以通过几行代码轻松访问GPU并构建复杂的神经网络。作为一名机器学习爱好者,你必须熟悉神经网络和深度学习的概念,但为了完整起见,我们将在这里介绍基础知识,并探讨TensorFlow的哪些特性使其成为深度学习的热门选择。神经网络是一个生物启发式的计算和学习模型。像生物神经元一样,它们从其他细胞(神经元或环境)获得加权输入。这个加权输入经过一个处理单元并产生可以是二进制或连续(概率,预测)的输出。人工神经网络(ANN)是这些神经元的网络,可以随机分布或排列成一个分层结构。这些神经元通过与它们相关的一组权重和偏置来学习...

深度学习方法(十三):卷积神经网络结构变化——可变形卷积网络deformable convolutional networks

上一篇我们介绍了:深度学习方法(十二):卷积神经网络结构变化——SpatialTransformerNetworks,STN创造性地在CNN结构中装入了一个可学习的仿射变换,目的是增加CNN的旋转、平移、缩放、剪裁性。为什么要做这个很奇怪的结构呢?原因还是因为CNN不够鲁棒,比如把一张图片颠倒一下,可能就不认识了(这里mark一下,提高CNN的泛化能力,值得继续花很大力气,STN是一个思路,读者以及我自己应该多想想,还有什么方法?)。今天介绍的这一篇可变形卷积网络deformableconvolutionalnetworks,也算是在STN之后的一个新的变换——STN是说CNNKernel放死了(比如3*3大小),但是可以通过图片变换让CNN效果更好;而deformable是说既然图片可能各种情况,那我索性CNN的Kernel本身是不规整的,比如可以有dilation,也可以旋转的,或者看起来完全没有规则的。如下图,(a)是常规的一个3*3卷积窗口,(b)蓝色点就是原来的卷积窗口加上了一个offset的情况,(c)表示可以对进行窗口进行scale和aspectratio的变换,(d)表...

深度学习方法(十二):卷积神经网络结构变化——Spatial Transformer Networks

欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld。技术交流QQ群:433250724,欢迎对算法、机器学习技术感兴趣的同学加入。今天具体介绍一个GoogleDeepMind在15年提出的SpatialTransformerNetworks,相当于在传统的一层Convolution中间,装了一个“插件”,可以使得传统的卷积带有了[裁剪]、[平移]、[缩放]、[旋转]等特性;理论上,作者希望可以减少CNN的训练数据量,以及减少做dataargument,让CNN自己学会数据的形状变换。这篇论文我相信会启发很多新的改进,也就是对卷积结构作出更多变化,还是比较有创意的。在理解STN之前,先简单了解一下基本的仿射变换、双线性插值;其中,双线性插值请跳转至我刚刚写的一篇更详细的介绍“三十分钟理解:线性插值,双线性插值BilinearInterpolation算法”。这里只放一个示意图[1]:而仿射变换,这里只介绍论文中出现的最经典的2Daffinetransformation,实现[裁剪]、[平移]、[缩放]、[旋转],只需要一个[2,3]的变换矩阵:对于平...

深度学习方法(十一):卷积神经网络结构变化——Google Inception V1-V4,Xception(depthwise convolution)

欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld。技术交流QQ群:433250724,欢迎对算法、机器学习技术感兴趣的同学加入。上一篇讲了深度学习方法(十):卷积神经网络结构变化——MaxoutNetworks,NetworkInNetwork,GlobalAveragePooling,本篇讲一讲Google的Inception系列net,以及还是Google的Xception。(扯一下,Google的Researcher们还是给了很多很棒的idea的,希望读者朋友和我自己在了解paper之余,可以提出自己的想法,并实现。)如果想看Xception,就直接拉到最后看,有手画示意图。V1是大家口头说的Googlenet,在之前的深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,DeepResidualLearning有简单介绍,这里再凝练一下创新点:图1要想提高CNN的网络能力,比如分类准确率,一般的想法就是增大网络,比如Alexnet确实比以前早期Lenet大了很多,但是纯粹的增大网络——比...

深度学习方法(十):卷积神经网络结构变化——Maxout Networks,Network In Network,Global Average Pooling

欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld。技术交流QQ群:433250724,欢迎对算法、技术感兴趣的同学加入。最近接下来几篇博文会回到神经网络结构的讨论上来,前面我在“深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,DeepResidualLearning”一文中介绍了经典的CNN网络结构模型,这些可以说已经是家喻户晓的网络结构,在那一文结尾,我提到“是时候动一动卷积计算的形式了”,原因是很多工作证明了,在基本的CNN卷积计算模式之外,很多简化、扩展、变化都可以让卷积计算获得更多特性,比如参数减少,计算减少,效果提升等等。接下来几篇文章会陆续介绍下面这些topic:MaxoutNetworksNetworkInNetworkInceptionNet(Google)ResneXtXception(depth-wiseconvolution)SpatialTransformerNetworks…本文先介绍两个13,14年的工作:MaxoutNetworks,NetworkInNetw...

[置顶] 人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)

这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记。ISSCC2017Session14DeepLearningProcessors:ISSCC2017关于DeepLearningProcessors的Slides笔记,主要参考了[1]中的笔记,自己根据paper和slides读一遍,这里记一下笔记,方便以后查阅。14.1 A2.9TOPS/WDeepConvolutionalNeuralNetworkSoC inFD-SOI28nmforIntelligentEmbeddedSystems14.2 DNPU:An8.1TOPS/WReconfigurableCNN-RNN ProcessorforGeneral-PurposeDeepNeuralNetworks14.3 A28nmSoCwitha1.2GHz568nJ/PredictionSparse Deep-Neural-NetworkEnginewith>0.1TimingError RateToleranceforIoTA...

深度学习方法(九):自然语言处理中的Attention Model注意力模型

欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.NET/xbinworld。技术交流QQ群:433250724,欢迎对算法、技术感兴趣的同学加入。上一篇博文深度学习方法(八):Encoder-Decoder模型,基本SequencetoSequence模型描述了基本的Encoder-Decoder模型,在作为翻译模型的时候,这种基本的Encoder-Decoder模型有较大缺点,就是Encoder部分每一个输入对Decoder部分每一个输出的贡献都是一样的。下面先看一个例子[1],输入的是英文句子:TomchaseJerry,Encoder-Decoder生成:“汤姆”,“追逐”,“杰瑞”。在基本模型中,每一个英文单词对杰瑞都是一样的贡献,这似乎是不太合理的;也就是说没有引入注意力的模型在输入句子比较短的时候估计问题不大,但是如果输入句子比较长,此时所有语义完全通过一个中间语义向量来表示,单词自身的信息已经消失,可想而知会丢失很多细节信息,这也是为何要引入注意力模型的重要原因。如果引入AM模型的话,应该在翻译“杰瑞”的时候,体现出英文单词对于翻译当前中文单词不同的影响程度...

深度学习方法(八):自然语言处理中的Encoder-Decoder模型,基本Sequence to Sequence模型

欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld。技术交流QQ群:433250724,欢迎对算法、技术感兴趣的同学加入。Encoder-Decoder(编码-解码)是深度学习中非常常见的一个模型框架,比如无监督算法的auto-encoding就是用编码-解码的结构设计并训练的;比如这两年比较热的imagecaption的应用,就是CNN-RNN的编码-解码框架;再比如神经网络机器翻译NMT模型,往往就是LSTM-LSTM的编码-解码框架。因此,准确的说,Encoder-Decoder并不是一个具体的模型,而是一类框架。Encoder和Decoder部分可以是任意的文字,语音,图像,视频数据,模型可以采用CNN,RNN,BiRNN、LSTM、GRU等等。所以基于Encoder-Decoder,我们可以设计出各种各样的应用算法。Encoder-Decoder框架有一个最显著的特征就是它是一个End-to-End学习的算法;本文将以文本-文本的例子作为介绍,这样的模型往往用在机器翻译中,比如将法语翻译成英语。这样的模型也被叫做SequencetoSeq...

深度学习方法(七):最新SqueezeNet 模型详解,CNN模型参数降低50倍,压缩461倍!

欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld。技术交流QQ群:433250724,欢迎对算法、技术感兴趣的同学加入。继续前面关于深度学习CNN经典模型的整理,之前介绍了CNN网络Lenet,Alexnet,Googlenet,VGG,DeepResidualLearning(点击查看)的网络结构。本文讲一下最新由UCBerkeley和Stanford研究人员一起完成的SqueezeNet[1]网络结构和设计思想。SqueezeNet设计目标不是为了得到最佳的CNN识别精度,而是希望简化网络复杂度,同时达到public网络的识别精度。所以SqueezeNet主要是为了降低CNN模型参数数量而设计的。OK,下面直奔主题了。(1)替换3x3的卷积kernel为1x1的卷积kernel卷积模板的选择,从12年的AlexNet模型一路发展到2015年底DeepResidualLearning模型,基本上卷积大小都选择在3x3了,因为其有效性,以及设计简洁性。本文替换3x3的卷积kernel为1x1的卷积kernel可以让参数缩小9X。但是为了不影响识别...
首页上一页...7891011...下一页尾页