随笔分类 - 机器学习(深度学习)
【深度学习入门向】使用几个技巧提高对 CIFAR10 分类的准确性
摘要:## Mixup, TTA, and Ensemble 在[上一篇文章](https://www.cnblogs.com/violeshnv/p/17583908.html)中使用了普通的 CNN 实现了对 CIFAR10 数据集 89% 的准确率。 本文通过实现三种技术来进一步提高准确率 - Mi
【深度学习入门向】使用简单的卷积神经网络对 CIFAR10 数据集进行分类
摘要:## Shallow CNN 从最简单的卷积神经网络(CNN)开始。卷积神经网络是神经网络的一种(子集),其结构主要包括以卷积层、池化层为主的特征提取部分和全连接层为主的分类部分。 - 卷积层使用卷积核对输入进行卷积操作。卷积操作的目的是对图像进行扫描以找到最接近卷积核所代表的特征。其输出称为特征图
使用 CNN 提取内容和风格进行风格迁移(PyTorch 实现)
摘要:## 使用 CNN 提取内容和风格进行迁移 [TOC] 本文演示了使用 CNN 进行风格迁移(style transfer)的深度学习 PyTorch 实现。 完整实现代码位于 https://github.com/VioleshnvQuetsall/neural-transfer 的 cnn-tr
支持向量机 SVM
摘要:支持向量机 支持向量分类 线性可分数据和硬间隔 支持向量机的学习策略为间隔(margin)最大化,间隔的测量需要在特征空间中选择。 首先考虑线性可分的数据,输入为 ,特征为 ,标签为 。数据的判定函数
主成分分析 PCA
摘要:主成分分析 设原数据如下 $$ \begin{align*} \pmb x&=\left[x^{(1)},x^{(2)},\dots,x^{(n)}\right]^T\ \pmb\mu&=\mathbb E[\pmb x]=\left[\mu^{(1)},\mu^{(2)},\dots,\mu^{(
交叉熵 cross-entropy 和相对熵(KL 散度)的关系
摘要:熵,表示平均意义下表示一个分布的最小 bit 长度,也就是 的最佳编码长度。最佳的编码(比如霍夫曼码)遵循了高概率事件使用更短的编码的准则,平均编码长度为 依概率取平均。 $$ \begin{align*} H(p)&=-\sum_{x\in\mathca
K 近邻算法 K-NearestNeighbor
摘要:理论 K-NN,即 k 近邻算法,是一种基本的分类和回归的算法,其主要思想可以归纳为:选择与待检测数据最相近的 k 个数据,再将这 k 个数据的成分最多的类别作为待测数据的类别。 假如给定数据 $T={ (\pmb{x_1}, y_1), (\pmb{x_2}, y_2), \dots (\pmb{
线性回归 Linear Regression
摘要:线性回归的预设 线性 只能通过每个样本各维的线性组合获得预测结果,这使得函数很简单,但拟合能力较弱。 同方差性 每个样本的方差不变。方差不同会使得拟合函数对某些数据敏感性有差异。 独立性 每个样本独立于其他样本 固定特征 特征数是固定的 非多重共线性 特征直接不能存在线性关系 $$ \begin{a
逻辑回归 Logistic Regression
摘要:基本公式 $$ \begin{align*} F(x)&=P\lbrace X\le x\rbrace=\frac1{1+e^{(\mu-x)/\gamma}}\ f(x)&=F^\prime(x)={e^{(\mu-x)/\gamma}\over\gamma(1+e^{(\mu-x/\gamma)
离群值 Outliers
摘要:标准化 $$ \begin{align*} \pmb x&=\left(x^{(1)},x^{(2)},\dots,x^{(n)}\right)\ \pmb\mu&=\frac1m\sum_{i=1}^m\pmb x_i\ \pmb\sigma&=\sqrt{\delta+\frac1m\sum_{
L2 正则化下的解(线性回归到岭回归)
摘要: 正则 结论 $$ \begin{align*} J=(\pmb X\pmb w-\pmb y)^T(\pmb X\pmb w-\pmb y)&\implies\pmb w=(\pmb X^T\pmb X)^{-1}\pmb X^T\pmb y\ \widetilde J=(\pmb X\
贝叶斯分类
摘要:贝叶斯分类器 $$ \begin{align*} y&=\underset{c_i}{\arg\max}\left\lbrace{P[\pmb X=\pmb x\mid Y=c_i]P[Y=c_i]\over\sum_kP[\pmb X=\pmb x\mid Y=c_k]P[Y=c_k]}\righ
聚类
摘要:聚类 聚类方法在于寻找数据中的集群(clusters),在同一个集群中的数据在某些方面更加相似。这同时也是对数据的一种压缩,因为我们使用了更小的集合—集群—来表示更大的数据。也可以理解为寻找有用特征的一种方式,如果一系列数据可以很好地被集群中心点表示,那么很有可能我们发现了更好的特征。 为了获得聚类
用numpy实现最简单的前馈神经网络——反向网络建立篇
摘要:在前一篇文章中,已经初略的建立了前向神经网络,但是前向神经网络大量的前馈计算使其只有较低的速度,因此我们来建立反向神经网络。 本篇主要是公式 链式法则 在学习偏导数的反向传递之前,需要有对链式法则有一定的了解 $$ \begin{align*} \text{provide that }&y = y(
用numpy实现最简单的前馈神经网络——正向网络建立篇
摘要:根据上一篇文章,来构建神经网络吧 明确输入和输出 选择合适的各种函数 用矩阵和激活函数建立起从输入到输出的拟合函数 用正向传播或反向传播获得损失函数的偏导数(注意对一定的数据集来说自变量为 , 固定) 用梯度下降法努力使损失函数最小 mnist分析(输入分析) 下
用numpy实现最简单的前馈神经网络——神经网络架构篇
摘要:基础知识 梯度(高等数学)、矩阵运算(线性代数)、numpy(ndarray)、python基础语法 目录 神经网络架构 神经网络建立 先用比较简单的正向传播建立好框架,再用反向传播改变算法 实例:学习mnist手写数字数据集 {:toc} 神经网络架构 矩阵 拟合 梯度 矩阵运算 我们可以把矩阵看
卷积层和池化层的实现
摘要:为什么卷积神经网络的能力更强?以 mnist 数据集为例,在普通的神经网络中,输入的数据是长度为 的像素。但实际上图像本身 的的二维结构已经被破坏了,每个像素与之上下更多像素之间的位置关系都消失了。神经网络所看见的世界是由一维向量构成的,自然无法与现实形成更好的
1