机器学习——一些名词解释

总体上的范围关系是:  人工智能 >  机器学习 > 深度学习 , 这三种都可能会用到神经网络算法。

监督式学习(Supervised learning):通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,如分类。监督学习是使用已知正确答案的示例来训练网络的。监督式学习的算法有决策树学习,SVM,KNN等回归分析和统计分类的算法。

非监督式学习(Unsupervised learning):直接对输入数据集进行建模,如聚类.对比监督式学习,无监督式学习网络在学习时并不知道其分类结果是否正确,即没有受到监督式增强(告诉它何种学习是正确的)。无监督学习适用于具有数据集但无标签的情况。无监督学习采用输入集,并尝试查找数据中的模式。非监督式学习的算法有K-means等,PCA和很多deep learning算法都属于无监督学习。无监督学习的方法分为两大类:一类为基于概率密度函数估计的直接方法:指设法找到各类别在特征空间的分布参数,再进行分类。另一类是称为基于样本间相似性度量的简洁聚类方法:其原理是设法定出不同类别的核心或初始内核,然后依据样本与核心之间的相似性度量将样本聚集成不同的类别。利用聚类结果,可以提取数据集中隐藏信息,对未来数据进行分类和预测。应用于数据挖掘,模式识别,图像处理等。

机器学习:机器学习是人工智能的一个子集。它是人工智能的核心。传统机器学习就是:用一大堆数据,同时通过各种算法(比如SVM、决策树、逻辑回归等),去训练出来一个模型,然后用这个训练好的模型去完成任务(比如预测任务等)。常用的机器学习算法有:线性回归、逻辑回归、决策树、随机森林、支持向量机、贝叶斯、K近邻、Kmeans、xgboost等。机器学习的可解释性很强,许多传统的机器学习算法有明确的数学规则。传统的机器学习算法中,我们首先需要用一些算法(比如PCA、LDA等)来进行特征的提取,然后再用机器学习算法(如svm等)进行模型训练。特征提取的过程很麻烦,对工作者要求也很高。

深度学习:深度学习的过程就是发现特征,经过一系列训练,得出每个特征对结果影响的权重,得到最佳权重值(通过比较简单的表示来表达复杂关系)。深度学习是一种特殊的机器学习,是机器学习的一个子集。深度学习的概念源于人工神经网络。归纳为:含多隐层的多层感知器就是一种深度学习结构。为流行的深度学习框架有PaddlePaddle、Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch等。深度神经网络更像是一种“黑箱子”。在深度学习中,特征由算法本身自动完成提取,通常不需要我们另外写一个算法来进行特征提取。比如CNN网络中,卷积层的作用就实现了特征的提取。当数据量很少的时候,深度学习的性能并不好,因为深度学习算法需要大量数据才能很好理解其中蕴含的模式。其中的“学习”是指从训练数据中自动获取最优权重参数的过程。

人工神经网络算法不需要我们告诉计算机如何处理问题,而是通过从观测数据中学习,计算出他自己的解决方案。机器学习中使用的数据集分为训练数据和测试数据。神经网络用训练数据进行学习,并用测试数据评价学习到的模型的泛化能力。神经网络的学习以损失函数为指标,更新权重参数,以使损失函数的值减小。神经网络的一个重要性质是它可以自动地从数据中学习到合适的权重参数。神经网络就是按照一定规则将多个神经元连接起来的网络。

人工神经网络ANN:人工神经网络是由大量处理单元互联组成的非线性、自适应信息处理系统。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。神经网络的主要工作是建立模型和确定权值,一般有前向型和反馈型两种网络结构。通常神经网络的学习和训练需要一组输入数据和输出数据对,选择网络模型和传递、训练函数后,神经网络计算得到输出结果,根据实际输出和期望输出之间的误差进行权值的修正,在网络进行判断的时候就只有输入数据而没有预期的输出结果。神经网络一个相当重要的能力是其网络能通过它的神经元权值和阈值的不断调整从环境中进行学习,直到网络的输出误差达到预期的结果,就认为网络训练结束。 

卷积神经网络CNN:是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习的代表算法之一。由于卷积神经网络能够进行平移不变分类,也被称为“平移不变人工神经网络“。卷积神经网络通常包含以下几种层:1)卷积层,卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。2)线性整流层,这一层神经的活性化函数使用线性整流。3)池化层,通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。4)全连接层, 把所有局部特征结合变成全局特征,用来计算最后每一类的得分。(加上输入层总共5层: 输入层、卷积层、激活函数层、全连接层。)

循环神经网络RNN:循环神经网络背后的思想就是使用序列信息。循环神经网络之所以称之为循环,就是因为它们对于序列中每个元素都执行相同的任务,输出依赖于之前的计算。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNNs能够对任何长度的序列数据进行处理。

递归神经网络RNN:递归神经网络是具有树状阶层结构且网络节点按其连接顺序对输入信息进行递归的人工神经网络,具有可变的拓扑结构且权重共享,被用于包含结构关系的机器学习任务,在自然语言处理(Natural Language Processing)领域受到关注。

感知机:感知机是具有输入和输出的算法。给定一个输入后,将输出一个既定的值。感知机将权重和偏置设定为参数。使用感知机可以表示与门和或门等逻辑电路。单层感知机只能表示线性空间,而多层感知机可以表示非线性空间。多层感知机(在理论上)可以表示计算机。

激活函数:激活函数会将输入信号的总和转换为输出信号。‘激活‘一词表示激活函数的作用在于决定如何来激活输入信号的总和。用两个式子表示为a=b +wx; y=h(a);其中a就是加权信号和偏置的总和,然后激活函数将a转换为输出y。激活函数是连接感知机和神经网络的桥梁。一般单层/朴素感知机是单层网络,指激活函数使用了阶跃函数的模型。神经网络即多层感知机是使用sigmoid函数等平滑的激活函数的多层网络。非线性激活函数有Sigmoid,Tanh,ReLU,LReLU等。

sigmoid函数:sigmoid函数是神经网络中经常使用的一个激活函数,表达式为h(x) =\frac{1}{1+exp(-x)}.神经网络中使用sigmoid函数进行信号转换,转换后的信号被传送到下一个神经元。该函数优点是:1)输出映射在(0,1)之间(可用来表求概率),单调连续,输出范围有限,优化稳定,可以用作输出层;2)求导容易。缺点是:1)由于其软饱和性,容易产生梯度消失,导致训练出现问题。2)其输出并不是以0为中心的。

Softmax与sigmoid: Softmax在深度学习中是一个非常重要的函数,用于多分类过程中,Softmax将多个神经元的输出映射到(0,1)区间,即将多分类的输出数值转化为相对概率, 表达式为S_i=\frac{e^{V_i}}{\sum_i^Ce^{V_i}}, 其中Vi 是分类器前级输出单元的输出。i 表示类别索引,总的类别个数为 C。Si 表示的是当前元素的指数与所有元素指数和的比值。它是神经网络中一种输出层函数,计算输出层的值,主要用于神经网络最后一层,作为输出层进行多分类,是Logistic二分类的推广 。Softmax的输出的每个值都是>=0,并且其总和为1,所以可以认为其为概率分布,这与sigmoid也是不同的。Softmax 函数通常被用于将原始分数(raw score)的矢量转换成用于分类的神经网络的输出层上的类概率(class probability)。而S 型层的激活值是不能够形成⼀种概率分布的⼀般形式的,它的输出值的和不是1,因此softmax层确保了输出结果是一个概率分布。一般是交叉熵与Sigmoid输出层结合,对数似然代价与softmax输出层组合。后者更适用于那些需要将输出激活值解释为概率的场景。
ReLU函数:线性整流函数(Rectified Linear Unit, ReLU)又称修正线性单元,是一种人工神经网络中常用的激活函数,通常指代以斜坡函数及其变种为代表的非线性函数。CNN中常用,对正数原样输出,负数直接置零。在正数不饱和,在负数硬饱和。relu计算上比sigmoid或者tanh更省计算量,因为不用exp收敛较快。

机器学习大体上分为两个问题:分类问题和回归问题。
分类问题:是指f(x)是一个离散的值,给定一个新的模式,根据训练集推断它所对应的类别,是一种定性输出,也叫离散变量预测。
回归问题:是指f(x)是一个连续的值,给定一个新的模式,根据训练集推断它所对应的输出值是多少,是一种定量输出,也叫连续变量预测。比如预测房价、天气等。
回归问题和分类问题的本质一样,都是针对一个输入做出一个输出预测,区别在于输出变量的类型。关于输出层的激活函数,回归问题中一般用恒等函数,分类问题中一般用softmax函数,分类问题中,输出层的神经元的数量设置为要分类的类别数。

Affine层(仿射层):神经网络的正向传播中进行的矩阵的乘积运算在几何学领域被称为“仿射变换” 。因此,这里将进行仿射变换的处理实现为“Affine层”。神经网络中的一个全连接层。仿射(Affine)的意思是前面一层中的每一个神经元都连接到当前层中的每一个神经元。在许多方面,这是神经网络的‘标准’层。仿射层通常被加在卷积神经网络或循环神经网络做出最终预测前的输出的顶层。仿射层的一般形式为 y = f(Wx + b),其中 x 是层输入,w 是参数,b 是一个偏差矢量,f 是一个非线性激活函数。

反向传播是一种在神经网络中用来有效地计算梯度的算法,或更一般而言,是一种前馈计算图(feedforward computational graph)。其可以归结成从网络输出开始应用分化的链式法则,然后向后传播梯度。

随机梯度下降(SGD)是一种被用在训练阶段学习网络参数的基于梯度的优化算法,用来求解损失函数最小值。梯度通常使用反向传播算法计算。在实际应用中,人们使用微小批量版本的 SGD,其中的参数更新基于批案例而非单个案例进行执行,这能增加计算效率。梯度下降是迭代法的一种。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。梯度下降法主要有随机梯度下降法和批量梯度下降法。总的训练数据量为N,随机梯度下降通过随机选取小量m个训练输入来工作,这些随机的训练数据称为一个小批量数据(mini-batch).这个数据训练完成,称为一次迭代(iteration), 再挑选另一组随机的小批量数据训练,直到用完全部训练输入,称为完成了一个训练迭代周期(epoch),然后开始一个新的迭代周期,全部epoch完成后训练结束。一个epoch中有n次iteration, n=N/m, iteration=n*epoch。

图像分割:图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。根据实际分割应用任务的不同,可以大致将分割分为三个研究方向:语义分割、实例分割、全景分割。语义分割:像素级别的语义分割,对图像中的每个像素都划分出对应的类别,即实现像素级别的分类。语义分割的前端方法有前端:FCN, SegNet/DeconvNet,DeepLab,后端处理有全连接条件随机场(DenseCRF)、CRFasRNN、马尔科夫随机场(MRF)、高斯条件随机场(G-CRF)等。传统CNN方法对一个像素分类使用该像素周围的一个图像块作为CNN输入,存储开销大,效率低,并且像素块大小限制了感受区域大小,FCN则从抽象的特征中恢复出每个像素所属类别,即从图像级别的分类进一步延伸到像素级别的分类。FCN(全卷积网络)对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类。

目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核 心问题之一。计算机视觉中关于图像识别有四大类任务:分类-Classification:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。定位-Location:解决“在哪里?”的问题,即定位出这个目标的的位置。检测-Detection:解决“是什么?在哪里?”的问题,即定位出这个目标的的位置并且知道目标物是什么。分割-Segmentation:分为实例的分割(Instance-level)和场景分割(Scene-level),解决“每一个像素属于哪个目标物或场景”的问题。

GPU购买建议(转)
最好的GPU整体(小幅度):Titan Xp 综合性价比高,但略贵:GTX 1080 Ti,GTX 1070,GTX 1080 性价比还不错且便宜:GTX 1060(6GB)
当使用数据集> 250GB:GTX Titan X(Maxwell) ,NVIDIA Titan X Pascal或NVIDIA Titan Xp
没有足够的钱:GTX 1060(6GB)
几乎没有钱,入门级:GTX 1050 Ti(4GB)
做Kaggle比赛:GTX 1060(6GB)适用于任何“正常”比赛,或GTX 1080 Ti用于“深度学习竞赛”
计算机视觉研究员:NVIDIA Titan Xp;不要买现在新出的Titan X(Pascal或Maxwell)
一名研究员人员:GTX 1080 Ti。在某些情况下,如自然语言处理,一个GTX 1070或GTX 1080已经足够了-检查你现在模型的内存需求
搭建一个GPU集群:这个有点复杂,另做探讨。
刚开始进行深度学习研究:从GTX 1060(6GB)开始。根据你下一步兴趣(入门,Kaggle比赛,研究,应用深度学习)等等,在进行选择。目前,GTX 1060更合适。
想尝试下深度学习,但没有过多要求:GTX 1050 Ti(4或2GB)
目前独立GPU主要有AMD和NVIDIA两家厂商。其中NVIDIA在深度学习布局较早,对深度学习框架支持更好。因此,目前大家主要会选择NVIDIA的GPU。
NVIDIA有面向个人用户(例如GTX系列)和企业用户(例如Tesla系列)的两类GPU。这两类GPU的计算能力相当。然而,面向企业用户的GPU通常使用被动散热并增加了内存校验,从而更适合数据中心,并通常要比面向个人用户的GPU贵上10倍。
如果你是拥有100台机器以上的大公司用户,通常可以考虑针对企业用户的NVIDIA Tesla系列。如果你是拥有10到100台机器的实验室和中小公司用户,预算充足的情况下可以考虑NVIDIA DGX系列,否则可以考虑购买如Supermicro之类的性价比比较高的服务器,然后再购买安装GTX系列的GPU。
NVIDIA一般每一两年发布一次新版本的GPU,例如2016年发布的是GTX 1000系列。每个系列中会有数个不同的型号,分别对应不同的性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值