一个专注于计算机编程和硬件学习的博客主
深度学习中Dropout原理解析1. Dropout简介1.1 Dropout出现的原因在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。在训练神经网络的时候经常会遇到过拟合的问题,过拟合具体表现在:模型在训练数据上损失函数较小,预测准确率较高;但是在测试数据上损失函数比较大,预测准确率较低。过拟合是很多机器学习的通病。如果模型过拟合,那么得到的模型几乎不能用。为了解决过拟合问题,一般会采用模型集成的方法,即训练多个模型进行组合。此时,训练模型费时就成为一个很大的问题,不仅训练多个模型费时,测试多个模型也是很费时。综上所述,训练深度神经网络的时候,总是会遇到两大缺点:容易过拟合费时Dropout可以比较有效的缓解过拟合的发生,在一定程度上达到正则化的效果。1.2 什么是DropoutDropout可以作为训练深度神经网络的一种trick供选择。在每个训练批次中,通过忽略一半的特征检测器(让一半的隐层节点值为0),可以明显地减少过拟合现象。这种方式可以减少特征检测器(隐层节点)间的相互作用,检测器相互作用是指某些检测器依赖其他检测器才能发挥
图解卷积层stride,padding,kernel_size 和卷积前后特征图尺寸之间的关系kernel_size:卷积核大小padding:特征图填充宽度stride:卷积步长这些值的设置让卷积核可以从图片的第一个像素刚好扫描到最后一个像素,如下图所示:不难发现,经过卷积后的特征图尺寸等于卷积核滑动的次数 $+1$,在这里等于$5$。现在假设卷积前的特征图宽度为 N ,卷积后输出的特征图宽度为 $M$ ,那么它们和上述设置的参数之间的关系是怎样的呢?首先可以确定的是padding之后的矩阵宽度等于$N+2×padding$ 。另一方面,卷积核的滑动次数等于 $M−1$根据上图的关系,可以建立下面的等式$$ N+2×padding=(M−1)×stride+kernel\_size $$于是输出矩阵的宽度就等于$$ M=\frac{N+2\times padding-kernel\_size}{stride}+1 $$特别地,如果需要卷积操作不改变矩阵宽度,即$M=N$ ,则填充宽度为$$ padding=\frac{(N-1)\times stride - N + kernel\_
MAX Pooling 最大值池化max pooling 的操作如下图所示:整个图片被不重叠的分割成若干个同样大小的小块(pooling size)。每个小块内只取最大的数字,再舍弃其他节点后,保持原有的平面结构得出 output。注意区分max pooling(最大值池化)和卷积核的操作区别:池化作用于图像中不重合的区域(这与卷积操作不同)这个图中,原来是4*4的图片。由于不会重合,所以filter的大小和步长stride是相等的,为2.粉色区域最大值为6,得到的该区域结果是6,绿色是8,黄色是3,紫色是4.有一个动图:PS:发现其实是有重叠池化的(overlapping pooling)相邻池化窗口之间会有重叠区域,此时filter的大小sizeX>stride步长。Max Pooling的作用作用1:invariance(不变性)invariance(不变性)translation(平移)不变性rotation(旋转)不变性scale(尺度)不变性translation平移图中左边两个大图,表示数字1,但是两个的位置不同,上者经过向右平移得到下者。经过池化后,得到了相同的结
CUDA-CUDNN-pytorch安装下载地址:cudacuDNN 需要登录加入pytorchCUDA安装在NVIDIA控制面板左下角系统信息里的组件查看对应cuda版本{bs-font color="#FF0000"} 可以选择现在显卡可以支持的最新版本cuda 可以直接选择11.7 {/bs-font}在上面的网站下载对应版本的cuda和cudnn直接精简模式一直下一步安装安装完成在系统环境变量中查看是否有下面这四个环境我的后面两个没用自动加入环境NVCUDASAMPLES_ROOTNVCUDASAMPLES11_0_ROOT验证是否安装成功在cmd中输入 nvcc -V查看cuDNN 安装在上面的网站下载对应的压缩文件讲压缩包中的三个文件夹解压到cuda的安装目录中往系统环境变量中的 path 添加如下路径(根据自己的路径进行修改)C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libnvvp
第三章 感知机感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取$+1$和$-1$二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。感知机预测是用学习得到的感知机模型对新的输入实例进行分类。1. 感知机模型定义2.1(感知机)定义$2.1$(感知机):假设输入空间(特征空间)是$X \subseteq R^n$,输出空间是$Y=\{+1,-1\}$。输入$x\in X$表示实例的特征向量,对应于输入空间(特征空间)的点;输出$y\in Y$表示实例的类别。由输入空间到输出空间的如下函数:(感知机)$$ f(x)=sign(w\cdot x + b) \tag {2.1} $$$w$和$ b$为感知机模型参数,$w\in R^n$叫做权值(weight)活权值向量(weight vector),$b\
第二章 统计学习及监督学习概论监督学习是从标注中学习模型的机器学习问题,是统计学习,机器学习的重要组成部分.1. 统计学习统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科.统计学习也称为统计机器学习(statistical machine learning)统计学习的目的是对数据进行预测与分析统计学习以方法为中心,统计学习方法构建模型并应用模型进行预测与分析统计学习是概率论、统计学、信息论、计算理论、最优化理论及计算机科学等多个领域的交叉学科,并在发展中逐步形成独自的理论体系与方法论.统计与机器学习的区别统计学习:注重数学的方法来搭建模型--产生过程已知机器学习:注重用工程的方法来搭建模型--产生过程未知统计学习关于数据的基本假设是同类数据具有一定的统计规律性,对于训练数据(train data)要求是独立同分布的IID(Independent Identically Distributed)统计学习的目的统计学习用于对数据的预测与分析,特别是对未知新数据的预测与分析.对数据的预测与分析是通过构建概率统计模
一只胖橘