Kaggle Introduce
Kaglle IntroducePreface学习了深度学习和机器学习以后,需要将知识与实践结合起来,我们使用 Kaggle 平台进行训练。
what is Kaglle
Kaggle: https://www.kaggle.com/
Kaggle 是一个面向数据科学家和机器学习爱好者的在线社区平台。Kaggle 允许用户与其他用户协作,查找和发布数据集,使用集成 GPU 的笔记本电脑,并与其他数据科学家竞争以解决数据科学挑战。
Kaggle 适合不同的人群,从对数据科学和人工智能感兴趣的学生到世界上最有经验的数据科学家。如果你是初学者,你可以利用 Kaggle 提供的课程。通过加入这个平台,您将能够在一个由不同专业水平的人组成的社区中进步,并且您将有机会与许多经验丰富的数据科学家交流。当你获得 Kaggle 积分和奖牌时,你甚至很有可能最终吸引到猎头。
Kaggle 平台还提供了一定程度的免费云服务,对于没有较高算力的笔记本使用者来说提供了一个非常方便的服务。
并且作为一个开放交流社区,你可以很轻松的与来自其他国家的人交流经验,开拓思路。
Tips
Kaggle 在国内的访问 ...
(七)深度学习之训练卷积神经网络(等待回头完善...)
(七)深度学习之训练卷积神经网络前言数学推导比较复杂,结论又相似,等有时间再回头完善吧。
1. 前向传播2. 反向传播
(六)深度学习之卷积神经网络
(六)深度学习之卷积神经网络前言我们接下来使用的卷积的概念不需要深入学习,只需要有大致的印象即可。
推荐观看视频:
【官方双语】卷积的两种可视化|概率论中的X+Y既美妙又复杂
【官方双语】那么……什么是卷积?
1. 卷积在数学中,给定两个函数 $f,g:R^d \rightarrow R$ ,我们定义 卷积(Convolution) 为:
\tag{1-1}
f(s)*g(s) = \int_{-\infty}^{\infty} f(x)g(s-x)dx在计算机中通常使用离散形式:
\tag{1-2}
f(s)*g(s) = \sum_{-\infty}^{\infty} f(x)g(s-x)dx(等待水平提升后再深入)
2. 图像卷积卷积神经网络的设计主要是是用于研究图像数据,接下来我们研究如何将图片的信息提取出来。
2.1 二维卷积我们现在有两个矩阵,姑且先称为大矩阵 $A$ 和小矩阵 $B$ 。我们定义 $A*B$ 的运算法则为:从 $A$ 的左上角开始,选取与 $B$ 维数相同的矩阵 $C$ 内的数与 $B$ 对应位置的数进行点乘求和运 ...
(五)深度学习之模型初始化
(五)深度学习之模型初始化初始化方案的选择在神经网络学习中起着举足轻重的作用,它对保持数值稳定性至关重要。
1. 梯度消失和梯度爆炸梯度消失和梯度爆炸本质上是一样的,都是因为网络层数太深而引发的梯度反向传播中的连乘效应。
1.1 梯度消失在反向传播的表达式中可以看出,如果每一组的 $\phi(z) \cdot w$ 都非常小,就会导致减去的梯度值非常小,参数基本得不到更新,又因为下一轮又会导致梯度值非常小,就产生了 梯度消失 的问题。
如果激活函数的选择不合适,比如使用 Sigmoid,也容易出现梯度消失现象。
下图为 Sigmoid 函数的导数函数图像:
图1-1
我们发现 Sigmoid 函数的导数不超过 $0.25$ ,所以容易产生梯度消失问题。
1.2 梯度爆炸梯度爆炸 与梯度消失相反,误差梯度在更新过程中如果累计到一个非常大的值,会导致梯度大幅度地更新,进而导致网络不稳定。极端情况下,会导致结果溢出 (NaN,无穷与非数值)。
1.3 梯度爆炸优化方法1.3.1 更换激活函数如使用 ReLU、Leaky ReLU 和 ELU 等激活函数,因为这些函数的导数通常比 si ...
(四)深度学习之反向传播
(四)深度学习之反向传播我们使用网络结构来构建模型,使得模型能够拟合复杂的现实问题,但是也产生了权重偏置更新开销巨大的问题。下文介绍反向传播的调参思想。
1. 反向传播反向传播(backward propagation或backpropagation)指的是计算神经网络参数梯度的方法。简言之,该方法根据微积分中的链式规则,按相反的顺序从输出层到输入层遍历网络。
1.1 链式法则已知二元函数 $z(x,y) = f(u,v)$, $u,v$ 又分别是 $x,y$ 的函数,则 $z$ 最终是 $x,y$ 的函数: $z(x,y) = f(u(x,y),v(x,y))$
$z$ 的全微分形式是:
\tag{1-1}
dz = \frac{\partial f}{\partial u}du + \frac{\partial f}{\partial v}dv又因为$u,v$是$x,y$的函数, 可以得到$z$关于$x,y$的全微分关系:
\tag{1-2}
dz = (\frac{\partial f}{\partial u}\frac{\partial u ...
(三)深度学习之感知机
(三)深度学习之感知机1. 网络结构为了更直观的表达输入数据,处理数据,输出数据这样的过程,我们习惯于使用一种网络结构图来表示。
我们可以将篇二讲到的线性回归写成一种网络结构:
图1-1
其中,我们分为了输入层和输出层,中间连线表示 $w \cdot x +b$ 这一过程。
2. 感知机感知机(Perceptron)是一种线性分类模型,属于判别模型。
我们定义,具有如下特征形式的式子叫做感知机:
\tag{2-1}
f(x) = sign(w \cdot x + b)$sign(x)$ 是函数符号:
\tag{2-2}
sign(x) =
\begin{cases}
+1,x>0 \\
-1,x\leq0
\end{cases}单个感知器可以解决二分类问题。对于具有n个元素的向量,此点将存在于n维空间中,$x$ 是一个多维向量,感知机能够找到一种分类标准来区别不同种类的特征值。
例如在纸上任意点几个点,画一条直线区分两组点,感知机能够学习到这条直线的位置,从而区分不同种类的点。
图2-1
感知机的 ...
(二)深度学习之线性回归
(二)深度学习之线性回归1. 线性回归线性回归(linear regression)基于几个简单的假设:首先,假设自变量 $x$ 和因变量 $y$ 之间的关系是线性的,其次,假设任何噪声都比较正常,如噪声遵循正态分布。也就是说一条直线可以很好的拟合值的分布。
1.1 线性回归基础模型通常,模型表示为:
\tag{1-1}
\hat{y} = w^\top \cdot x + b其中 $w$ 表示权重(weight),权重决定了每个特征对我们预测值的影响。 $b$ 称为偏置(bias)。偏置是指当所有特征都取值为0时,预测值应该为多少。 $x$ 表示数据特征集合。
具体如下:
x =
\begin{bmatrix}
x_1 \\
x_2 \\
: \\
x_n
\end{bmatrix}
,y =
\begin{bmatrix}
y_1 \\
y_2 \\
: \\
y_n
\end{bmatrix}
,w =
\begin{b ...
(一)深度学习之环境配置
(一)深度学习之环境配置前言想要学习深度学习的知识,没有一个完善的开发环境怎么能行?本篇基于本人的使用习惯,分享使用 vscode + WSL 配置最基础的深度学习环境的方法。其中涉及到 CUDA,MiniConda,cuDNN, Pytorch 的安装。
1. WSL 配置WSL是 “Windows Subsystem for Linux” 的缩写,是 Windows 系统的 Linux 子系统。相比于在传统的虚拟机上搭建 Linux 环境,WSL 有如下几点优势:
与在虚拟机下使用 Linux 相比,WSL 更加流畅。
WSL 可以对 Windows 文件系统下的文件直接进行读写,文件传输更方便。
剪贴板互通,可以直接在 Windows 下其它地方复制文本内容,粘贴到 WSL。
要想使用 WSL ,Windows 系统需要是 win10 或者 win11 。(本人系统为 win11 专业版)
1.1 开启 WSL 功能在 windows 下使用 WSL 有两种方法:
第一种:
以管理员身份打开 Windows PowerShell ,输入下面的指令。指令执行完后,重启电脑。
E ...
如何写文章
个人博客搭建 - 文章篇前言恭喜你!你已经成功完成了你个人网站的搭建,并且对他进行了一定的个性化美化,接下来就是发表自己的 Markdown 文章了。满心欢喜,你把自己的文章上传到了自己的网站里,却发现图片加载不出来,数学公式也没有渲染成功等等问题,接下来就让我们来解决这些问题。
本地图片问题一般来说有三种图片路径,分别是相对路径,绝对路径和网络路径。
如果使用的是绝对路径,这里就会出现图片无法加载的问题,因为我们的博客是要部署在网站上,部署后会生成新的文件目录,导致原来的绝对路径失效,所以我们选择使用相对路径的方式。
对于那些想要更有规律地提供图片和其他资源以及想要将他们的资源分布在各个文章上的人来说,Hexo也提供了更组织化的方式来管理资源。这个稍微有些复杂但是管理资源非常方便的功能可以通过将站点目录 config.yml 文件中的 post_asset_folder 选项设为 true 来打开。
post_asset_folder: true
这样在使用 Hexo new 文件名 就会生成一个同名文件夹,这个文件夹里就拿来存放图片,然后使用相对路径 文件名/图片名 引用。(建议使 ...
如何美化个人博客
个人博客搭建 - 美化篇前言Hexo 给我们提供了许多主题包,例如 ButterFly,Next 主题,
Butterfly 主题: https://butterfly.js.org/
Next 主题: https://theme-next.js.org/
大家可以进入 Hexo 的主题网站实际体验一下各种风格,挑选自己最喜欢的主题。
指路:https://hexo.io/themes/index.html
以下以 Butterfly 主题为例子来美化自己的网站,首先 Butterfly 提供简体中文的文档说明,对于英语差生的我来说实在是太有优势了,第二就是 Butterfly 更新频繁。
有什么不懂的地方大家也可以直接去看官方文档解答:https://butterfly.js.org/
安装 Butterfly 主题在创建的文件的根目录的 themes 下进入 Bash 命令行界面,输入下面代码:
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterf ...