- 博客(21)
- 收藏
- 关注
原创 算法面经总结(20)集成学习
集成学习是有监督学习数据集大:划分多个小数据集,学习多个模型进行组合数据集小:利用Bootstrap方法进行抽样,得到多个数据集,分别训练多个模型进行组合1、bagging、boosting bagging,利用bootstrap方法从整体数据集中采取有放回抽样得到N个数据集,从每个数据集中学习出一个模型,最后分类采用N个模型预测投票的方式,回归采取平均 boosting,用于减小偏差的方法,主要也是学习一系列弱分类器,但是串行的方式。三要素:损失函数、弱学习器、强学习器...
2021-08-22 16:40:15
375
原创 算法面经总结(19) Linux
普通常见命令1、ctrl+c 中断目前程序2、ctrl+d 键盘输入结束,相当于exit3、shutdown -h .. 关机4、reboot 重启5、chmod 改变文件属性,改变权限,chmod 777 /home/...6、mkdir 创建文件夹7、rmdir 删除空目录8、ls 查看文件与目录 -a 表示隐藏文件 -d仅列出目录本身,不列出目录内的文件数据 -l 列出文件长数据串9、rm [-rf] 移除文件或目录 -r递归删除 -f强行删...
2021-08-17 16:22:53
194
原创 算法面经总结(18)pytorch
1、nn.functional中的函数和nn.Module主要区别function定义的激活函数等不需要学习,参数更新。激活函数(ReLU,sigmoid,tanh),池化等可以使用functional替代。module一般定义层,参数需要更新,对于卷积,全连接等具有可学习参数的网络建议使用nn.Module2、pytorch使用多gpu训练机制 处理接口是 model = nn . DataParallel ( model ,device_ids) 机制...
2021-08-17 15:06:40
1726
原创 算法面经总结(17)C++
1、指针和引用的区别(1)指针有自己的一块空间,引用就只是一个别名(2)使用sizeof看指针的大小为4字节,而引用则是被引用对象的大小(3)指针可以初始化为NULL,而引用必须初始化为一个已有对象的引用(4)如果返回动态分配内存的对象或者内存,必须使用指针,引用可能引起内存泄漏2、堆、栈的区别栈:由os自动分配释放,存放函数的参数值,局部变量的值等,类似于数据结构的栈堆:由程序员分配释放,若不释放,介绍时可能os回收,类于链表速度上:栈是编译时分配空间,堆是动态分配(运行时
2021-08-17 09:49:07
179
原创 算法面经总结(16)python基础知识
1、List(列表)和tuples(元组)的区别列表 元组 可变的,可以被编辑 不可变,所以可以用作字典key 比元组慢 比列表快(因为支持的操作少) list=[10,'C',20] tuple_1=(10,'C',20) 一般表示数据 一般表示结构 2、数组与列表的区别 具有相同的存储数据方式,但是数组只能包含单个数据类型元素。而列表可以包含任意数据类型的元素。3、python能编写脚本,一般认为时通用编程语言...
2021-08-16 21:19:35
257
原创 算法面经总结(15)机器学习常见知识
1、正负样本不均衡的处理方法(1)上采样:通过将小众类样本复制多份,来得到多个不同数据集,每个数据集训练一个模型 缺点:反复出现一些样本,容易过拟合 解决:生成新数据时加入随机扰动(2)下采样:从大众类中选取部分样本 缺点:丢失部分信息,只学到了总体的一部分 解决:boosting和bagging(3)数据合成(4)加权,对不同类别分错的代价不同,采用Focal loss2、学习到某层loss为0,梯度消失怎么办产生原因:随着层数的加深,激...
2021-08-16 19:54:52
705
原创 算法面经总结(14)模型优化及降维
1、CNN模型压缩方法 VGG将卷积核尺寸从7*7缩小为3*3,减少参数 GoogleNet的一个inception每条路径经过1*1,降维 Resnet也用了1*1卷积进行降维 MobileNet使用了可分离了卷积2、模型压缩方法 常用方法:网络剪枝、知识蒸馏、参数量化 知识蒸馏,基于教师-学生网络思想的训练方法,将从复杂模型学习到的知识提取给简单模型3、模型裁剪 训练一个...
2021-08-16 15:33:36
777
原创 算法面经总结(13)激活函数
1、意义 没有激活函数(非线性函数),输出都是输入的线性组合,网络逼近能力有限。数据的分布绝大多数是非线性的,而一般神经网络的计算是线性的,引入激活函数,是在神经网络中引入非线性,强化网络的学习能力。所以激活函数的最大特点就是非线性。2、常见激活函数(1)sigmoid函数应用:逻辑回归;二分类任务的输出层(概率预测);隐藏层缺点:容易产生梯度消失;输出不是0均值,这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入,随着网络的加深,会改变数据的原始分布;收...
2021-08-16 14:25:30
262
原创 算法面经总结(11)欠拟合策略
1)添加其他特征项,有时候我们模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。例如,“组合”、“泛化”、“相关性”三类特征是特征添加的重要手段,无论在什么场景,都可以照葫芦画瓢,总会得到意想不到的效果。除上面的特征之外,“上下文特征”、“平台特征”等等,都可以作为特征添加的首选项。2)添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强。例如上面的图片的例子。3)减少正则化参数,正则化的目的是用来防止过拟合的,但是现在
2021-08-16 10:05:24
103
原创 算法面经总结(12)损失函数
损失函数:Loss Function 是定义在单个样本上的,算的是一个样本的误差。代价函数:Cost Function 定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。目标函数:Object Function 最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。...
2021-08-16 10:04:23
495
原创 算法面经总结(10)常见防止过拟合策略(正则化、BN、dropout)
1、判断过拟合 训练集上精度高,验证集上表现不好。训练出的模型泛化能力差(学习器正确学习到了数据分布,但数据分布有问题)2、解决模型过拟合的策略 增加训练集数据 降低模型复杂度 增加正则化的约束(L2限制参数过大,L1限制参数过多,BN限制分布偏移) 通过集成学习的方式训练模型3、L1和L2有什么区别 定义 L1正则化是指权值向量w中各个元素的绝对值之和...
2021-08-15 22:21:46
1527
原创 算法面经总结(8)聚类
1、K-means 是无监督,思想:对于给定的样本集,按照样本之间的距离大小,将样本划分为k个簇,让簇内点距离近,簇间距离远 流程: 输入样本集D={x1,x2..,xn},簇数k,最大迭代次数N 输出是簇划分C={c1,...ck} (1)从数据集中随机选取k个样本作为初始的簇的中心:{u1...,uk} (2)对于n=1,2,...N...
2021-08-15 22:11:03
431
原创 算法面经总结(7)KNN
1、原理 有监督分类算法,核心思想是判断一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别。关键是k的选取以及距离的度量。2、距离选择 p=1是曼哈顿距离 ,对应于L1范数 p=2是欧氏距离,对应于L2范数 p趋于无穷,是切比雪夫距离3、k的选择 选择较小的k,整体模型变复杂,容易过拟合 选择较大的k,减少学习的估计误差,近似误差会增大,容易欠拟合。...
2021-08-15 21:47:03
212
原创 算法面经总结(6)逻辑回归LR
1、原理 假设数据是服从这个分布,然后使用极大似然估计做参数的估计。主要应用于二分类问题。 sigmoid函数 构造预测函数 表示结果取1的概率。 合并变为 (a) 构造损失函数 ...
2021-08-15 21:22:53
330
原创 算法面经总结(5)SVM
1、原理(硬间隔)SVM是去找一个超平面来划分样本,而如何去找到这个超平面,SVM基于几何间隔最大化原理,去寻找最大几何间隔的分类面为最优分类超平面。(一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度,SVM就是要最大化这个间隔值)我们可以发现,SVM划分超平面的选择只和支持向量有关!margin就是超平面 由几何间隔的公式:空间中任意一点xi到平面的几何距离 则由图可知 ...
2021-08-15 16:50:15
556
原创 算法面经总结(4)卷积与池化
一、卷积1、卷积原理2、图像卷积后输出计算公式N = (W − F + 2P )/S+1W是输入大小,F是卷积核大小,P是填充,S是步长3、padding的作用 保持边界信息。 可以利用padding对输入尺寸有差异图片进行补齐,输入图片尺寸一致。 在CNN的卷积层中可以使得输入维和输出维一致。 卷积神经网络的池化层中,一般都是为了保持边界信息。4、1*1卷积...
2021-08-15 15:07:48
2926
原创 算法面经总结(3)评价指标
1、常见 实正 实负 判正 TP FP 判负 FN TN (1)精确率(查准率) 正确预测为正占全部预测为正的比率 P=TP/(TP+FP)(2)召回率(查全率) 正确预测为正占全部实际为正的比率 R=TP/(TP+FN)(3)准确率预测正确的占所有样本的比率 准确率= (TP+TN)/(TP+FN+FP+TN)(4)Fp分数...
2021-08-15 12:12:04
146
原创 算法面经总结(2)梯度优化函数
1、BGD,批量梯度下降算法是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新。负梯度方向是使函数值下降最快的方向。(1)推导(以线性函数的损失函数为例,下同):对损失函数求导:由于是风险最小化函数,所以按照每个参数θ的梯度负方向来更新每个θ(2)优点 得到的是全局最优解,易于并行实现(3)缺点 对整个数据集计算梯度,计算量大且慢 对于大数据集样本,可能会有相似样本...
2021-08-15 09:53:10
415
原创 算法面经总结(1)初始化以及衍生问题
一、常见初始化方式1、正态分布随机初始化torch.nn.init.normal_(X(Tensor), mean: float = 0.0, std: float = 1.0) 2、均匀分布随机初始化torch.nn.init.uniform_(X(Tensor), a: float = 0.0, b: float = 1.0) 3、Xavier初始化条件:基于激活函数是线性的,如tanh,不适用于Relu,sigmoid等,且激活函数需要关于0对称,在传播时,方差不变推.
2021-08-14 16:51:08
719
原创 stnet复现记录(1):数据处理篇
前言:由于项目需要,所以打算复现《StNet:Local and Global Spatial-Temporal Modeling for Human Action Recognition》这一篇论文,鉴于踩过的一些坑,特此记录下。项目链接:https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/video/models/stnet/README.md准备环境:ubuntu16.04+paddlepaddle数据集修正
2021-04-27 21:24:32
509
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人