2019-03-09 12:40:13 ys_1991 阅读数 236
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

一.AI&ML&DL
1.机器学习是一种实现人工智能的方法,深度学习受到了人工神经网络的影响,驱动了机器学习的发展,是机器学习的一个子集。

二.AL&DL的区别
1.数据量
深度学习比较适合数据量比较大的情况,而传统的机器学习的话在小数据量的情况下效果会好一点
2.硬件依赖
深度学习算法需要进行大量的矩阵运算,需要高端的硬件设备,像GPU
3.特征工程
在机器学习方法中,几乎所有的特征都需要通过行业专家在确定,然后手工就特征进行编码。然而深度学习算法试图自己从数据中学习特征
4.解决问题的方式
传统的机器学习会将问题进行拆分,逐个解决然后进行合并,而深度学习则不需拆分,集中解决
5.执行时间
深度学习因为有大量的参数需要训练,所需的时间会更长
6.可解释性
深度学习模型虽然有时候能达到不错的效果,但是结果却很难解释,传统的机器学习像决策树这些的解释性会更强

三.如何选择合适的模型
1.对数据的认知
1.了解数据
查看总结统计和数据可视化的结果
百分比可以帮助你识别大多数数据的范围
平均数和中位数可以描述集中趋势
相关系数可以指出强的关联性
2. 数据可视化
箱形图可以识别出异常值
密度图和直方图可以显示出数据的散布情况
散点图可以描述二元关系
3.数据清洗
处理缺失值。缺失的数据对于某些模型的影响比对其它模型更大。即使是对于那些被用于处理缺失数据的模型来说,它们也可能对缺失数据很敏感(某些变量的缺失数据可能导致预测性能变差)
4.选择处理异常值的方法
有些模型对异常值的敏感性比其它模型要低。通常而言,树模型对于异常值的存在不太敏感。然而回归模型、或者任何试图使用方程的模型都会受到异常值的严重影响。

2.对问题进行分类
所有的问题可以分为监督学习,无监督学习和强化学习
强化学习算法针对每个数据点做出决策,在机器人学中比较常见,传感器每读取一个数据,算法必须决定机器人下一步该做什么。
[1]依据输入数据进行分类,如果我们的数据有标签,这就是一个监督学习问题;如果数据没有标签就是无监督学习;如果我们想通过与环境交互来优化目标函数,这是强化学习。
[2]根据输出结果分类:如果模型输出结果是一个数值,这是回归问题;如果输出结果是一个类别,这是分类问题;如果输出结果是一组输入数据,那这是聚类问题

3.考虑要满足的约束条件
[1]能够存储数据的容量有多大
[2]模型训练和预测的时间

4.寻找算法
[1]模型是否满足业务目标
[2]模型需要多少数据预处理工作
[3]模型有多准确
[4]模型的可解释性如何
[5]模型运行的速度有多快:构造模型需要多久?模型做出预测需要多长时间?
[6]模型的可伸缩性如何

四.各种算法的比较
1.线性回归
可以预测一个正在运行过程的未来值,但是如果特征之间存在多重共线性时就会不太稳定,不能拟合非线性数据
[1]多重共线性的检测
回归系数的正负号与预先估计的相反
相关系数:两个特征之间的相关系数如果高于0.8,可以认为存在共线性
容忍度与方差扩大因子(VIF):一般认为容忍度小于0.1时,共线性严重;VIF等于容忍度的倒数
[2]多重共线性的解决
PCA :保留主要特征,忽略次要特征
增加样本数量
训练模型时加入L2正则,可以避免模型参数过于发散无法收敛的情况
改变特征的表现形式,像取对数等等
逐步回归分析
a.基本思想是通过相关系数r、拟合优度R2和标准误差三个方面综合判断一系列回归方程的优劣,从而得到最优回归方程。具体方法
分为两步:
第一步,先将被解释变量y对每个解释变量作简单回归:
第二步,将其他解释变量逐一引入到基本回归方程中,建立一系列回归方程,根据每个新加的解释变量的标准差和复相关系数来考察其对每个回归系数的影响,一般根据如下标准进行分类判别:
1.如果新引进的解释变量使R2得到提高,而其他参数回归系数在统计上和经济理论上仍然合理,则认为这个新引入的变量对回归模型是有利的,可以作为解释变量予以保留。
2.如果新引进的解释变量对R2改进不明显,对其他回归系数也没有多大影响,则不必保留在回归模型中。
3.如果新引进的解释变量不仅改变了R2,而且对其他回归系数的数值或符号具有明显影响,则认为该解释变量为不利变量,引进后会使回归模型出现多重共线性问题

2.KNN
优点
[1]对数据没有假设,准确度高
[2]可用于非线性分类
[3]既可以用来做分类,也可以用来做回归
缺点
[1]计算量大,需要大量内存
[2]样本类别不均衡问题

3.LR(逻辑回归)
优点
[1]将线性回归的不确定范围的连续值映射到了(0,1)范围内,成了一个概率预测问题,对需要求分类概率的场景适用
[2]参数代表每个特征对输出的影响,可解释性强。
实施简单,非常高效(计算量小、存储占用低),可以在大数据场景中使用。
[3]可扩展,可以使用online learning的方式更新轻松更新参数,不需要重新训练整个模型。
缺点
[1]容易欠拟合,分类精度不高。(概率范围比较小,导致很多区间的变量变化对结果没有什么影响)
[2]因为它本质上是一个线性的分类器,对于非线性特征需要进行转换。
[3]特征空间很大时,性能不好。容易欠拟合,精度不高

3.决策树
优点
[1]比较适合处理有缺失属性的样本,能够处理不相关的特征
[2]可解释性强
[3]短时间对大型数据可以做出不错的预测
缺点
[1]不支持在线学习,当新的样本出现需要重新构建决策树
[2]容易发生过拟合,可以使用随机森林
[3]忽略了特征之间的相关性
[4]对于各类别样本数量不一致的情况,信息增益偏向于那些有更多特征的数值

4.随机森林
优点
[1]可以处理高维数据,不用进行特征选择(特征子集是随机选择)
[2]模型的泛化能力较强
[3]训练模型时速度快,成并行化方式,即树之间相互独立
[4]模型可以处理不平衡数据,平衡误差
[5]最终训练结果,可以对特征排序,选择比较重要的特征
[6]对缺失值、异常值不敏感
[7]模型训练结果准确度高
缺点
[1]随机森林在某些噪音较大的分类或回归问题上会过拟合
[2]取值划分较多的属性会对随机森林产生更大的影响
适用场景
[1]数据维度相对低(几十维),准确率要求比较高

5.SVM
一种在模式识别和分类问题中被广泛应用的监督机器学习技术——当你的数据恰好有两类时
优点
[1]可以解决小样本情况下的机器学习问题
[1]可以解决特征空间很大的情况
[2]可以解决非线性问题
[3]无需依赖整个数据
处理时提前对数据进行归一化
缺点
[1]当观测样本很多时,效率不高
[2]对于非线性问题很难找到一个合适的核函数
[3]对缺失数据敏感

6.NB
对于给出的待分类项,求出在这个特征空间上属于每个类别的概率,选出概率最大的类别作为结果
优点
[1]有比较坚实的数学基础,分类比较稳定
[2]算法比较简单,常用于文本分类
[3]对小规模的数据表现比较好,可以处理多分类问题,进行增量训练
缺点
[1]需要计算先验概率
[2]假设特征之间相互独立

7.adboost
每个模型都是基于上一次模型的错误率来建立的,过分关注分错的样本,而对正确分类的样本减少关注度,逐次迭代之后,可以得到一个相对较好的模型
优点
[1]adaboost是一种有很高精度的分类器。
[2]可以使用各种方法构建子分类器,Adaboost算法提供的是框架。
[3]当使用简单分类器时,计算出的结果是可以理解的,并且弱分类器的构造极其简单。
[4]不用做特征筛选。
[5]不容易发生overfitting
缺点
对异常值比较敏感

8.xgboost
[1]高准确率高效率高并发,支持自定义损失函数,既可以用来分类又可以用来回归
[2]可以像随机森林一样输出特征重要性,因为速度快,适合作为高维特征选择的一大利器
[3]在目标函数中加入正则项,控制了模型的复杂程度,可以避免过拟合
[4]支持列抽样,也就是随机选择特征,增强了模型的稳定性
[5]对缺失值不敏感,可以学习到包含缺失值的特征的分裂方向

  1. 人工神经网络的优缺点
    优点:
    [1]分类的准确度高;
    [2]并行分布处理能力强,分布存储及学习能力强,
    [3]对噪声神经有较强的鲁棒性和容错能力,能充分逼近复杂的非线性关系;
    缺点:
    [1]神经网络需要大量的参数,如网络拓扑结构、权值和阈值的初始值;
    [2]不能观察之间的学习过程,输出结果难以解释,会影响到结果的可信度和可接受程度;
    [3]学习时间过长,甚至可能达不到学习的目的。

五.回归&分类&聚类算法
1.回归
[1]线性回归
[2]Ridge回归
适用于模型容易出现过拟合,或者特征之间存在多重共线性的情况
[3]LassO回归
Lasso 的基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于0 的回归系数,得到可以解释的模型
[4]KNN
[5]决策树(目标值为连续值)
[6]SVR(找到一个回归平面,让一个集合的所有数据到该平面的距离最近)
2.分类
[1]LR
[2]Softmax
[3]KNN
[4]决策树
[5]SVM
[6]NB
3.聚类
[1]层次聚类
首先我们将每个数据点视为一个单一的簇,然后选择一个测量两个簇之间距离的度量标准
在每次迭代中,我们将两个具有最小average linkage的簇合并成为一个簇
重复以上步骤直到所有的数据点合并成一个簇,然后选择我们需要多少个簇
[2]划分聚类
K-Means
2.1.K值如何确定
1)最简单的方法 K=sqrt(n/2)
1)手肘法,核心指标是SSE(误差平方和)
手肘法的核心思想是:随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么误差平方和SSE自然会逐
渐变小。并且,当k小于真实聚类数时,由于k的增大会大幅增加每个簇的聚合程度,故SSE的下降幅度会很大,而当k到达真实聚
类数时,再增加k所得到的聚合程度回报会迅速变小,所以SSE的下降幅度会骤减,然后随着k值的继续增大而趋于平缓,也就是
说SSE和k的关系图是一个手肘的形状,而这个肘部对应的k值就是数据的真实聚类数
2)间隔统计量Gap statistic公式计算
3)轮廓系数法
轮廓系数考虑了样本的簇内凝聚度和簇间分离度,轮廓系数越接近1,表示聚类效果越好
4)适用Canopy先进行粗略的聚类,得到K的值
就是对数据进行不断遍历,T2<dis<T1的可以作为中心名单,dis<T2的认为与canopy太近了,以后不会作为中心点,从list中删除
2.2.初始质心的选择
1)多次运行,每次使用一组不同的随机初始质心,然后选取具有最小SSE(误差的平方和)的簇集。
2)先使用层次聚类进行聚类。从层次聚类中提取K个簇,并用这些簇的质心作为初始质心。该方法通常很有效,但仅对下列情况有效:(1)样本相对较小,例如数百到数千(层次聚类开销较大);(2)K相对于样本大小较小
3)K-Means++。随机地选择第一个点,或取所有点的质心作为第一个点。然后,对于每个后继初始质心,选择离已经选取过的初始质心最远的点。具体步骤如下:
Step 1:从数据集中随机选取一个样本点作为初始聚类中心C1;
Step 2:首先计算每个样本与当前已有聚类中心之间的最短距离(即最近的聚类中心的距离),用D(x)表示;接着计算每个样本点被选为下一个聚类中心的概率(某个样本D(x)的平方/所有样本距离的平方和)。最后,按照轮盘法选择出下一个聚类中心;
Step 3:重复第2步直到选择出K个聚类中心

[3]密度聚类(DBSCAN)
首先确定半径r和minPoints. 从一个没有被访问过的任意数据点开始,以这个点为中心,r为半径的圆内包含的点的数量是否大于或等于minPoints,如果大于或等于minPoints则改点被标记为central point,反之则会被标记为noise point。
重复以上步骤,如果一个noise point存在于某个central point为半径的圆内,则这个点被标记为边缘点,反之仍为noise point。直到所有的点都被访问过。
优点:不需要知道簇的数量
缺点:需要确定距离r和minPoints

[4]谱聚类
谱聚类算法建立在谱图理论基础上,可以在任意形状的样本空间上聚类且收敛于全局最优解
谱聚类算法将数据集中的每个对象看作是图的顶点V,将顶点间的相似度量化作为相应顶点连接边E的权值,这样就得到一个基于相似度的无向加权图G(V, E),于是聚类问题就可以转化为图的划分问题。基于图论的最优划分准则就是使划分成的子图内部相似度最大,子图之间的相似度最小
具体的实现方法如下:
1) 构建表示对象集的相似度矩阵W;
2) 通过计算相似度矩阵或拉普拉斯矩阵的前k个特征值与特征向量,构建特征向量空间;
3) 利用K-means或其它经典聚类算法对特征向量空间中的特征向量进行聚类

六.生成模型和判别模型
1.生成模型:先由数据学习联合概率分布P(x,y)和先验概率分布P(x),然后求出条件概率分布P(y|x)=P(x,y)/P(x)作为预测的模型,即得到生成模型:
2.判别模型:判别方法由数据直接学习决策函数f(x)或者条件概率分布P(y|x)作为预测的。判别模型利用正负例和分类标签,关注在判别模型的边缘分布。寻找不同类别之间的最优分类面,反映的是异类数据之间的差异。

2019-02-10 00:10:29 weixin_40548136 阅读数 482
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

1.论文

loss

The Lovasz Hinge: A Novel Convex Surrogate for Submodular Losses
The Lovasz-Softmax loss: A tractable surrogate for the optimization of the ´ intersection-over-union

对象检测

R-CNN论文翻译Rich feature hierarchies for accurate object detection and semantic segmentation
Concurrent Spatial and Channel ‘Squeeze & Excitation’ in Fully Convolutional Networks(附代码)

2.深度学习

深度学习入门(一)感知机与激活函数
深度学习(二)损失函数与梯度
深度学习入门(三)构建简单的两层神经网络
深度学习入门(四)梯度更新算法的选择(附执行代码)
吴恩达课程学习笔记–第二课 第一周:深度学习的实践层面
吴恩达深度学习 第二课 第三周:超参数调试、Batch正则化和程序框架
吴恩达深度学习 第三门课 结构化机器学习项目(笔记)
吴恩达深度学习 第三门课 残差网络 谷歌Inception模型 迁移学习
吴恩达深度学习 第三门课 第三周 目标检测
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换
吴恩达深度学习 第五门课 第一周 序列模型(sequence models)
吴恩达深度学习 第五课 第二周 自然语言处理与词嵌入
吴恩达深度学习 第五课 第三周 序列模型和注意力机制

深度学习练习题

吴恩达深度学习练习 第五课第一周 Building a Recurrent Neural Network 基于numpy
吴恩达深度学习练习 第五课第二周 注意力机制机器翻译 基于Keras
吴恩达深度学习 第五课第三周 课后练习 Trigger word detection

3.机器学习

1.机器学习实战(1) k-近邻算法(kNN)和决策树
2.机器学习实战(2) 基于概率论的分类方法:朴素贝叶斯 python3
3.机器学习实战(3) Logistic回归 逻辑回归 基于python3
4.待更新
5.机器学习实战(5) AdaBoost元算法 基于python3
6.机器学习实战(6) 预测数值型数据:回归
7.机器学习实战(7) 树回归
8.机器学习实战(8) 利用K-means聚类算法对未标注数据分组
9.机器学习实战(9) 使用Apriori算法进行关联分析
10.机器学习实战(10) FP-growth 基于python3
11.机器学习实战(11) 利用PCA来简化数据 基于python3
12.机器学习实战(12) 利用SVD简化数据 基于python3

未完待续…

2017-04-11 23:39:13 xwd18280820053 阅读数 905
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪
深度学习与机器学习的差异性主要表现在以下几个方面:
 1、数据依赖性
深度学习一般需要大量数据用于训练,而机器学习相对于深度学习没有那么大的数据依赖量,在数据相对较少的情况下也适用。
2、硬件依赖
深度学习复杂性更大,处理数据的硬件要求比较高,一般使用GPU并行处理,而机器学习相关模型一般在CPU上就可以完成处理。
3、特征工程
深度学习算法尝试从数据中学习到更加抽象的特征,使得用户不必在做特征提取,例如CNN中:输入一张图片,通过一系列的卷积、池化将会得到一些抽象特征,减少了为每个问题开发新的特征提取器的任务。相反,机器学习相关模型需要人工提取特征,再通过模型进行分类或回归。
4、执行时间
机器学习需要的执行时间远少于深度学习,深度学习参数往往很庞大,需要通过大量数据的多次优化来训练参数。
5、可解释性
深度学习可解释性弱于机器学习,深度学习的大部分工作在于参数的调谐,而这些调谐需要用户进行大量的实验,往往凭用户的经验决定,很难去解释该参数的意义。而在机器学习的相关模型中,可解释性较好,例如逻辑斯蒂回归,模型的参数就能代表变量的重要性程度。

参考:https://www.analyticsvidhya.com/blog/2017/04/comparison-between-deep-learning-machine-learning/
2018-08-03 22:56:08 cui841923894 阅读数 128
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

本人学历本科,初期个人兴趣看过一些机器学习的视频,后来工作调动开始接触机器学习,caffe和tensorflow,主要是一些功能使用以及caffe源码学习修改,这段时间闲下来,总结下个人的学习经历:

1.初期个人兴趣时候,看一些视频学习入门:

1) B站:李宏毅机器学习 深度学习

讲的很细,很深奥,但是因为是视频,感觉大概能听懂;

2)B站麦子学院:

【深度学习全程一】Deep Leanding基础及介绍

【深度学习全程二】Deep Leanding进阶:算法与应用

【深度学习全程三】Deep Leanding深化

个人感觉比较适合新手,讲的比较通俗易懂,一节介绍一节例程;

3)还有其他人推荐视频:机器学习课程–吴恩达网易公开课

2.机器学习&深度学习

初期因为兴趣+视频,学的比较慢(个人感觉看视频入门即可,学习非常慢),后来因为工作需要迅速掌握入门(果然要有压力才有动力),直接推荐书籍:

1)机器学习

周志华的《机器学习》 《机器学习实战》 和《李航.统计学习方法》

机器学习入门书籍,快速翻阅(因为能力有限,只能看懂大概,但是看完基本可以和这边算法人正常对话讨论~)

第一本主要讲理论,算法,因为时间需要,快速浏览的,大概知道机器学习需要掌握哪些知识;第二本是python 写算法,工作空闲就练练(因为这边都是python numpy,正好学习用到);

2)深度学习,仅推荐《深度学习》,出自 Goodfellow、Bengio 和 Courville 三位大牛之手,人民邮电出版社出版发行(就是这本:https://baike.baidu.com/item/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/22059753?fr=aladdin#1),细细品味吧~

3.caffe学习

书籍:《21天实战Caffe》

其他:caffe安装、源码分析的博客,其实看书也可,主要看懂caffe的blob、layer、Net这三块代码。

4.tensorflow学习

书籍:

TensorFlow实战_黄文坚

TensorFlow技术解析与实战

Tensorflow_实战Google深度学习框架

5.其他:tensorflow官网和中文社区的例程、教程,自己安装tensorflow后练习下

注意:caffe和tensorflow学习可以google或者社区看下,很多教程,照着做下去就好,个人caffe和tensorflow python学习:http://www.cnblogs.com/denny402/tag/caffe/
这里写图片描述

没有更多推荐了,返回首页