SMO优化算法(Sequential minimal optimization)由Microsoft Research的John C. Platt在1998年提出,并成为最快的二次规划优化算法,特别针对线性SVM和数据稀疏时性能更优。在支持向量机中,我们需要优化的参数是若干个α和一个偏移量b,SMO的基本思想是每次取两个α进行优化,剩余的α固定不变…
一、SVM(support vector machines) 支持向量机(support vector machines,SVM)是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。 注意SVM是一个二分类模型,理论上来说是不支持…
一、什么是PCA PCA即Principal Components Analysis,是一种常用的降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。为了更加直观的理解,下文中以二维数据来对PCA的原理进行解释。 PCA的工作就是从原始的空间中顺序地找一组相互正交…
一、神经网络中的超参数 根据吴恩达老师深度学习视频,按重要性给神经网络中的超参数排个序: 学习率α 动量梯度下降中的β,隐藏单元数hidden_units,批处理大小mini_batch_size 层数layers,学习率衰减参数learning_rate_decay 一个好的神经网络难免会经过多次调参,吴恩达老师给出的调参策略是,先随机选取多组参…
一、mini-batch梯度下降 向量化样本数据能够帮助我们同时计算多个样本,例如每个样本的特征数为50,样本数为100,我们可以构造样本数据矩阵(50,100),将矩阵输入到神经网络中就可以同时计算100个样本数据的输出值,神经网络输出值的维度为(1,100)。 $$ \begin{aligned} input:X(n_x,m),n_x为特征数,…
一、训练集、验证集和测试集的划分 在机器学习发展的小数据时代,常见做法是将所有数据三七分,即70%训练集和30%测试集,如果没有明确设置验证集,也可以按照60%训练集,20%验证集,20%测试集来划分。 这是早些年机器学习领域普遍认可的最好的实践方法,如果数据只有100条,1000条或10000条,上述比例是非常合理的。 但是在大数据时代,我们现在…
一、梯度下降法 1.梯度下降的简单使用 神经网络的一个核心是反向传播,而反向传播的核心思想是利用梯度下降法和链式求导法则来对网络中的参数进行更新。让我们通过逻辑回归中的参数更新,简单介绍一下梯度下降法的使用。 $$ \begin{aligned} &(1)z = W^Tx^{(i)} + b \ \end{aligned} $$ $$ \b…
解决方案: 原代码如下: with torch.no_grad(): w1 = w1 - learning_rate * w1.grad w2 = w2 - learning_rate * w2.grad # 反向传播后手动将梯度设置为零 w1.grad.zero_() w2.grad.zero_() 使用pytorch构建神经网络,在参数更新…
背景 跑深度学习的model需要用到GPU加速,而自己电脑却是核显,无法使用GPU加速运算,需要连接到学校的服务器上运行代码。 pycharm专业版才支持服务器的连接,社区版不提供这个功能。假定已经安装了专业版的pycharm,而且服务器上的anaconda环境已经搭建完成。 一、新建SFTP 在专业版pycharm中:Tools …
前言 做深度学习难免会用到实验室服务器上的GPU来跑数据,这时需要安装anaconda,创建虚拟环境并安装相应的深度学习框架(本文用到的是pytorch)。anaconda安装踩的坑比较少,每次都比较顺利,但是下载pytorch时有一些注意的事项。 一、安装Anaconda并创建虚拟环境 在Anaconda官网下载linux版本: 下载…