机器学习问题总结(04)

文章目录

    • 1、MLP的BP过程
    • 2、maxpool层BP怎么做的
      • 2.1 **mean pooling**
      • 2.2 max pooling
    • 3、opencv遍历像素的方式,讲两种?
    • 4、传统图像处理有了解过吗,比如去噪 特征提取
    • 5、问在linux下写过代码吗? 问用了什么软件工具
    • 6、LDA(狄利克雷分布)
    • 7、PR曲线、ROC曲线
      • 7.1、查准率、查全率、F1
      • 7.2、ROC和AUC
      • 7.3、偏差和方差
    • 8、特征工程
      • 8.1、特征工程是什么?
    • 9、数据预处理的方法
    • 10、特征选择的方法有哪些
    • 11、写K-means、GMM的公式
      • 11.1 k-means
      • 11.2 GMM
    • 12、CNN与RNN的区别
    • 13、你所知道的距离度量方式、损失函数
      • 13.1 距离度量
      • 13.2 损失函数

1、MLP的BP过程

MLP(multilayer perceptron)多层神经网络
1、单层神经网络的BP算法
反向误差传播
这里写图片描述
delta就是误差的反向传播,用来更新网络参数(w,b)
使得损失函数向最小值靠近
2、深层前向、后向
这里写图片描述
3、MLP(multilayer perceptron)的BP

  • 无监督预训练 RBM
  • 有监督微调 BP

2、maxpool层BP怎么做的

2.1 mean pooling

mean pooling的前向传播就是把一个patch中的值求取平均来做pooling,那么反向传播的过程也就是把某个元素的梯度等分为n份分配给前一层,这样就保证池化前后的梯度(残差)之和保持不变,还是比较理解的

2.2 max pooling

max pooling也要满足梯度之和不变的原则,max pooling的前向传播是把patch中最大的值传递给后一层,而其他像素的值直接被舍弃掉。那么反向传播也就是把梯度直接传给前一层某一个像素,而其他像素不接受梯度,也就是为0。

  • Max Pooling比较有意思,forward的时候需要记录 每个窗口内部最大元素的位置
  • 然后bp的时候,对于窗口内最大元素的gradient是1,否则是0。原理和ReLu是一样的。

3、opencv遍历像素的方式,讲两种?

(1). C操作符[] (指针方式访问)
(2). 迭代器iterator
(3). 动态地址计算

像素遍历方式在速度上不同,用C操作符[]是最快的访问方式

at()函数和行首指针

4、传统图像处理有了解过吗,比如去噪 特征提取

1、图像去噪

图像去噪是指减少数字图像中噪声的过程称为图像去噪。现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声干扰等影响,称为含噪图像或噪声图像。

噪声是图象干扰的重要原因。一幅图象在实际应用中可能存在各种各样的噪声,这些噪声可能在传输中产生,也可能在量化等处理中产生。

去除图像噪声的方法简介

  • 均值滤波器:采用邻域平均法
  • 自适应维纳滤波器
  • 中值滤波器
  • 小波去噪:(1)对图象信号进行小波分解 (2)对经过层次分解后的高频系数进行阈值量化 (3)利用二维小波重构图象信号

2、图像特征提取

  • HOG特征(方向梯度直方图)
  • LBP特征(局部二值模式)(编码:中心像素做阈值)
  • Haar-like特征

5、问在linux下写过代码吗? 问用了什么软件工具

写过

  • 一般写Python,简单的C/C++程序用的是sublime,然后通过终端去运行,调试
  • 写Linux界面程序的话用QT软件比较多
  • 写Linux下的驱动程序,用的是交差编译的环境,是在win下面开发,然后将工程通过网络传输到Linux机子上去,然后通过终端运行命令进行编译和执行。驱动程序编写使用VS(win)

6、LDA(狄利克雷分布)

Dirichlet Distribution(狄利克雷分布)的定义和性质

隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA)是由 David M. Blei、Andrew Y. Ng、Michael I. Jordan 在2003年提出的,是一种词袋模型,它认为文档是一组词构成的集合,词与词之间是无序的。一篇文档可以包含多个主题,文档中的每个词都是由某个主题生成的,LDA给出文档属于每个主题的概率分布,同时给出每个主题上词的概率分布。LDA是一种无监督学习,在文本主题识别、文本分类、文本相似度计算和文章相似推荐等方面都有应用。

multinomial distribution(多项式分布)

LDA中,多项式分布, 和狄利克雷分布的 形式一致,所以称为共轭

共轭分布:共轭先验分布,在贝叶斯统计中,如果后验分布与先验分布属于同类,则先验分布与后验分布被称为共轭分布,而先验分布被称为似然函数的共轭先验。

7、PR曲线、ROC曲线

PR曲线、ROC曲线、AUC、Accuracy

7.1、查准率、查全率、F1

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例(TP),假反例(FN),假正例(FP),真反例(TN),具体分类结果如下
这里写图片描述
查准率P和查全率R分别定义为:
这里写图片描述

查准率关心的是”预测出正例的正确率”即从正反例子中挑选出正例的问题。
查全率关心的是”预测出正例的保证性”即从正例中挑选出正例的问题。

这两者是一对矛盾的度量,查准率可以认为是”宁缺毋滥”,适合对准确率要求高的应用,例如商品推荐,网页检索等。
查全率可以认为是”宁错杀一百,不放过1个”,适合类似于检查走私、逃犯信息等。

下图为查准率-查全率曲线(P-R图)
这里写图片描述

若一个学习器的P-R曲线被另一个学习器完全”包住”,则后者的性能优于前者。当存在交叉时,可以计算曲线围住面积,但比较麻烦,平衡点(查准率=查全率,BEP)是一种度量方式。

但BEP还是过于简化了些,更常用的是F1和Fp度量,它们分别是查准率和查全率的调和平均和加权调和平均。定义如下
这里写图片描述

7.2、ROC和AUC

很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于阈值分为正类,否则为反类,因此分类过程可以看作选取一个截断点。

不同任务中,可以选择不同截断点,若更注重”查准率”,应选择排序中靠前位置进行截断,反之若注重”查全率”,则选择靠后位置截断。因此排序本身质量的好坏,可以直接导致学习器不同泛化性能好坏,ROC曲线则是从这个角度出发来研究学习器的工具。

曲线的坐标分别为真正例率(TPR)和假正例率(FPR),定义如下
这里写图片描述
下图为ROC曲线示意图,因现实任务中通常利用有限个测试样例来绘制ROC图,因此应为无法产生光滑曲线,如右图所示。
这里写图片描述

计算曲线围住的面积(AUC)来评价性能优劣

7.3、偏差和方差

泛化误差可以分解为偏差、方差与噪声之和

偏差度量了学习算法的期望预测和真实结果偏离程度。

方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。

噪声可以认为数据自身的波动性,表达了目前任何学习算法所能达到泛化误差的下限。

偏差大说明欠拟合,方差大说明过拟合。

8、特征工程

8.1、特征工程是什么?

有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。通过总结和归纳,人们认为特征工程包括以下方面:
这里写图片描述
特征处理是特征工程的核心部分,sklearn提供了较为完整的特征处理方法,包括数据预处理,特征选择,降维等。首次接触到sklearn,通常会被其丰富且方便的算法模型库吸引,但是这里介绍的特征处理库也十分强大!

9、数据预处理的方法

我们使用sklearn中的preproccessing库来进行数据预处理

通过特征提取,我们能得到未经处理的特征,这时的特征可能有以下问题:

  • 不属于同一量纲
  • 信息冗余
  • 定性特征不能直接使用
  • 存在缺失值
  • 信息利用率低

10、特征选择的方法有哪些

根据特征选择的形式又可以将特征选择方法分为3种:

  • Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。
  • Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。(每次增加或者减少一维特征,观察模型的结果从而决定是否添加或删除该特征)
  • Embedded:嵌入法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。(通过最终训练好的模型的参数来选择特征,LASSO回归,RF模型等)

我们使用sklearn中的feature_selection库来进行特征选择。
这里写图片描述

11、写K-means、GMM的公式

11.1 k-means

这里写图片描述

11.2 GMM

这里写图片描述

12、CNN与RNN的区别

在普通的全连接网络或CNN中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立,因此又被成为前向神经网络(Feed-forward Neural Networks)。而在RNN中,神经元的输出可以在下一个时间戳直接作用到自身,即第i层神经元在m时刻的输入,除了(i-1)层神经元在该时刻的输出外,还包括其自身在(m-1)时刻的输出!表示成图就是这样的:
这里写图片描述

我们可以看到在隐含层节点之间增加了互连。为了分析方便,我们常将RNN在时间上进行展开,得到如图6所示的结构:
这里写图片描述

13、你所知道的距离度量方式、损失函数

13.1 距离度量

  • 距离函数种类:欧式距离、曼哈顿距离、明式距离(闵可夫斯基距离)、马氏距离、切比雪夫距离、标准化欧式距离、汉明距离、夹角余弦等
  • 常用距离函数:欧式距离、马氏距离、曼哈顿距离、明式距离

1.欧式距离
欧式距离是最容易直观理解的距离度量方法,我们小学,中学,高中所接触的两个空间中的距离一般都是指的是欧式距离。

2.曼哈顿距离(Manhattan Distance)
两个点在标准坐标系上的绝对轴距总和

3.切比雪夫距离
各坐标数值差的最大值

4.闵可夫斯基距离
闵氏距离不是一种距离,而是一组距离的定义,是对多个距离度量公式的概括性的表述。

5.标准化欧氏距离
定义: 标准化欧氏距离是针对欧氏距离的缺点而作的一种改进。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都**“标准化”**到均值、方差相等。

6.马氏距离
**概念:**马氏距离是基于样本分布的一种距离。物理意义就是在规范化的主成分空间中的欧氏距离。所谓规范化的主成分空间就是利用主成分分析对一些数据进行主成分分解。再对所有主成分分解轴做归一化,形成新的坐标轴。由这些坐标轴张成的空间就是规范化的主成分空间。

马氏距离的优点:与量纲无关,排除变量之间的相关性干扰

7.余弦距离

夹角余弦取值范围为[-1,1]。余弦越大表示两个向量的夹角越小,余弦越小表示两向量的夹角越大。当两个向量的方向重合时余弦取最大值1,当两个向量的方向完全相反余弦取最小值-1。

8.汉明距离
定义:两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。

9.信息熵
以上的距离度量方法度量的皆为两个样本(向量)之间的距离,而信息熵描述的是整个系统内部样本之间的一个距离,或者称之为系统内样本分布的集中程度(一致程度)、分散程度、混乱程度(不一致程度)。系统内样本分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小。

13.2 损失函数

  • log对数 损失函数(逻辑回归)
  • 平方损失函数(最小二乘法)
  • 指数损失函数(AdaBoost)
  • Hinge损失函数(SVM)
  • 0-1损失函数
  • 绝对值损失函数

损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。

损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项

1.log对数 损失函数
在逻辑回归的推导中,它假设样本服从伯努利分布(0-1分布),然后求得满足该分布的似然函数。

log函数是单调递增的,(凸函数避免局部最优)

在使用梯度下降来求最优解的时候,它的迭代式子与平方损失求导后的式子非常相似

2.平方损失函数(最小二乘法, Ordinary Least Squares)
最小二乘法是线性回归的一种,OLS将问题转化成了一个凸优化问题。

在线性回归中,它假设样本和噪声都服从高斯分布(为什么假设成高斯分布呢?其实这里隐藏了一个小知识点,就是中心极限定理),最后通过极大似然估计(MLE)可以推导出最小二乘式子。

为什么它会选择使用欧式距离作为误差度量呢(即Mean squared error, MSE),主要有以下几个原因:

  • 简单,计算方便;
  • 欧氏距离是一种很好的相似性度量标准;
  • 在不同的表示域变换后特征性质不变

3.指数损失函数(AdaBoost)

4.hinge损失
在机器学习算法中,hinge损失函数和SVM是息息相关的。在线性支持向量机中,最优化问题可以等价于下列式子:

损失函数总结

这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

持续更新的Zookeeper知识总结

简介 Zookeeper为分布式应用 提供了高效且可靠的分布式协调服务,提供了诸如统一命名服务、发布订阅、负载均衡、配置管理和分布式锁等分布式的基础服务。 设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集&#xf…

机器学习问题总结(05)

文章目录1. Hadoop、Spark1.1 hadoop1.2 spark1.3 MapReduce1.3.1 概念1.3.1 MapReduce执行流程2、机器学习场景3、推荐系统(预测电影等级)4、CTR(点击通过率 -> 广告)5、SVM5.1 svm的原理5.2 SVM的核技巧6、K-means6.1 K-mean…

基于Socket的UDP和TCP编程介绍

一、概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。 TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(streamsocket)的一种。 UDP:用户数据报协议。U…

Java多线程——基本概念

线程和多线程 程序:是一段静态的代码,是应用软件执行的蓝本 进程:是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程 线程:是比…

textCNN初探

文章目录目录1.什么是textCNN1.1 textCNN 提出的背景1.2 textCNN 合理性分析2.textCNN相比于传统图像领域的CNN有什么特点?3.textCNN例子讲解3.1 参数和超参数3.2 textCNN的数据3.3 textCNN的网络结构定义3.4 代码目录 1.什么是textCNN 1.1 textCNN 提出的背景 我…

词嵌入初探

文章目录目录1.词嵌入产生的背景1.1 NLP关键:语言的表示1.2 NLP词的表示方法类型1.2.1 独热表示one-hot1.2.2 词的分布式表示distributed representation1.3 NLP中的语言模型1.4 词的分布表示1.4.1 基于矩阵的分布表示1.4.2 基于聚类的分布表示1.4.3 基于神经网络的…

VIM使用系列之一——配置VIM下编程和代码阅读环境

作者:gnuhpc from http://blog.csdn.net/gnuhpc http://gnuhpc.wordpress.com/ 本文环境:ubuntu 10.10/vim7.2 前言:一年前写过一篇关于VIM的C/C编程环境的文字,一年中又接触了很多东西,深入使用中发现其实还是需要有…

fastText初探

目录:1、应用场景2、优缺点3、FastText的原理4、FastText词向量与word2vec对比 目录: 1、应用场景 fastText是一种Facebook AI Research在16年开源的一个文本分类器。 其特点就是fast。相对于其它文本分类模型,如SVM,Logistic …

python中使用“if __name__ == '__main__'”语句的作用

首先用最简洁的语言来说明一下 if __name__ __main__: 的作用:防止在被其他文件导入时显示多余的程序主体部分。 先举个例子,如果不用if __name__ __main__: 会发生什么事: 首先在yy.py中调用cs.py #yy.pyimport csprint(引用cs)cs.cs()p…

redis——sentinel

什么是哨兵机制 Redis的哨兵(sentinel) 系统用于管理/多个 Redis 服务器,该系统执行以下三个任务: 监控: 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。 提醒:当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他…

FM,FFM及其实现

在推荐系统和计算广告业务中,点击率CTR(click-through rate)和转化率CVR(conversion rate)是衡量流量转化的两个关键指标。准确的估计CTR、CVR对于提高流量的价值,增加广告及电商收入有重要的指导作用。业界…

linux-在cenos上安装大全(nginx/JRE/maven/Tomcat/MYSQL/redis/kafka/es...)

云服务器 阿里云 腾讯云 七牛云 百度云 天翼云 华为云 西部数码 自己购买一个,学生和企业用户都有优惠的。 putty 自己下载一个putty,用来操作云服务器。 putty.org 一路下一步就ok。 点击putty.exe,输入你的ip或域名 最好改成20&#xff1…

KKT条件初步理解

最近学习的时候用到了最优化理论,但是我没有多少这方面的理论基础。于是翻了很多大神的博客把容易理解的内容记载到这篇博客中。因此这是篇汇总博客,不算是全部原创,但是基础理论,应该也都差不多吧。因才疏学浅,有纰漏…

redis——实战点赞

点赞功能随处可见,我们都知道点赞是一个非常高频的操作,redis就非常适合做这种工作。 实现效果: 分析:三种类型:给帖子点赞,给评论点赞,给回复点赞 我们只实现查看点赞数量的话,只…

大数据学习(10)--流计算

文章目录目录1.流计算的概述1.1 什么是流数据?1.2 批量计算和实时计算1.3 流计算的概念1.4 流计算和Hadoop1.5 流计算框架2.流计算的处理流程2.1 流计算处理基本概念2.2 数数据的实时获取2.3 数据的实时计算2.4 实时查询任务3.流计算的应用和开源框架Strom3.1 流计算…

redis——实战关注

效果: 思路:很好想,把自己的粉丝和自己关注的人都存起来(set即可),做增删改查。 package com.now.community.community.service;import com.now.community.community.entity.User; import com.now.commun…

神经网络中的优化算法总结

在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯度下降,还是Adam方法? 这篇文章介绍了不同优化算法之间的主要区别,以及如何选择最佳的…

Java开发需要知道的HTML知识

概述 HTML(HyperText Markup Language) 不是一门编程语言,而是一种用来告知浏览器如何组织页面的标记语言。 HTML 可复杂、可简单,一切取决于开发者。它由一系列的元素组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈…

处理机调度与死锁

处理机调度与死锁 处理机调度的层次 高级调度 高级调度又称为作业调度或长程调度,其主要功能是根据某种算法,把外存上处于后备队列中的那些作业调入内存,也就是说,它的调度对象是作业。 1.作业和作业步 作业:一个比程…

各种卷积

从最开始的卷积层,发展至今,卷积已不再是当初的卷积,而是一个研究方向。在反卷积这篇博客中,介绍了一些常见的卷积的关系,本篇博客就是要梳理这些有趣的卷积结构。 阅读本篇博客之前,建议将这篇博客结合在一…