「收藏」人工智能中常见机器学习算法优缺点有哪些
https://www.toutiao.com/a6706432431647359491/
2019-06-2519:43:14
朴素贝叶斯:
1.如果给出的特征向量长度可能不同,这是需要归一化为通长度的向量(这里以文本分类为例),比如说是句子单词的话,则长度为整个词汇量的长度,对应位置是该单词出现的次数。
2.计算公式如下:
其中一项条件概率可以通过朴素贝叶斯条件独立展开。要注意一点就是
的计算方法,而由朴素贝叶斯的前提假设可知,
=
,因此一般有两种,一种是在类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本的总和;第二种方法是类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本中所有特征出现次数的总和。
3.如果
中的某一项为0,则其联合概率的乘积也可能为0,即2中公式的分子为0,为了避免这种现象出现,一般情况下会将这一项初始化为1,当然为了保证概率相等,分母应对应初始化为2(这里因为是2类,所以加2,如果是k类就需要加k,术语上叫做laplace光滑,分母加k的原因是使之满足全概率公式)。
朴素贝叶斯的优点:对小规模的数据表现很好,适合多分类任务,适合增量式训练。
缺点:对输入数据的表达形式很敏感。
决策树:决策树中很重要的一点就是选择一个属性进行分枝,因此要注意一下信息增益的计算公式,并深入理解它。
信息熵的计算公式如下:
其中的n代表有n个分类类别(比如假设是2类问题,那么n=2)。分别计算这2类样本在总样本中出现的概率p1和p2,这样就可以计算出未选中属性分枝前的信息熵。
现在选中一个属性xi用来进行分枝,此时分枝规则是:如果xi=vx的话,将样本分到树的一个分支;如果不相等则进入另一个分支。很显然,分支中的样本很有可能包括2个类别,分别计算这2个分支的熵H1和H2,计算出分枝后的总信息熵H’=p1*H1+p2*H2.,则此时的信息增益ΔH=H-H’。以信息增益为原则,把所有的属性都测试一边,选择一个使增益最大的属性作为本次分枝属性。
决策树的优点:计算量简单,可解释性强,比较适合处理有缺失属性值的样本,能够处理不相关的特征;
缺点:容易过拟合(后续出现了随机森林,减小了过拟合现象)。
Logistic回归:Logistic是用来分类的,是一种线性分类器,需要注意的地方有:
1.logistic函数表达式为:
其导数形式为:
2.logsitc回归方法主要是用最大似然估计来学习的,所以单个样本的后验概率为:
到整个样本的后验概率:
其中:
通过对数进一步化简为:
3.其实它的lossfunction为-l(θ),因此我们需使lossfunction最小,可采用梯度下降法得到。梯度下降法公式为:
Logistic回归优点:
1.实现简单
2.分类时计算量非常小,速度很快,存储资源低;
缺点:
1.容易欠拟合,一般准确度不太高
2.只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;
线性回归:
线性回归才是真正用于回归的,而不像logistic回归是用于分类,其基本思想是用梯度下降法对最小二乘法形式的误差函数进行优化,当然也可以用normalequation直接求得参数的解,结果为:
而在LWLR(局部加权线性回归)中,参数的计算表达式为:
因为此时优化的是:
由此可见LWLR与LR不同,LWLR是一个非参数模型,因为每次进行回归计算都要遍历训练样本至少一次。
线性回归优点:实现简单,计算简单;
缺点:不能拟合非线性数据;
KNN算法:KNN即最近邻算法,其主要过程为:
1.计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等);
2.对上面所有的距离值进行排序;
3.选前k个最小距离的样本;
4.根据这k个样本的标签进行投票,得到最后的分类类别;
如何选择一个最佳的K值,这取决于数据。一般情况下,在分类时较大的K值能够减小噪声的影响。但会使类别之间的界限变得模糊。一个较好的K值可通过各种启发式技术来获取,比如,交叉验证。另外噪声和非相关性特征向量的存在会使K近邻算法的准确性减小。
近邻算法具有较强的一致性结果。随着数据趋于无限,算法保证错误率不会超过贝叶斯算法错误率的两倍。对于一些好的K值,K近邻保证错误率不会超过贝叶斯理论误差率。
注:马氏距离一定要先给出样本集的统计性质,比如均值向量,协方差矩阵等。关于马氏距离的介绍如下:
KNN算法的优点:
1.思想简单,理论成熟,既可以用来做分类也可以用来做回归;
2.可用于非线性分类;
3.训练时间复杂度为O(n);
4.准确度高,对数据没有假设,对outlier不敏感;
缺点:
1.计算量大;
2.样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);
3.需要大量的内存;
SVM:
要学会如何使用libsvm以及一些参数的调节经验,另外需要理清楚svm算法的一些思路:
1.svm中的最优分类面是对所有样本的几何裕量最大(为什么要选择最大间隔分类器,请从数学角度上说明?网易深度学习岗位面试过程中有被问到。答案就是几何间隔与样本的误分次数间存在关系:
,其中的分母就是样本到分类间隔距离,分子中的R是所有样本中的最长向量值),即:
经过一系列推导可得为优化下面原始目标:
2.下面来看看拉格朗日理论:
可以将1中的优化目标转换为拉格朗日的形式(通过各种对偶优化,KKD条件),最后目标函数为:
我们只需要最小化上述目标函数,其中的α为原始优化问题中的不等式约束拉格朗日系数。
3.对2中最后的式子分别w和b求导可得:
由上面第1式子可以知道,如果我们优化出了α,则直接可以求出w了,即模型的参数搞定。而上面第2个式子可以作为后续优化的一个约束条件。
4.对2中最后一个目标函数用对偶优化理论可以转换为优化下面的目标函数:
而这个函数可以用常用的优化方法求得α,进而求得w和b。
5.按照道理,svm简单理论应该到此结束。不过还是要补充一点,即在预测时有:
那个尖括号我们可以用核函数代替,这也是svm经常和核函数扯在一起的原因。
6.最后是关于松弛变量的引入,因此原始的目标优化公式为:
此时对应的对偶优化公式为:
与前面的相比只是α多了个上界。
SVM算法优点:
1.可用于线性/非线性分类,也可以用于回归;
2.低泛化误差;
3.容易解释;
4.计算复杂度较低;
缺点:
1.对参数和核函数的选择比较敏感;
2.原始的SVM只比较擅长处理二分类问题;
Boosting:
主要以Adaboost为例,首先来看看Adaboost的流程图,如下:
从图中可以看到,在训练过程中我们需要训练出多个弱分类器(图中为3个),每个弱分类器是由不同权重的样本(图中为5个训练样本)训练得到(其中第一个弱分类器对应输入样本的权值是一样的),而每个弱分类器对最终分类结果的作用也不同,是通过加权平均输出的,权值见上图中三角形里面的数值。那么这些弱分类器和其对应的权值是怎样训练出来的呢?
下面通过一个例子来简单说明,假设的是5个训练样本,每个训练样本的维度为2,在训练第一个分类器时5个样本的权重各为0.2.注意这里样本的权值和最终训练的弱分类器组对应的权值α是不同的,样本的权重只在训练过程中用到,而α在训练过程和测试过程都有用到。
现在假设弱分类器是带一个节点的简单决策树,该决策树会选择2个属性(假设只有2个属性)的一个,然后计算出这个属性中的最佳值用来分类。
Adaboost的简单版本训练过程如下:
1.训练第一个分类器,样本的权值D为相同的均值。通过一个弱分类器,得到这5个样本(请对应书中的例子来看,依旧是machinelearninginaction)的分类预测标签。与给出的样本真实标签对比,就可能出现误差(即错误)。如果某个样本预测错误,则它对应的错误值为该样本的权重,如果分类正确,则错误值为0.最后累加5个样本的错误率之和,记为ε。
2.通过ε来计算该弱分类器的权重α,公式如下:
3.通过α来计算训练下一个弱分类器样本的权重D,如果对应样本分类正确,则减小该样本的权重,公式为:
如果样本分类错误,则增加该样本的权重,公式为:
4.循环步骤1,2,3来继续训练多个分类器,只是其D值不同而已。
测试过程如下:
输入一个样本到训练好的每个弱分类中,则每个弱分类都对应一个输出标签,然后该标签乘以对应的α,最后求和得到值的符号即为预测标签值。
Boosting算法的优点:
1.低泛化误差;
2.容易实现,分类准确率较高,没有太多参数可以调;
3.缺点:
4.对outlier比较敏感;
聚类:
根据聚类思想划分:
1.基于划分的聚类:
K-means,k-medoids(每一个类别中找一个样本点来代表),CLARANS.
k-means是使下面的表达式值最小:
k-means算法的优点:
(1)k-means算法是解决聚类问题的一种经典算法,算法简单、快速。
(2)对处理大数据集,该算法是相对可伸缩的和高效率的,因为它的复杂度大约是O(nkt),其中n是所有对象的数目,k是簇的数目,t是迭代的次数。通常k
基准人工智能浅析送餐机器人的优点与不足
餐厅机器人在这个时候出现,对于餐饮界来说是一件大好事,不仅解决了服务员难找的问题,而且还可以用较少的成本获得非常大的价值。
机器人这个新名词,不但能够成为餐厅的“吸睛利器”,而且餐厅可以能够借助新事物出现,得到巨大的经济回报。
二、现阶段餐厅机器人能做哪些事情?
送餐机器人完整的送餐流程是这样的,当客人点完餐,由人将菜品放到机器人的托盘上,并输入所属桌次信息。然后机器人走到相应位置,语音提示顾客将菜取走。当菜品取走后,机器人就会用语音提示顾客触碰返回按钮,完成一次送餐。
送餐机器人的语音输出功能,不仅能够提示顾客取餐,而且可以介绍菜品。顾客还能使用智能手机对机器人直接进行运动、语音控制,也可以通过下达一系列预置指令,让机器人自动完成某项复杂任务。
同时机器人应该具有电量检测功能,当电量低于设定值时,可以自己走到充电站的位置进行充电。
送餐机器人具有自动送餐、空盘回收、菜品介绍、自动充电等实用功能,这是集成了移动机器人、多传感器信息融合与导航和多模态人机交换等技术,能够代替或者部分代替餐厅服务员为顾客服务,能够减少服务人员数量,提升餐厅的品牌形象,具有较高的经济价值,所以送餐机器人以后的研究方向会更与餐厅相融合。
送餐机器人也在快速发展中,已经经历了迭代更替,现在市面上的绝大部分送餐机器人只具有运动功能,它能在指定的区域中行走,到达用户指定的位置,并根据周围的信息躲避障碍,同时也可以通过遥控器控制其行走。这一点的实现只要基于地面上铺设的磁条。
不仅是完成运动功能,部分企业也已经对送餐机器人进行改良,无轨道送餐机器人也能实现。另外,送餐机器人的轻量化也是改良的关键,毕竟不像工业机器人那样有严格的要求,在轻量化的设计方面,外壳的材料选择是关键,像玻璃钢这类常用材质就会比较重,可以选择工程塑料,以吸塑工艺成型,这样不仅可以解决轻量化的问题,还可以达到批量生产的标准化装配。
市面上绝大部分送餐机器人需要铺设地面磁带,主要是依靠工作人员对餐厅地图创建与编辑,设置一系列的餐桌目标点。在每次进入工作模式时,机器人就可以知道当前的位置,并可以自主导航运动到目标位置上。”
这种升级,一定程度上对快捷送餐起到了非常大的帮助,但是实际上,完成一次送餐任务并不是像想象中那么简单。把菜上对了,知道怎么方便充电都只完成了送餐任务的一半。
三、送餐机器人还不够智能
在用到送餐机器人的商家看来,机器人功能显得有些“鸡肋”。
目前餐厅服务机器人只能把菜端到桌旁,不能完成摆盘,只能由顾客自己动手完成。机器人只能按照预先设定好的路径行走,也无法和顾客“愉快”聊天。
目前餐厅机器人还无法实现服务员的所有功能,不具备自主服务能力,距离真正意义上的智能化还存在技术门槛。在餐厅这种应用场景中,常规性的送餐、配菜需求机器人可以满足;但是,如果顾客有些非常规性的需求,机器人就搞不定了,目前国内的餐厅机器人的智能化程度很有限,有一定“智商”却没有“情商”。
如何成为真正的大厨和贴心的服务生?专家们认为,还要解决机器人“看”“听”和“说”的问题。视觉识别,语音识别,自然语言处理……这些都是机器人们成为“靠谱”服务员路上的门槛。
语音技术提升能够解决餐厅机器人很大一部分问题,语音技术有三个难点需要攻破。餐厅毕竟是个非常嘈杂的环境,所以餐厅机器人需要非常灵敏的“耳朵”能够听到你在说什么,不止如此,餐厅里面有不同的声源,餐厅机器人还需要做到能够准确识别点菜信息,更重要一点是,点单是一个极其复杂的过程,顾客随时可能更改,也有人突然插话,所以送餐机器人还要做到顾客说话时,机器人停止对话,顾客更改菜品时,机器人也能更改菜品信息。
尽管餐厅机器人功能在目前看来还有很多问题需要修改,但是从不足中,我们也能欣慰的看到,一个完整的真正的机器人需要各种技术支持,需要各种技术不断优化,成熟化,才能打造出真正的机器人产品。
送餐机器人并不完美,却是第一款走入寻常百姓生活的机器人产品,它更像一个号角,正在召唤更多的机器人产品来到你我身边。
基准人工智能,是基准工业设计旗下专业从事机器人与无人机设计的部门,专注于工业机器人、服务机器人、无人机的产品策略、市场研究、外观设计、结构设计、机构设计等。在深圳、佛山、长沙、武汉等地开展相关的设计服务。
文章来源:基准设计机构(www.cnjizhun.com)工业设计事业部人工智能设计部返回搜狐,查看更多