Ubuntu18.04安装
安装最新版Docker
1 | $ wget -qO- https://get.docker.com/ | sh |
Docker可以在容器内运行应用程序,使用docker run命令在容器内运行应用程序
支持向量机是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题。
支持向量机学习方法包含构建由简至繁的模型:
分类决策树模型是一种描述对实例进行分类的树形结构,决策树由结点和有向边组成,结点有两种类型:内部结点和叶结点。内部结点表示一个特征或属性,叶结点表示一个类。
用决策树分类,从根结点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分到叶结点的类中。决策树学习的目的是为了产生一个泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的分而治之(divide-and-conquer)策略。
关于卷积神经网络的原理这篇文章先不做介绍,推荐机器视角:长文揭秘图像处理和卷积神经网络架构和卷积:如何成为一个很厉害的神经网络这两篇文章,这里记录一下PyTorch对卷积神经网络的实现。
当构建神经网络时,我们经常想把计算分配到各个layer,一些可学习参数(learnable parameter)在学习的过程中会被优化。在PyTorch中nn
包提供了计算图(computational graph)的高级抽象,nn
包定义了一系列Module
,和神经网络的layer大致相同,Module接收输入Tensor,计算输出Tensor,同时也保存中间状态,如包含可学习参数的Tensor。nn
包也定义了一系列有用的损失函数。
之前听过前向传播和反向传播,也看到项目中有这两个步骤,但是不知道具体是干什么的,在看PyTorch官方教程的时候看到一个用numpy实现的2层神经网络,里面实现了前向传播和反向传播,这里记录一下,同时也记录一下我的PyTorch学习过程。
我们需要一个函数能接受所有的输入然后预测出类别,例如在两个类的情况下,这个函数输出0或1。单位阶跃函数具有这种性质,然而它的问题在于在跳跃点上从0瞬间跳跃到1,这个瞬间跳跃过程有时很难处理。幸好另一个函数也有类似性质,且数学上更易处理,这就是sigmoid函数。