Machine Learning
机器学习学习笔记
wohu007
这个作者很懒,什么都没留下…
展开
-
机器学习入门(21)— 感受野概念
1. 感受野直观上讲,感受野就是视觉感受区域的大小。在卷积神经网络中,感受野是 CNN 中的某一层输出结果的一个元素对应输入层的一个映射,即 feature map 上的一个点所对应的输入图上的区域,具体示例如下图所示。如果一个神经元的大小是受到上层 N*N 的神经元的区域的影响,那么就可以说,该神经元的感受野是 N*N ,因为它反映了 N*N 区域的信息。在上图 conv2 中的像素点 5,是由 conv1 的 2 * 2 的区域计算得来,而该 2 * 2 区域,又是由 raw image 中 5原创 2020-07-08 22:30:42 · 527 阅读 · 0 评论 -
机器学习入门(20)— 深度学习中为什么卷积层越多,性能越好
1. 加深层的优势1.1 减少网络参数数量假设卷积层的一个好处是可以减少网络的参数数量。说得详细一点,就是与没有加深层的网络相比,加深了层的网络可以用更少的参数达到同等水平(或者更强)的表现力。可以结合卷积运算中的滤波器大小来思考就好理解了。比如,图8-5展示了由5 × 5的滤波器构成的卷积层。显然,在图8-5 的例子中,每个输出节点都是从输入数据的某个 5 × 5 的区域算出来的。接下来我们思考一下图8-6 中重复两次3 × 3 的卷积运算的情形。此时,每个输出节点将由中间数据的某个3 × 3原创 2020-07-07 23:08:10 · 11433 阅读 · 0 评论 -
机器学习入门(19)— 卷积网络 CNN 的简单实现
之前的章节已经实现了卷积层和池化层,现在来组合这些层,搭建进行手写数字识别的 CNN 。这里要实现如图7-23 所示的 CNN 。class SimpleConvNet: """简单的ConvNet conv - relu - pool - affine - relu - affine - softmax Parameters ---------- • input_dim―输入数据的维度:(通道,高,长) • conv_param―卷积层的超参数(原创 2020-07-07 22:23:38 · 549 阅读 · 0 评论 -
机器学习入门(18)— 卷积网络中的池化层实现
1. 池化层实现池化层的实现和卷积层相同,都使用 im2col 展开输入数据。不过,池化的情况下,在通道方向上是独立的,这一点和卷积层不同。具体地讲,如图 7-21 所示,池化的应用区域按通道单独展开。像这样展开之后,只需对展开的矩阵求各行的最大值,并转换为合适的形状即可(图7-22)。上面就是池化层的 forward 处理的实现流程。下面来看一下实现示例。class Pooling: def __init__(self, pool_h, pool_w, stride=1, pad=0)原创 2020-07-05 22:45:03 · 577 阅读 · 0 评论 -
机器学习入门(17)— 输入 4 维数据、基于 im2col 展开来实现卷积层
1. 输入 4 维数据2. 基于im2col 的展开3. 卷积层实现原创 2020-07-04 22:26:55 · 3892 阅读 · 0 评论 -
机器学习入门(16)— CNN 池化层概念和特征
1. 池化层的概念2. 池化层的特征原创 2020-07-03 23:28:56 · 2654 阅读 · 0 评论 -
机器学习入门(15)— 全连接层与卷积层的区别、卷积神经网络结构、卷积运算、填充、卷积步幅、三维数据卷积、多维卷积核运算以及批处理
卷积神经网络(Convolutional Neural Network,CNN)CNN 被用于图像识别、语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以 CNN 为基础。1. 全连接层1.1 全连接层网络结构之前介绍的神经网络中,相邻层的所有神经元之间都有连接,这称为全连接(fully-connected )。另外,我们用 Affine 层实现了全连接层。如果使用这个 Affine 层,一个 5 层的全连接的神经网络就可以通过图7-1 所示的网络结构来实现。Affine 层后面跟原创 2020-07-02 23:08:59 · 19309 阅读 · 2 评论 -
机器学习入门(14)— 神经网络学习整体流程、误差反向传播代码实现、误差反向传播梯度确认、误差反向传播使用示例
1. 误差反向传播整体流程2. 误差反向传播代码实现3. 误差反向传播梯度确认4. 误差反向传播使用示例原创 2020-07-01 23:14:23 · 625 阅读 · 0 评论 -
机器学习入门(13)— Affine 仿射层、Softmax 归一化指数函数层实现
1. 一维 Affine 仿射层我们回顾下之前为了计算加权信号的总和,使用了矩阵的乘积运算 NumPy 中是 np.dot() , 参照代码如下:In [7]: X = np.random.rand(2)In [8]: W = np.random.rand(2,3)In [9]: B = np.random.rand(3)In [10]: XOut[10]: array([0.4789532 , 0.09922952])In [11]: WOut[11]: array([[0.5原创 2020-06-28 22:50:38 · 1771 阅读 · 0 评论 -
机器学习入门(12)— 激活函数层 ReLU、Sigmoid 层的实现
1. ReLU 函数层激活函数 ReLU(Rectified Linear Unit)由下式(5.7)表示。通过式(5.7),可以求出 y 关于 x 的导数,如式(5.8)所示。在式(5.8)中,如果正向传播时的输入 x 大于0,则反向传播会将上游的值原封不动地传给下游。反过来,如果正向传播时的 x 小于等于0,则反向传播中传给下游的信号将停在此处。用计算图表示的话,如图5-18 所示。在神经网络的层的实现中,一般假定 forward() 和 backward() 的参数是 NumPy 数组。原创 2020-06-27 22:40:18 · 5021 阅读 · 0 评论 -
机器学习入门(11)— 反向传播的加法节点、乘法节点、加法层代码实现、乘法层代码实现
1. 加法节点原创 2020-06-26 23:06:49 · 2313 阅读 · 0 评论 -
机器学习入门(10)— 浅显易懂的计算图、链式法则讲解
1. 计算图概念计算图将计算过程用图形表示出来。这里说的图形是数据结构图,通过多个节点和边表示(连接节点的直线称为“边”)。2. 计算图求解问题 1:小明在超市买了 2 个 100 日元一个的苹果,消费税是 10%,请计算支付金额。计算图通过节点和箭头表示计算过程。节点用○表示,○中是计算的内容。将计算的中间结果写在箭头的上方,表示各个节点的计算结果从左向右传递。用计算图解问题1,求解过程如图5-1 所示。虽然图 5-1 中把“× 2”“× 1.1”等作为一个运算整体用○括起来了,不过只用○表示原创 2020-06-25 23:21:40 · 5135 阅读 · 2 评论 -
机器学习入门(09)— 偏导数、梯度概念、梯度下降法理论和实现
1. 偏导数概念对于式 4-6 而言式(4.6)有两个变量,求导数时有必要区分对哪个变量求导数,即对 x0 和 x1 两个变量中的哪一个求导数。另外,我们把这里讨论的有多个变量的函数的导数称为偏导数。用数学式表示的话,可以写成2. 梯度概念当一起计算 x0 和 x1 的偏导数。比如,我们来考虑求 x0 = 3, x1 = 4 时 (x0, x1) 的偏导数像这样的由全部变量的偏导数汇总而成的向量称为梯度(gradient)。对 式(4.6) 求导的的代码如下所示import nump原创 2020-06-24 23:08:49 · 1715 阅读 · 0 评论 -
机器学习入门(08)— 损失函数作用和分类(均方误差、交叉熵误差)
神经网络的学习中的“学习”是指从训练数据中自动获取最优权重参数的过程。为了使神经网络能进行学习,将导入损失函数这一指标。而学习的目的就是以该损失函数为基准,找出能使它的值达到最小的权重参数。为了找出尽可能小的损失函数的值,我们将介绍利用函数斜率的梯度法。神经网络的学习通过某个指标表示现在的状态。然后,以这个指标为基准,寻找最优权重参数。神经网络的学习中所用的指标称为损失函数(loss function)。这个损失函数可以使用任意函数,但一般用均方误差和交叉熵误差等。损失函数是表示神经网络性能的“恶原创 2020-06-22 23:05:49 · 2847 阅读 · 0 评论 -
机器学习入门(07)— MNIST 数据集手写数字的识别
我们来进行手写数字图像的分类。假设学习已经全部结束,我们使用学习到的参数,先实现神经网络的“推理处理”。这个推理处理也称为神经网络的前向传播(forward propagation)。和求解机器学习问题的步骤(分成学习和推理两个阶段进行)一样,使用神经网络解决问题时,也需要首先使用训练数据(学习数据)进行权重参数的学习;进行推理时,使用刚才学习到的参数,对输入数据进行分类。...原创 2020-06-20 23:27:33 · 1912 阅读 · 0 评论 -
机器学习入门(06)— 输出层多元分类、softmax 归一化指数函数以及输出层的神经元数量
输出层所用的激活函数,要根据求解问题的性质决定。一般地,回归问题可以使用恒等函数;二元分类问题可以使用 sigmoid 函数;多元分类问题可以使用 softmax 函数;原创 2020-06-19 23:18:06 · 4175 阅读 · 0 评论 -
机器学习入门(05)— 使用 NumPy 实现 3 层简单神经网络
我们以图 3-15 的3 层神经网络为对象,实现从输入到输出的(前向)处理。在代码实现方面,使用上一节介绍的 NumPy 多维数组。1. 符号定义2. 各层之间信号传递从输入层到第 1 层的 第1 个神经元的信号传递过程,如图 3-17 所示。图 3-17 中增加了表示偏置的神经元 “1”。请注意,偏置的右下角的索引号只有一个。这是因为前一层的偏置神经元(神经元“1”)只有一个。用代码实现上述过程:In [1]: import numpy as npIn [2]: X = np.a原创 2020-06-18 23:33:23 · 683 阅读 · 0 评论 -
机器学习入门(04)— 神经网络多维数组 NumPy 相乘运算
1. 多维数组用 NumPy 构建多维数组代码示例如下:In [1]: import numpy as npIn [2]: A = np.array([1,2,3,4])In [3]: AOut[3]: array([1, 2, 3, 4])In [4]: np.ndim(A)Out[4]: 1In [5]: A.shapeOut[5]: (4,)In [6]: A.shape[0]Out[6]: 4In [7]: 从以上可以看出:数组的维数可以通过 np.ndi原创 2020-06-17 23:01:27 · 2567 阅读 · 0 评论 -
机器学习入门(03)— 激活函数分类(阶跃函数和 sigmoid 函数的理论、实现、显示以及区别、非线性函数、ReLU 函数、tanh 函数)
1. 阶跃函数1.1 理论式(3.3)表示的激活函数以阈值为界,一旦输入超过阈值,就切换输出。这样的函数称为“阶跃函数”因此,可以说感知机中使用了阶跃函数作为激活函数。也就是说,在激活函数的众多候选函数中,感知机使用了阶跃函数。那么,如果感知机使用其他函数作为激活函数的话会怎么样呢?实际上,如果将激活函数从阶跃函数换成其他函数,就可以进入神经网络的世界了。1.2 实现阶跃函数如式(3.3)所示,当输入超过0 时,输出1,否则输出0。代码实现如下:def step_function(x):原创 2020-06-16 23:27:03 · 5507 阅读 · 0 评论 -
机器学习入门(02)— 由感知机到神经网络的过渡进化,激活函数在神经网络中的作用
1. 神经网络示例用图来表示神经网络的话,如图3-1 所示。我们把最左边的一列称为输入层,最右边的一列称为输出层,中间的一列称为中间层。中间层有时也称为隐藏层。“隐藏”一词的意思是,隐藏层的神经元(和输入层、输出层不同)肉眼看不见。注意:图 3-1 中的网络一共由 3 层神经元构成,但实质上只有 2 层神经元有权重,因此将其称为“2 层网络”。请注意,有的书也会根据构成网络的层数,把图 3-1 的网络称为“3 层网络”。本书将根据实质上拥有权重的层数(输入层、隐藏层、输出层的总数减去 1 后的数量)来原创 2020-06-15 23:18:29 · 637 阅读 · 0 评论 -
机器学习入门(01)— 感知机概念、实现、局限性以及多层感知机
机器学习(1)— 感知机概念、实现、局限性以及多层感知机1. 感知机概念下图是一个接收两个输入信号的感知机的例子。 x1 、 x2 是输入信号, y 是输出信号, w1 、 w2 是权重( w 是 weight 的首字母)。图中的 ○ 称为“神经元”或者“节点”。输入信号被送往神经元时,会被分别乘以固定的权重( w1*x1 、 w2*x2 )。神经元会计算传送过来的信号的总和,只有当这个总和超过原创 2020-06-14 22:27:31 · 1847 阅读 · 0 评论 -
机器学习概念 — 线性感知机、线性回归、单个神经元、多层次神经元
1. 线性感知机例如一个房屋价格预测问题。输入 x 是房屋面积大小,输出 y 是房屋的价格。如果要预测价格与面积的关系,最简单的一种模型就是 y 与 x 近似线性相关。如上图所示,红色圆圈表示真实样本的价格与面积分布,蓝色虚线表示预测线性模型。这种最简单的线性模型被称为线性感知机模型。线性感知机模型的基本结构如下:其中, w 为权重系数( Weights ), b 为偏移量( Bia...原创 2020-04-29 20:31:22 · 1830 阅读 · 1 评论 -
机器学习数学 — 初等函数求导
本文摘自 GitChat 李烨老师 [机器学习极简入门课]课程3. 数学知识速查手册机器学习常用微积分知识速查手册机器学习常用线性代数知识速查手册原创 2020-04-25 21:22:22 · 195 阅读 · 0 评论 -
机器学习概念 — 监督学习、无监督学习、半监督学习、强化学习、欠拟合、过拟合、后向传播、损失和优化函数、计算图、正向传播、反向传播
1. 监督学习和无监督学习监督学习 (Supervised Learning) 和无监督学习 (Unsupervised Learning) 是在机器学习中经常被提及的两个重要的学习方法。假如有一堆由苹果和梨混在一起组成的水果,需要设计一个机器对这堆水果按苹果和梨分类,但是这个机器现在并不知道苹果和梨是什么样的,所以我们首先要拿一堆苹果和梨的照片,告诉机器苹果和梨分别长什么样;经过多轮训练后,...原创 2020-04-25 19:24:42 · 5498 阅读 · 1 评论 -
机器学习中的标量、向量、矩阵、和张量的概念
在线性代数中,我们必须掌握几个核心概念:标量、向量、矩阵和张量,它们是构成线性代数学科的基石。标量 (Scalar)标量其实就是一个独立存在的数,比如在线性代数中一个实数 5 就可以被看作一个标量,所以标量的运算相对简单,与我们平常做的数字算术运算类似。向量 (Vector)向量指一列按顺序排列的元素,我们通常习惯用括号将这一列元素括起来,其中的每个元素都由一个索引值来唯一地确定...原创 2020-04-18 19:44:40 · 1961 阅读 · 0 评论 -
机器学习最常用的优化算法 — 梯度下降法
1. 学习目标每一个机器学习模型都有一个目标函数,而学习的目标,就是最小化目标函数。直观而言,当我们已经获得了一个函数,最小化该函数其实就是,在其自变量取值范围内,找到使得因变量最小的那个自变量取值点。经典机器学习模型的目标函数都是凸函数,函数的凸性保证了其有最小值。2. 凸函数什么叫做凸函数?这个有一套严格的数学定义:某个向量空间的凸子集(区间)上的实值函数,如果在其定义域上的任意两点...原创 2020-03-28 19:44:45 · 2903 阅读 · 0 评论 -
机器学习模型质量评价标准 — 精准率、召回率
1. 分类模型评判指标: Precision、Recall 和 F1Score对于分类而言,最简单也是最常见的验证指标:精准率( Precision)召回率( Recall),为了综合这两个指标并得出量化结果,又发明了 F1Score。对一个分类模型而言,给它一个输入,它就会输出一个标签,这个标签就是它预测的当前输入的类别。假设数据 data1 被模型预测的类别是 Class_A...原创 2020-03-27 19:32:09 · 908 阅读 · 0 评论 -
机器学习典型步骤以及训练集、验证集和测试集概念
1. 机器学习典型步骤数据采集和标记数据清洗特征选择如房子的面积、地理位置、朝向、价格等。模型选择有监督还是无监督,问题领域、数据量大小、训练时长、模型准确度等多方面有关。模型训练和测试把数据集分成训练数据集和测试数据集,一般按照 8:2 或 7: 3 来划分,然后用训练数据集来训练模型。训练出参数后再使用测试数据集来测试模型的准确度。模型评估和优化...原创 2020-03-22 19:02:29 · 3914 阅读 · 0 评论 -
机器学习三要素之数据、模型、算法
参考:https://gitbook.cn/gitchat/column/5ad70dea9a722231b25ddbf8/topic/5b1086eccad6fe44db4c12681. 机器学习与人脑映射关系我们自己用来判断万事万物的“观点”、“看法”、“洞察”,实际上都是我们头脑中一个个“模型”对所闻所见(输入数据)进行“预测”的结果。这些模型自身的质量,直接导致了预测结果的合理性。...原创 2020-03-22 18:39:19 · 3637 阅读 · 2 评论