![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小白的机器学习
八千鸟羽
这个作者很懒,什么都没留下…
展开
-
Pytorch学习(一)
回归问题import torchimport torch.nn as nnimport matplotlib.pyplot as pltx=torch.unsqueeze(torch.linspace(-1,1,100),dim=1) # x要转为二维的y=x.pow(2)+0.2*torch.rand(x.size()) #加一些随机噪声# plt.scatter(x.data,y.data)# plt.show()class Net(nn.Module): def __in原创 2020-10-10 13:36:10 · 457 阅读 · 0 评论 -
线性判别分析(LDA)
今天学习一个分类算法-线性判别分析Fisher线性判别分析简单来说就是把不同类别的数据集投影到可以分开的程度,并用下式来衡量投影可分的程度。其中,μ1-μ2>表示两类别均值的距离,s12 +s22表示两类别散度平方和。于是利用此公式寻找分类效果最佳的投影矩阵~推导过程如下:...原创 2019-03-04 14:17:21 · 229 阅读 · 0 评论 -
卷积和池化
出野外回来后,学习的速度迟滞了。。。今天学习卷积和池化。卷积神经网络和普通的神经网络的区别在于,卷积神经网络包含了由卷积层和子采样层构成的特征抽取器。其中,卷积神经网络由输入层、卷积层、激活函数、池化层、全连接层组成。1.卷积层,用于特征的提取。即从大尺度图像上随机选取小块样本,从中选取特征,并利用学习到的特征作为探测器应用到图像的各个地方去。(注意为了防止不对称,图像尺寸减去卷积核尺寸再除...原创 2019-03-14 22:28:26 · 2648 阅读 · 1 评论 -
机器学习实战篇——训练小恐龙AI
最近老师要让做一个关于神经网络的东西,我选择的是制作一个简单的游戏AI,素材就是Chrome浏览器的恐龙游戏。网上也有不少人做过,又用js语言的,有用python做卷积神经网络,我是参考https://blog.csdn.net/u014365862/article/details/54380422,利用BP神经网络和遗传算法来实现。原理如下:首先我先去网上找了一个类似的游戏。这个游戏...原创 2019-03-21 21:09:33 · 2413 阅读 · 6 评论 -
批量归一化和超参数优化
一句话概括就是,对输入和中间每层的输出,通过平移变换和尺度变换,得到符合均值为0的单位高斯数据。具体可参见:https://blog.csdn.net/weixin_33811961/article/details/88098271好处有:加速训练进程(因为归一化减小了内部神经元分布,所以可以使用更大学习率来加速)降低了梯度消失或梯度爆炸的可能。对于输入参数归一化的要求更低,即使放大输...转载 2019-04-06 16:29:33 · 361 阅读 · 0 评论 -
激活函数
今天学习激活函数~首先介绍不同的激活函数(具体的可以访问https://www.cnblogs.com/XDU-Lakers/p/10557496.html)该函数有3个缺点:其函数容易饱和使梯度消失。为了防止饱和,必须特别设置初始化权重,如果初始化权重过大,很多神经元就会得到一个比较小的梯度,会导致其更新权重变慢。其函数输出不是以0为中心,按照下面公式,如果输入的x为同一个符号,反...转载 2019-04-02 15:58:57 · 216 阅读 · 0 评论 -
各种梯度下降
1 全量梯度下降(BGD)全量梯度下降每次都使用整个训练集,因此每次更新都会朝着正确的方向进行,最后能够保证收敛于极值点,凸函数收敛于全局极值点,非凸函数可能收敛于局部极值点,缺陷就是学习时间太长,消耗大量内存。2 随机梯度下降法(SGD)SGD一轮迭代只用于一条随机选择女的数据,尽管SGD迭代次数比BGD大很多,但一次学习时间非常快。缺点在于每次更新可能不会按照正确的方向进行,参数更新具有...转载 2019-04-28 22:30:51 · 672 阅读 · 0 评论 -
集成学习
集成学习,又称多分类器系统,顾名思义,就是将多个分类器组合成一个强分类器,而多个分类器可以从训练不同的样本中产生。因此,有一种有放回的采样方法(Bootstrap Samples)来生成不同的训练样本。使用这种采样方法时,当n趋近正无穷时,可推导出抽到的概率为2/3。下图是集成学习的基本流程:下面介绍两种集成学习的方式—Baggin和Boosting以Bagging中Stacking...原创 2019-06-09 16:24:14 · 836 阅读 · 0 评论 -
粒子群算法学习(PSO)
今天学习一个新的群优化算法——粒子群优化下面放算法原理链接https://blog.csdn.net/myarrow/article/details/51507671简单的原理概括就是:利用鸟群之间信息共享寻找食物的思想来寻找最优解,通过种群最佳适应度和个体最佳适应度来控制种群的进化方向。下面附上写的代码:clear allnum=50; % 种群数量为50pop=rand(num,1...原创 2019-02-24 11:13:32 · 1179 阅读 · 0 评论 -
遗传算法学习
今天学习遗传算法首先我学习的教程里的案例是利用遗传算法这个群优化算法来优化BP神经网络的权值和阈值。但它是直接调用的工具箱,于是我打算不调用工具箱写一个详细点的来加深自己对算法的理解。代码原理 https://www.cnblogs.com/LoganChen/p/7509702.html简而言之就是模仿达尔文的进化论,生成种群,通过变异交叉来进化种群,最后得到一群适应度高的优秀种群。...原创 2019-02-22 21:49:08 · 362 阅读 · 0 评论 -
吴恩达老师机器学习笔记K-means聚类算法(一)
今天接着学习聚类算法以后坚决要八点之前起床学习!不要浪费每一个早晨。K-means聚类算法聚类过程如下:原理基本就是先从样本中随机选择聚类中心,计算样本到聚类中心的距离,选择样本最近的中心作为该样本的类别。最后某一类样本的坐标平均值作为新聚类中心的坐标,如此往复。原始数据如下:代码如下:load('ex7data2');[m n]=size(X);x=zeros(m,n+1);...原创 2018-10-29 10:26:23 · 762 阅读 · 1 评论 -
吴恩达老师机器学习笔记K-means聚类算法(二)
运用K-means聚类算法进行图像压缩趁热打铁,修改之前的算法来做第二个练习—图像压缩原始图片如下:代码如下:X =imread('bird.png'); % 读取图片X =im2double(X); % unit8转成double类型[m,n,z]=size(X);X=reshape(X,m*n,z);x=zeros(m*n,z+1);x(1:m*n,1:z)=X;Z_mi...原创 2018-10-29 13:15:02 · 305 阅读 · 0 评论 -
蚁群算法学习
**蚁群算法的基本原理(简单概括):**刚开始蚂蚁按照同等概率选择各条路径。蚂蚁在经过的路径下留下信息素。短的路径蚂蚁会率先找到食物源,因此信息素浓度偏大。由于信息素的挥发,较长路径上的信息素逐渐消失特点:正反馈;不容易陷入局部最优,易于找到全局最优解;分布式计算特点;...原创 2018-10-26 15:22:35 · 527 阅读 · 0 评论 -
吴恩达老师机器学习笔记主成分分析PCA
接着学习主成分分析,这个算法在之前计量地理学的作业里写过,不过前者稍微啰嗦了一点。原始二维数据:放代码:load('ex7data1.mat');[m n]=size(X);X=(X-mean(X))./std(X); sigma=1/m*(X'*X); % 求取协方差矩阵[U,S,V]=svd(sigma); % 求取特征向量Ureduce=U(:,1:1); % 这里降为1维...原创 2018-10-31 19:36:55 · 825 阅读 · 0 评论 -
吴恩达老师机器学习笔记SVM(二)
今天的部分是利用高斯核函数对分布稍微复杂一点的数据进行分类这里的高斯核函数是构建新的特征,该特征是关于到其余所有样点的欧式距离。下面放出代码:load('ex6data2.mat');[m n]=size(X);f=zeros(m,m);a=0.005for i=1:m Xp=X(i,:); Xp=repmat(Xp,m,1); Xp=exp(-sum((...原创 2018-10-27 15:44:23 · 176 阅读 · 0 评论 -
吴恩达老师机器学习笔记异常检测(一)
明天就要开组会了,天天在办公室划水都不知道讲啥。。。今天开始异常检测的学习,同样代码比较简单一点异常检测的原理就是假设样本的个特征值都呈高斯分布,选择分布较离散的样本的作为异常值。这里主要注意的是通过交叉验证对阈值的选择和F1score的应用。原始数据:代码如下:load('ex8data1.mat');[m n]=size(X);X_mean=mean(X);theta=(su...原创 2018-11-01 17:07:59 · 266 阅读 · 0 评论 -
RBF、GRNN、PNN神经网络学习
首先要搞清楚的这个神经网络和BP神经网络的区别:RBF神经网络一般有三层,输入层、中间层计算输入x矢量和样本矢量c欧式距离的RBF值,输出层算它们的线性组合。不像BP神经网络通过后向传播改变权重,RBF神经网络隐含层和输入层的连接权重是有固定算式(欧式距离)的。简单地说,就是某个测试集样本p和某个训练集样本越接近,即欧氏距离越小,那么在RBF作用后输出的值就越大。即RBF使样本点只被附近(圈...原创 2019-01-05 20:59:51 · 2272 阅读 · 0 评论 -
模拟退火算法学习
新的学期,新的征程!先附上退火算法的原理——http://www.cnblogs.com/heaad/archive/2010/12/20/1911614.html退火算法简单概括就是尽量跳出局部最优解,寻找全局最优解。下面附上晚上写的代码,用的问题是教程中的旅游最短路线问题。clear all% 导入城市坐标数据X = [16.4700 96.1000; 16.4700...原创 2019-02-21 21:05:59 · 1398 阅读 · 1 评论 -
吴恩达老师机器学习笔记SVM(一)
时隔好久没有再拾起机器学习了,今日抽空接着学今天是从最简单的二维数据分类开始学习SVM~(上图为原始数据)SVM的代价函数这里套用以前logistic回归的模板改一下下。。theta=rand(3,1); [m,n]=size(X);x=ones(m,1); % 添加常量x=[x X];for i=1:10000% 拟合次数 theta=theta-(((...原创 2018-10-22 22:48:03 · 628 阅读 · 0 评论