Un-supervised Learning

  1. 分为两类:
    (1)聚类 & 降维(化繁为简):将多个输入抽象成一种类型
    (2)Generation(无中生有):输入一个code,得到一个样本
  2. 聚类中最常用的方法有:
    (1)k-means:a.随机初始化k个类的中心点;b.每个样本以最靠近的中心点的所属类为类标签;c.根据新得到的分类更新中心点;d.重复步骤b、c,直到模型收敛。
    (2)Hierarchical Agglomeratiive clustering (HAC)层次聚类方法:a.根据样本之间的两两相似程度来建立一颗树;
  3. 单单用聚类来表示样本的话,难以很形象的表示样本的特征,大部分样本不是确定属于哪一类的,可以用一个vector分布来表示这个样品的特征。通过这种方式能够将样品从属性表示,到特征表示这个比较低维的空间中。方法有特征选择和PCA。

PCA的解法下所示

(1)首先要让样本在所投影到的维度上的方差尽量大

(2)PCA多维合并的优化函数,w的转置乘以协方差矩阵再乘以w,如图所示,找到一个w使得整个目标函数最大化。

(3)求解该优化函数,可以用neural network的方式,梯度递减;也可以用传统经典方法对这个函数进行求解,其中函数的解为协方差的最大特征值所对应的特征向量。

(4)求解下一个维度,其中下一个维度的解为协方差矩阵所对应的第二大的特征值所对应的特征向量,因为协方差矩阵的特征向量依次正交。

(5)PCA decorrelation:投影后数据在新的坐标的Cov各个维度之间是不相关的,也就是矩阵对角线外都为0,这样在做实现模型的时候可以减少参数,比如高斯假设的时候,各轴之间相关为0,那么减少了很多参数。

(6)另外一种解释方法就是,用多个component来线性表示原来的样本,最小化reconstruction error,

最后利用svd求解方程,得到的U矩阵就是协方差矩阵的k个特征向量

(6)由于w之间时互相正交的,所以,也就是说c可以表示成这两者的乘积,PCA由此呢,也可以看成是Autoencoder,即具有一层隐含层的神经网络(线性激活函数),即输入和输出之间的误差越小越好。如果不是传统的PCA的方法,只用neural network的解法不能够保证w之间是垂直的。但是如果用网络的话,可以用deep autoencode


(7)PCA的缺点:
a.如果是PCA的话,只能将所有样本映射到方差最大的维度上,但是这种方式可能使得不同label的样本重合在一起,难以区分。可以用LDA(Linear Discriminate Analysis)考虑,不过这种方式是supervised Learning。
b.PCA的另外一个缺点就是线性的,PCA难以将S型曲面拉直,只是会将曲面压扁,但是仍然会存在不同label样本的重合。
(8)计算每个维度上的variance,然后看每个维度上variance所占的比重,取前几个占有较大比重特征就好了。PCA的component不一定是样本的一部分,有可能包含了整个样本或者与样本完全不一样的东西,但是它们的线性组合可以构成一个样本。这种现象可以用NMF来解决。

推荐算法中的MF方法,可以解释成用户和物品的隐含因子的匹配程度r = p*q+e,e表示reconstruction error,可以用svd来求解。如果存在缺失值的话,可以迭代求解。


矩阵分解可以加入偏移向量,可能结果会更加准确。

PCA的其他变形版本MDS(只需要样本之间的距离进行降维,保留了高维空间中的版本)、PPCA、KPCA、CCA(两种不同的source),ICA(用Independant vector),LDA(supervised Learning)。

李宏毅机器学习——学习笔记(12) Un-supervised Learning-Linear methods相关推荐

  1. 李宏毅nlp学习笔记12:DST(Dialogue State Tracking)

    该任务所处的位置: 下图中红色框框框住的地方. 该任务很重要: DST具体做什么: 最后给出的结果一般是一个set: 一般key是提前给好的. value则会给出一个范围. key一般会分成domai ...

  2. 【李宏毅2020 ML/DL】P57 Unsupervised Learning - Linear Methods | PCA Matrix Factorization

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  3. 【李宏毅机器学习】Brief Introduction of Deep Learning 深度学习简介(p12) 学习笔记

    李宏毅机器学习学习笔记汇总 课程链接 Deep Learning 文章目录 Deep Learning Deep Learning attracts lots of attention Ups and ...

  4. 台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep?

    台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep? 本博客整理自: http://blog.csdn.net/xzy_thu/article/detail ...

  5. 【机器学习笔记】可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning)

    [机器学习笔记]可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning) 目录 [机器学习笔记]可解释机器学习-学习笔记 Interpre ...

  6. 李宏毅深度学习笔记——呕心整理版

    李宏毅深度学习笔记--呕心整理版 闲谈叨叨叨: 之前看过吴恩达的一部分课程,所以有一定理论基础,再看李宏毅的课程会有新的理解.我先以有基础的情况写完学习过程,后续再以零基础的角度补充细节概念(估计不会 ...

  7. 联邦学习笔记-《Federated Machine Learning: Concept and Applications》论文翻译个人笔记

    联邦学习笔记-<Federated Machine Learning: Concept and Applications>论文翻译个人笔记 摘要 今天的人工智能仍然面临着两大挑战.一是在大 ...

  8. R语言与机器学习学习笔记(分类算法)

    转载自:http://www.itongji.cn/article/0P534092014.html 人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经 ...

  9. 机器学习学习笔记(一)绪论

    机器学习学习笔记(一)绪论 声明在开头:本篇文章主要是针对周志华教授的<机器学习>的学习心得. A. 机器学习初见 ArthurArthurArthur SamuelSamuelSamue ...

最新文章

  1. jsp项目放入宝塔windows环境_《鸡站群组》-教你建站(1.1) 下载并配置windows宝塔面板...
  2. 使用Spring Cloud Gateway保护反应式微服务
  3. Iphone开发-NSdata 与 NSString,Byte数组,UIImage 的相互转换
  4. 分级时间轮优化普通时间轮定时器
  5. Swift - 邮件发送功能的实现
  6. Elasticsearch-日期类型
  7. 最后的人 - 主机程序员十年的分享
  8. 我的Linux生涯之开机自动挂载
  9. linux能上ps吗,在linux上使用ps(转载)
  10. es获取最大时间的记录_Python日志写入ES之五种方案比较
  11. 使用REST风格架构您需要知道的一些事
  12. JSP脚本连接数据库
  13. Saving Tang Monk II(bfs+优先队列)
  14. TensorFlow笔记(6) 单神经元分类
  15. 小学生计算机培优辅困记录,信息技术培优辅差工作计划范文
  16. 阿里云 mysql 导出数据库_阿里云服务器如何操作导出数据库
  17. 什么是MES?MES系统有哪些功能?
  18. matlab 点顺时针排序,按顺时针顺序对点排序?
  19. 《计算机二级Python语言程序设计考试》第3章:基本数据类型
  20. python+opencv像素的加减和加权操作

热门文章

  1. SSF(snapshot freeze) 心脏冷冻技术 (笔记1)
  2. springboot项目系列-论坛系统01介绍技术栈
  3. 时间超限怎么办:手把手教你打表法
  4. 听说转行软件测试只能自学,培训机构是个坑?
  5. .net core 给图片流加水印
  6. PowerBI-日期和时间函数-HOUR\MINUTE\SECOND
  7. GBDT(梯度提升决策树)算法(详细版)
  8. Yarn 源码 | 分布式资源调度引擎 Yarn 内核源码剖析
  9. 无监督学习:生成模型
  10. 模拟DOS系统文件的物理结构和管理使用