DBA在云浪潮下的AI技能进化之路

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 作者:米诺

一、无监督学习之聚类算法

(一)聚类算法:Clustering

监督学习:使用标注(labeled)的训练样本(x,y) ,来训练一个从x映射到y的函数。

非监督学习:无标签数据。

训练集只有𝑥(1),𝑥(2).....一直到𝑥(𝑚)。但没有任何标签𝑦,也即没有输出值。 将这些数据输入到算法,由算法来找出这些数据的内在结构(规律)

图片 1.png

如上图所示,数据看起来可分成两个分开的点集(称为簇),一个能够圈出这些点集的算法(对数据进行分组),就被称为聚类算法。此外,还有其他类型的非监督学习算法,可以找到其他类型的结构或模式,而不只是簇。

23.png

Ø  应用场景举例:

1. 市场分割:在数据库中存储了许多客户信息,将他们分成不同的客户群,以对不同类型的客户分别销售产品或服务。

2. 社交网络分析:比如你经常跟哪些人联系,而这些人又经常给哪些人发邮件,跟那些人联系,由此找到关系密切的人群。

3. 使用聚类算法来更好的组织、管理数据中心。识别哪些计算机经常协作工作。用于重新分配资源、布局网络,优化数据中心。

4. 利用聚类算法分析星系的构成。

 

(二)聚类算法:K-Means(K-均值)

4.png

K-Means是应用比较广泛的聚类算法:将未标记的数据集中的数据,分门别类到不同的组(共K组)。就某一组数据,使用该组数据的质心,来表示该组。

下面举例说明。


5.png

如上图所示,K-Means算法原理及步骤如下:

1、随机初始化K个聚类中心。

2、将数据集中的每个数据关联到其中一个类,方法:分别计算出每个数据与距离每个中心点的距离(相似度),将其与距离最近的中心点关联起来。与同一个中心点关联的所有数据归成同一类。

3、分别计算每组数据(共K组)的质心,使用新计算出的K个质心为新的聚类中心。

4、重复步骤2-3 直至中心点不再变化。

 

(三)K-Means代价函数

K-Mean聚类算法本质:最小化所有的数据点与其所关联的聚类中心点之间的距离之和。故代价函数:


5.png

其中𝜇𝑐(𝑖)代表与𝑥(𝑖)最近的聚类中心点。目标便是找出使得代价函数最小的 𝑐(1),𝑐(2),...,𝑐(𝑚)𝜇1,𝜇2,...,𝜇𝑘

回顾之前的内容,这里存在两大步骤。第一大步骤是用于减小𝑐(𝑖)引起的代价,即,将数据点归类到距离其最近(相似度最高)的聚类中心。而第二大步骤则是用于减小𝜇𝑖引起的代价,即计算出各组的质心,因为各组的质心是距离该组所有数据总距离最小的点。迭代的过程一定是每次迭代都会减小代价函数,不然便是出现了错误。

局部最优问题解法(K小于10时有效):多次运行K-Means算法,每次都重新随机初始化,分别计算出代价函数,选择代价函数最小的作为最终结果。

 

(四)K-Means:其他内容

种类的数量K如何选定:

1. 人工选择:依据所解决问题的需要,人为选定。

2. 肘部法则:使代价函数下降剧烈的K,举例如下。


6.png

如上图所示,随着K值增加,代价函数的值不断下降,当到K=3时,代价函数值依然下降迅速,而此后,代价函数下降趋于平缓。由此,可以选择K=3

 

二、无监督学习之降维

(一)降维:Dimensionality Reduction

降维可把多维度特征降到任何想要的维度,如将1000维的特征降至100维。尤其是处理海量特征,又无法清晰取舍各特征时,降维不失为一种很好的方法。

l  适用场景:

1. 减少特征数量,节省算力:通过一些数据处理手段将特征归并。

2. 数据可视化:高维数据难以可视化表示。多维到二维、三维,利于可视化。

l  原理思考:

降维的原理是并不直接舍弃各特征值,而是对各特征一视同仁。在降维后,相关特征值的某些细节被舍弃了。优点是不需要使用者深入理解各特征的含义,但同时这也是最大的缺点,某些关键特征的细节信息,有可能也在降维过程中被舍弃,从而导致无法训练出很好的模型。故需慎重使用降维,只在有必要的时候(算法运行太慢或耗费太多资源)才考虑采用降维。

l  举例

1.二维一维(投影到直线)

7.png

如上所示,现在有一个二维的数据,x1x2各代表一个特征,想把这两个特征降成一个特征。取一条直线zx1x2在该直线z上会有一个对应的映射点,就可以实现从x1x2的两个维度变成一个维度z。如果x1x2m个数据样本,投影到直线z上也有m个数据样本。

2.三维→二维:三维向量投射到一个二维平面上,降至二维的特征向量

8.png

如上图所示,三维是一个立体空间,每个数据由x1x2,x3组成。我们构建一个平面空间,将三维上的每个点投影到二维平面上,然后用z1z2来表示每个点,从而实现三维降到二维。

 

(二)主成因分析PCAPrincipal Component Analysis

8.png

PCA:把所有的数据都投射到一个方向向量(Vector direction) ,并且投射的平均均方误差能尽可能地小。方向向量是一个经过原点的向量,而投射误差是特征向量向该方向向量作垂线的长度。将𝑛维数据降至𝑘维的问题:找到向量𝑢(1),𝑢(2),...,𝑢(𝑘)使得总的投射误差最小。

步骤:

Step1:特征缩放。计算出各特征的均值,然后令𝑥= 𝑥𝜇。如果各特 征值的跨度在不同数量级上,还需将除以标准差s(即该特征值的范围:max-min)

Step2:计算协方差矩阵(covariance matrix)𝛴


image.pngimage.jpeg

image.pngimage.jpeg

Step3:计算协方差矩阵𝛴的特征向量(eigenvectors)。在Octave 里可以利用奇异值分解(singular value decomposition)来求解,[U, S, V]= svd(sigma)

image.pngimage.jpeg

上式中的𝑈是一个与数据之间最小投射误差的方向向量构成的n*n矩阵。如果希望将数据从𝑛维降至𝑘维,只需要从𝑈中选取前𝑘个向量,获得一个𝑛× 𝑘维度的矩阵𝑈𝑟𝑒𝑑𝑢𝑐𝑒,然后计算获得所需的新特征向量: 𝑧(𝑖)= 𝑈𝑇reduce 𝑥(𝑖)

𝑧(𝑖)(n*k矩阵)T* (n*1矩阵) → k*1矩阵

 

三、无监督学习之异常检测

(一)异常检测:Anomaly Detection

定义:给定正常的数据集 𝑥(1), 𝑥(2), . . , 𝑥(𝑚),构建一个模型,预测新的数据 𝑥𝑡𝑒𝑠𝑡是不是异常的,即这个测试数据同属于该组数据的几率𝑝(𝑥)是多少。

9.png

如图,在蓝色圈内的数据属于该组数据的可能性较高,而离圈很远的数据,其属于该组数据的可能性就越低。这种方法称为密度估计,表达如下:

image.pngimage.jpeg

Ø  应用场景

1)欺诈检测,行为分析:例如在线采集而来的数据,特征向量中可能会包含如:用户多久登录一次,访问过的页面,在论坛的发帖数量,甚至是打字速度等。根据这些特征构建一个模型,用这个模型来识别那些不符合该模式的用户。

2)异常值检测,系统监控:如用于数据中心、应用系统,采集内存、磁盘、CPU、网络等的负载及资源使用率。根据这些特征可以构建一个模型,用来判断某些计算机/系统是不是有可能出错了。

 

(二)异常检测算法:高斯分布/正态分布

正态分布,也称为高斯分布。

举例,通常情况下,某个地区的人群身高符合正态分布,所有人的身高值基本在一个固定范围之中。工业生产中也有正态分布的现象,如生产出来的产品品质,这些产品的尺寸、规格均在一定的范围内,呈现为正态分布。而范围外的,则为异常数据。

假设:通常认为异常检测场景的已有样本 𝑥符合高斯分布𝑥𝑁(𝜇,𝜎²),其概率密度函数为:

image.pngimage.jpeg

可使用已有的数据来计算均值𝜇和方差𝜎²:

image.pngimage.jpeg

问题进一步变成:对于给定的数据集 𝑥(1), 𝑥(2), . . . , 𝑥(𝑚),计算出每一个特征(n)𝜇𝜎²

11.png

给定新的数据,即可根据模型计算出 𝑝(𝑥)

12.png

(三)异常检测算法:特征处理

思考:异常检测假设特征符合高斯分布,如果数据分布不是高斯分布呢?

非高斯分布情况下异常检测算法也能工作,但是最好还是将数据转换成高斯分布,例如通过对数函数等: 𝑥= 𝑙𝑜𝑔(𝑥+ 𝑐),其中 𝑐为非负常数;或者 𝑥= 𝑥𝑐𝑐0-1 之间的一个分数等方法。

13.png

把特征的分布转为高斯分布

误差纠偏:

一个常见问题:异常的数据可能也会有较高的𝑝(𝑥)值,因而被算法认为是正常的。

这种情况下我们可以分析那些被算法错误预测为正常的数据,观察能否找出一些问题。如可以增加一些新的特征,增加这些新特征后获得的新算法能够帮助我们更好地进行异常检测。

也可以将一些相关的特征进行组合,来构造新的、更好的特征(异常数据在该组合特征下的值异常地大或小)。例如,在检测数据中心计算机状况的例子中,可以用CPU负载与网络带宽的比例作为一个新特征,通常网络带宽高,则说明业务流量大,CPU负载也会变高。异常情况下,如果该值异常地大或小,便很有可能意味着该服务器可能出问题了。

 

(四)异常检测模型训练及评估

Ø  思考

异常检测算法是一个非监督学习算法,也就无法像监督学习那样,根据预测结果和样本中的变量 𝑦值来构建损失函数,并以此评测算法的有效性了,需要另一种方法来检验算法是否有效

Ø  方法

从已有的数据集入手,从其中选择一部分正常数据构建训练集,然后将剩下的正常数据和异常数据混合的数据构成交叉检验集和测试集。

 

例如,有10000台正常引擎数据,有20台异常引擎数据,可以这样分配数据:

1)6000台正常引擎的数据作为训练集

2)2000台正常引擎和10台异常引擎的数据作为交叉检验集

3)2000台正常引擎和10台异常引擎的数据作为测试集

 

具体的评价方法如下:

1)根据测试集数据,计算出各特征的平均值和方差,构建出𝑝(𝑥)函数。

2)针对交叉检验集,尝试使用不同的𝜀值作为阀值,并预测数据是否异常,根据 F1或者查准率与查全率的比例来选择合适的 𝜀

3)选定 𝜀后,针对测试集进行预测,计算异常检验系统的𝐹1值,或者查准率与查全率之比。由F1值来评判算法是否有效。

 

(五)异常检测vs 监督学习

思考:异常检测与监督学习非常相似,将异常检测中的正向及负向样本,补充y值,不就可以构建出完整标注的数据集了么? 那何时使用异常检测,合适使用监督学习呢?如下一些方法供参考:

16.png

Ø  选用异常检测的原则:

1)异常样本的数量极少,甚至有时候是0

2)异常的种类及情况很多,并且很难确定,难以预知,有太多没见过的不同的异常类型。

那么对于以上这类问题,通常应该使用异常检测算法。


四、AI实践课:AutoML

(一)“大数据公司”的困惑

在这个数据大爆炸的时代,许多公司收集了海量数据,但苦于没有合适的数据加工方法,海量数据不仅没为公司创造出价值,反而成为成本负担。

大数据进化之路:成本中心价值创造、价值创新中心

 

(二)人人皆可构建属于自己的AIAutoML & AutoDL

14.png

人工智能中目前依然涉及大量人工:

数据准备:数据收集、数据清洗、数据标注。

数据加工:特征提取、模型选择、参数调节、模型评估等。

因此,有人提出,能否让这些人工部分也尽可能实现自动化,尤其是需要大量专家经验的数据加工部分。在这个趋势下,自动化机器学习/深度学习应运而生:AutoMLAutoDL

 

AutoML终极目标:

用户只需要准备好数据,其余的请交给AutoML

AI大众化、AI普惠、人人皆可用AI来创造价值。

 

关于机器学习、深度学习的资料推荐:建议大家可以把吴恩达老师的机器学习和深度学习两大课程细细学一遍,非常适合于作为入门课程。本次分享中的不少素材也是源自吴恩达老师的课程,希望大家有所收获,也再次致谢吴恩达老师。


目录
相关文章
|
7天前
|
人工智能 自动驾驶 算法
人工智能浪潮下的伦理困境:我们准备好面对AI了吗?
【8月更文挑战第13天】本文旨在探讨人工智能快速发展下带来的伦理问题,并分析当前社会对于AI伦理挑战的准备情况。文章将围绕AI技术的应用、伦理问题的实例以及公众意识的提升等方面展开讨论,试图为读者提供一个全面的视角来审视这一复杂而紧迫的话题。
|
14天前
|
人工智能 自然语言处理 Java
「松弛感工作」之必备AI技能
【8月更文挑战第6天】「松弛感工作」之必备AI技能
|
26天前
|
人工智能 运维 安全
龙蜥社区第五届理事大会圆满结束!深度探讨 AI 浪潮下的合作模式
围绕 CentOS 停服替代和 AI 技术浪潮下的合作契机等话题进行了深度探讨。
|
27天前
|
Web App开发 机器学习/深度学习 人工智能
AI Agent满级进化!骑马种田、办公修图,样样精通,昆仑万维等发布通用Agent新框架
【7月更文挑战第23天】AI Agent技术迎来突破,昆仑万维联合顶尖学府发布Cradle框架,赋能智能体通用控制能力。Cradle结合大型语言模型与六大核心模块,实现跨场景灵活操控,从游戏到办公软件,无师自通。实验验证其在《荒野大镖客2》等游戏及Chrome、Outlook上的卓越表现。框架开源,促进AI社区进步,但仍需面对实际应用的挑战与安全性考量。[论文](https://arxiv.org/abs/2403.03186)详述创新细节。
63 3
|
1月前
|
人工智能 Cloud Native 数据库
“云+AI”浪潮下,阿里云&龙蜥携手打造智算时代最佳服务器操作系统
AI 时代的来临,也推动着云计算发展迎来第三次浪潮。
|
1月前
|
人工智能
|
3月前
|
机器学习/深度学习 存储 人工智能
构建未来:AI在持续学习系统中的进化
【5月更文挑战第30天】 随着人工智能(AI)技术的迅猛发展,其在多个领域的应用已经从理论走向了实践。特别是在机器学习领域内,AI系统的持续学习能力成为关键因素,它决定了一个模型能否适应不断变化的环境并持续提升性能。本文将深入探讨AI在持续学习系统中的关键技术,包括记忆增强、转移学习和元学习等,以及这些技术如何帮助AI系统更好地适应新环境,提高决策效率,从而推动AI技术向更加智能化和自适应化方向发展。
|
3月前
|
机器学习/深度学习 人工智能 算法
构建未来:AI在持续学习系统中的进化
【5月更文挑战第26天】 随着人工智能(AI)技术的飞速发展,AI系统正变得越来越复杂,其学习能力也日益增强。本文深入探讨了AI在学习过程中的关键机制,包括深度学习、强化学习和迁移学习等,并分析了这些技术如何使AI系统能够不断适应新的数据和环境。此外,文章还讨论了持续学习对于AI未来的重大意义,以及它如何推动AI走向更加智能化和自主化的未来。
42 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
2024通义语音AI技术图景,大模型引领AI再进化
2024通义语音AI技术图景,大模型引领AI再进化
|
2月前
|
人工智能 自然语言处理 API
云栖发布:通义听悟AI能力再进化,开放API接口
云栖发布:通义听悟AI能力再进化,开放API接口