本文共 3605 字,大约阅读时间需要 12 分钟。
来源:机器学习算法工程师
本文约3100字,建议阅读9分钟
疫情下,感觉要爆发金融危机了啊,工作都可能找不到了,赶紧梳理下之前的笔试题,给大家个参考。
想了想当初,面试是在阳台上进行的,中午刚睡醒,然后就是开始自我介绍,然后就是简单的寒暄。
然后根据简历,问我的项目细节,问我使用的哪个卷积神经网络模型,为什么选择这个模型,通常都有哪些模型。深度学习是一种方法,神经网络是个模型,深度学习方法呢可以有效解决层数多的神经网络不好学习的问题,为了让层数较多的多层神经网络可以训练,能够起作用并演化出来的一系列的新的结构和新的方法;
结构:一般分为两大阵营,CNN,RNN,感觉这里欠妥,请指正;
方法:权重初始化方法(逐层初始化,XAVIER等),损失函数,防止过拟合方法(Dropout, BN等)。
这些方面主要都是为了解决传统的多层神经网络的一些不足:梯度消失,过拟合等。
分类问题常用的损失函数:
交叉熵损失函数,也称作softmax损失函数,可用于解决多分类问题,通过指数化将输出转换成概率的形式;
合页损失函数,一般情况下,交叉熵损失函数的效果优于合页损失函数;
坡道损失函数,对离群点或者噪声的抗干扰能力强,是一种鲁棒性的损失函数,对误差较大的区域会进行截断;
大间隔损失函数,保证能够正确分类的同时,还满足增大类间的差异,提升了特征的分辨能力,防止网络发生过拟合;
中心损失函数,保证能够正确分类的同时,还满足减少类内的差异,提升了特征的分辨能力。
回归问题常用的损失函数:
l1损失函数,衡量的是预测值与真实值之间的偏差;
l2损失函数,效果优于l1;
tukey‘s biweight损失函数,是一种具有鲁棒性的损失函数。
其他任务的损失函数:
KL散度损失函数,衡量的是样本标记分布与真实标记分布的差异,可用于年龄估计等。
分开看就明确了,“卷积” 和 “神经网络”。卷积也就是说神经网络不再是对每个像素的输入信息做处理了,而是图片上每一小块像素区域进行处理,这种做法加强了图片信息的连续性。使得神经网络能看到图形,而非一个点。这种做法同时也加深了神经网络对图片的理解。
具体来说,卷积神经网络有一个批量过滤器,持续不断地在图片上滚动收集图片里的信息,每一次收集的时候都只是收集一小块像素区域,然后把收集来的信息进行整理,这时候整理出来的信息有了一些实际上的呈现,比如这时的神经网络能看到一些边缘的图片信息。然后再以同样的步骤,用类似的批量过滤器扫过产生的这些边缘信息, 神经网络从这些边缘信息里面总结出更高层的信息结构,比如说总结的边缘能够画出眼睛,鼻子等等。
卷积的重要的物理意义是:一个函数(如:单位响应)在另一个函数(如:输入信号)上的加权叠加,这就是卷积的意义:加权叠加,不同的卷积核提供了不同的加权方式,从而得到鲁棒的特征,进行参数共享,大大减少了参数量,避免过拟合;
中文分词就是将中文按语义分出词语来,与英文不同,中文词语之间没有空格,需要根据语义经验等知识来将一组汉字序列进行切分出一个个词语。
中文分词主要分为三种:
机械分词法:是一种基于词典的方法,是将文档中的字符串与词典中的词条一一匹配,如果在词典中找到了某个字符串,则匹配成功,可以切分,否则不予切分。该方法实现简单,使用性强,但对于词典的完备性要求很高。
基于语法和规则的分词方法:是在分词的同时进行句法和语义分析,通过句法和语义信息来标注词性,以解决分词歧义的现象。但汉语语法笼统,复杂,所以该种方法的精度不尽人意,目前仍处于试验阶段。
基于统计的分词法:根据字符串在语料中出现的统计词频来判断其是否构成一个词。词是字的组合,相邻的字同时出现的次数越多越有可能成为一个词。该种方法因精度高,效果稳定,成为目前最流行的一种方法,常见的分词模型有HMM,CRF,biLSTM+CRF等
机器翻译,或神经机器翻译(NMT)在翻译中提供了统计方式之外的另一种方式,同时也更加简便。
知识问答,问答机器人,可以用深度学习模型,从语料中学习获得一些问题的答案。
自然语言生成,能够根据一些关键信息及其在机器内部的表达形式,经过一个规划过程,来自动生成一段高质量的自然语言文本。
sift指的是scale invarient feature transform,即尺度不变特征变换。
sift特征是一种对缩放、旋转、光照变化等不敏感的局部图像特征,其提取过程是先生成图像的尺度空间,然后在尺度空间中检测极值点作为关键点,最后利用关键点邻域的梯度信息生成特征描述符。答:过拟合:就是在机器学习中,我么测试模型的时候,提高了在训练数据集的表现力时候,但是在训练集上的表现力反而下降了。
解决方案:
正则化;
在训练模型过程中,调节参数;
学习率不要太大;
对数据进行交叉验证;
选择适合训练集合测试集数据的百分比,选取合适的停止训练标准,使对机器的训练在合适;
在神经网络模型中,我们可以减小权重。
都是分类算法;
如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的;
LR和SVM都是监督学习算法;
LR和SVM的损失函数不同;
SVM只考虑局部的边界线附近的点 ,LR考虑全局,远离的点对边界线的确定也起作用。
由于我们的RAM很小,首先要关闭机器上正在运行的其他程序,包括网页浏览器等,以确保大部分内存可以使用;
我们可以随机采样数据集;
这意味着,我们可以创建一个较小的数据集,比如有1000个变量和30万行,然后做计算;
为了降低维度,我们可以把数值变量和分类变量分开,同时删掉相关联的变量;
对于数值变量,我们将使用相关性分析;
对于分类变量,我们可以用卡方检验;
另外,我们还可以使用PCA(主成分分析),并挑选可以解释在数据集中有最大偏差的成分;
利用在线学习算法,如VowpalWabbit(在Python中可用)是一个不错的选择;
利用Stochastic GradientDescent(随机梯度下降法)建立线性模型也很有帮助;
我们也可以用我们对业务的理解来估计各预测变量对响应变量的影响的大小。
但是,这是一个主观的方法,如果没有找出有用的预测变量可能会导致信息的显著丢失。
约有32%的数据将不受缺失值的影响。
因为,由于数据分布在中位数附近,让我们先假设这是一个正态分布。我们知道,在一个正态分布中,约有68%的数据位于跟平均数(或众数、中位数)1个标准差范围内,那么剩下的约32%的数据是不受影响的。因此,约有32%的数据将不受缺失值的影响。真阳性率=召回。它们有相同的公式(TP / TP + FN)。
我们不用曼哈顿距离,因为它只计算水平或垂直距离,有维度的限制。另一方面,欧氏距离可用于任何空间的距离计算问题。
因为,数据点可以存在于任何空间,欧氏距离是更可行的选择。
例如:想象一下国际象棋棋盘,象或车所做的移动是由曼哈顿距离计算的,因为它们是在各自的水平和垂直方向做的运动。https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/5-03-A-CNN/
https://www.zhihu.com/question/22298352/answer/34267457https://www.nowcoder.com/questionTerminal/42fe838421a84e279a67a0a16b874d29?source=relativehttp://www.elecfans.com/d/540309.htm编辑:黄继彦
校对:林亦霖
转载地址:http://sruqi.baihongyu.com/