机器学习算法汇总_【机器学习】 matlab 2016a 自带机器学习算法汇总 - CSDN
精华内容
参与话题
  • 机器学习算法汇总大全,对常见的算法用比较容易理解的语言进行描述,相比直接看算法公式更容易理解
  • 机器学习入门系列(2)--如何构建一个完整的机器学习项目,第九篇! 该系列的前八篇文章: 机器学习入门系列(2)--如何构建一个完整的机器学习项目(一) 机器学习数据集的获取和测试...常用机器学习算法汇总比较的最...

    机器学习入门系列(2)--如何构建一个完整的机器学习项目,第九篇!

    该系列的前八篇文章:

    常用机器学习算法汇总比较的最后一篇,介绍提升(Boosting)算法、GBDT、优化算法和卷积神经网络的基本原理、优缺点。


    9. 提升(Boosting)方法

    简述

    提升方法(boosting)是一种常用的统计学习方法,在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提供分类的性能。

    boosting 和 bagging

    boosting 和 bagging 都是集成学习(ensemble learning)领域的基本算法,两者使用的多个分类器的类型是一致的

    Bagging

    bagging也叫自助汇聚法(bootstrap aggregating),比如原数据集中有 N 个样本,我们每次从原数据集中有放回的抽取,抽取 N 次,就得到了一个新的有 N 个样本的数据集,然后我们抽取 S 个 N 次,就得到了 S 个有 N 个样本的新数据集,然后拿这 S 个数据集去训练 S 个分类器,之后应用这 S 个分类器进行分类,选择分类器投票最多的类别作为最后的分类结果。一般来说自助样本的包含有 63% 的原始训练数据,因为:

    假设共抽取 N 个样本,则 N 次都没有抽到的概率是 p=(1-\frac{1}{N})^N

    则一个样本被抽到的概率有 p = 1- (1- \frac{1}{N})^N

    所以,当 N 很大时有:p = 1- \frac{1}{e} = 0.632

    这样,在一次 bootstrap 的过程中,会有 36% 的样本没有被采样到,它们被称为 out-off-bag(oob),这是自助采样带给 bagging 的里一个优点,因为我们可以用 oob 进行**“包外估计”(out-of-bag estimate)**。

    bagging 通过降低基分类器的方差改善了泛化误差,bagging 的性能依赖于基分类器的稳定性。如果基分类器是不稳定的,bagging 有助于减少训练数据的随机波动导致的误差,如果基分类器是稳定的,即对训练数据集中的微小变化是鲁棒的,则组合分类器的误差主要由基分类器偏移所引起的,这种情况下,bagging 可能不会对基分类器有明显的改进效果,甚至可能降低分类器的性能。

    boosting 与 bagging 的区别
    • bagging 通过有放回的抽取得到了 S 个数据集,而 boosting 用的始终是原数据集,但是样本的权重会发生改变。
    • boosting 对分类器的训练是串行的,每个新分类器的训练都会受到上一个分类器分类结果的影响。
    • bagging 里面各个分类器的权重是相等的,但是 boosting 不是,每个分类器的权重代表的是其对应分类器在上一轮分类中的成功度。

    AdaBoost 是 boosting 方法中最流行的版本

    AdaBoost 算法

    AdaBoost(adaptive boosting)是元算法,通过组合多个弱分类器来构建一个强分类器

    我们为训练数据中的每一个样本都赋予其一个权重,这些权重构成了向量 D,一开始,这些权重都初始化成相等值,然后每次添加一个弱分类器对样本进行分类,从第二次分类开始,将上一次分错的样本的权重提高,分对的样本权重降低,持续迭代

    此外,对于每个弱分类器而言,每个分类器也有自己的权重,取决于它分类的加权错误率,加权错误率越低,则这个分类器的权重值 α 越高,最后综合多个弱分类器的分类结果和其对应的权重 α 得到预测结果,AdaBoost 是最好的监督学习分类方法之一。

    优缺点

    优点
    1. 泛化误差低
    2. 容易实现,分类准确率较高,没有太多参数可以调
    缺点
    • 对异常值比较敏感
    • 训练时间过长
    • 执行效果依赖于弱分类器的选择

    10. GBDT

    简述

    GBDT 是一个基于迭代累加的决策树算法,它通过构造一组弱的学习器(树),并把多颗决策树的结果累加起来作为最终的预测输出。

    GBDT中的树是回归树,不是分类树

    随机森林(Random Forest,RF) 与 GBDT 对比
    1. RF 中树的棵树是并行生成的;GBDT 中树是顺序生成的;两者中过多的树都会过拟合,但是 GBDT 更容易过拟合
    2. RF 中每棵树分裂的特征比较随机;GBDT 中前面的树优先分裂对大部分样本区分的特征,后面的树分裂对小部分样本区分特征
    3. RF 中主要参数是树的棵数;GBDT 中主要参数是树的深度,一般为1

    优缺点

    优点
    1. 精度高
    2. 能处理非线性数据
    3. 能处理多特征类型
    4. 适合低维稠密数据
    5. 模型可解释性好
    6. 不需要做特征的归一化,可以自动选择特征
    7. 能适应多种损失函数,包括均方误差和LogLoss
    缺点
    1. boosting 是个串行的过程,所以并行麻烦,需要考虑上下树之间的联系
    2. 计算复杂度大
    3. 不使用高维稀疏特征

    调参

    1. 树的个数 100~10000
    2. 叶子的深度 3~8
    3. 学习速率 0.01~1
    4. 叶子上最大节点树 20
    5. 训练采样比例 0.5~1
    6. 训练特征采样比例 \sqrt(n)

    xgboost

    xgboost 是 boosting Tree 的一个很牛的实现,它在 Kaggle 比赛中大放异彩。它有以下几个优良的特性:

    1. 显示的把树模型复杂度作为正则项加到优化目标中。
    2. 公式推导中用到了二阶导数,用了二阶泰勒展开。
    3. 实现了分裂点寻找近似算法。
    4. 利用了特征的稀疏性。
    5. 数据事先排序并且以 block 形式存储,有利于并行计算。
    6. 基于分布式通信框架 rabit,可以运行在 MPI 和 yarn 上。(最新已经不基于 rabit 了)
    7. 实现做了面向体系结构的优化,针对 cache 和内存做了性能优化。

    在项目实测中使用发现,Xgboost 的训练速度要远远快于传统的 GBDT 实现,10 倍量级。

    代码实现

    下面给出简单使用xgboost这个框架的例子。

    # 划分数据集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.01, random_state=1729)
    print(X_train.shape, X_test.shape)
    
    #模型参数设置
    xlf = xgb.XGBRegressor(max_depth=10, 
                            learning_rate=0.1, 
                            n_estimators=10, 
                            silent=True, 
                            objective='reg:linear', 
                            nthread=-1, 
                            gamma=0,
                            min_child_weight=1, 
                            max_delta_step=0, 
                            subsample=0.85, 
                            colsample_bytree=0.7, 
                            colsample_bylevel=1, 
                            reg_alpha=0, 
                            reg_lambda=1, 
                            scale_pos_weight=1, 
                            seed=1440, 
                            missing=None)
    
    xlf.fit(X_train, y_train, eval_metric='rmse', verbose = True, eval_set = [(X_test, y_test)],early_stopping_rounds=100)
    
    # 计算 auc 分数、预测
    preds = xlf.predict(X_test)
    复制代码

    11. 优化算法

    常见的最优化方法有梯度下降法、牛顿法和拟牛顿法、共轭梯度法等等

    梯度下降法

    梯度下降法是最早最简单,也是最为常用的最优化方法。

    梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解

    一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。

    梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢

    梯度下降法的搜索迭代示意图如下图所示:

    其缺点是:

    (1)靠近极小值时收敛速度减慢,如下图所示;

    (2)直线搜索时可能会产生一些问题;

    (3)可能会“之字形”地下降。

    从上图可以看出,梯度下降法在接近最优解的区域收敛速度明显变慢,利用梯度下降法求解需要很多次的迭代。

    在机器学习中,基于基本的梯度下降法发展了三种梯度下降方法:

    1. 批量梯度下降法:每次迭代都会采用整个训练集
    2. 随机梯度下降法:每次迭代随机使用一个训练样本
    3. 小批量梯度下降法:每次迭代采用一个小型的训练子集

    其中小批量梯度下降法是前两种方法的一个折中,也是目前最常用的梯度下降法,它即避免了批量梯度下降法需要计算整个训练集的缺点,也不会像随机梯度下降法一样会出现训练震荡,不稳定的缺点。当然,它相比前两种方法的缺点就是比较容易陷入局部最小值中。

    牛顿法

    牛顿法是一种在实数域和复数域上近似求解方程的方法。方法使用函数 f(x) 的泰勒级数的前面几项来寻找方程 f(x) = 0 的根。

    它是二阶算法,它使用了 Hessian 矩阵求权重的二阶偏导数,目标是采用损失函数的二阶偏导数寻找更好的训练方向。

    牛顿法最大的特点就在于它的收敛速度很快。

    牛顿法是基于当前位置的切线来确定下一次的位置,所以牛顿法又被很形象地称为是"切线法"。牛顿法的搜索路径(二维情况)如下图所示:

    牛顿法搜索动态示例图:

    关于牛顿法和梯度下降法的效率对比:

    • 从本质上去看,牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。(牛顿法目光更加长远,所以少走弯路;相对而言,梯度下降法只考虑了局部的最优,没有全局思想。)
    • 根据 wiki上的解释,从几何上说,牛顿法就是用一个二次曲面去拟合当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。

    注:红色的牛顿法的迭代路径,绿色的是梯度下降法的迭代路径。

    优缺点
    优点

    二阶收敛,收敛速度快;

    缺点
    1. Hessian 矩阵(海森矩阵的逆)计算量较大,当问题规模较大时,不仅计算量大而且需要的存储空间也多,因此牛顿法在面对海量数据时由于每一步迭代的开销巨大而变得不适用;
    2. 牛顿法在每次迭代时不能总是保证海森矩阵是正定的,一旦海森矩阵不是正定的,优化方向就会“跑偏”,从而使得牛顿法失效,也说明了牛顿法的鲁棒性较差。

    拟牛顿法

    拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的 Hessian 矩阵的逆矩阵的缺陷,它使用正定矩阵来近似 Hessian 矩阵的逆,从而简化了运算的复杂度

    拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。

    另外,因为拟牛顿法不需要二阶导数的信息,而是在每次迭代的时候计算一个矩阵,其逼近海塞矩阵的逆。最重要的是,该逼近值只是使用损失函数的一阶偏导来计算,所以有时比牛顿法更为有效。

    如今,优化软件中包含了大量的拟牛顿算法用来解决无约束,约束,和大规模的优化问题。

    共轭梯度法(Conjugate Gradient)

    共轭梯度法是介于最速下降法与牛顿法之间的一个方法,**它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,**共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。在各种优化算法中,共轭梯度法是非常重要的一种。其优点是所需存储量小,具有收敛快,稳定性高,而且不需要任何外来参数。

    在共轭梯度训练算法中,因为是沿着共轭方向(conjugate directions)执行搜索的,所以通常该算法要比沿着梯度下降方向优化收敛得更迅速。共轭梯度法的训练方向是与海塞矩阵共轭的。

    共轭梯度法已经证实其在神经网络中要比梯度下降法有效得多。并且由于共轭梯度法并没有要求使用海塞矩阵,所以在大规模神经网络中其还是可以做到很好的性能。

    启发式优化方法

    启发式方法指人在解决问题时所采取的一种根据经验规则进行发现的方法。其特点是在解决问题时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的步骤去寻求答案。启发式优化方法种类繁多,包括经典的模拟退火方法、遗传算法、蚁群算法以及粒子群算法等等。

    还有一种特殊的优化算法被称之多目标优化算法,它主要针对同时优化多个目标(两个及两个以上)的优化问题,这方面比较经典的算法有 NSGAII 算法、MOEA/D 算法以及人工免疫算法等。

    解决约束优化问题--拉格朗日乘数法

    这个方法可以参考文章 拉格朗日乘数法

    Levenberg-Marquardt 算法

    Levenberg-Marquardt 算法,也称之为衰减最小二乘法(damped least-squares method),该算法的损失函数采用平方误差和的形式。该算法的执行也不需要计算具体的海塞矩阵,它仅仅只是使用梯度向量和雅可比矩阵(Jacobian matrix)。

    Levenberg-Marquardt 算法是为平方误差和函数所定制的。这就让使用这种误差度量的神经网络训练地十分迅速。然而 Levenberg-Marquardt 算法还有一些缺点:

    • 不能用于平方根误差或交叉熵误差(cross entropy error)等函数,
    • 该算法还和正则项不兼容。
    • 最后,对于大型数据集或神经网络,雅可比矩阵会变得十分巨大,因此也需要大量的内存。所以我们在大型数据集或神经网络中并不推荐采用 Levenberg-Marquardt 算法。

    内存与收敛速度的比较

    下图展示了所有上文所讨论的算法,及其收敛速度和内存需求。其中收敛速度最慢的是梯度下降算法,但该算法同时也只要求最少的内存。相反,Levenberg-Marquardt 算法可能是收敛速度最快的,但其同时也要求最多的内存。比较折衷方法是拟牛顿法。

    总而言之:

    • 如果我们的神经网络有数万参数,为了节约内存,我们可以使用梯度下降或共轭梯度法
    • 如果我们需要训练多个神经网络,并且每个神经网络都只有数百参数、数千样本,那么我们可以考虑 Levenberg-Marquardt 算法
    • 而其余的情况,拟牛顿法都能很好地应对。

    12. 卷积神经网络(CNN)

    CNN 可以应用在场景分类,图像分类,现在还可以应用到自然语言处理(NLP)方面的很多问题,比如句子分类等。

    LeNet 是最早的CNN结构之一,它是由大神 Yann LeCun 所创造的,主要是用在字符分类问题。

    卷积神经网络主要包含四种不同的网络层,分别是卷积层,非线性层(也就是使用了ReLU函数),Pooling层,全连接层,下面将一一介绍这几种网络层。

    12.1 卷积层

    卷积简介

    CNN的名字由来就是因为其使用了卷积运算的缘故。卷积的目的主要是为了提取图片的特征。卷积运算可以保持像素之间的空间关系。

    每张图片可以当做是一个包含每个像素值的矩阵,像素值的范围是 0~255,0 表示黑色,255 是白色。下面是一个 5 × 5 大小的矩阵例子,它的值是 0 或者 1。

    接下来是另一个 3 × 3 矩阵:

    上述两个矩阵通过卷积,可以得到如下图右侧粉色的矩阵结果。

    黄色的矩阵在绿色的矩阵上从左到右,从上到下,每次滑动的步进值是1个像素,所以得到一个 3 × 3 的矩阵。

    在CNN中,黄色的矩阵被叫做滤波器(filter)或者核(kernel)或者是特征提取器,而通过卷积得到的矩阵则是称为“特征图(Feature Map)”或者“Activation Map”。

    另外,使用不同的滤波器矩阵是可以得到不同的 Feature Map ,例子如下图所示:

    上图通过滤波器矩阵,实现了不同的操作,比如边缘检测,锐化以及模糊操作等。

    在实际应用中,CNN 是可以在其训练过程中学习到这些滤波器的值,不过我们需要首先指定好滤波器的大小,数量以及网络的结构。使用越多的滤波器,可以提取到更多的图像特征,网络也就能够有更好的性能。

    Feature Map 的尺寸是由以下三个参数来决定的:

    • 深度(Depth)深度等于滤波器的数量
    • 步进(Stride): 步进值是在使用滤波器在输入矩阵上滑动的时候,每次滑动的距离。步进值越大,得到的 Feature Map 的尺寸越小。
    • Zero-padding: 有时候可以在输入矩阵的边界填补 0,这样就可以将滤波器应用到边缘的像素点上,一个好的 Zero-padding 是能让我们可以控制好特征图的尺寸的。使用该方法的卷积称为 wide convolution,没有使用的则是 narrow convolution
    卷积公式和参数量

    卷积是大自然中最常见的运算,一切信号观测、采集、传输和处理都可以用卷积过程实现,其用公式表达如下:

    \begin{align} Y(m,n) & =X(m,n)*H(m,n) \\  &= \sum_{i=-\infty}^{+\infty}\sum_{j=-\infty}^{+\infty}X(i,j)H(m-i,n-j) \\ &=\sum_{i=-\infty}^{+\infty}\sum_{j=-\infty}^{+\infty}X(m-i,n-j)H(i,j) \end{align}

    上述公式中 H(m,n) 表示卷积核。

    在 CNN 中的卷积层的计算步骤与上述公式定义的二维卷积有点差异,首先是维度升至三维、四维卷积,跟二维卷积相比多了一个**“通道”(channel)**,每个通道还是按照二维卷积方式计算,而多个通道与多个卷积核分别进行二维卷积,得到多通道输出,需要“合并”为一个通道;其次是卷积核在卷积计算时没有“翻转”,而是与输入图片做滑动窗口“相关”计算。用公式重新表达如下:

    Y^l(m,n) =X^k(m,n)*H^{kl}(m,n) = \sum_{k=0}^{K-1}\sum_{i=0}^{I-1}\sum_{j=0}^{J-1}X^k(m+i,n+j)H^{kl}(i,j)

    这里假定卷积层有 L 个输出通道和 K 个输入通道,于是需要有 K×L 个卷积核实现通道数目的转换。其中 X^k 表示第 k 个输入通道的二维特征图,Y^l 表示第 l 个输出通道的二维特征图,H^{kl} 表示第 k 行、第 l 列二维卷积核。

    假定卷积核大小是 I×J,每个输出通道的特征图大小是 M×N,则该层每个样本做一次前向传播时卷积层的计算量是

    Calculations(MAC)=I×J×M×N×K×L。

    卷积层的学习参数,也就是卷积核数目乘以卷积核的尺寸--Params = I×J×K×L

    这里定义计算量-参数量之比是CPR=Calculations/Params=M×N

    因此可以得出结论:卷积层的输出特征图尺寸越大,CPR 越大,参数重复利用率越高。若输入一批大小为 B 的样本,则 CPR 值可提高 B 倍。

    优点

    卷积神经网络通过**『参数减少』与『权值共享』**大大减少了连接的个数,即需要训练的参数的个数。

    假设我们的图像是 1000×1000 的,则有 10^6 个隐层神经元,那么它们全连接的话,也就是每个隐层神经元都连接图像的每个像素点,就有 10^12 个连接,也即 10^12 个权值参数需要训练,这显然是不值得的。

    但是对于一个只识别特定特征的卷积核,需要大到覆盖整个图像的所有像素点吗?

    通常是不需要的,一个特定特征,尤其是第一层需要提取的特征,通常都相当基础,只占图像很小的一部分。所以我们设置一个较小的局部感受区域,比如10*10,也即每个神经元只需要和这10*10的局部图像相连接,所以 10^6 个神经元也就有 10^8 个连接。这就叫参数减少。

    那什么叫权值共享呢?

    在上面的局部连接中,10^6 个神经元,每个神经元都对应 100 个参数,所以是 10^8 个参数,那如果每个神经元所对应的参数都是相同的,那需要训练的参数就只有 100 个

    这后面隐含的道理在于,这 100 个参数就是一个卷积核,而卷积核是提取特征的方式,与其在图像上的位置无关,图像一个局部的统计特征与其他局部的统计特征是一样的,我们用在这个局部抽取特征的卷积核也可以用在图像上的其它任何地方

    而且这 100 个参数只是一种卷积核,只能提取一种特征,我们完全可以采用 100 个卷积核,提取 100 种特征,而所需要训练的参数也不过 10^4,最开始我们训练 10^12 个参数,还只能提取一种特征。选取 100 个卷积核,我们就能得到 100 张特征图,每张特征图可以看做是一张图像的不同通道。

    CNN 主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。

    由于 CNN 特征检测层通过训练数据进行学习,在使用 CNN 时,避免了显式的特征抽取,而隐式地从训练数据中进行学习;

    再者,由于同一个特征图上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。

    卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,避免了特征提取和分类过程中数据重建的复杂度。

    12.2 非线性层(ReLU)

    非线性修正函数**ReLU(Rectified Linear Unit)**如下图所示:

    这是一个对每个像素点实现点乘运算,并用 0 来替换负值像素点。

    其目的是在 CNN 中加入非线性,因为使用 CNN 来解决的现实世界的问题都是非线性的,而卷积运算是线性运算,所以必须使用一个如ReLU的非线性函数来加入非线性的性质

    其他非线性函数还包括 tanhSigmoid,但是 ReLU 函数已经被证明在大部分情况下性能最好。

    12.3 Pooling层

    **空间合并(Spatial Pooling)**也可以叫做子采样或者下采样,可以在保持最重要的信息的同时降低特征图的维度。它有不同的类型,如最大化,平均,求和等等。

    对于Max Pooling操作,首先定义一个空间上的邻居,比如一个 2×2 的窗口,对该窗口内的经过 ReLU 的特征图提取最大的元素。除了提取最大的元素,还可以使用窗口内元素的平均值或者是求和的值。

    不过,Max Pooling 的性能是最好的。例子可以如下图所示:

    上图中使用的步进值是 2。

    根据相关理论,特征提取的误差主要来自两个方面:

    1. 邻域大小受限造成的估计值方差增大;
    2. 卷积层参数误差造成估计均值的偏移。

    一般来说,mean-pooling 能减小第一种误差,更多的保留图像的背景信息,max-pooling 能减小第二种误差,更多的保留纹理信息。

    使用Pooling的原因有如下几点:

    • 不变性,更关注是否存在某些特征而不是特征具体的位置。可以看作加了一个很强的先验,让学到的特征要能容忍一些的变化。
    • 减小下一层输入大小,减小计算量和参数个数。
    • 获得定长输出。(文本分类的时候输入是不定长的,可以通过池化获得定长输出)
    • 防止过拟合或有可能会带来欠拟合

    12.4 全连接层

    全连接层就是一个传统的多层感知器,它在输出层使用一个 softmax 激活函数。

    其主要作用就是将前面卷积层提取到的特征结合在一起然后进行分类

    Softmax 函数可以将输入是一个任意实数分数的向量变成一个值的范围是 0~1 的向量,但所有值的总和是 1。

    在 CNN 出现之前,最早的深度学习网络计算类型都是全连接形式的。

    比较卷积层和全连接层,卷积层在输出特征图维度实现了权值共享,这是降低参数量的重要举措,同时,卷积层局部连接特性(相比全连接)也大幅减少了参数量。

    因此卷积层参数量占比小,但计算量占比大,而全连接层是参数量占比大,计算量占比小。所以在进行计算加速优化时,重点放在卷积层;在进行参数优化、权值剪裁时,重点放在全连接层。

    12.5 反向传播(Backpropagation)

    CNN的整个训练过程如下所示:

    1. 首先是随机初始化所有滤波器以及其他参数和权重值;
    2. 输入图片,进行前向传播,也就是经过卷积层,ReLU 和 pooling 运算,最后到达全连接层进行分类,得到一个分类的结果,也就是输出一个包含每个类预测的概率值的向量;
    3. 计算误差,也就是代价函数,这里代价函数可以有多种计算方法,比较常用的有平方和函数;
    4. 使用反向传播来计算网络中对应各个权重的误差的梯度,一般是使用梯度下降法来更新各个滤波器的权重值,目的是为了让输出的误差,也就是代价函数的值尽可能小。
    5. 重复上述第二到第四步,直到训练次数达到设定好的值。

    小结

    常用的机器学习算法就简单介绍到这里,下一篇会介绍模型的评估方法。


    参考:


    欢迎关注我的微信公众号--机器学习与计算机视觉,或者扫描下方的二维码,大家一起交流,学习和进步!

    往期精彩推荐

    机器学习系列
    Github项目 & 资源教程推荐
    展开全文
  • 机器学习算法工程师面试考点汇总

    千次阅读 2019-07-01 08:44:45
    2019-06-29 10:41:12 ...本篇根据各个公司的机器学习相关岗位面试中问的问题进行总结,后面还会更新面试中考察所占比例。 知识点思维导图 数学基础: 1、微积分 1、SGD,Momentum,Adagard,Adam原...

    https://www.toutiao.com/a6707777153603207691/

     

    2019-06-29 10:41:12

    机器学习算法工程师面试考点汇总

     

    来源 | 牛客网
    编辑 | 小军
    

    前言

    本篇根据各个公司的机器学习相关岗位面试中问的问题进行总结,后面还会更新面试中考察所占比例。

    机器学习算法工程师面试考点汇总

    知识点思维导图

    数学基础:

    1、微积分

    1、SGD,Momentum,Adagard,Adam原理

    2、L1不可导的时候该怎么办

    3、sigmoid函数特性

    2、统计学,概率论

    1、a,b~U[0,1],互相独立,求Max(a,b)期望

    2、一个活动,n个女生手里拿着长短不一的玫瑰花,无序的排成一排,一个男生从头走到尾,试图拿更长的玫瑰花,一旦拿了一朵就不能再拿其他的,错过了就不能回头,问最好的策略?

    3、问题:某大公司有这么一个规定:只要有一个员工过生日,当天所有员工全部放假一天。但在其余时候,所有员工都没有假期,必须正常上班。这个公司需要雇用多少员工,才能让公司一年内所有员工的总工作时间期望值最大?

    4、切比雪夫不等式

    5、一根绳子,随机截成3段,可以组成一个三角形的概率有多大

    6、最大似然估计和最大后验概率的区别?

    7、什么是共轭先验分布

    8、概率和似然的区别

    9、频率学派和贝叶斯学派的区别

    10、0~1均匀分布的随机器如何变化成均值为0,方差为1的随机器

    11、Lasso的损失函数

    12、Sfit特征提取和匹配的具体步骤

    3、线性代数

    1、求mk矩阵A和nk矩阵的欧几里得距离?

    2、PCA中第一主成分是第一的原因?

    3、欧拉公式

    4、矩阵正定性的判断,Hessian矩阵正定性在梯度下降中的应用

    5、概率题:抽蓝球红球,蓝结束红放回继续,平均结束游戏抽取次数

    6、讲一下PCA

    7、拟牛顿法的原理

    8、编辑距离

    机器学习算法工程师面试考点汇总

     

    机器学习算法

    1、处理分类问题常用算法

    1、交叉熵公式

    2、LR公式

    3、LR的推导,损失函数

    4、逻辑回归怎么实现多分类

    5 、SVM中什么时候用线性核什么时候用高斯核?

    6、什么是支持向量机,SVM与LR的区别?

    7、监督学习和无监督学习的区别

    8、机器学习中的距离计算方法?

    9、朴素贝叶斯(naive Bayes)法的要求是?

    10、训练集中类别不均衡,哪个参数最不准确?

    11、你用的模型,最有挑战性的项目

    12、SVM的作用,基本实现原理;

    13、SVM的硬间隔,软间隔表达式;

    14、SVM使用对偶计算的目的是什么,如何推出来的,手写推导;

    15、SVM的物理意义是什么;

    16、如果给你一些数据集,你会如何分类(我是分情况答的,从数据的大小,特征,是否有缺失,分情况分别答的);

    17、如果数据有问题,怎么处理;

    18、分层抽样的适用范围

    19、LR的损失函数

    20、LR和线性回归的区别

    21、生成模型和判别模型基本形式,有哪些?

    22、核函数的种类和应用场景。

    23、分类算法列一下有多少种?应用场景。

    24、给你一个检测的项目,检测罐装的可口可乐,瓶装的可口可乐作为负样本,怎么弄?

    25、SVM核函数的选择

    26、SVM的损失函数

    27、核函数的作用

    28、SVM为什么使用对偶函数求解

    29、ID3,C4.5和CART三种决策树的区别

    30、SVM和全部数据有关还是和局部数据有关?

    31、为什么高斯核能够拟合无穷维度

    32、第二面完整推导了svm一遍,还有强化学习问的很多,dqn的各种trick了解多少,怎么实现知不知道。

    33、SVM所有核函数的了解应用,SVM的损失函数

    34、LR和SVM 区别

    35、朴素贝叶斯基本原理和预测过程

    36、LR推导

    37、交叉熵

    38、LR公式

    39、交叉熵公式

    2、处理回归问题常用算法

    1、L1和L2正则化的区别

    2、问题:Loss Function有哪些,怎么用?

    3、问题:线性回归的表达式,损失函数;

    4、线性回归的损失函数

    5、机器学习:知道哪些传统机器学习模型

    3、处理聚类问题常用算法

    1、什么是DBSCAN

    2、k-means算法流程

    3、LDA的原理

    4、介绍几种机器学习的算法,我就结合我的项目经理介绍了些RF, Kmeans等算法。

    5、KMeans讲讲,KMeans有什么缺点,K怎么确定

    6、Kmeans

    7、DBSCAN原理和算法伪代码,与kmeans,OPTICS区别

    4、推荐系统的常用算法

    1、 问推荐算法,fm,lr,embedding

    2、协同过滤的itemCF,userCF区别适用场景

    3、 推荐系统的大概步骤,解决冷启动。。。

    4、传统的机器学习算法了解吗

    5、用mapreduce实现10亿级以上数据的kmeans

    6、Kmeans

    7、A/B test如何进行流量分流

    8、协同过滤中的算法怎么细分

    9、FM公式

    10、FFM公式

    5、模型融合和提升的算法

    1、bagging和boosting的区别

    2、boosting和 bagging区别

    3、XGBOOST和GDBT的区别

    4、GDBT的原理,以及常用的调参参数

    6、AdaBoost和GBDT的区别,AdaBoost和GBDT的区别

    7、gbdt推导

    8、boosting和bagging在不同情况下的选用

    9、gbdt推导和适用场景

    10、说一下gbdt的全部算法过程

    11、rf和gbdt基分类器区别,里面的决策树分别长啥样,怎么剪枝

    12、随机森林和 GBDT 的区别

    13、xgboost的特征重要性计算

    14、xgboost的正则项表达式

    15、xgboost原理,怎么防过拟合

    16、xgboost,rf,lr优缺点场景。。。

    17、xgboost特征并行化怎么做的

    18、xgboost和lightgbm的区别和适用场景

    6、其他重要算法

    1、HMM隐马尔可夫模型的参数估计方法是?

    2、Bootstrap方法是什么?

    3、如何防止过拟合?

    4、EM算法推导,jensen不等式确定的下界

    机器学习算法工程师面试考点汇总

     

    机器学习

    1、Scikit-learn

    1、Focal Loss 介绍一下

    2、过拟合的解决方法

    3、方差偏差的分解公式

    4、问题:对应时间序列的数据集如何进行交叉验证?

    5、问题:正负样本不平衡的解决办法?评价指标的参考价值?

    6、迁移学习

    7、数据不平衡怎么办?

    8、AUC的理解

    9、AUC的计算公式

    10、生成模型和判别模型的区别

    11、过拟合的解决方法

    12、特征选择怎么做

    13、怎么防止过拟合

    14、L1和L2正则

    15、ID3树用什么指标选择特征

    16、特征工程的问题

    17、给了个链接线上写代码,要求写读文本、文本预处理、特征提取和建模的基本过程,不过写到特征就没写了

    18、softmax公式

    2、Libsvm

    1、 检测20类物体,多少张训练集,怎么训练

    2、 lightgbm优势

    3、Keras/tensorflow

    1、MXNet和Tensorflow的区别

    2、Tensorflow的工作原理

    3、Tensorflow中interactivesession和session的区别

    4、手写了tensorflow的图像分类代码,还有问之前线下笔试最后编程题的思路,算法复杂度,然后项目也问。

    机器学习算法工程师面试考点汇总

     

    深度学习

    1、BatchNormalization的作用

    2、梯度消失

    3、循环神经网络,为什么好?

    4、什么是GroupConvolution

    5、什么是RNN

    6、训练过程中,若一个模型不收敛,那么是否说明这个模型无效?导致模型不收敛的原因有哪些?

    7、图像处理中锐化和平滑的操作

    8、VGG使用3*3卷积核的优势是什么?

    9、Relu比Sigmoid的效果好在哪里?

    10、神经网络中权重共享的是?

    11、神经网络激活函数?

    12、在深度学习中,通常会finetuning已有的成熟模型,再基于新数据,修改最后几层神经网络权值,为什么?

    13、画GRU结构图

    14、Attention机制的作用

    15、Lstm和Gru的原理

    16、什么是dropout

    17、LSTM每个门的计算公式

    18、HOG算法原理

    19、DropConnect的原理

    20、深度学习了解多少,有看过底层代码吗?caffe,tf?

    21、除了GMM-HMM,你了解深度学习在语音识别中的应用吗?

    22、用过哪些移动端深度学习框架?

    23、Caffe:整体架构说一下,新加一个层需要哪些步骤,卷积是怎么实现的,多卡机制,数据并行还是模型并行?

    24、HOG算子是怎么求梯度的

    25、BN层的作用,为什么要在后面加伽马和贝塔,不加可以吗

    26、梯度消失,梯度爆炸的问题,

    27、Adam

    28、attention机制

    29、RNN梯度消失问题,为什么LSTM和GRU可以解决此问题

    30、GAN网络的思想

    31、1*1的卷积作用

    32、怎么提升网络的泛化能力

    33、什么是seq2seq model

    34、激活函数的作用

    35、为什么用relu就不用sigmoid了

    36、讲一下基于WFST的静态解码网络的语音识别流程?

    37、目标检测了解吗,Faster RCNN跟RCNN有什么区别

    38、SPP,YOLO了解吗?

    39、梯度消失梯度爆炸怎么解决

    40、RNN容易梯度消失,怎么解决?

    41、LSTM跟RNN有啥区别

    42、卷积层和池化层有什么区别

    43、 防止过拟合有哪些方法

    44、dropout咋回事讲讲

    45、relu

    46、神经网络为啥用交叉熵。

    47、注意力公式

    48、论文flow情况

    48、Flappy.Bird开发者,怎么利用DNQ方法强化学习你的游戏AI

    49、LeNet-5结构

    50、推导LSTM正向传播和单向传播过程

    51、LSTM原理,与GRU区别

    52、DNN的梯度更新方式

    53、 CNN为什么比DNN在图像识别上更好

    54、现场用collabedit写代码,一个怪异的归并算法。之前没遇到过,直接把归并写出来,但是说复杂度太高,优化了三遍还不行,最后说出用小顶堆解决了。

    55、LSTM和Naive RNN的区别

    56、神经网络为啥用交叉熵。

    57、注意力公式

    58、Inception Score 评价指标介绍

    59、使用的 CNN 模型权重之间有关联吗?

    60、CycleGAN 原理介绍一下

    61、训练 GAN 的时候有没有遇到什么问题

    62、CPM 模型压缩怎么做的?有压过 OpenPose 吗?

    63、用过哪些 Optimizer,效果如何?

    64、图像基础:传统图像处理方法知道哪些,图像对比度增强说一下

    65、介绍一下图像的高频、低频部分,知道哪些图像补全的方法

    66、百度实习:模型压缩的大方向。CPM 模型怎么压缩的,做了哪些工作?

    67、Depthwise 卷积实际速度与理论速度差距较大,解释原因。

    68、RetinaNet 的大致结构画一下

    69、RetinaNet为什么比SSD效果好

    机器学习算法工程师面试考点汇总

     

    数据结构与算法

    1、查找

    1、手写二分查找

    (1)算法题,单调函数求零点 (简单的二分法)

    2、特别大的数据量,实现查找,排序

    2、哈希

    1 Hash表处理冲突的方法

    2、一致性哈希

    3、Hash表处理冲突的方法

    4、apriori

    5、KM算法

    3、表达式、字符串

    1.中缀表达式转后缀表达式

    (1)算法题:翻转中间由各种符号隔开的字符串

    2、问题:A+B∗(C−D)/E的后缀表达式。

    4、栈与堆

    1.大顶堆怎么插入删除

    2、堆栈区别

    3、栈溢出有哪些情况

    5、树

    1、问题: 手撕代码,根据前序,中序创建二叉树。

    2、算法题:从右边看被遮挡的二叉树,求露出的node

    3、算法题,给前序和中序,求出二叉树

    4、算法题,trim二叉搜索树

    5、红黑树

    6、排序

    1、对一千万个整数排序,整数范围在[-1000,1000]间,用什么排序最快?

    2、堆排序的思想

    3、冒泡排序

    4、快速排序的最优情况

    5、抽了两道面试题目两道。8个球,1个比较重,天平,几步找到重的?

    (1)算法题: topK给出3种解法

    6、快排

    7、说一下小顶堆的调整过程

    8、算法题:2sum,3sum

    7、高级算法

    1、手撕代码:以概率p生成1、概率1-p生成0的rand函数,得到0-1等概率的rand函数,计算新的rand函数中:调用一次,while循环的期望次数

    2、Kruskal算法的基本过程

    3、BFS和DFS的实现思想

    4、关联规则具体有哪两种算法,它们之间的区别

    5、贪婪算法

    6、模拟退火,蚁群对比

    7、 算法题:名人问题,给出最优解法

    8、代码题:股票最大值。

    9、编辑距离

    8、链表

    1、如何判断单链表是否是循环链表

    (1)算法题,反转链表

    (2)算法题,单链表判断是否有环 (leetcode easy),以及判断环入口

    9、数组

    1、找出数组中只出现1次的数,其余数均出现2次,扩展,其余数出现2次以上

    10、动态规划

    1、最短描述数,10的最短描述数是3^2+1^2所以是2,求一个数的最短描述数

    2、跳台阶问题,每次只能跳1个台阶或者2个台阶,n个台阶共有多少种方式

    3、动态规划和带记忆递归的区别

    4、手撕代码:0-1矩阵的最大正方形

    11、遍历

    1、代码题:股票最大值。

    机器学习算法工程师面试考点汇总

     

    编程语言,工具和环境

    1、编程语言

    1、什么是python的生成器?

    2、Java抽象类和接口的区别?

    3、python中is和==的区别

    4、python方法解析顺序

    5、strcpy函数

    6、Ctrl+C程序挂掉还是抛出异常,如何判断两个dict是否一样,list头上删除元素,字符串拼接?

    7、6.pytorch中cuda()作用,两个Tensor,一个加了cuda(),一个没加,相加后很怎样?

    8、python中dict和list的区别,dict的内部实现

    9、C++的delete, delete[]的区别

    10、C++相关的问题虚函数

    12、如何写多线程的代码

    13、是否关注过caffe和pytorch是怎么写的吗?pytorch调用多GPU函数内核

    14、Java虚拟机内存的划分

    15、python dict按照value进行排序

    16、C++中static关键字的作用

    17、虚函数和纯虚函数的区别

    18、Python多进程

    19、深拷贝,浅拷贝,写一个出来(写了个自己认为对的版本)

    20、在程序里面智能指针的名字是啥?

    21、new,malloc区别

    22、纯虚函数怎么定义,写一个出来

    23、函数后面接const是什么意思?

    24、写一个函数指针

    25、抽象类和接口的区别,慢慢说

    26、有看过c++的一些库吗?

    27、c++你看的最久的一章是哪一章,c++primer最熟哪一章

    28、开发环境、语言的掌握

    29、Python 多进程

    30、Python 锁

    2、大数据相关

    1、Spark性能如何调优

    2、map reduce实现笛卡尔乘积

    3、 是否写过udf,问udaf,udtf区别和一些细节

    机器学习算法工程师面试考点汇总

     

    自然语言处理

    1、Word2vec

    1、Word2Vec中skip-gram是什么,Negative Sampling怎么做

    2、FastText和Glovec原理

    3、word2vec实施过程

    4、softmax的原理了解

    5、Wod2vec公式

    6、Wod2vec公式

    7、使用gensim的word similar方法预测句子

    机器学习算法工程师面试考点汇总

     

    计算机基础

    1、linux

    1、ELF的bss段

    2、计算机网络

    3、ip报文经过一个路由器改变哪些字段?

    2、TCP/IP算法,IP寻址

    3、操作系统

    1.如何将小端存储模式转为大端存储模式

    2、Python 锁

    4、数据库

    1 .count(*),count(1)和count(列名)的区别

    机器学习算法工程师面试考点汇总

     

    场景题

    1 .如何对10亿个词语进行排序,找出频率最高的100个

    (1)算法题,10亿个32位正整数,求不同值,只给1GB内存。

    2、AI能用在游戏的哪些方面。

    3、如果让我用AI技术怎么加入AI元素

    4、你觉得你的构想能实际实现吗?

    5、那这个技术加进去有什么实际上的意义?

    项目

    1、项目中涉及的算法有了解情况

    2、模型的搭建,后处理,数据中发现的特征,发现的亮点。

    3、数据量和涉及的算法,效果。

    4、你是怎么处理数据中经常存在的数据不平衡的问题。

    5、考察项目中的roi-pooling

    6、自我介绍

    7、项目介绍

    8、问了下项目怎么做的

    9、 问了一下项目和简历

    10、描述一个算法项目从kickoff-落地的全过程

    11、 扣项目,问简历,其中涉及的算法和上面差不多

    12、 对项目中一些技术选型产生质疑,并友好的一起讨论了这个问题

    13、扣简历的项目,扣的很细

    14、 扣简历

    15、扣简历,问得太细了,每个项目都要回答如果再做一次,有什么改进的地方,both算法上和模型选择上

    16、聊简历项目,对搜索推荐算法的了解

    17、简历上聚类项目用到的ISODATA算法比kmeans有哪些改进

    18、自我介绍,

    19、然后让我说一下自己最印象深刻的项目。问我项目的最终成果,分析失败的原因。

    20、主要是问项目,根据项目里问一些细的技术点,比如gan在实际实现中的loss是什么

    21、 第五轮面试:主要是问项目

    22、 第二轮技术面:两个面试官面我一个。

    23、看过的论文,讨论论文

    24、针对岗位需求和我简历里的内容进行提问

    25、 自我介绍

    26、项目经历介绍下

    27、项目中遇到的最大困难

    28、自我介绍

    29、针对简历里的第一个项目问的一些问题

    30、针对项目3,让解释下DOA估计

    33、你的C/C++怎么样?

    34、自我介绍?

    35、谈谈实习项目?

    36、项目难点?

    37、说一下你简历里的图像识别的项目

    38、来问我现在在做什么项目,然后我说OCR,然后介绍了一下

    39、自我介绍

    40、项目经历详细介绍:两种预测方式区别,pair的预测方式,整体项目有哪些可以提升的,遇到的困难之类的,整个项目用了哪些库?

    41、看过的论文,讨论论文

    42、论文flow情况

    43、自我介绍

    44、实习:项目介绍:台球识别和分类使用的方法,Hough 变换原理、后处理

    45、Kaggle 比赛:背景介绍,数据清洗、数据增强、类别平衡,最终成绩,与前几名差距在哪,有没有尝试集成的方法。

    46、GAN 小论文:做了什么,最终效果

    47、GAN 小论文,做了哪些工作,详细公式推一下,对 GAN 的具体应用有了解吗?

    48、简历上项目为何适用xgboost和lr,对比其他分类算法的场景优势。

    49、GAN小论文,你做了什么,有哪些改进,在哪些数据集上做过实验,分辨率是多少?

    50、实习:1)项目背景。台球检测和分类方法,球杆检测方法,球杆遮挡问题怎么处理,不用分类器,直接分割或计算图像差值会怎样?

    51、有什么问题想了解一下

    机器学习算法工程师面试考点汇总

     

    总结

    这几乎包括了机器学习面试中所有可能问到的问题,如果能比较好的掌握它们,拿一份机器学习算法工程师offer应该不难。

    展开全文
  • 机器学习算法一览

    2018-03-05 19:21:47
  • 机器学习——几种分类算法汇总

    千次阅读 2019-06-25 01:03:45
    https://www.cnblogs.com/Zhi-Z/p/8912396.html
    展开全文
  • 机器学习算法汇总

    千次阅读 2017-10-18 16:09:41
    机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。将算法按照学习方式分类是一个不错的想法,这样可以让人们在建模和算法选择的时候考虑能根据输入数据来选择最...
  • 机器学习常用算法总结

    千次阅读 2018-10-09 20:31:13
    对最常见的机器学习算法做一点点简单的总结,嫌麻烦公式就不贴了,这里有我字很丑的听课笔记,无关人员请撤离… LR与SVM的异同 相同点:逻辑回归和SVM都是有监督学习,本质都是线性分类判别模型。 不同点: (1)...
  • 常用机器学习算法汇总比较(上)鑫鑫淼淼焱焱​华南理工大学 电子与通信工程硕士​关注他33 人赞同了该文章机器学习入门系列(2)--如何构建一个完整的机器学习项目,第七篇!前面六篇文章从一个项目的终极目标、寻找...
  • 机器学习算法有哪些?

    万次阅读 2018-06-02 09:18:05
    机器学习算法有哪些? 1、分层聚类 2、KNN 3、基于密度的聚类DBSCAN 4、K-means 5、自组织映射SOM 6、PCA 7、LDA 8、MDS 9、朴素贝叶斯 10、数据降维 11、感知机 12、GMM 13、EM 14、LVQ 15、HMM 16...
  • 第一章人工智能之机器学习算法体系汇总

    万次阅读 多人点赞 2017-07-30 08:38:52
    参加完2017CCAI,听完各位专家的...立志写“人工智能之机器学习”系列,此为开篇,主要梳理了机器学习算法体系,人工智能相关趋势,Python与机器学习,以及结尾的一点感想。抱着一颗严谨学习之心,有不当之处欢迎斧正。
  • 人工智能书籍汇总

    万次阅读 多人点赞 2018-03-04 21:37:38
    人工智能相关岗位中,涉及到的内容包含:算法、深度学习、机器学习、自然语言处理、数据结构、Tensorflow、Python 、数据挖掘、搜索开发、神经网络、视觉度量、图像识别、语音识别、推荐系统、系统算法、图像算法、...
  • 机器学习 人工智能 博文链接汇总

    万次阅读 多人点赞 2017-07-07 10:27:16
    [入门问题] [TensorFlow] ... [机器学习算法应用实例] [自然语言处理] [数据科学] [Python] [Java] [机器学习--初期的笔记] [路线] [软件安装] [面试] 入门问题简单粗暴地入门机器学习 机
  • Matlab 自带机器学习算法汇总

    千次阅读 2018-08-01 17:22:47
    今天突然发现MATLAB 2015a的版本自带了许多经典的机器学习方法,简单好用,所以在此撰写博客用以简要汇总(我主要参考了MATLAB自带的帮助文档)。 MATLAB每个机器学习方法都有很多种方式实现,并可进行高级配置...
  • 机器学习的分类与主要算法对比

    万次阅读 多人点赞 2017-05-31 23:22:21
    机器学习常见算法分类汇总;LeNet Homepage;pluskid svm 首先让我们瞻仰一下当今机器学习领域的执牛耳者: 这幅图上的三人是当今机器学习界的执牛耳者。中间的是Geoffrey Hinton, 加拿大多伦多大学的教授,如今被...
  • 机器学习常见算法分类汇总

    千次阅读 2016-03-02 22:28:30
    机器学习算法很多。很多时候困惑人们的是,很多算法是一类算法,而有些算法又是从其他算法中延伸出来的。这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的类似性。学习方式将算法...
  • 机器学习岗位的面试准备——总结1

    万次阅读 2017-10-25 21:24:17
    数据结构算法水题+常用机器学习算法推导+模型调优细节+业务认识 每一个都很重要,尤其是最后一个,最后给出算法工程师的特质,可以写在简历上:善于对事物深入思考 2、写给准备参加秋招的学弟学妹们~一定要来看哦~
  • 视觉工程师笔试知识汇总

    万次阅读 多人点赞 2017-04-10 08:41:56
    试题以视觉工程师为主,部分是机器人或机器学习岗位。 Autel Robotics软件类笔试题 BaiDu视觉算法工程师笔试题 DJI视觉工程师 DJ机器学习工程师 DeepGlint计算机视觉公司机试题 SenseTime工程类笔试题 ...
  • 我的机器学习教程「美团」算法工程师带你入门机器学习 已经开始更新了,欢迎大家订阅~ 任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑...
  • 人工智能之机器学习算法体系汇总

    千次阅读 2017-07-31 15:26:04
    目录(?)[+] ...1.人工智能之机器学习体系汇总2....2.1.人工智能再次登上历史舞台2.2.Python才是...立志写“人工智能之机器学习”系列,此为开篇,主要梳理了机器学习算法体系,人工智能相关趋势,Python与机器学习,
  • Introduce 今天会说两个问题,第一,建议大脚多看看大牛的博客,可以涨姿势。。。例如: 1、侧重于语言编程和应用的廖雪峰 ... 2、侧重于高大上算法和开源库...个人理解:经典机器学习算法,例如SVM,逻辑回归,决策树,
1 2 3 4 5 ... 20
收藏数 27,751
精华内容 11,100
关键字:

机器学习算法汇总