diff --git a/docs/1.机器学习基础.md b/docs/1.机器学习基础.md index f238fbed..21958f10 100644 --- a/docs/1.机器学习基础.md +++ b/docs/1.机器学习基础.md @@ -9,15 +9,15 @@ 1. 获取海量的数据 2. 从海量数据中获取有用的信息 -我们会利用计算机来彰显数据背后的真实含义,这才是`机器学习`的真实含义。 +我们会利用计算机来彰显数据背后的真实含义,这才是`机器学习`的意义。 ## 机器学习 场景 ``` 例如:识别动物猫 模式识别(官方标准):人们通过大量的经验,得到结论,从而判断它就是猫。 -机器学习(数据学习):人通过阅读进行学习,观察它会叫、小眼睛、两只耳朵、四条腿、一条尾巴,得到结论,从而判断它就是猫。 -深度学习(深入数据):人通过深度了解它,发现它会'喵喵'的叫、与同类的猫科动物很类似,得到结论,从而判断它就是猫。(深度学习常用领域:语音、图形) +机器学习(数据学习):人们通过阅读进行学习,观察它会叫、小眼睛、两只耳朵、四条腿、一条尾巴,得到结论,从而判断它就是猫。 +深度学习(深入数据):人们通过深入了解它,发现它会'喵喵'的叫、与同类的猫科动物很类似,得到结论,从而判断它就是猫。(深度学习常用领域:语音识别、图像识别) 模式识别(pattern recognition): 模式识别是最古老的(作为一个术语而言,可以说是很过时的)。 我们把环境与客体统称为“模式”,识别是对模式的一种认知,是如何让一个计算机程序去做一些看起来很“智能”的事情。 @@ -40,7 +40,7 @@ http://baike.baidu.com/link?url=76P-uA4EBrC3G-I__P1tqeO7eoDS709Kp4wYuHxc7GNkz_xn * 垃圾邮件: 会自动的过滤垃圾广告邮件到垃圾箱内。 * 超市优惠券: 你会发现,你在购买小孩子尿布的时候,售货员会赠送你一张优惠券可以兑换6罐啤酒。 * 邮局邮寄: 手写软件自动识别寄送贺卡的地址。 -* 申请贷款 或 进入赌场: 通过你最近的金融活动信息进行综合评定,决定你是否合格。 +* 申请贷款: 通过你最近的金融活动信息进行综合评定,决定你是否合格。 ## 机器学习 组成 @@ -84,8 +84,8 @@ http://baike.baidu.com/link?url=76P-uA4EBrC3G-I__P1tqeO7eoDS709Kp4wYuHxc7GNkz_xn > 选择算法需要考虑的两个问题 1. 算法场景 - * 预测明天是否下雨,可以选择监督学习算法 - * 给一群陌生的人进行分组,可以选择无监督学习算法。 + * 预测明天是否下雨,因为可以用历史的天气情况做预测,所以选择监督学习算法 + * 给一群陌生的人进行分组,但是我们并没有这些人的类别信息,所以选择无监督学习算法、通过他们身高、体重等特征进行处理。 2. 需要收集或分析的数据是什么 > 举例 diff --git a/docs/6.支持向量机.md b/docs/6.支持向量机.md index 2916dc48..b09d4e3d 100644 --- a/docs/6.支持向量机.md +++ b/docs/6.支持向量机.md @@ -3,29 +3,59 @@ ![支持向量机_首页](/images/6.SVM/SVM_1.jpg) -## 支持向量机的概念 - -> 支持向量机(Support Vector Machines, SVM) +## 支持向量机 概述 +支持向量机(Support Vector Machines, SVM):是一种机器学习算法。 * 支持向量(Support Vector)就是离分隔超平面最近的那些点。 * 机(Machine)就是表示一种算法,而不是表示机器。 + +## 支持向量机 背景 + +* 如果把所有的点看作地雷,那么我们(超平面)得找到最近所有的地雷,并保证我们离它最远。 +* 所以:选择D会比B、C分隔的效果要好很多。 + +![线性可分](/images/6.SVM/SVM_3_linearly-separable.jpg) + + +## 支持向量机 原理 + +### 支持向量机 工作原理 + +![k_2](/images/6.SVM/k_2.jpg "k_2") + +对于上述的苹果和香蕉,我们想象为2中水果类型的炸弹。(保证距离最近的炸弹,距离它们最远) + +1. 寻找最大分类间距 +2. 转而通过拉格朗日函数求优化的问题 + +### 基础介绍 + * SVM有很多种实现,最流行的一种实现是: `序列最小优化(Sequential Minimal Optimization, SMO)算法`。 * 下面还会介绍一种称为`核函数(kernel)`的方式将SVM扩展到更多数据集上。 -* 实战项目:回顾第2章中手写识别的案例,并考察其能否通过SVM来提高识别的效果。 * 注意:`SVM几何含义比较直观,但其算法实现较复杂,牵扯大量数学公式的推导。` + +* 数据可以通过画一条直线就可以将它们完全分开,这组数据叫`线性可分(linearly separable)`数据,而这条分隔直线称为`分隔超平面(separating hyperplane)`。 +* 如果数据集上升到1024维呢?那么需要1023维来分隔数据集,也就说需要N-1维的对象来分隔,这个对象叫做`超平面(hyperlane)`,也就是分类的决策边界。 + +![分隔超平面](/images/6.SVM/SVM_2_separating-hyperplane.jpg) + + + + ``` 优点:泛化(由具体的、个别的扩大为一般的,就是说:模型训练完后的新样本)错误率低,计算开销不大,结果易理解。 缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适合于处理二分类问题。 使用数据类型:数值型和标称型数据。 ``` -## 基于最大间隔分隔数据 +## 支持向量机 项目实战 + +### 项目实战: 手写数字识别的优化 + + + -* 数据可以通过画一条直线就可以将它们完全分开,这组数据叫`线性可分(linearly separable)`数据。 -* 而这条分隔直线称为`分隔超平面(separating hyperplane)`。 -* 如果数据集上升到1024维呢?那么需要1023维来分隔数据集,也就说需要N-1维的对象来分隔,这个对象叫做`超平面(hyperlane)`,也就是分类的决策边界。 -* ![分隔超平面](/images/6.SVM/SVM_2_separating-hyperplane.jpg) ## 寻找最大间隔 @@ -52,10 +82,6 @@ This is the simplest kind of SVM (Called an LSVM) Support Vectors are those data 5. 通常它的工作非常好。 ``` -* 选择D会比B、C分隔的效果要好很多,原因是上述的5个结论。 -* 如果把所有的点看作地雷,那么我们(超平面)得找到最近所有的地雷,并保证我们离它最远。 -![线性可分](/images/6.SVM/SVM_3_linearly-separable.jpg) - ### 怎么寻找最大间隔 > 点到超平面的距离 diff --git a/images/1.MLFoundation/机器学习基础-选择算法.jpg b/images/1.MLFoundation/机器学习基础-选择算法.jpg index 688317da..6e584eff 100644 Binary files a/images/1.MLFoundation/机器学习基础-选择算法.jpg and b/images/1.MLFoundation/机器学习基础-选择算法.jpg differ