1、深度学习框架TensorFlow中都有哪些优化方法?
答:GradientDescentOptimizer
AdagradOptimizer
Optimizer
优化最小代价函数
2、深度学习框架TensorFlow中常见的激活函数都有哪些?
答:relu,sigmoid,tanh
3、深度学习框架TensorFlow中有哪四种常用交叉熵?
答: tf.nn.weighted_cross_entropy_with_logits
tf.nn.sigmoid_cross_entropy_with_logits
tf.nn.softmax_cross_entropy_with_logits
tf.nn.sparse_softmax_cross_entropy_with_logits
4、什么叫过拟合,产生过拟合的原因?避免过拟合方法?
答:过拟合简单说,就是在机器学习中,模型训练效果好,但对新的测试数据预测很差。
产生过拟合原因:
- 数据有噪声
- 训练数据不足,有限的训练数据
- 训练模型过度导致模型非常复杂
避免过拟合方法(常见):
- early stopping,在发生拟合之前提前结束训练。
- 数据集扩增,最大的满足全样本。
- 正则化,引入范数概念,增强模型泛化能力。
- droput,每次训练时丢弃一些节点,增强泛化能力
- batch normalization
- 减小模型复杂度
L1和L2的区别
- L1范数为向量中各个元素的绝对值之和,符合拉普拉斯分布,可以使权值稀疏。
- L2范数为向量中各个元素的平方和的1/2次方,符合高斯分布,可以防止过拟合。
- Lp范数为向量中各个元素的p次方和的1/p次方。
6、什么是核函数?
核函数是将线性不可分的特征隐射到高维特征空间,从而让支持向量机在这个高维空间线性可分,也就是使用核函数可以向高维空间映射并解决非线性的分类问题。包括线性核函数,多项式核函数,高斯核函数等,其中高斯核函数最为常用。
7、深度学习框架TensorFlow中常见的核函数都有哪些?
SVM高斯核函数,应为如果想要分割非线性数据集,改变线性分类器隐射到数据集,就要改变SVM损失函数中的核函数
线性核函数;多项式核函数
8、朴素贝叶斯方法的优势是什么?
- 朴素贝叶斯有稳定的分类效率
- 对于小规模的数据表现很好,能处理多分类问题,可以再数据超出内存时,去增量训练
- 对缺失数据不太敏感,算法比较简单,常用于文本分类。
9、什么是监督学习的标准方法?
所有的回归算法和分类算法都属于监督学习。并且明确的给给出初始值,在训练集中有特征和标签,并且通过训练获得一个模型,在面对只有特征而没有标签的数据时,能进行预测。
监督学习和非监督学习?
- 监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如 分类。
- 非监督学习:直接对输入数据集进行建模,例如聚类。
- 半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数。
目前最广泛被使用的分类器有人工神经网络、支持向量机、最近邻居法、高斯混合模型、朴素贝叶斯方法、决策树和径向基函数分类。
无监督学习里典型的例子就是聚类了。聚类的目的在于把相似的东西聚在一起,而我们并不关心这一类是什么。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。
10、在机器学习中,模型的选择是指什么?
根据一组不同复杂度的模型表现,从某个模型中挑选最好的模型。选择一个最好模型后,在新的数据上来评价其预测误差等评价和指标。
11、谈谈判别式模型和生成式模型?
- 常见的判别模型有:K近邻、SVM、决策树、感知机、线性判别分析(LDA)、线性回归、传统的神经网络、逻辑斯蒂回归、boosting、条件随机场。通过决策函数来进行判别。
- 常见的生成模型有:朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模型(LDA)、限制玻尔兹曼机。通过联合概率密度分布函数来进行预测。
11、图形数据库Neo4J的优劣势?
优势:1.更快的数据库操作,前提是数据量足够大。
2. 数据更加直观,相应的SQL语句更加好写。
3.更灵活,不管有什么新的数据需要储存,都是一律的节点,只需要考虑节点属性和边属性。
4.数据库的操作不会随着数据库的增大有明显的降低。
劣势:1.极慢的插入速度。
2.超大的节点。当一个节点的边非常多,有关这个节点的操作速度就会大大下降
12、LR和SVM的联系与区别是什么?
- 都是分类算法,如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。
- LR和SVM都是监督学习算法
- LR和SVM的损失函数不同
- SVM只考虑局部的边界线附近的点 ,LR考虑全局,远离的点对边界线的确定也起作用。
13、什么是聚类,聚类的应用场景?
聚类是指根据一定的准则,把一份事物按照这个准则归纳成互不重合的几份,机器学习中,聚类指按照一个标准,这个标准通常是相似性,把样本分成几份,是得相似程度高的聚在一起,相似程度低的互相分开。
聚类的应用场景,求职信息完善(有大约10万份优质简历,其中部分简历包含完整的字段,部分简历在学历,公司规模,薪水,等字段有些置空顶。希望对数据进行学习,编码与测试,挖掘出职位路径的走向与规律,形成算法模型,在对数据中置空的信息进行预测。)
14、机器学习中,为何要经常对数据做归一化?
归一化后加快的梯度下降对最优解的速度。
归一化有可能提高精度。
15、归一化的好处
- 归一化加快了梯度下降求解最优解的速度
- 归一化还可能会提高精度。
16、归一化的种类
- 线性归一化。利用max和min进行归一化,如果max和min不稳定,则常用经验值来替代max和min。
- 标准差归一化。利用所有样本的均值和方差将样本归一化为正态分布。
- 非线性归一化。比如指数、对数、三角函数等。
17、归一化和标准化的区别
标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,将样本的特征值转换到同一量纲下。归一化是依照特征矩阵的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为“单位向量”。
对于深度网络而言,归一化的目的是方便比较,可以加快网络的收敛速度;标准化是将数据利用z-score(均值、方差)的方法转化为符合特定分布的数据,方便进行下一步处理,不为比较。
18、熵
熵是指样本的随机程度。样本越无序,熵越大, 信息越多。
19、SGD 中 S(stochastic)代表什么
Stochastic Gradient Descent 随机梯度下降。GD即Full-Batch,SGD即为Mini-Batch。随机性表现在训练数据的shuffle。
20、Softmax Loss推倒
21、Rectified Linear Unit, ReLU 激活`函数缺点以及优点比较
22、ReLU比Sigmoid、Tanh好的原因
23、引入非线性激活函数的原因?
- 指数函数运算量大。ReLU节省运算量。(计算量小)
- Sigmoid容易引发梯度消失问题,因为Sigmoid函数在两端的导数趋近于0.(解决梯度消失问题)
- ReLU使得一部分神经元死亡,这样可以使得网络变得比较稀疏,缓解了过拟合的发生。(避免过拟合)
24、若使用线性激活函数,则无论神经网络有多少层,输出都是输入的线性组合。
好的激活函数有以下特点:
- 非线性:即导数不是常数。
- 几乎处处可微:可微性保证了在优化中梯度的可计算性。
- 计算简单。
- 非饱和性(saturation):饱和指的是在某些区间梯度接近于零(即梯度消失),使得参数无法继续更新的问题。
- 单调性(monotonic):即导数符号不变。
- 输出范围有限:有限的输出范围使得网络对于一些比较大的输入也会比较稳定
- 接近恒等变换(identity):即约等于x。这样的好处是使得输出的幅值不会随着深度的增加而发生显著的增加
- 参数少:大部分激活函数都是没有参数的。
- 归一化(normalization):这个是最近才出来的概念,对应的激活函数是SELU。类似于Batch Normalization
25、什么造成了梯度消失和梯度膨胀?
深度网络的链式连乘法则,使得反向传播时到达前几层时,权值更新值非常小或非常大。可以通过ReLU解决一部分。
26、 各大指标
混淆矩阵
包含四部分的信息:
1. True negative(TN),称为真阴率,表明实际是负样本预测成负样本的样本数
2. False positive(FP),称为假阳率,表明实际是负样本预测成正样本的样本数
3. False negative(FN),称为假阴率,表明实际是正样本预测成负样本的样本数
4. True positive(TP),称为真阳率,表明实际是正样本预测成正样本的样本数
ROC曲线
二分类标签的输出概率需要定义一个阈值p,p值的选取反映了分类器的分类性能。ROC曲线的横轴为FP(将真实负样本预测为了正样本,越低越好),纵轴为TP(将真实正样本预测为正样本,越高越好)
- (0,0):假阳率和真阳率都为0,即分类器全部预测成负样本
- (0,1):假阳率为0,真阳率为1,全部完美预测正确,happy
- (1,0):假阳率为1,真阳率为0,全部完美预测错误,悲剧
- (1,1):假阳率和真阳率都为1,即分类器全部预测成正样本
- TPR=FPR,斜对角线,预测为正样本的结果一半是对的,一半是错的,随机分类则,若ROC曲线处于对角线之下,则分类性能差于随机分类器。希望该曲线向左上角凸。
AUC指标
AUC(Area under the ROC curve),适用于二元分类问题,AUC实际上就是ROC曲线下的面积。AUC直观地反映了ROC曲线表达的分类能力。
- AUC = 1,代表完美分类器
- 0.5 < AUC < 1,优于随机分类器
- 0 < AUC < 0.5,差于随机分类器
求解步骤:
- 获得样本的输出概率和标签值。
- 对于不同的从高到低的阈值,计算不同的TP和FP。
- 绘制ROC曲线,计算面积。
AUC含义:从所有真实的正样本中取一个数据,判断这个样本是正样本的概率是p1,从所有真实的负样本中取一个数据,判断这个样本是正样本的概率是p2。对于分类器来说p1越大越好,p2越小越好。则p1大于p2的概率称之为AUC。
mAP
计算步骤
- 得到所有测试样本的id、输出概率和真实标签值。
- 对输出概率进行排序。
- 假设有M个recall值,分别计算不同recall下的准确率。
- 取M个准确率的平均值。
27、卷积神经网络
1)卷积算法的时间复杂度
因为在图像的每个位置都要计算一遍卷积核,所以图像像素数为M,卷积核大小为N,则卷积的时间复杂度为O(M*N)
2)池化层的作用
- 保留主要特征的同时进行降维和减少计算量,防止过拟合,提高模型泛化能力。
- 增加一定的不变性,在池化窗口内。包括平移、旋转、尺度不变性
3)CNN特性
- CNN的四个特点:局部连接、权值共享、池化操作、多层次结构。
- 局部连接使网络可以提取数据的局部特征;权值共享降低了网络的训练难度,一个Filter只提取一个特征;池化操作与多层次结构一起,实现了数据的降维,将低层次的局部特征组合成为较高层次的特征,从而对整个图片进行表示。
28、为什么很多做人脸的Paper会最后加入一个Local Connected Conv?
人脸在不同的区域存在不同的特征(眼睛/鼻子/嘴的分布位置相对固定),当不存在全局的局部特征分布时,Local-Conv更适合特征的提取。
29、循环神经网络LSTM为何比RNN好
LSTM可以防止梯度消失或者爆炸
30、生成对抗网络
简称GAN。该网络包含2个部分,一个称之为生成器generator,主要作用是生成图片,并且尽量使得其看上去是来自于训练样本的。另一方是discriminator,其目标是判断输入图片是否属于真实训练样本。
TensorFlow
31、如何理解TensorFlow的计算图?
TensorFlow分为二部分,一部分是构造部分,用来构造网络;一部分是执行部分,用来执行网络中的计算。
图像相关开放性知识
32、怎样在一张街拍图像中识别明星的衣着服饰信息?
我们需要把服装与背景、人物、建筑等等元素区别开来,确定是否有衣服以及衣服在什么位置。接下来需要对衣服进行分析,提取出服装的属性、特征等等。最后再根据这些特征,在庞大的数据库里搜索同款或者类似的服装图片。
33、上衣纯色,裙子花色,怎样做区分?
方差判断,梯度变化。
34、怎样判断一张广告图片中是否有文字信息?是否用到OCR技术?怎样应用?
场景文字检测与识别,先用CNN等对文字进行定位,然后再使用LSTM、OCR进行文字识别。
35、给一张二值化图片(包含一个正方形),怎样识别图片中的正方形?如果图片污损严重,怎样识别并恢复?
首先检测轮廓,然后对轮廓进行分析(角点)。
36、简述图像识别在移动互联网中的应用
人脸识别、识别各类东西、检索各类图像。
38、图像处理领域相关顶级论文
- Image and Vision Computing (IVC)
- Pattern Recognition (PR)
- ICCV: IEEE International Conference on Computer Vision
- CVPR: IEEE Conf on Comp Vision and Pattern Recognition
- NIPS: Neural Information Processing Systems
参考连接:https://blog.csdn.net/qq_42491855/article/details/82595497
https://blog.csdn.net/QiangLi_strong/article/details/80760889