精读西瓜书才了解西瓜书的由来,原来里面机器学习的例子都是拿西瓜举例啊。为了把基础概念弄得清清楚楚,用博客记录下学习的过程,也方便日后查看。

一、机器学习的原理

1、对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么就称这个计算机程序从经验E中学习。这个经验实际就是数据。

机器学习就是把现实世界当中要研究的对象通过特征值将其数字化,然后让计算机通过这些已有的数字学习经验,即训练,得到判断能力即模型。

例①垃圾邮件识别/过滤:假定你的email程序观察到,哪些邮件被你标记为垃圾邮件,基于这个内容机器学习到了怎样更好的识别过滤垃圾邮件。
任务T:将邮件分类为垃圾邮件和非垃圾邮件
性能度量P:邮件被正确识别为垃圾邮件(非垃圾邮件的数量或比例)
经验E:观察你如何将邮件标记为垃圾邮件和非垃圾邮件

例②人脸识别
任务T:识别出人脸
性能度量P:识别准确率
经验E:很多人脸照片,没人的特征是是什么,什么样的眼睛、脸型、鼻子等等

2、计算机学习需要经验,这个经验E就是数据集
有了经验,那机器要怎么样能像人类一样学习呢?

3、西瓜书上经典的例子:你这瓜保熟吗?
把西瓜对象提取出三种类型的特征值,然后通过算法让机器去学习,从而拥有了判断西瓜好坏的能力,我们把这个可以将经验转化为最终的模型的算法称之为学习算法。

西瓜特征提取:

根蒂、色泽、敲声

现实世界的任何事物其实都可以通过属性或者特征来进行描述,三个属性就是西瓜的一组数据。属性的数目称之为维数,西瓜用了三个特征,因此就是三维。

二、机器学习算法分类

  • 有监督学习:新闻文章故事的文章、数据集细分市场
  • 无监督学习:邮件垃圾和非垃圾,糖尿病和非糖尿病
  • 半监督学习

少量有标签数据+大量无标签数据,是监督学习和无监督学习的结合

1、监督学习分类
分类:所有标签都是离散的值
①你有很多客户,你想要写一个软件来检查每一个客户的账户,预测这个账户是否会被入侵
②人脸识别,有两张图片,识别是用一个人还是不同的人
③人脸识别,给一张图片,数据库里有1000个人中找出是哪个人

回归:所有标签是连续的值
①某个商品有很多件,你想要预测未来3个月这个商品会卖出多少件
②估计一个人的年龄

分类对应标签为类别型的情况,根据身高、体重、年龄等特征判断人的性别,可以是男或女,只能在有限的类别中选择其一。
回归对应标签为数值型的情况,例如,根据年龄、学历、工作经验等特征判断人的收入,可以是某个范围内的任意取值

所以我们可以看出一个问题是分类问题还是回归问题,最好的判断就是回归是具体的问题

2、特征提取:
(1)观察
(2)特征提取
(3)特征筛选
(4)训练、得到数据

3、假设空间就是所有可能的模型组成的集合

4、归纳偏好若认为相似的样本应有相似的输出
“奥卡姆剃刀”是一种常用的、自然科学研究中最基本的原则,就是选你认为最简单的,但是每个人的标准不同,奥卡姆剃刀并不是唯一的选择。
其实一个学习算法,没有最好只有更好,这是“没有免费的午餐”定理告诉我们的事实,一切都要具体问题具体分析,要谈论算法的相对优劣,必须针对具体的学习问题

三、模型评估与选择

1、经验误差和过拟合
训练误差:学习器在训练集上的误差
泛化误差:在新样本上的误差

过拟合:学的太“好”了,把不够典型的一些特征也学进去了
欠拟合:学的太差了

训练数据:

比如一些带有锯齿状树叶的训练样本,找了一片普通树叶


不是树叶➡️
【过拟合模型分类OS】:连锯齿都没有,这不是树叶啊
拿一个通体绿色的树的训练样本


是树叶➡️
【欠拟合模型分类OS】:只要是绿的就是树叶没毛病!

2、评估方法:需使用一个“测试集”来测试学习器对新样本的判别能力,以测试集上的“测试误差”作为泛化误差的近似

(1)留出法:直接将数据集D划分互斥的训练集S和测试集T,采用随机划分、重复实验

(2)留一法是特殊交叉验证法

3、特征没做好,参数调到老。调参便是根据制定的数据和模型,通过调整参数的方法改善模型性能。

错误率是分类错误的样本数占样本总数的比例
精度是分类正确的样本数占样本总数的比例

分类结果混淆矩阵

真实情况 预测结果 预测结果
正例 反例
正例 TP(真正例) FN (假反例)
反例 FP (假正例) TN(真反例)

查准率和查全率是一对矛盾的度量,鱼与熊掌不可兼得,想要找的准,那数量就少;想要找的多,那不准确的也多。

用查准率和查全率做曲线的图成为“P-R图”,如果一个学习器的P-R曲线被另外一个学习器的P-R曲线完全“包住”,则可断言后者的性能优于前者

平衡点就是“查准率=查全率”时的取值,它可以用于比较学习器的性能好坏
F1时基于查准率和查全率的调和平均,F1值越大,认为该学习器的性能较好

4、ROC曲线
ROC全称是“受试者工作特征”曲线,也是一般情况下泛化性能的好坏
ROC曲线越接近左上角性能越好

5、偏差与方差
如果拿打靶来举例,偏差就是枪瞄准的准不准,最后期望值能否落在目标上方差就是枪性能好不好,打的散不散

偏差大➡️欠拟合➡️增加特征;使用更复杂模型
方差大➡️过拟合➡️更多数据;提炼特征;正则项

四、线性模型

西瓜书毕竟是入门的教材,很多公式推导就一笔带过了,西瓜不够南瓜来凑,南瓜书上有详尽的公式推导,相辅相成,相得益彰
1、基于均方误差最小化来进行模型求解的方法成为“最小二乘法”

2、对数机率回归是属于概率性判别式模型,是线性分类算法

3、算法模型性能优化
过拟合:

  • 获取更多的训练数据
  • 减少输入的特征数量
  • 正则化
    欠拟合:说明模型太简单,需要增加模型的复杂度
  • 增加有价值的特征
  • 增加多项式特征

多分类学习一般来说转换成二分类任务

五、决策树

1、决策树顾名思义就是学习用来决策的树,它是大量样本训练出来的
决策树的生成是一个递归过程

2、基尼指数
CART决策树使用基尼系数

六、集成学习

集成学习的基本结构为:先产生一组个体学习器,再使用某种策略将它们结合在一起。集成模型如下图所示

在上图的集成模型中,若个体学习器都属于同一类别,例如都是决策树或都是神经网络,则称该集成为同质的 (homogeneous);若个体学习器包含多种类型的学习算法,例如既有决策树又有神经网络,则称该集成为异质的 (heterogenous)。

七、神经网络

1、神经网络中最基本的单元是神经元模型(neuron)。 在生物神经网络的原始机制中, 每个神经元通常都有多个树突(dendrite), 一个轴突(axon)和一个细胞体(cell body), 树突短而多分支, 轴突长而只有一个; 在功能上, 树突用于传入其它神经元传递的神经冲动, 而轴突用于将神经冲动传出到其它神经元, 当树突或细胞体传入的神经冲动使得神经元兴奋时, 该神经元就会通过轴突向其它神经元传递兴奋。

2、“M-P神经元模型”正是对这一结构进行了抽象, 也称“阈值逻辑单元“, 其中树突对应于输入部分, 每
个神经元收到n个其他神经元传递过来的输入信号, 这些信号通过带权重的连接传递给细胞体, 这些权重又称为连接权(connection weight)。 细胞体分为两部分, 前一部分计算总输入值(即输入信号的加权和, 或者说累积电平), 后一部分先计算总输入值与该神经元阈值的差值, 然后通过激活函数(activation function)的处理, 产生输出从轴突传送给其它神经元。

AND运算真值表

x1 x2 y
0 0 0
0 1 0
1 0 0
1 1 1

OR运算真值表

x1 x2 y
0 0 0
0 1 1
1 0 1
1 1 1

NOT运算真值表

x1 y
0
1 0

XOR运算真值表

x1 x2 y
0 0 1
0 1 0
1 0 0
1 1 1

在wx+b上,找阈值,比如与运算,,令w1=w2=1,b=2,则
x1=x2=1,y=1,可以划分成平面上的分类问题。

异或不好划分,于是需要两条直线划分,非线性可分问题,考虑使用多层功能神经元

人工神经元:线性+非线性
线性代数不够式一种简化描述的手段
反向传播算法是链式求导法则的衍生物
神经网络的递归结构使得BP算法具有特殊性
节点误差反转
权重更新

3、BP神经网络算法
神经网络的学习主要蕴含在权重和阈值中, 多层网络使用上面简单感知机的权重调整规则显然不够用了, BP神经网络算法即误差逆传播算法( error BackPropagation) 正是为学习多层前馈神经网络而设计, BP
神经网络算法是迄今为止最成功的的神经网络学习算法。

4、深度学习
参数越多, 模型复杂度就越高, 容量( capability) 就越大, 从而能完成更复杂的学习任务。 深度学习( deep learning) 正是一种极其复杂而强大的模型。
怎么增大模型复杂度呢? 两个办法, 一是增加隐层的数目, 二是增加隐层神经元的数目。 前者更有效一些, 因为它不仅增加了功能神经元的数量, 还增加了激活函数嵌套的层数。 但是对于多隐层神经网络, 经典算法如标准BP算法往往会在误差逆传播时发散( diverge) , 无法收敛达到稳定状态

有效地训练多隐层神经网络呢? 一般来说有以下两种方法:

  • 无监督逐层训练( unsupervised layer-wise training) : 每次训练一层隐节点, 把上一层隐节点的输
    出当作输入来训练, 本层隐结点训练好后, 输出再作为下一层的输入来训练, 这称为预训练( pretraining) 。 全部预训练完成后, 再对整个网络进行微调( fine-tuning) 训练。 一个典型例子就是深度信
    念网络( deep belief network, 简称DBN) 。 这种做法其实可以视为把大量的参数进行分组, 先找出每组
    较好的设置, 再基于这些局部最优的结果来训练全局最优。
  • 权共享( weight sharing) : 令同一层神经元使用完全相同的连接权, 典型的例子是卷积神经网络( Convolutional Neural Network, 简称CNN) 。 这样做可以大大减少需要训练的参数数目。

神经网络为深度越深,准确率越高,虽然具体表达式包含绝对值函数而不是单纯的ReLU,足够的数据才能更好地刻画出模型在空间上的分布

八、强化深度学习

机器学习≈寻找一个函数
课堂上老师使用《Space Invaders》的例子说明,卷积神经网络对图像处理友好所以在打游戏上模型不需要知道游戏的规则,通过一帧帧的画面和强化学习的训练也能变成游戏高手

强化学习( Reinforcement Learning, 简称RL) 是机器学习的一个重要分支, 前段时间人机大战的主角AlphaGo正是以强化学习为核心技术。 在强化学习中, 包含两种基本的元素: 状态与动作, 在某个状态下执行某种动作, 这便是一种策略, 学习器要做的就是通过不断地探索学习, 从而获得一个好的策略。 例如: 在围棋中, 一种落棋的局面就是一种状态, 若能知道每种局面下的最优落子动作, 那就攻无不克了。

若将状态看作为属性, 动作看作为标记, 易知: 监督学习和强化学习都是在试图寻找一个映射, 从已知属性/状态推断
出标记/动作, 这样强化学习中的策略相当于监督学习中的分类/回归器。 但在实际问题中, 强化学习并没有监督学习
那样的标记信息, 通常都是在尝试动作后才能获得结果, 因此强化学习是通过反馈的结果信息不断调整之前的策略,
从而算法能够学习到: 在什么样的状态下选择什么样的动作可以获得最好的结果。

比如一个机械臂学习将木板套到木棍上
①学习木板在木棍上往下按
学会这个动作了以后
②学会木板在木棍表面,向下按而不是掀起来
③木板在上方有个孔能精准通过木棍向下套到木棍
④木板在其他随机位置,可以通过孔向下套到木棍

这就是一个训练机械臂强化学习的简单过程

总结:

学机器学习最好的办法是先学会使用它跑出希望的结果,然后再研究其背后的原理,这样才是能持续学习下去的动力。

深入浅出聊机器学习西瓜书相关推荐

  1. 周志华-机器学习西瓜书-第三章习题3.3 编程实现对率回归

    本文为周志华机器学习西瓜书第三章课后习题3.3答案,编程实现对率回归,数据集为书本第89页的数据 使用tensorflow实现过程 # coding=utf-8 import tensorflow a ...

  2. 小白学机器学习西瓜书-第三章对数几率回归

    小白学机器学习西瓜书-第三章对数几率回归 3.3 对数几率回归 3.3.1 对数几率函数 3.3.1 估计参数 上一部分我们介绍了线性回归,包括简单的二元回归和多元回归,这两个主要解决的是拟合预测的问 ...

  3. 机器学习西瓜书(周志华)第七章 贝叶斯分类器

    第七章 贝叶斯分类器 1. 贝叶斯决策论 1.1 先验分布 1.2 后验分布 1.3 似然估计 1.4 四大概率在贝叶斯分类中指代含义 1. 朴素贝叶斯 7. 课后练习参考答案 1. 贝叶斯决策论 贝 ...

  4. 机器学习西瓜书-1-2章

    学习目标: 概览机器学习西瓜书 1.2章 学习内容: 第一章 绪论 1.1 基本术语 1.2 假设空间 1.3 归纳偏好 1.4 发展历程 第二章 模型评估与选择 2.1 经验误差与过拟合 2.2 评 ...

  5. 机器学习西瓜书南瓜书 神经网络

    机器学习西瓜书&南瓜书 神经网络 1. 神经元模型 神经网络:由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实事件物体所做出的交互反应. 神经网络最基本的成分 ...

  6. 机器学习-西瓜书、南瓜书第三章

    线性模型 基本形式 一.线性回归 回归任务最常用的性能度量是均方误差,因为均方误差有比较好的几何意义,对应了最常用的**"欧氏距离",最小二乘法就是基于均方误差进行模型求解的. 求 ...

  7. 机器学习-西瓜书第一、二章

    第一章:绪论 基本概念 数据集:所有数据的集合 训练集:训练样本的集合 属性(特征):某事物或对象在某方面表现的性质 属性值:属性的取值 属性空间/样本空间/输入空间:属性张成的空间 泛化能力:学得模 ...

  8. 【吃瓜教程】周志华机器学习西瓜书第三章答案

    线性模型结构梳理 3.1 试析在什么情形下式3.2中不必考虑偏置项b 答案一: 偏置项b在数值上代表了自变量取0时,因变量的取值: 1.当讨论变量x对结果y的影响,不用考虑b: 2.可以用变量归一化( ...

  9. 机器学习西瓜书学习——绪论

    在我们日常生活中,我们有时候会根据自己的生活经验,对即将发生的事进行预估.当我们有了足够多的经验,我们就可以对一些情况做出有效的决策.比如说"朝霞不出门 晚霞行千里",就是根据我们 ...

  10. [机器学习]西瓜书南瓜书学习(更新中)

    B站网课学习视频 南瓜书datawhale开源内容 南瓜书github开源内容 什么是机器学习 概念介绍 人工智能:让机器变得像人一样拥有智能的学科 机器学习:让计算机像人一样能从数据中学习出规律的一 ...

最新文章

  1. swap冒泡函数java_一个冒泡排序程序,將交换数组的两个元素的功能用一个Swap()方法实现...
  2. python_异常处理
  3. Buy and Resell 2018中国大学生程序设计竞赛 - 网络选拔赛
  4. shell编程入门步步高(七、流程控制)
  5. クリムゾンガールズ 汉化补丁(BUG修正)
  6. java第五章循环结构总结_Java理论学习三分钟-流程控制之循环结构(3)
  7. 关于vuex中actions可以返回promise的用法
  8. qmenu只在鼠标单击时消失_珍藏多年的CAD快捷键和鼠标操作
  9. kettle oracle数据从库到库,kettle 使用oracle数据库当做资源库
  10. Linux部署django项目最全,linux部署django项目流程(全)
  11. 计算广告第四章——合约广告
  12. Apache NIFI入门(读完即入门)
  13. 阿里云播放器SDK的正确打开方式 | Aliplayer Web播放器介绍及功能实现(三)
  14. java计算机毕业设计HTML5“守护萌宠”网站设计与实现MyBatis+系统+LW文档+源码+调试部署
  15. ICC 图文学习——LAB1:Data Setup 数据设置
  16. kdj值应用口诀_kdj指标怎么用?KDJ值应用口诀(2)
  17. 手机性能测试指标及操作
  18. Python 计算思维训练——输入和错误处理练习(二)第三关
  19. 科普:什么是ChatGPT?(文末有彩蛋)
  20. Android自动化测试工具SoloPi

热门文章

  1. 2017年sfdc工作总结_Schema Builder
  2. 网页设计语言html做思维导图,纯css3实现思维导图样式示例
  3. 航海家软件公式全破解
  4. Vue的生命周期钩子函数之activated
  5. Linux(Ubuntu)系统查看显卡型号
  6. 计算机应用参考文献,计算机应用领域英文参考文献 哪里有计算机应用领域参考文献...
  7. 中国大学最卷的专业,让我读上了
  8. 全面比较Aptos和Sui:Aptos已上线 来看看Sui
  9. python word 表格宽度_RPA手把手——python-docx 设置 word 文档中表格格式
  10. NOIP2011 洛谷 P1315 观光公交