每日一博 | 无监督学习算法
- 本文首发自公众号:RAIS,点击直接关注。
前言
本系列文章为 《Deep Learning》 读书笔记,可以参看原书一起阅读,效果更佳。
无监督学习算法
就是无监督的一种学习方法,太抽象,有一种定义(这种定义其实不够准确,无监督和监督之间界限模糊)是说如果训练集有标签的就是有监督学习,无标签的就是无监督,没有标签,意味着不知道结果。有监督学习算法可以知道一堆图片它们是狗的照片,无监督学习算法只能知道它们是一类,但这一类叫什么就不知道了。
无监督学习算法没有标签,因此训练的也往往是没有明确目标的,对于结果也可能不好说是好是坏,在本质上来说,无监督学习算法是一种概率统计的方法,在数据中可以发现一些潜在的结构。这么说还是不够清楚,举几个例子说明无监督学习方法有什么作用:
用户分类:马云说每天晚上有五十万的人会浏览淘宝,什么也不买,他也不知道为什么,那既然有如此大的流量,不能浪费,进行精准推荐,会不会效果很好呢?在庞大的用户群中,找到和你很相似的用户,也说不出来哪里相识,反正就是相似,他买过的东西你还没买过,推荐给你,你会不会就冲动了呢?
发现异常:对于网站来说,防止 DDOS 攻击就需要在巨大的请求中找到那些非法请求(广义上的非法,并非单纯指参数非法),进行丢弃不进行服务,这可能就需要无监督学习算法,找到那些和正常用户不一样的请求,也说不出来哪里不一样,反正就是不一样,直接抛弃请求,不进行服务,那攻击带来的影响就会降低一些。
表示
表示是深度学习的核心主题之一,一个经典的无监督学习任务是找到数据的最佳表示,去除那些无关紧要不影响大局或影响因子极小的因素,找到数据最核心最关键的简单表示,这里的简单表示包括低纬表示、稀疏表示和独立表示。
- 低纬表示:将 x 中的信息尽可能压缩在一个较小的表示中,通常会产生比原始的高维数据具有较小或较弱依赖关系的元素;
- 稀疏表示:将数据集嵌入到输入项大多数为零的表示中,通常会用于需要增加维数的情况,使得大部分为零的表示不会丢失很多信息;
- 独立表示:试图分开数据分布中变化的来源,使得表示的维度是相互独立的。
主成分分析
主成分分析(PAC)是经典的降维算法,是一种无监督学习。主成分顾名思义,主要的成分,与之相对应的就是非主要的成分。举个例子,矩阵中有些向量可以用其他的某些向量线性表示,线性相关,那这个向量有一点多余了,去除后不影响原来的空间,基于这样的思想,我们可以考虑将矩阵压缩,在减小矩阵维数的同时尽可能保留原来的信息。
对于方阵的特征分解,就是线性代数中的方法:
$$ X=QΛQ^{-1} $$
其中 X 是 m*m 的矩阵,X 对应的协方差矩阵为:
$$ Var(x)=\frac{1}{m-1}X^TX $$
PAC 通过线性变换找到一个 Var(x) 是对角矩阵的线性表示:z=$W^TX$
对于任意矩阵,奇异值分解(SVD)是最接近于特征分解的,同样这里也是:
$$ X=U∑W^T $$
其中 X 是 m*n 的矩阵;U 是 m*m 的方阵,其中的正交向量称作左奇异向量;∑ 是 m*n 矩阵,除对角线元素外都是零,对角线上的元素称为奇异值;W 是 n*n 的矩阵,其中的正交向量称为右奇异向量。具体的求法步骤为:
- U:求 $XX^T$ 的特征值和特征向量,再单位化;
- W:求 $X^TX$ 的特征值和特征向量,再单位化;
- ∑:将 $XX^T$ 的特征值求平方根。
以 W 作为特征向量基,可以得到原来的特征向量方程,$U^TU=I, W^TW=I$:
$$ X^TX=(U∑W^T)^TU∑W^T=W(∑)^{2}W^T $$
X 的方差:
$$ Var(x)=\frac{1}{m-1}X^TX=\frac{1}{m-1}W(∑)^{2}W^T $$
z 的协方差满足对角的要求:
$$ Var(z)=\frac{1}{m-1}Z^TZ=\frac{1}{m-1}(∑)^2 $$
K-maeans 聚类(K-均值聚类)
聚类与分类是不同的,分类的类别是已知的,需要根据训练集进行训练和学习,找到不同的特征,再喂入测试集输出结果;聚类是事先不知道数据会被分成几类,通过聚类分析将数据分成几个群体。具体方法:
- 随机将找到 K 个特殊数据点;
- 其他的数据点根据距离分成 K 类;
- 然后在 K 类中每个类别中重新推选 K 个特殊的数据点;
- 如果新选定的数据点与之前选定的数据点距离较大,则根据新的数据点重复步骤 2 之后的步骤;
- 如果新的数据点和原来的数据点距离在一定阈值内,算法结束。
K-means 聚类优点是快,简单,对于数据点属于一团一团的数据效果很好,但是比较严重的问题是有可能根据初始值的不同分类效果不同且不好,比如汽车图片分类,有可能按照是卡车还是小轿车分类,也有可能是根据红色还是白色分类甚至有些是错误的,这一点需要注意,在不合适的地方此方法可能达不到目标。
总结
本文介绍了主成分分析和 K-means 聚类两种非监督学习方法。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
FASTOS 2.0.4 版本发布
2020-04-11 v2.0.4 新增百度ueditor富文本编辑器更换之前编辑器 增强ueditor 新增在线删除功能,修改ueditor 完全适配fastos,页面引入直接使用 增加上传图片添加水印 修改公告展示页面,改用iframe引入确保页面所见即所得 修复授权角色选中值丢失情况 修复表格初始化选中,获取选中行值丢失问题 修复TAB栏菜单刷新/TAB切换刷新问题 修复定时任务功能cron工具 不能显示最近执行时间,查询列表新增下次执行时间字段 新增3套登陆页面风格,可以再后台配置默认风格 整合Spring注解Redis缓存,解决Redis故障或者不可用情况任然可以执行方法获取参数 兼容不配置Redis缓存数据库项目也可以运行 解决初次登陆显示问题 登陆页面主页面增加页面压缩减低易读性,提高安全性。此功能可以全局开启 完善国际化字段 去掉Dao包,简化代码 调整包名统一规范 优化代码,修复若干细节 FASTOS 介绍 FastOS 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring MVC、Apache Shiro、MyBatis...
- 下一篇
Windows 10 下一版本更新代号为“Manganese”
微软方面于2019 年 2 月开始测试 Windows 10 20H1 功能更新,其预计在 2020 年 5 月正式开始面向用户推出。然而由于微软一直在 Azure 和 Windows 工程之间调整时间表,目前,该公司已提前发布了 20H1 更新的预览版本。 Windows 2020 年 5 月 10 日更新基于一个代号为“Vibranium”的新核心平台,据报道称,Windows 10 的下一个更新“20H2”则代号为“Manganese”(锰)。此消息基于 Windows 10 预览版本(即最近发布的版本 19603)中发现的证据,该版本也将 Linux 文件集成引入了 File Explorer 应用程序。 现如今,微软的 Azure 和 Windows 工程进度计划已完成调整,Azure 团队正按照元素周期表对新版本进行代号命名。在锰之后,下一个 Windows 10 更新的代号将是 Iron(铁)。 在 Windows 10 预览构建版本中,用户如果在 PowerShell 中运行'Get-VMHostSupportedVersion',就会列出所有计算机上支持的 VM 配置...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Thymeleaf,官方推荐html解决方案