机器学习问题总结(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…

Python(24)-面向对象3-可迭代类对象Pokemon

面向对象3-Pokemon demo1.可迭代类对象1.可迭代类对象 想要实现类对象中某些属性/数值的迭代访问,需要在类中定义一个__iter__()方法,和__next__() 的方法(python 2 中为next()方法)。 _iter_()返回值是self, _next_()中遍历完所有的元素后发…

机器学习问题总结(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…

Python(25)-单例设计模式

单例设计模式1.单例设计模式2.__new__方法3.初始动作只执行一次本系列博文来自学习《Python基础视频教程》笔记整理,视屏教程连接地址:http://yun.itheima.com/course/273.html1.单例设计模式 设计模式:不同的问题使用不同的解决套路。学习设…

Linux Socket通信 C/S模型

代码片段(8) [代码] MySocket.h 01#ifndef _MYSOCKET_0623_H 02#define _MYSOCKET_0623_H 03 04#include <sys/socket.h> 05#include <sys/types.h> 06#include <arpa/inet.h> 07#include <netinet/in.h> 08#include <sys/wait.h> 09#include &…

Java多线程——基本概念

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

textCNN初探

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

Python(28)-异常

异常1.抛出异常2.捕获异常3.依据错误类型捕获异常4.捕获未知错误5.异常捕获的完整语法6.异常传递7.主动抛出异常本系列博文来自学习《Python基础视频教程》笔记整理&#xff0c;视屏教程连接地址&#xff1a;http://yun.itheima.com/course/273.html1.抛出异常 抛出异常&#…

词嵌入初探

文章目录目录1.词嵌入产生的背景1.1 NLP关键&#xff1a;语言的表示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 基于神经网络的…

Pytorch(5)-梯度反向传播

自动求梯度1. 函数对自变量x求梯度--ax^2b2. 网络对参数w求梯度- loss(w,x)3. 自动求梯度的底层支持--torch.autograd3.1 Variable3.1.1 Variable构造函数3.1.2 Variable链式求导--backward()3.1.3 Variable反向传播函数--grad_fn3.2 计算图3.2.1 动态创建计算图3.2.2 非叶子节…

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

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

fastText初探

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

mpiBlast安装详解以及使用说明

Getting mpiblast 现在下载包文件&#xff1a; wget http://www.mpiblast.org/downloads/files/mpiBLAST-1.6.0-pio.tgz 解压包文件&#xff1a; tar xvzf mpiBLAST*.tgz 然后下载ncbi&#xff1a; wget ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools/old/20061015/ncbi.tar.gz…

Pytorch(6)-设置随机种子,复现模型结果

设置随机种子&#xff0c;复现模型结果1.Python本身的随机因素2.numpy随机因素3.pytorch随机因素在很多情况下&#xff0c;我们希望能够复现实验的结果。为了消除程序中随机因素的影响&#xff0c;我们需要将随机数的种子固定下来。将所有带随机因素的种子全部固定下来后&#…

如何让自己学习?

阶段性反馈机制&#xff08;如何持之以恒、让自己发疯&#xff09; 反馈机制是王者荣耀的核心武器&#xff0c;击杀野怪获得金币&#xff0c;不断地努力&#xff0c;获得奖励是我们不断的玩这个游戏的主要原因&#xff0c;也是人的本能&#xff0c;我什么都得不到凭什么这么做&…

追女孩子必备

当然&#xff0c;首先要知道女孩子的手机号码。 其次&#xff0c;要对她有兴趣啦。 发个短信&#xff1a;“上次跟你聊天很愉快&#xff0c;能否再次邀你出来聊聊天&#xff1f;” 注意&#xff1a;女孩子答应的话&#xff0c;要找的地点是个比较清静的酒吧&#xff0c;暂时别去…

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

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

bishi

鄙视 2011-04-26 20:43:02| 分类&#xff1a;默认分类 |字号订阅腾讯笔试题&#xff1a;const的含义及实现机制 const的含义及实现机制&#xff0c;比如&#xff1a;const int i,是怎么做到i只可读的&#xff1f; const用来说明所定义的变量是只读的。 这些在编译期间完成&…

NLP复习资料(1)-绪论、数学基础

NLP复习资料-绪论、数学基础1.绪论2.数学基础2.1信息论基础&#xff1a;2.2应用实例&#xff1a;词汇消歧国科大&#xff0c;宗老师《自然语言处理》课程复习笔记&#xff0c;个人整理&#xff0c;仅供参考。1.绪论 1&#xff0e; 语言学、计算语言学、自然语言理解、自然语言…