- 博客(32)
- 收藏
- 关注
原创 汉诺塔递归算法
汉诺塔递归算法1.什么是递归算法在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。2.汉诺塔递归算法大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘按照大小顺序重新摆放在另一根柱子上,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。64根柱子移动完毕之日,就是世界毁灭之时。也就是说将第一个柱子上的圆盘借助第二个柱子移动到第三个柱子上,一次只能一定一个圆盘,且小的始终不能放在大的柱子上。究竟需要多少次才
2021-10-25 14:07:02 1628 1
原创 梯度下降法确定步长
梯度下降法确定步长BY:YANG LIU采用Line search确定步长,Line search的本质目的其实也是为了保证函数值下降(或称作不增)。基本思想就是每次试一个步长,如果用该步长走的话,看函数值会不会比当前点下降一定的程度,如果没有,就按比例减小步长,再试,直到满足条件(根据泰勒展开式我们知道步长足够小时总会满足下降条件)。所以line search实际上是计算量比较大的。可能会出现之字形下降:...
2020-11-02 11:14:56 2943
原创 梯度下降法简述
梯度下降法简述BY:YANG LIU1.什么是梯度下降?梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。方向导数:梯度:2.求解过程梯度下降法的计算过程就是沿梯度下降的方向求解极小值(也可以沿梯度上升方向求解极大值)。3.简
2020-11-02 11:03:48 972
原创 BP神经网络简述
BP神经网络简述BY:YANG LIU1.什么是BP神经网络?BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络。2.BP神经网络的基本原理?人工神经网络无需事先确定输入输出之间映射关系的数学方程,仅通过自身的训练,学习某种规则,在给定输入值时得到最接近期望输出值的结果。基本思想是梯度下降法,利用梯度搜索技术,以期使网络的实际输出值和期望输出值的误差均
2020-11-02 10:32:49 2788 1
原创 ELM分类法Python实现
ELM分类法Python实现By:YANG LIUimport numpy as npimport matplotlib.pyplot as pltdef sigmoid(a,b,x):return 1.0/(1+np.exp(-1.0*(x.dot(a)+b)))def ELM_prototype(X,T,C,n,L):a=np.random.normal(0,1,(n,L))aa=ab=np.random.normal(0,1,L)bb=bH=sigmoid(a,b,X)HH=H
2020-09-28 20:17:39 1866
原创 极限学习机ELM原理的简介
极限学习机ELM原理的简介BY:YANG LIU1.极限学习机的起源(ELM-extreme learning machine)在2004年由南洋理工大学的黄广斌提出,并发表于当年的IEEE国际交互会议(IEEE International Joint Conference)中,目的是为了对反向传播算法(Backward Propagation, BP)进行改进以提升学习效率,并简化学习参数的设定。2.什么是极限学习机是基于前馈神经元网络(feedforward neuron network)的机
2020-09-21 14:41:34 3471
原创 极限学习机Python的代码实现
极限学习机Python的代码实现BY:YANG LIUimport numpy as np——载入numpy库import matplotlib.pyplot as plt——载入画图库def sigmoid(a,b,x):——定义sigmoid激活函数return 1.0/(1+np.exp(-1.0(x.dot(a)+b)))——返回1/(1+e^(-ax+b)),其中a为输入层到隐含层的权重,b是隐含层的偏置def ELM_prototype(X,T,C,n,L):——定义极限学习机函数,
2020-09-21 11:02:38 2585 1
原创 最小二乘法Python的实现
最小二乘法Python的实现BY:Yang Liu代码和解析:import numpy as np ——载入numpy库,相当于增加矩阵数组容器import scipy as sp ——载入scipy库,为科学计算算法库import matplotlib.pyplot as plt ——载入matplotlib库,增加绘图库,若再载入Pandas库(相当于表格库),此时Python可实现MATLAB的功能from scipy.optimize import leastsq ——从scipy中调
2020-09-13 21:18:45 763
原创 最小二乘法简述
最小二乘法简述BY:YANG LIU1.最小二乘法的作用(1)用于拟合曲线;(2)用于求解未知量,使得误差值最小。2.最小二乘法成立的前提条件(1)假设系统中无系统误差,误差均为偶然误差。(2)假设误差符合正太分布,即整个系统最后的误差均值为零。3.理论解法测量系统中每个点的测量实际值和曲线拟合值的差的平方和的总和最小。4.二维例子假设身高体重,X表示身高,Y表示体重。已知有四个值(1,6)、(2,5)、(3,7)、(4,10)问(5,?)。则最小二乘法求解:求出已知四个点所构
2020-09-10 18:21:34 6337
原创 ELMAN神经网络
ELMAN神经网络By:Yang Liu1.什么是ELMAN神经网络Elman神经网络是一种典型的局部回归网络( global feed forward local recurrent)。Elman网络可以看作是一个具有局部记忆单元和局部反馈连接的递归神经网络。Elman网络具有与多层前向网络相似的多层结构。是在BP网络基本结构的基础上,在隐含层增加一个承接层,作为一步延时算子,达到记忆的目的,从而使系统具有适应时变特性的能力,增强了网络的全局稳定性,它比前馈型神经网络具有更强的计算能力,还可以用来解
2020-07-08 19:45:22 17859 1
原创 BP算法简述
BP算法简述By:Yang Liu1.什么是BP算法BP算法是由学习过程由信号的正向传播与误差的反向传播两个过程组成。由于多层前馈网络的训练经常采用误差反向传播算法,人们也常把将多层前馈网络直接称为BP网络。正向传播时,输入样本从输入层进入网络,经隐层逐层传递至输出层,如果输出层的实际输出与期望输出不同,则转至误差反向传播;如果输出层的实际输出与期望输出相同,结束学习算法。反向传播时,将输出误差(期望输出与实际输出之差)按原通路反传计算,通过隐层反向,直至输入层,在反传过程中将误差分摊给各层的各个
2020-07-08 19:08:26 6999
原创 神经元网络基础概念简述
神经元网络基础概念简述By:Yang Liu1.多层向前神经网络(Multilayer Feed-Forward Neural Network)一个神经元网络由输入层(input layer),隐藏层(Hidden layer),输出层(output layer)组成,上图为两层神经元,输入层不计算在层数内。特点:1、每层由单元(units)组成2、输入的X代表的不是4个样本,代表的是一个样本的4个特征,若有4个样本上图要进行4次。3、隐藏层的数量是任意的,输入和输出都只有一层。4、一层中
2020-07-04 10:21:24 2031
原创 GRU门控循环单元简述
GRU门控循环单元简述By:Yang Liu1.什么是门控循环单元GRU在循环神经⽹络中的梯度计算⽅法中,我们发现,当时间步数较⼤或者时间步较小时,循环神经⽹络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但⽆法解决梯度衰减的问题。通常由于这个原因,循环神经⽹络在实际中较难捕捉时间序列中时间步距离较⼤的依赖关系。GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term M
2020-07-02 22:11:53 2074
原创 LSTM长短期记忆人工神经网络简述
LSTM长短期记忆人工神经网络简述By:Yang Liu1.什么是LSTM长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而专门设计出来的,属于时间递归神经网络(RNN)中的一种。LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。2.LSTM的结构上图被称为memory block(记忆块),主要包含了三个门(forget gate、input gate、output gate)与
2020-07-02 19:02:24 3328
原创 RNN循环神经网络简述
RNN循环神经网络简述By:Yang Liu1.什么是RNN循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。2.RNN的结构经典结构循环结构:按时间线展开如下图:Xt:表示t时刻的输入,ot:表示t时刻的输出,St:表示t时刻的记忆用公式可表示为:3.RNN的作用(
2020-07-02 13:45:30 834
原创 欧氏距离和马氏距离简介
欧氏距离和马氏距离简介By:Yang Liu1.欧氏距离在数学中,欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。计算公式:D(X,Y)=(X1−Y1)2+(X2−Y2)2...+(Xn−1−Yn−1)2+(Xn−Yn)2D(X,Y) = \sqrt {{{(
2020-06-19 06:47:04 6156
原创 基于最大相关最小冗余的特征选择方法MRMR
基于最大相关最小冗余的特征选择方法MRMRBy:Yang Liu1.什么是特征选择经典的特征选择定义为:依据某个准则,从N个特征集合中选出M个特征的子集(M=<N),以达到降低特征空间维数的目的。特征选择包括特征提取和特征选择两个方面。特征提取是指将原有的特征空间进行某种形式的变换,以得到新的特征。主成分分析PCA是这类方法中最著名的算法。特征选择是指从原始特征集中选择使某种评估标准最优的特征子集,使得任务如分类、回归等达到和特征选择前近似甚至更好的效果。特征选择的主要思想就是从输入的特征
2020-06-15 19:49:23 6166 2
原创 模糊C均值聚类简述
模糊C均值聚类简述By:Yang Liu1.什么是模糊C均值聚类模糊c-均值聚类算法 fuzzy c-means algorithm (FCMA)或称( FCM)。通过优化目标函数得到每个样本点对所有类中心的隶属度,从而决定样本点的类属以达到自动对样本数据进行分类的目的。无监督机器学习的主要技术之一。2.模糊C均值聚类涉及的数学方法——拉格朗日乘数法设给定二元函数z=ƒ(x,y)和附加条件φ(x,y)=0,为寻找z=ƒ(x,y)在附加条件下的极值点,先做拉格朗日函数 Fx,y,λ=f(x,y)+λ
2020-06-10 18:49:38 7280
原创 层次聚类在MATLAB中实现
层次聚类在MATLAB中实现By:Yang Liu1.第一种方法(1)输入要聚类的数据。(2)计算各个样本之间的欧氏距离。(3)把距离化成矩阵,矩阵中的元素Xij{X_{ij}}Xij表示第i个样本和第j个样本的距离。(4)生成聚类数矩阵,前两列表示是第几簇,最后一列表示两个簇的距离,原样本一共5个元素,所以初始有5簇,则当完成一次聚类后,新得到的簇,就是第六簇(此例中第六簇就是第四簇和第五簇合并产生),以此类推。(5)生成可视化树状图(6)按需求划分,例中为划分三簇,T为各个
2020-06-09 15:03:45 7219
原创 层次聚类介绍
层次聚类介绍1.什么是层次聚类层次聚类(Hierarchical clustering)是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节点。属于无监督学习。属于贪心算法(又称贪婪算法):在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。层次聚类可以弥补Kmeans聚类的不足,层次聚类不需要提前确定K值,而且层次聚类可以处理不规
2020-06-08 17:19:38 18042
原创 KNN算法在MATLAB中的实现
KNN算法在MATLAB中的实现By:Yang Liu运行结果:图中结果表示测试数据(0.5,2.3)最终分到了第二类。
2020-06-07 17:25:58 716
原创 KNN算法的简述
KNN算法的简述1.什么是KNN算法。KNN(K-Nearest Neighbor)是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻近值来代表。算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。可以通俗的理解为“物以类聚人以群分和近朱者赤近墨者黑”。2.KNN算法的原理KNN的原理就是当预测一个新的样本x的时候,根据它距离最近的K个点是什么类别来
2020-06-07 13:11:11 4463
原创 KNN和Kmeans比较
KNN和Kmeans比较By:Yang Liu1.K-means是聚类算法;KNN是分类算法。2.K-means是无监督学习(样本没有标签);KNN是监督学习(一部分样本要有标签)。3.Kmeans中的K,表示分成K簇;KNN中的K,表示寻找与测试数据最近的K个样本。4.Kmeans有明显的前期训练过程;KNN没有明显的前期训练过程。...
2020-06-07 11:53:36 395
原创 K-means在MATLAB中的实现
K-means在MATLAB中的实现By:Yang Liu输出结果:其中A为原始数据,分成3簇,C为每簇的质心,K为A中数据按簇排序所得。O为每簇所对应的数据个数。也就是说K的1-4行是第一簇,5和6行是第二簇,7行为第三簇。C矩阵K行的数据,对应的就是第K簇在数据标准化情况下的质心。...
2020-06-06 15:38:58 383
原创 K-means算法原理
K-means算法原理By:Yang Liu1.K-means算法简述目的:把一组数据中相似的部分划分为一组,最终得到K组数据。属于无监督学习领域的问题。无监督学习:对没有概念标记(分类)的训练样本进行学习,以发现训练样本集中的结构性知识。2.优点简单、快速、适合常规数据集。3.缺点(1)K值难确定,没有准确的确定方法,主要取决于个人经验和感觉。(2)复杂度和样本呈线性关系,每次迭代都要计算每个样本到质心的距离,因此,在样本数目较大的情况下,算法计算量大。4.K-means算法工作流程
2020-06-05 17:25:01 797
原创 PCA和ICA的对比
PCA和ICA的对比by:Yang Liu1.ICA处理的数据为非高斯分布的;PCA处理的数据是高斯分布的。2.ICA提取相互独立的属性,而且降维;PCA只做数据的降维。ICA的数据预处理中会用到PCA。3.ICA中各分量独立,PCA中各分量不相关。4.ICA的目的是找到这样一组分量,使此分量最大独立化,进而发现信息中的一些隐藏因素;PCA的目的是找到这样一组分量,使重构误差最小,使此分量最能代表原事物的特征。5.PCA为最大化方差,使得残余方差最小,或信息损失最小(方差即信息)。ICA为最大化
2020-06-03 12:10:07 3339
原创 独立成分分析ICA
1.ICA(independent component analysis)的定义:利用很少的先验知识将混合信息分离成独立分量的一种重要方法。2.ICA的经典模型:“鸡尾酒会”的问题,人的大脑从嘈杂的酒会中快速的区分出自己想要的声音。Xj=Aj1S1+Aj2S2+Aj3S3...+Ajn - 1Sn−1+AjnSn{X_j} = {A_{{\text{j}}1}}{S_1} + {A_{{\text{j2}}}}{S_2} + {A_{{\text{j3}}}}{S_3}... +
2020-06-03 11:44:57 1358
原创 主成分分析PCA在matlab中实现的展示
a=[1,2,3,4,5,6,7,8,9,10;1.2,2.5,3.6,98,65,5,6,4,5,4;88,99,66,55,44,11,22,33,66,55;7,8,96,5,4,5,6,5,4,556;1,2,5,4,8,96,3,2,1,1] ——输入所要分析的数据,其中行向量表示一组数据,列向量表示的是一种特征。运算结果:b=zscore(a) ——通过zscore函数对矩阵a进行标准化,新数据=(原数据-均值)/标准差。运算结果:c=cov(b)——通过cov函数求
2020-05-31 09:30:42 882
原创 ELman神经网络matlab实现
一.输入样本用cos(xt)、cos(2xt)、cos(0.5xt)和时间t,预测sin(xt)$$FIG.1. 原始数据二.matlab实现代码clear all;close all;clc%sine,‘tanh’,Lrate=0.02,momentum=1,Nohidden=12;%sine,‘sigmoid’,Lrate=0.8,momentum=1,Nohidden=12;load sinesine=sine’;sine=mapminmax(sine,0,1);sine=sin
2020-05-30 18:11:52 2901 3
原创 Elman神经网络
标题:Elman神经网络一.网络结构N—L—M拓展N—L—L—M,样本数为n。二.正向传播hi=f(temphi)=f(vxi+bin+uhi−1){h^i}{\rm{ = }}f\left( {temp{h^i}} \right) = f\left( {v{x^i} + {b_{in}} + u{h^{i - 1}}} \right)hi=f(temphi)=f(vxi+bin+uhi−1)yi=f(tempyi)=f(whi)=f(w⋅f(vxi+bin+uhi−1)){y^i} = f
2020-05-30 17:42:31 1838 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人