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

责编 | 胡巍巍

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

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

但是,昨天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 均值算法中根据当前簇的分配更新聚类中心的步骤是等同的。

......

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

那么,这到底是怎样的一本书?

看看编者们为它付出的汗水、

和出版后的战绩就知道啦↓

15位一线算法工程师,

来自全球顶尖视频流媒体公司hulu,

在面试过数百名候选人后,

公开124道基于真实场景的原创面试题,

历时6个月集体编著,

上市首日即位列京东计算机新书榜第1名。

作者群像

《百面机器学习》学习脉络图

微软全球执行副总裁、美国工程院院士沈向洋,高度认可这本书:“这本书致力于普及人工智能和机器学习,帮助每个软件工程师成为自信的AI实践者,每个数据科学家成为优秀的AI研究者。”

《浪潮之巅》《数学之美》作者吴军亦很美誉此书:“这本书教授大家如何搭建计算机理论和算法与具体应用之间的桥梁。它可以让计算机的从业者对理论的认识有一个飞跃,也可以让非计算机专业的工程人员了解计算机科学这个强大的工具。”

这么好的书,会不会很贵?

以及怎样才可以买到?

一点都不贵!

并且在这篇文章里就能买到!

CSDN联合人民邮电出版社,

面向CSDN用户

推出7.5折包邮拼团优惠价,

2人即可成团!

赶快扫描下面二维码、

或者点击阅读原文购书吧!

截止时间为3月4日下周一晚上19:00,

欲购从速哦!

春招胜利,

就看《百面机器学习:算法工程师带你去面试》!

点击阅读原文,也可进入购物页面哦!

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

  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. Tensorflow name_scope和variable_scope的用法
  2. 【深度学习入门到精通系列】拿捏Dice系数
  3. java setlocation_Java Point.setLocation方法代碼示例
  4. docker 安装部署 Jenkins 2.322
  5. latext配置 vscode_新手关于在VScode上配置latex的事情
  6. html5与其他语言的优势,浅谈:html5和html的区别
  7. logstash_output_mongodb插件用途及安装详解
  8. scala基础-04
  9. linux驱动怎么判断定时器正在运行,Linux设备驱动编程之定时器
  10. PHP全局变量与SESSION 漏洞(global 与 session)
  11. 怎么创建Gitee仓库,并将项目源码上传到Git?
  12. 360怎样修改wifi服务器,360路由器怎么重新设置? | 192路由网
  13. 老照片修复清晰?父母以前的老照片还能修复吗?
  14. linux设置spi时钟频率,Linux下S3C2416的SPI设置问题,CLK和MOSI都没有输出,求助
  15. ORB-Mono原理梳理
  16. 开源项目【LikeCloudMusic 云音】仿网易云音乐
  17. Linux-虚拟机ping不通主机
  18. Appium 不懂就问,Appium 小白,在微信切换 webview 时遇到 Original error: unknown error: Failed to get PID for
  19. 灰点相机SDK研究(零)-Python安装灰点相机的SDK-spinnaker_python
  20. HFM学习系列之五-数据集成工具之对比

热门文章

  1. 中国1,2,4-三氟苯市场趋势报告、技术动态创新及市场预测
  2. 2021年中国磁感应芯片市场趋势报告、技术动态创新及2027年市场预测
  3. 2021-2025年中国氮化碳行业市场供需与战略研究报告
  4. 2021级C语言大作业 - 涂鸦跳跃
  5. 在c语言程序中可把整型数,C语言程序设计(2).doc
  6. 苹果硬件技术高级副总裁揭露:自研 M1 太难了
  7. 开发范式大转移,云原生开发者如何把握技术脉络?
  8. Docker终失C位,开源少年缘何黑化
  9. 曝 iPhone 13 系列定价有望下调:起售价或低于 5499 元;TikTok 成为全球收入最高 App|极客头条...
  10. 云时代下,移动云揭秘数据库“新解”