WDK李宏毅学习笔记第九周01_Unsupervised Learning—linear model

本文主要是介绍WDK李宏毅学习笔记第九周01_Unsupervised Learning—linear model,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Unsupervised Learning—Linear Model

文章目录

  • Unsupervised Learning—Linear Model
  • 摘要
  • 引言
  • 一、Dimension Reduction
    • 1.1 化繁为简
    • 1.2 Generation(无中生有)
  • 二、Clustering(聚类)
    • 2.1 Clustering是什么?
    • 2.2 K-means
    • 2.3 HAC (层次聚类)
  • 三、Distributed Representation(分布式表达)
    • 3.1 做dimension reduction的目标
    • 3.2 Feature selection(特征选择)
    • 3.3 Principle component analysis(PCA)
    • 3.4 PCA - Another Point of View
    • 3.5 Weakness of PCA
  • 4、应用
    • 4.1 Pokemon
    • 4.2 MNIST
    • 4.3、Matrix Factorization
  • 结论


摘要

本章介绍了Dimension Reduction两种方法(“化繁为简”,“无中生有”)的基本思想,阐述了Clustering的基本思想及常用方法(K-means,HAC)的基本原理,重点说明了PCA的基本原理及其常见的应用(MNIST,Matrix Factorization等)。


引言

  1. “化繁为简”是将多个图像的共性点抽象出来,“无中生有”是将多个图像作为label,然后寻找一组基础图片使得所有的label都可由基础图片线性组合得到。
  2. Clustering的目的就是将输入进行分类,K-means的主要原理是用每一类的均值去更新center的vector,HAC的主要原理是建立树状图计算相似度进行分类。
  3. 只进行简单的分类会丢掉很多输入的信息,于是我们需要用Distributed Representation,用多个属性去描述输入,常用方法有feature selection和PCA,feature selection的思想是删除不重要的维度,PCA的思想是将输入作为model的label。然后找出一组basic component,这组basic component线性组合可以表示全部的label。

注:输入不用必须是图像,可以是能用vector表示的任何事物。


一、Dimension Reduction

Dimension Reduction分为两种,一种是“化繁为简”,一种是“Generation(无中生有)”。

1.1 化繁为简

化繁为简是输入一个复杂的input,经过function处理后输出一个简单的output,该output能很好的表示input。例如:输入一些实际的树,这些树对应的输出都是相同的抽象的树。(如下图)
在这里插入图片描述

1.2 Generation(无中生有)

Generation要做的是训练一个function给现有的事物贴标签。例如:训练一个function,向该function输入一个code,然后就会输出对应的某一棵树,即使输入一个随机的code,机器也可以画出来一张图片,不同的输入,输出不同。
在这里插入图片描述

二、Clustering(聚类)

2.1 Clustering是什么?

Clustering就是用很多images训练一个function,向训练好的function输入image,就会输出该image的类别。也就是将image分类。

2.2 K-means

在Clustering最常用的方法就是K-means。K-means是怎样的?例如:我们有很多unlabeled data X1~XN(每个x都代表一张image),要把它们做出k个cluster,这时就可用k-means,解决问题的关键就是我们需要找到每一个cluster的center(C1 ~ CK),如何找?

  1. 我们可以用training data随机找K个image的vector来初始化center。
  2. 用center将training data进行分类。
  3. 分别将每一类的object取平均值,用该均值更新center,再重新从第2步开始,多次循环,得到最终的center。

2.3 HAC (层次聚类)

计算input两两之间相似度,将相似度最高的合并,然后重新计算两两之间的相似度,最高的合并,以此类推。 例如现在有5个example(如下图蓝1~蓝5),接下来进行下述操作:

  1. 我们计算蓝1~蓝五两两之间的相似度,若蓝1和蓝2相似度最大,就将蓝1和蓝2 merge起来,得到新的vector黄1,再计算黄1和蓝3 ~ 蓝5两两之间的相似度,若蓝4和蓝5相似度最大,就将其merge起来得到红1,再计算相似度,以此类推,得到如下的树形结构。
  2. 接下来我们可以对tree structure切一刀,若在下图蓝色线切一刀,就将5个example分为3类。若在红色处切一刀,就将其分为两组。
    在这里插入图片描述

三、Distributed Representation(分布式表达)

在处理实际问题时,光做cluster是非常不够的,例如,做完cluster后,一张图片的label是树,但是我们不知道树的大小品种等等信息,这张图片的很多信息都被丢失了,所以我们需要用Distributed Representation,用多个属性去描述图片。Distributed Representation和Dimension Reduction做的事情是一样的,只是称呼不同。

3.1 做dimension reduction的目标

我们需要做的就是找一个function,这个function input一个高维的vector,output是一个低维的vector。
在这里插入图片描述
做dimension reduction常用的方法是Feature selection和Principle component analysis(PCA)。

3.2 Feature selection(特征选择)

做dimension reduction里面最简单的是feature selection,例如:input是二维的,它的散点图如下图所示,我们可以发现它的分布与x1基本上无关,所有我们就删除该维度。但是这个方法并不是总有用的,当分布的维度是任何情况下都不可以拿掉的时候,我们就没法使用该办法了。
在这里插入图片描述

3.3 Principle component analysis(PCA)

PCA做的事情是,用很简单的linear function,input x和output z的关系就是x乘上一个矩阵W就得到output z,我们只需要根据一些input,将W找出来。

3.4 PCA - Another Point of View

另一个PCA比较直观的想法是,假设我们在做手写数字识别,这些数字其实就是由一些Basic Component(笔画)所组成的,如下图,数字"7"就可以用3个笔画表示。
在这里插入图片描述
于是我们就可用如下的vector来表示"7"。
在这里插入图片描述
所以,数字就可用如下公式来表示:
在这里插入图片描述

  1. x表示手写数字的vector。
  2. u表示所有笔画的vector。
  3. c表示笔画前的系数(0或者1)。
  4. x \frac{}{x} x表示所有x的vector的平均数。

于是我们可以得到:
在这里插入图片描述
我们现在不知道u1~uk是什么,所以我们可以构造如下的loss function求u的值。
在这里插入图片描述

3.5 Weakness of PCA

  1. PCA在处理样本data时,是将其投映到方差最大的地方,但是如果data是不同类的时候,投影后的数据将无法区别不同类的数据。
  2. PCA是linear的,如果要将如下图片拉直,PCA是做不到的。
    在这里插入图片描述

4、应用

4.1 Pokemon

有800只宝可梦,每只宝可梦都是用六个属性(HP,Atk,Def,Sp Atkins,Sp Def,Speed)表示,这样每个宝可梦都可以用一个6维的vector表示,我们可以用PCA按如下步骤对其分析:

  1. 对其进行分析处理,例如对六个宝可梦分析对其影响大的属性,一个常见的办法就是对每个属性算其对所有宝可梦算该属性值和的比率,
    在这里插入图片描述
    得到的结果如下,取4个影响(值)比较大的,我们认为这4个维度就可以区分不同的宝可梦。
    在这里插入图片描述
  2. 我们再将不同的样本从这4个方向上进行投影,如此可以分析这4个方向分别代表什么及其含义。
    在这里插入图片描述

4.2 MNIST

我们可以将每一张数字图片用多个图片的vector表示出来,其中每一个w都是一张image。
在这里插入图片描述
我们做PCA得到前30个component:
在这里插入图片描述
我们可以用这30个component表示手写数字0-9的图像。

4.3、Matrix Factorization

现在我们有5个人(A,B,C,D,E)拥有各个公仔的数目(如下图),我们希望可以知道各个公仔和购买的人之间的联系。
在这里插入图片描述
我们用傲娇和呆萌这两个维度来表示人的性格和公仔的属性,首先做假设分析,如果公仔的属性和人的性格很接近,那么这个人就会购买更多的该公仔。但是人的性格和公仔属性是没法直接知道的。
在这里插入图片描述
我们可以定义r(A,B,C,D,E)表示人物性格的vector,用r(1,2,3,4,5)表示公仔属性的vector,每个人购买某个公仔的数量就可用它们之间的内积表示,如此就可得到矩阵M=r(A,B,C,D,E) x r(1,2,3,4,5)T,我们就可以SVD求解了。
在这里插入图片描述
假如有些位置是空的,SVD求解就会不太好,这时我们可以构造一个loss function L,然后用梯度下降的方法来求解。
在这里插入图片描述

结论

对事物用cluster进行简单的分类时会丢失事物之间的很多信息,于是我们考虑用多个属性来描述某一类事物,最大程度上保存事物及该事物与其他事物之间关系的信息,常用的方法有feature selection和PCA,feature selection在实际使用中,无法处理feature的维度任何情况下都不可以拿掉的情况,PCA泛化性就强多了,它是找出事物的基本组成部分,用这些基本组成部分来描述事物,但是PCA得到的基本组成部分和我们人们想象的结果不太一样,可能会得到我们无法理解的component,这样不利于我们深入理解我们的model,可以用NMF解决该问题。

这篇关于WDK李宏毅学习笔记第九周01_Unsupervised Learning—linear model的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/720466

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个