自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(305)
  • 收藏
  • 关注

原创 AlexNet —— Part 2:论文精读

在AlexNet —— Part 1:论文导读中,主要介绍了 AlexNet 的研究背景以及成果,下面我主要通过下面四个方面来对这篇论文进行精读。AlexNet 网络结构及参数计算AlexNet 网络特色及训练技巧实验设置及结果分析论文总结我们再来回顾一下论文结构:下面,我们首先来看看摘要。摘要我们可以将摘要总结如下:在 ILSVRC-2010 的120万图片上训练深度卷积神经网络,获得最优结果,top-1 和 top-5 error 分别为 37.5% 和 17%。在 Ale

2020-11-26 19:56:02 9

原创 UNIX与Linux发展史

  如果用父子关系来比喻 UNIX 和 Linux 的话还是比较合适的。UNIX 是父亲,Linux 是儿子。  UNIX 是一个相对来讲在现在的主流系统中比较古老的分支,在60年代初期就有一个雏形了,而 Linux 是90年代初才有,而 Windows 大概是 80年代。  其实,UNIX是有3家机构和公司共同来联合开发的一个计划演变而来的。这三家都是鼎鼎大名,有一家就是耳熟能详的大学叫麻省理工(MIT),有一家是非常出名的企业叫通用电器公司(GE),还有一个在国际上都很闻名的机构叫贝尔实验室。三家联

2020-11-25 21:48:59 19

原创 AlexNet —— Part 1:论文导读

  这是我读的有关深度学习的第一篇论文,希望是一个好的开始!题目  AlexNet:《 ImageNet Classification with Deep Convolutional Neural Networks 》,基于深度卷积神经网络的图像分类。注意:这里的深度是在2012年该模型是属于比较深的,但是在现在来看,是属于比较浅的。论文总览  首先,读一篇论文,我们第一遍通常需要泛读,即读这篇论文的题目,摘要,各个部分的标题和小标题,以及图片和表格。  下面是泛读之后整理出该篇论文大致分成

2020-11-24 16:23:10 9

原创 如何高效读论文

1. 读那些论文?论文类型的角度综述论文:快速熟悉某领域发展历程、现状及子方向,了解领域内基础概念及关键词。专题论文:介绍具体算法,可学习其设计思路,实验技巧,代码实现等具体技术。论文质量角度高质量期刊会议:CVPR、ECCV、ICCV、AAAI、NIPS、ICLR、ICML等高引论文:同行之间普遍认可,参考,借鉴的论文知名团队:Yoshua Bengio、Yann LeCun、Geoffrey Hinton、Andrew Ng等有代码论文:“Talk is cheap. Sh

2020-11-23 21:02:09 14

原创 02 FizzBuzz小游戏

首先先用 Pytorch 实现一个小游戏。FizzBuzzFizzBuzz 是一个简单的小游戏。游戏规则如下:从 1 开始往上数数,当遇到 3 的倍数的时候,说 fizz,当遇到 5 的倍数的时候,说 buzz,当遇到 15 的倍数的时候,就说 fizzbuzz,其他情况下正常数数。我们可以写一个简单的小程序来决定要返回正常数还是 fizz,buzz 或者 fizzbuzz。我们首先定义模型的输入与输出(训练数据)。然后我们用 Pytorch 定义模型。为了让我们的模型学会 FizzBuzz

2020-11-05 07:57:32 39

原创 01 什么是Pytorch

什么是PytorchPytorch 是一个基于 Python 的科学计算库,它有如下特点:类似于 Numpy,但是它可以使用 GPU可以用它定义深度学习模型,可以灵活地进行深度学习模型的训练和使用Tensors  Tensors 类似于 Numpy 的 ndarrar,唯一的区别就是 Tensor 可以在 GPU 上加速运算。使用 Pytorch热身:实现简单的神经网络   具体代码见 01 什么是Pytorch.ipynb...

2020-11-04 16:33:42 14

原创 16 循环神经网络(进阶)

循环神经网络  这篇博客主要设计一个 RNN Classifier - Name Classifier。我们需要训练一个模型,能够根据输入的名字预测该名字是基于哪种语言的。在该例子中一共有几千个名字,有 18 个类别。    通常在构造循环神经网络时,比如说在处理自然语言的时候,通常都将神经网络设计成如下形式:首先会将字或次转变成 one-hot 向量,但是 one-hot 向量维度太高而且过于稀疏,所以我们一般都会通过一个嵌入层(Embed),嵌入层负责将它转换成一个低维的稠密的向量。然后经过循环

2020-11-03 09:20:58 29

原创 15 循环神经网络(基础)

循环神经网络  之前介绍的全连接网络也叫做稠密网络(Dense)。    这一篇博客介绍的 RNN 主要用来处理带有序列类型的数据的输入,这就是 RNN 网络主要面向的目标。那么什么是 RNN 呢?RNN Cell  首先我们来说一下什么是 RNN Cell?下图中的 xtx_txt​ 表示时刻 ttt 的数据(比如说是一个 3 维的向量),然后经过 RNN Cell 的转变之后得到了一个 5 维的向量 hth_tht​。将一个 3 维的向量变成一个 5 维的向量意味着 RNN Cell 的本

2020-11-02 15:53:14 12

原创 14 卷积神经网络(进阶)

卷积神经网络  这篇博客主要介绍更复杂的网络结构怎样去实现?在上一篇博客我们实现了一个非常简单的串行的神经网络结构,里面用了两个卷积层,两个池化层,然后是一个全连接层,最后得到相应的输出。      下面我们看一种更为复杂的,不是串行结构的网络。第一种网络结构是 GoogleNet(如下图),其中蓝色块表示卷积,红色块表示池化,黄色块表示 Softmax,绿色的块表示其它比如拼接层等等。    那么我们看到这样一种网络结构,很多小伙伴可能就傻眼了,如果按照之前的方法一个一个去定义,什么时候才

2020-11-01 09:08:33 80

原创 13 卷积神经网络(基础)

卷积神经网络  这篇博客主要介绍卷积神经网络(Convolutional Neural Network),简称 CNN。    我们在上一篇博客中介绍了全连接的神经网络,如果一个网络中全都是由线性层串联起来,那么我们称这个网络为全连接网络,下图就是在上篇博客中介绍的全连接网络。    下面我们来探讨一下处理图像的时候经常用到的二维卷积神经网络。首先我们来看一下它的工作方式是怎样的?    之前说过我们输入的 MNIST数据集中的图像是 1x28x28(CCCxWWWxHHH) 的张量,然后我

2020-10-30 22:28:09 20

原创 12 多分类问题

说在前面  这篇博客主要介绍怎么解决多分类问题?下面我们解决多分类问题的时候会用到 Softmax Classifier,下面我们就来看看 Softmax 分类器怎么解决多分类问题的以及我们如何实现。    上一篇博客我们对糖尿病数据集进行了二分类,我们最后输出的是 y=1y=1y=1 的概率和 y=0y=0y=0 的概率。因为我们只有两个分类,所以我们只需要算出一个分类的概率,另一个分类的概率直接用 1 减去上一个分类的概率即可。    但实际上,我们还介绍了一些其他数据集,比如 MNIST(

2020-10-30 15:04:39 16

原创 11 Dataset and DataLoader

Dataset and DataLoader  上一篇博客我们使用 Pytorch 加载了我们本地的糖尿病数据集,下面是上一篇博客的代码。  但是我们在训练的时候传入 model 是全部的训练数据集(x_data)。之前讨论过,使用梯度下降的时候,我们有几种选择,一种是批量梯度下降(全部的样本),一种是随机梯度下降(每次只用一个样本)。如果我们只用一个样本,我们可能会得到比较好的随机性,会帮助我们克服鞍点的问题(局部最优点),但是会导致时间过长,没法利用 GPU 和 CPU 的并行能力,所以训练的时间

2020-10-29 20:27:01 10

原创 10 处理多维特征的输入

之前我们处理的都是单维度的输入,也就是输入 xxx 是一个实数,那当我们面对多维输入的时候,那么我们怎么预测它对应的分类呢?在之前的例子中,我们使用了这样的两个数据集。第一个是用来做回归任务的,第二个是用来做分类任务的。这两个数据集的差别主要在于 yyy 的输出值。对于回归任务来说,它的输出 yyy 是属于实数的;而对于分类任务来说,它的输出 yyy 是一个离散的集合。下面我们再来看这样一个数据集,该数据集是关于糖尿病的。每一行是一个 Sample(样本),每一列是一个 Feature(特征)。

2020-10-29 14:27:45 19

原创 09 Pytorch实现逻辑回归

Pytorch实现逻辑回归  我们还是先回顾一下线性回归。之前学习的线性回归,我们使用了下图所示的模型。    在线性回归中,我们要估计的 yyy 是属于连续的空间,像这种任务我们就称做是回归任务。但是在很多机器学习任务里面,我们要做的是分类,比如 MNIST 数据集(手写数字),那么它一共有 10 类分别是数字 0-9,那么最后我们要估计的 yyy 是属于一个集合,就是拥有 10 个离散值的集合。那么预测 yyy 是属于其中的哪一类,这种问题我们称做分类问题。    可以用以下命令来下载 M

2020-10-28 22:26:15 12

原创 08 Pytorch实现线性回归

Pytorch实现线性回归  这一篇博客主要介绍怎样使用 Pytorch 提供的工具帮助我们重现线性模型的过程。比如我们怎么构造神经网络,如何构造损失函数以及如何构造随机梯度下降的优化器。  我们首先回忆一下之前学习的线性模型中,首先需要确定我们的模型,之后要定义损失函数,而且损失函数计算出来的值必须是一个标量值。    我们用 Pytorch 来写深度神经网络,第一步先要准备数据集(Prepare dataset),第二步就是要设计模型(计算 y_hat),第三步构造损失函数和优化器,第四步就是

2020-10-28 17:03:15 17

原创 06 Pytorch实现反向传播

反向传播  上一篇博客大致介绍了反向传播,但是没有提及到计算图的概念。比如下面我以一个两层的神经网络为例,它的 y_hat 表达式为:    下面我们来构建它的计算图:    这里需要注意的是我们现在的一个两层的神经网络的 y_hat 可以展开为:    然后我们发现不断地进行线性变换,不管你有多少层最后都会统一成 y=W∗x+by = W*x + by=W∗x+b 的形式,也就是如下的计算图:    也就是说层数多和层数少没什么区别。为了解决这个问题,就是要提高模型的复杂度。换句

2020-10-28 10:50:11 25

原创 07 神经网络整体架构

神经网络整体架构  我们先看看神经网络是什么样子的,如下图。    可以说神经网络是一个层次的结构,有一个输入层,隐层 1,隐层 2 和输出层。可以说是由多个层组成了一个完整的神经网络。输入层相当于输入的 xxx,比如说现在的输入有 3 个像素点 x1x_1x1​,x2x_2x2​,x3x_3x3​。    中间两个层具体的元素很多参考资料中将它们称做神经元,其实神经元是不存在的。那么中间层里面的元素的是什么呢?其实就是权重参数的计算结果。比如说,x1x1x1 是和这些带箭头的线相连的,没有

2020-10-27 21:12:06 10

原创 05 反向传播

上一篇博客介绍了从输入 X 样本开始,通过一组 www 参数,得到了一个得分值,然后又将得分值经过 y=exy = e^xy=ex 函数的变换和归一化操作得到一个概率,然后又通过 y=−logxy = -logxy=−logx 函数求出了 Loss 值。有了 Loss 值之后,就可以进行最优化的操作。我们通常把从开始到得到 Loss 的过程称为前向传播。 通常神经网络是由 BP 算法求解的,那什么是 BP 算法呢?BP 算法就是说通过前向传播求出 Loss 值,然后经过一次反向传播再次优化这些权重参数(

2020-10-27 16:01:33 6

原创 04 Softmax分类器

Softmax分类器  我们处理多分类问题时,使用 SVM 输出的是一个得分值,但是得分值最后比来比去不是很直观。那么我们能不能将得分值进行转换,转换成一个概率值,如果一个新数据样本到达,如果属于某一个类别的概率为 80%,那么我们就可以很直观的看出该数据样本可能属于该类别,我就不用来回去比较得分值。  那么怎么样可以得到一个概率值呢?我们有一个叫 Softmax 的分类器。  首先我们先介绍 Sigmoid 函数,表达式如下:  该函数在坐标轴上的图形如下:    我们观察一下,xxx 轴

2020-10-27 11:22:14 11

原创 03 神经元多输入

上一篇博客介绍了二分类的逻辑回归模型。如果我们想要多分类的逻辑回归模型,我们该怎么做呢?很显然,我们在只有一个神经元的时候可以做二分类的问题。如果我们想要多分类的话,直接加神经元的个数就好了,使用多个神经元就能得到多输出的回归模型。如下图所示,我们又多加了一个神经元,之后就可以得到两个输出,那么就可以去做三分类的逻辑回归。这里多加一个神经元就相当于把 WWW 从向量扩展为矩阵,输出的 W∗xW*xW∗x 从一个值变成了一个向量。下面举一个简单的例子,比如输入的 XXX = [3, 1, 2],WWW

2020-10-26 10:40:16 16

原创 02 神经元-逻辑斯底回归模型

学习深度学习,我先从神经网络开始。在介绍神经网络之前,先介绍一下什么是神经元。神经元神经元是神经网络的最小结构,将多个神经元组合在一起就形成了神经网络。神经元也可以经过一些设置之后形成一个逻辑回归模型。神经元可以看成是最小的神经网络。下图是神经元的基本结构图,神经元有多个输入,一个输出。下图中的输入 x1x_1x1​,x2x_2x2​,x3x_3x3​ 分别通过加权然后求和得到了得到了神经元中的值 W∗xW*xW∗x,然后把该值送到一个函数 hhh 中,然后得到输出。这里需要注意一点的就是,上图为

2020-10-26 09:10:14 16

原创 01 机器学习和深度学习简介

一、机器学习简介机器学习是什么 —— 无序数据转化为价值机器学习价值 —— 从数据中抽取规律,并用来预测未来(比如:淘宝可以根据你的浏览痕迹向你推荐商品,这就是一个典型的机器学习产生价值的例子)机器学习应用举例分类问题::图像识别、垃圾邮件识别、世界杯中摄像头选择的切换画面回归问题:股价预测、房价预测排序问题:点击率预估、推荐生成问题:图像生成、图像风格转换、图像文字描述生成机器学习应用流程职责数据处理(数据采集 + 数据去噪)模型训练(提取特征 + 训

2020-10-26 08:15:51 19

原创 95-Boosting

Boosting  另外一类集成学习的思路就是 Boosting(增强),它学习的思路就是集成多个模型,但是模型之间不是独立的关系,而是一个相互增强的关系,即每个模型都在尝试增强(Boosting) 整体的效果。  下面就举出 Boosting 中最典型的一个例子 Ada Boosting 为例,它是这样一个思路。以一个简单的回归问题为例,下图描述的是首先我们有原始数据集,然后经过某一种机器学习算法的学习,然后会得到一个结果。    很显然每一种机器学习算法都会犯错误,然后就得到了图(3)的结果,

2020-10-24 15:19:10 6

原创 94-随机森林

随机森林    之前我们使用 Bagging 这种集成学习方法所使用的基础的分类器都是决策树。那么整个集成学习相当于集成了成百上千个决策树,这样的一个集成学习的模型就叫做随机森林。而且 sklearn 还为我们封装了一个随机森林的类,我们可以使用这个类直接非常容易的来创建一个随机森林这样一个学习模型。与此同时,sklearn 提供的随机森林的模型还提供了更多的随机性。对于每一棵决策树都是在节点上寻找一个最好的维度以及一个阈值进行划分,sklearn 封装的随机森林在训练每一棵决策树的时候默认就是在每一个

2020-10-24 14:34:04 7

原创 93-更多关于Bagging的讨论

更多关于Bagging的讨论    上一篇博客介绍了 Bagging 这种集成学习的思路,也就是我们不使用不同的算法进行集成学习了,而使用同一种算法来学习,但是对于同一种算法,我们让它看不同的数据,在我们整体样本空间中,这种放回的取样使得每一个子模型之间都存在差异性。这一篇博客我们来看更多和 Bagging 相关的讨论。  对于 Bagging 来说,有一个非常重要的概念就是 OOB(Out-Of-Bag)。那什么是 OOB 呢?它背后的原理是这样的,我们做放回取样的话,可能就会导致一部分样本很有可能

2020-10-24 13:30:39 27

原创 92-Bagging和Pasting

Bagging 和 Pasting    之前介绍了什么是集成学习,其实就是集成多个算法对同一组数据进行分析得到结果,最终投票来看哪个结果是大家公认的最好的结果。但是这样的机器学习还是有一个问题,虽然有很多机器学习的方法,但是从投票的角度来看,仍然是不够多的。如果我们想要尽量保证一个好的结果的话,我们希望有更多的投票者(成百上千甚至上万)才能保证最终的结果更加的可信。所以我们就要创建更多的子模型,集成更多的子模型的意见,而且子模型之间不能一致,要具有差异性。    那么怎样才能创建出更多的子模型,而

2020-10-24 12:56:16 4

原创 91-SoftVoting Classifier

Soft Voting Classifier  上一篇博客我们看到对于集成学习来说,我们可以使用少数服从多数的方式集成多个模型算法进行处理,那么在这个过程中,我们接触到了一个概念,这种少数服从多数的投票的方式,叫做 Hard Voting。相应的其实还有一种更重要的方式:Soft Voting。  其实 Soft Voting 的思想也很简单。就是在很多情况下,少数服从多数其实不是最合理的。其实更合理的投票应该是对于不同的人来说是有权值的。那么最典型的例子就是网上有很多唱歌比赛的投票,专业的音乐评审他

2020-10-24 10:06:54 6

原创 90-什么是集成学习

什么是集成学习  我又要开始学习一种非常重要的机器学习算法:集成学习。那么什么是集成学习呢?    之前有一部动画片叫做新世纪福音战士(EVA),里面有一个超级电脑 MAGI,这个超级电脑本身还有另外一个名字叫做三贤者。为什么叫做三贤者呢?这个超级电脑的作用就是在遇到重大选择的时候,这个电脑来给出具体的决策。但是它给出具体决策的方法是这样的:整个电脑有 3 个核心,可以理解成 3 个大脑。三个大脑是基于这个电脑的创作者,她是一位女性,她拥有三种不同的身份,分别是母亲,科学家和女性。它是通过三种不同的

2020-10-24 09:05:08 12

原创 86-决策树的局限性

  决策树的局限性    这篇博客主要讨论决策树这种非参数的学习算法的局限性。  我们的第一个例子中,看到鸢尾花数据集的分类结果时,会看到决策边界都是横平竖直的,那么反映在二维图像上决策边界一定是和 xxx 轴或者 yyy 轴平行的。    因为对于决策树来说,每一次都是在某个维度上选某一个阈值进行划分,小于这个阈值进入一颗子树,大于这个阈值进入另一颗子树。所以这个决策边界对于这个二维平面来说,一定就是 xxx 等于某一个值或者 yyy 等于某一个值这样的函数,这样的函数显然是和坐标轴是平行的

2020-10-23 20:02:50 20

原创 85-决策树解决回归问题

决策树解决回归问题    之前都是使用决策树来解决分类的问题,其实决策树思想可以非常容易的解决回归问题。当我们使用 CART 将这颗决策树建立出来之后,相应的在每一个叶子节点其实都包含了若干个数据,如果这些数据输出值是类别的话,那么它就是一个分类问题;如果输出值是一个具体的数值的话,那么它就是一个回归问题。    下面我们就来看看 sklearn 封装的决策树是怎样解决回归问题的。        说到过拟合,我们回忆一下之前学习的直观的看到过拟合和欠拟合的情况就是学习曲线。    

2020-10-23 19:17:16 15

原创 84-CART与决策树中的超参数

CART与决策树中的超参数    我们之前学习的决策树通常还有一个名字,叫做 CART(Classification And Regression Tree)。这样的决策树如名称所说的,既可以解决分类问题,也可以解决回归问题。也是根据某一个维度 ddd 和某一个阈值 vvv 进行二分,那么这样得到的决策树一定是一颗二叉树。sklearn 中实现的决策树都是 CART。    当我们建立好一颗决策树,平均而言,它做预测的时间复杂度为 O(logm)O(logm)O(logm),mmm 为样本个数。可以

2020-10-23 16:48:19 14

原创 83-基尼系数

基尼系数    上一篇博客主要使用信息熵这样的方式对决策树每一个节点上相应的数据进行一个划分,然后一点一点构建出一颗决策树来。其实我们还可以使用另外一个指标对我们的决策树每个节点的数据进行划分,这个指标就是基尼系数。    基尼系数的计算比信息熵简单很多,公式如下:  我们还是使用几个小例子观察求出来的结果是怎样的。    如果数据分成三类,每类所占比例均是 1/3,那么基尼系数为:    同样数据分成三类,所占比例为 1/10,2/10,7/10,那么基尼系数为:    对比这

2020-10-23 16:00:04 14

原创 82-使用信息熵寻找最优划分

使用信息熵寻找最优划分  上一篇博客介绍了信息熵这样的指标,通过信息熵,我们可以知道当前数据的不确定度是怎样的,进而知道了对于我们的决策树来说,在根节点的时候(其实根节点就相当于拥有了全部的数据),我们要找到一个维度,一个阈值对根节点进行划分,划分之后,我们希望我们的数据整体信息熵是越来越低的,进而对划分出来的两个节点我们可以再用同样的方式去寻找特定的维度和阈值进行划分,使得整体的信息熵继续减小,以此类推,就形成了决策树。    下面我们就模拟使用信息熵进行划分的方式。      我

2020-10-23 14:56:11 12

原创 81-信息熵

信息熵  上一篇博客介绍了决策树到底是什么样子的算法,我们是怎样通过决策树来进行分类的。那我们在具体构造决策树的时候,存在一个问题,就是在决策树的每一个结点上,其实它都是一个判断条件,那么我们为了得到这个判断条件,我们需要知道两个信息,一个是我们要在这个节点的哪个维度做划分(选择 xxx 还是 yyy)?如果确定了维度的话,那么具体在这个维度的哪个值上做划分(为什么是 2.4?为什么是 1.8)?    这里就先介绍一种方式,就是计算信息熵。信息熵是信息论的一个基础概念。熵在信息论中代表随机变量不确

2020-10-23 07:32:30 4

原创 80-什么是决策树

什么是决策树?  我们又要开始学习一种新的机器学习算法:决策树。那什么是决策树呢?  下面我用一个简单的例子,比如某公司想招聘一个算法工程师,那么在招聘的过程中很有可能采用这样一个流程。    这样的一个过程形成了一棵树的结构。在这棵树所有的叶子节点的位置其实就是我们最终做出的决策,这个决策可以理解成是对这个应聘者的信息进行分类,分成录用或者考察这两类。那么这样的一个过程就叫做决策树。  那么对于这样一颗决策树来说,它有计算机领域所说的树结构所有的性质,包括节点,树的深度。比如上面例子中树的深度

2020-10-22 19:53:58 4

原创 78-SVM思想解决回归问题

SVM思想解决回归问题  先回忆一下回归问题的本质其实就是找到一条直线或曲线能够最佳程度的拟合数据点,在这里怎么定义拟合,就是不同回归算法的关键。比如之前学习的线性回归算法定义拟合的方式就是让我们的数据点到我们预测的这条直线相应的 MSE 的值最小。  而对于 SVM 这个算法的思路来说,对拟合的定义是这样的。我们要指定一个 margin 值,我们期望在 margin 范围里样本数据点越多越好。    如果在 margin 范围里,数据样本点越多,意味着这个范围能够比较好的表达样本数据点。在这种情

2020-10-22 18:53:19 10

原创 77-sklearn中的高斯核函数

sklearn中的高斯核函数  这篇博客主要应用 sklearn 中封装的高斯核函数进行具体的分类。  我们还是先来看看高斯核函数里面 γγγ 的意思。之前我们说过高斯核函数与正态分布的式子很类似:    高斯函数中,其中 μμμ 表示均值,σσσ 代表标准差,其中 μμμ 决定了整个函数中心轴的位置,σσσ 是描述样本数据分布的情况,σσσ 越小,整个状态分布就会越窄越集中;σσσ 越大,整个正态分布就会越平缓,会显得越胖。具体可以见下图。    以上就是在高斯函数中 σσσ 对整个高斯函

2020-10-22 16:43:34 47

原创 76-高斯核函数

上一篇博客详细的介绍了什么是核函数,并且主要以多项式核函数为例。这篇博客主要学习一种特殊的核函数,而且它也是 SVM 算法使用最多的一种核函数:高斯核函数。核函数我们通常表示成:那么对于高斯核函数来说,定义方式如下:其中只有一个超参数 γγγ。那么为什么这样的一个核函数要称做高斯核函数呢?相信很多小伙伴都听过正态分布,其实正态分布就是一个高斯函数。其实我们仔细观察高斯核函数与正态分布之间形式大体是一致的。高斯核函数有时候又被称做 RBF核(Radial Basis Function Ke

2020-10-22 13:57:40 50

原创 75-什么是核函数

什么是核函数  在 SVM 算法中有一个很重要的概念叫做核函数(Kernel Function)。那什么是核函数呢?这篇博客将以多项式核为例向大家介绍 SVM 中核函数到底是什么?  对于 SVM 的本质,其实就是求解下面这样一个最优化问题:    但是在求解这个最优化的问题中,我们还是需要将这个问题进行变形,变成一个在数学上更好解的问题:    这个式子看起来非常的复杂,这里略去推导过程。在上面这个式子中有非常重要的一项:    换句话说,这一项意味着对于样本数据集中的任意两个向量都

2020-10-22 10:46:57 9

原创 74-SVM中使用多项式特征

SVM中使用多项式特征  之前使用 SVM 的思路来处理分类问题都是使用线性分类的方式,那么这篇博客主要学习使用 SVM 来处理非线性的数据这样的一个问题。  我们处理非线性的数据一个最典型的方法就是使用多项式的方式来扩充我们原本数据,制造新的多项式特征。我们首先实践一下这个思路。    那么至于这个 kernel(核函数) 在 SVM 算法中到底是怎样计算的?我们在下一篇博客中介绍。  具体代码见 74 SVM使用多项式特征.ipynb...

2020-10-22 09:43:36 9

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除