本文部分内容经授权节选自《百面机器学习》

责编 | 胡巍巍

去年年底到今年年初,整个互联网圈,都笼罩着裁员的阴霾。

以至于很多程序员,都不敢看新闻了。

前段时间,SOHO中国董事长潘石屹,在出席活动时,被问到怎么看待当前的这个裁员潮时表示,“未来最需要创造性的人才,能够为社会、为城市创造美的人,数学好的人,这些人不会被裁掉。”

图源见水印

数学好的人?

咦,这说的不就是程序员吗?

试问,哪个程序员不得懂点数学呢?

而,机器学习设计到很多数学面试题,今天就跟大家分享两个超级高频的机器学习面试题!

LDA (线性判别分析) 和 PCA 的区别与联系

首先将LDA 扩展到多类高维的情况,以和问题1 中PCA 的求解对应。假设有N 个类别,并需要最终将特征降维至d 维。因此,我们要找到一个d 维投影超平面,使得投影后的样本点满足LDA 的目标—最大化类间距离和最小化类内距离。

回顾两个散度矩阵, 类内散度矩阵在类别增加至N 时仍满足定义, 而之前两类问题的类间散度矩阵在类别增加后就无法按照原始定义。图4.6 是三类样本的分布情况,其中分别表示棕绿黄三类样本的中心,μ 表示这三个中心的均值(也即全部样本的中心),Swi 表示第i 类的类内散度。我们可以定义一个新的矩阵St,来表示全局整体的散度,称为全局散度矩阵

如果把全局散度定义为类内散度与类间散度之和,即St=Sb+Sw,那么类间散度矩阵可表示为

其中mj 是第j 个类别中的样本个数,N 是总的类别个数。从式(4.29)可以看出,类间散度表示的就是每个类别中心到全局中心的一种加权距离。我们最大化类间散度实际上优化的是每个类别的中心经过投影后离全局中心的投影足够远。

根据LDA 的原理,可以将最大化的目标定义为

其中W是需要求解的投影超平面,WTW=I,根据问题2 和问题3 中的部分结论,我们可以推导出最大化J(W) 对应了以下广义特征值求解的问题

求解最佳投影平面即求解矩阵特征值前d 大对应的特征向量组成的矩阵,这就将原始的特征空间投影到了新的d 维空间中。至此我们得到了与PCA 步骤类似,但具有多个类别标签高维数据的LDA 求解方法。

(1)计算数据集中每个类别样本的均值向量μj,及总体均值向量μ。

(2)计算类内散度矩阵Sw,全局散度矩阵St,并得到类间散度矩阵

(3)对矩阵进行特征值分解,将特征值从大到小排列。

(4)取特征值前d 大的对应的特征向量,通过以下映射将n 维样本映射到d 维

从PCA 和LDA 两种降维方法的求解过程来看,它们确实有着很大的相似性,但对应的原理却有所区别。

首先从目标出发,PCA 选择的是投影后数据方差最大的方向。由于它是无监督的,因此PCA 假设方差越大,信息量越多,用主成分来表示原始数据可以去除冗余的维度,达到降维。而LDA 选择的是投影后类内方差小、类间方差大的方向。其用到了类别标签信息,为了找到数据中具有判别性的维度,使得原始数据在这些方向上投影后,不同类别尽可能区分开。

举一个简单的例子,在语音识别中,我们想从一段音频中提取出人的语音信号,这时可以使用PCA 先进行降维,过滤掉一些固定频率(方差较小)的背景噪声。但如果我们的需求是从这段音频中区分出声音属于哪个人,那么我们应该使用LDA 对数据进行降维,使每个人的语音信号具有区分性。

另外,在人脸识别领域中,PCA 和LDA 都会被频繁使用。基于PCA 的人脸识别方法也称为特征脸(Eigenface)方法,该方法将人脸图像按行展开形成一个高维向量,对多个人脸特征的协方差矩阵做特征值分解,其中较大特征值对应的特征向量具有与人脸相似的形状,故称为特征脸。Eigenface for Recognition 一文中将人脸用7 个特征脸表示(见图4.7),于是可以把原始65536 维的图像特征瞬间降到7 维, 人脸识别在降维后的空间上进行。然而由于其利用PCA 进行降维,一般情况下保留的是最佳描述特征(主成分),而非分类特征。如果我们想要达到更好的人脸识别效果,应该用LDA 方法对数据集进行降维, 使得不同人脸在投影后的特征具有一定区分性。

从应用的角度,我们可以掌握一个基本的原则—对无监督的任务使用PCA 进行降维,对有监督的则应用LDA。

K-均值算法收敛性的证明

首先,我们需要知道K 均值聚类的迭代算法实际上是一种最大期望算法(Expectation-Maximization algorithm),简称EM 算法。EM 算法解决的是在概率模型中含有无法观测的隐含变量情况下的参数估计问题。假设有m 个观察样本,模型的参数为θ,最大化对数似然函数可以写成如下形式:

当概率模型中含有无法被观测的隐含变量时,参数的最大似然估计变为:

由于z(i) 是未知的, 无法直接通过最大似然估计求解参数, 这时就需要利用EM 算法来求解。假设z(i) 对应的分布为,并满足。利用Jensen 不等式,可以得到:

要使上式中的等号成立,需要满足,其中c 为常数,且满足;因此,,不等式右侧函数记为r(x|θ)。当等式成立时,我们相当于为待优化的函数找到了一个逼近的下界,然后通过最大化这个下界可以使得待优化函数向更好的方向改进。

图5.5 是一个θ 为一维的例子,其中棕色的曲线代表我们待优化的函数,记为f(θ),优化过程即为找到使得f(θ) 取值最大的θ。在当前θ 的取值下(即图中绿色的位置),可以计算,此时不等式右侧的函数(记为r(x|θ))给出了优化函数的一个下界,如图中蓝色曲线所示,其中在θ 处两条曲线的取值时相等的。接下来找到使得r(x|θ) 最大化的参数θ′,即图中红色的位置,此时f(θ′) 的取值比f(θ)(绿色的位置处)有所提升。可以证明,f(θ′) ≥ r(x|θ)=f(θ),因此函数是单调的,而且从而函数是有界的。根据函数单调有界必收敛的性质,EM 算法的收敛性得证。但是EM 算法只保证收敛到局部最优解。当函数为非凸时,以图5.5 为例,如果初始化在左边的区域时,则无法找到右侧的高点。

由上面的推导,EM 算法框架可以总结如下,由以下两个步骤交替进行直到收敛。

(1)E 步骤:计算隐变量的期望

(2)M 步骤:最大化

剩下的事情就是说明K 均值算法与EM 算法的关系了。K 均值算法等价于用EM 算法求解以下含隐变量的最大似然问题:

其中是模型的隐变量。直观地理解,就是当样本x 离第k个簇的中心点μk 距离最近时,概率正比于,否则为0。

在E 步骤,计算

这等同于在K 均值算法中对于每一个点x(i) 找到当前最近的簇z(i)。

在M步骤,找到最优的参数,使得似然函数最大:

经过推导可得

因此,这一步骤等同于找到最优的中心点,使得损失函数达到最小,此时每个样本x(i) 对应的簇z(i) 已确定,因此每个簇k 对应的最优中心点μk 可以由该簇中所有点的平均计算得到,这与K 均值算法中根据当前簇的分配更新聚类中心的步骤是等同的。

......

以上是人民邮电出版社的书籍《百面机器学习:算法工程师带你去面试》中的部分精华。

点击书籍封面查看详情

要成功面试算法工程师

就看《百面机器学习》!

购买前可加下面微信号领取二维码

优绝对优惠!

人工智能如何学?

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

码书商店是CSDN专为我们的用户建立的一个商店,这里提供大量的技术书籍,书籍都是由出版社直邮,不用担心是否正版,除了书籍我们也提供生活类的相关产品,如耳机、键盘等,或者你们如果有需求也可以联系码书商店的客服或者在公众号下留言你们需要的产品,我们尽量满足大家需求哦。

作为码书商店的运营人员,诚邀你们进入我们的“CSDN码书福利群”,群里会不定时的给大家赠书书籍、优惠券等,有书籍推荐或者物流方面信息也可群里咨询~目前群已满100人,需要加群的请扫下方二维码添加微信,拉你入群哦~

百面机器学习!算法工程师面试宝典!相关推荐

  1. 《百面机器学习算法工程师带你去面试》资料学习

    <百面机器学习算法工程师带你去面试>收录了超过100道机器学习算法工程师的面试题目和解答,其中大部分源于Hulu算法研究岗位的真实场景.本书从日常工作.生活中各种有趣的现象出发,不仅囊括了 ...

  2. 机器学习算法工程师面试集锦(更新中)

    机器学习算法工程师面试集锦(更新中) 面试问题汇总 常用的损失函数 介绍交叉验证 特征选择方法 机器学习项目的一般步骤 经验风险最小化与结构风险最小化 训练决策树时的参数是什么 在决策树的节点处分割标 ...

  3. 机器学习算法工程师面试知识点汇总

    机器学习算法工程师面试知识点汇总 机器学习 梯度下降 k-means 1 × 1卷积核 模型 SVM Bagging & Boosting 随机森林 激活函数 Sigmod tanh ReLU ...

  4. 机器学习-算法工程师 -面试/笔试准备-重要知识点梳理

    原文地址:http://blog.csdn.net/lrs1353281004/article/details/79529818 整理了一下机器学习-算法工程师需要掌握的机器学习基本知识点,并附上了网 ...

  5. 百面机器学习!算法工程师面试宝典!| 码书

    本文部分内容经授权节选自<百面机器学习> 责编 | 胡巍巍 去年年底到今年年初,整个互联网圈,都笼罩着裁员的阴霾. 以至于很多程序员,都不敢看新闻了. 但是,昨天SOHO中国董事长潘石屹, ...

  6. 机器学习算法工程师面试总结

    转自北邮人论坛 2017年即将过去,今年是忙碌的一年,从2月17还没开学就来学校,到现在12月初,工作的事情终于尘埃落定,现将这一段经历写下来,希望能帮助来年找工作的学弟学妹,同时,对自己来说,也是一 ...

  7. 机器学习算法工程师面试学习经验

    作为一个过来人,分享一点我的经验. 先介绍一下自己,本人是国内读的数学本科,北美top统计系硕士毕业,之后在FLAG之一的总部核心部门做数据科学家.期间面试过20-30名candidate. 想要找到 ...

  8. 【2020秋招】提前批陌陌机器学习算法工程师面试经验

    铺垫 时间:9.2日中午1点钟 地点:西工大翱翔会议中心(一开始去成翱翔训练馆了= =,绕着西工大走了一大圈) 形式:现场面试,如果顺利的话,会有2-3轮技术面试,1轮HR面试,HR小哥哥不错. 面试 ...

  9. 机器学习算法工程师面试总结(基于个人简历自用)

    机器学习 回归和分类的相同点和不同点? 相同点:都是对输入做预测,属于有监督学习. 不同点:输出不同.目的不同.结果不同. 分类的输出是离散的.是所属类别.是定性的,回归的输出是连续的.是值.是定量的 ...

最新文章

  1. card样式 layui_layui样式修改
  2. iOS 让视图UIView 单独显示某一侧的边框线
  3. mysql latid1_mysql触发器的实战经验
  4. 美国只有两样东西要比中国 贵,一个是智慧财产权,一个是人工
  5. Maven 3 常见错误
  6. redis 3.0.0 linux下载,centos安装redis3.0.0集群
  7. 有感于Oracle 9i的QueryHints
  8. JQuery 动画之 淡入淡出
  9. 【Java学习笔记】之家庭账目管理系统
  10. 硬盘测试软件w10,Win10硬盘检测工具
  11. linux 消息队列大小设置,linux 消息队列 参数
  12. android读取sim卡,Android开发之获取SIM卡信息和手机号码
  13. Asterisk内核 拾遗
  14. dango-orm单表操作知识点
  15. CentOS 7账号密码忘了怎么办?
  16. Flash网页小游戏开发教程
  17. qpsk的映射过程_(完整版)QPSK调制原理及matlab程序实现
  18. Echarts -盒须图的使用说明
  19. 推行国产操作系统的优劣
  20. 显示透明的PNG图片

热门文章

  1. 主动申请linux内存 脚本,Shell 脚本来自动监控 Linux 系统的内存
  2. freenas共享指定网络密码不正确_FreeNas系统安装贴心教程(附常见问题解决方案)...
  3. atlas 200 简单确认驱动与固件版本的方法
  4. Linux IPC之有名管道
  5. 电影屏幕行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  6. java系统属性_java 系统属性
  7. 广义表头尾链表存储结构_单向循环链表的存储结构和操作
  8. 备忘录模式(Memento Pattern)
  9. 微软集成 Edge 开发者工具到 Visual Studio ,工具迎来“大换血”?
  10. “过早的性能优化是魔鬼”