
智能算法
文章平均质量分 67
智能算法相关
little_fat_sheep
图形学领域爱好者,未来将在图形渲染(OpenGL、LibGDX、Filament、Unity3D、UE)、图形编解码(FFmpeg)等领域长期深耕。
展开
-
基于keras的胶囊网络(CapsNet)
1 胶囊网络基本原理胶囊网络(CapsNet)由Hinton 于2017年10月在《Dynamic Routing Between Capsules》中提出,目的在于解决 CNN2 案例分析原创 2020-04-19 23:30:31 · 5124 阅读 · 19 评论 -
基于keras的时域卷积网络(TCN)
1 前言时域卷积网络(Temporal Convolutional Network,TCN)属于卷积神经网络(CNN)家族,于2017年被提出,目前已在多项时间序列数据任务中击败循环神经网络(RNN)家族。TCN 网络结构图中,xi 表示第 i 个时刻的特征,可以是多维的。本文以 MNIST 手写数字分类为例,讲解 TCN 模型。关于 MNIST 数据集的说明,见使用Tenso...原创 2020-03-15 19:57:41 · 20661 阅读 · 36 评论 -
基于keras的卷积神经网络(CNN)
本文以MNIST手写数字分类为例,讲解使用一维卷积和二维卷积实现 CNN 模型。关于 MNIST 数据集的说明,见使用TensorFlow实现MNIST数据集分类。实验中主要用到 Conv1D 层、Conv2D 层、MaxPooling1D 层和MaxPooling2D 层,其参数说明如下:原创 2020-03-14 21:57:35 · 2018 阅读 · 0 评论 -
seq2seq模型案例分析
1 seq2seq模型简介seq2seq 模型是一种基于【 encoder-decoder】(编码器-解码器)框架的神经网络模型,广泛应用于自然语言翻译、人机对话等领域。目前,【seq2seq+attention】(注意力机制)已被学者拓展到各个领域。seq2seq于2014年被提出,注意力机制于2015年被提出,两者于2017年进入火热融合和拓展阶段。通常,编码器和解码器都是一个LSTM网络...原创 2020-03-11 21:56:41 · 1904 阅读 · 0 评论 -
基于keras的双层LSTM网络和双向LSTM网络
1 前言基于keras的双层LSTM网络和双向LSTM网络中,都会用到 LSTM层,主要参数如下:LSTM(units,input_shape,return_sequences=False)units:隐藏层神经元个数 input_shape=(time_step, input_feature):time_step是序列递归的步数,input_feature是输入特征维数 re...原创 2020-03-11 12:49:11 · 18918 阅读 · 3 评论 -
基于keras的残差网络
1 前言理论上,网络层数越深,拟合效果越好。但是,层数加深也会导致梯度消失或梯度爆炸现象产生。当网络层数已经过深时,深层网络表现为“恒等映射”。实践表明,神经网络对残差的学习比对恒等关系的学习表现更好,因此,残差网络在深层模型中广泛应用。本文以MNIST手写数字分类为例,为方便读者认识残差网络,网络中只有全连接层,没有卷积层。关于MNIST数据集的说明,见使用TensorFlow实现MNI...原创 2020-03-09 21:30:16 · 2236 阅读 · 7 评论 -
keras建模的3种方式——序列模型、函数模型、子类模型
1 前言keras是Google公司于2016年发布的以tensorflow为后端的用于深度学习网络训练的高阶API,因接口设计非常人性化,深受程序员的喜爱。keras建模有3种实现方式——序列模型、函数模型、子类模型。本文以MNIST手写数字为例,用3种建模方式实现。关于MNIST数据集的说明,见使用TensorFlow实现MNIST数据集分类笔者工作空间如下:2 序列模...原创 2020-03-08 22:00:26 · 2890 阅读 · 1 评论 -
数值积分原理与应用
1 理论计算定积分时,可以通过微元法逼近,如下:若取值均匀,公式如下:通过上述公式可以看到,定积分的值可以通过取样点函数值的线性组合得到。当取样点已经确定时,定积分的精度取决于每个取样点所分配的权值。梯形公式、Simpson公式、Cotes公式、Romberg公式正是通过调整权值来逐步逼近积分值。(1)复合梯形公式(2)Simpson公式(3)Cote...原创 2019-11-27 14:24:07 · 2019 阅读 · 0 评论 -
使用TensorFlow实现MNIST数据集分类
1 MNIST数据集MINST数据集是由Yann LeCun教授提供的手写数字数据库文件,其官方下载地址http://yann.lecun.com/exdb/mnist/下载好MNIST数据集后,将其放在Spyder工作目录下(若使用Jupyter编程,则放在Jupyter工作目录下),如图:G:\Anaconda\Spyder为笔者Spyder工作目录,MNIST_data为新建文件...原创 2019-03-18 19:31:52 · 6237 阅读 · 3 评论 -
Python三次样条插值与MATLAB三次样条插值简单案例
1 三次样条插值早期工程师制图时,把富有弹性的细长木条(所谓样条)用压铁固定在样点上,在其他地方让它自由弯曲,然后沿木条画下曲线,成为样条曲线。设函数S(x)∈C2[a,b] ,且在每个小区间[xj, xj+1]上是三次多项式,其中a=x0<x1<...<xn=b 是给定节点,则称S(x)是节点x0,x1,...xn上的三次样条函数。若在节点xj上给定函数值yj=f(xj...原创 2019-07-01 13:22:24 · 7726 阅读 · 0 评论 -
快速傅里叶变换(FFT)和小波分析在信号处理上的应用
1前言1.1傅里叶变换函数f(t)为一元连续函数,其傅里叶变换定义为:F(w)的傅里叶逆变换定义为:其中,i为虚数单位。由欧拉公式:任意连续函数f(t),都可以用三角函数表示,由于三角函数是周期函数,由此可展开为傅里叶级数。本文不加证明地给出傅里叶级数展开式:设F是所有一元连续函数空间,由傅里叶级数知是F的一组基,即对任意的f(t)属于F,都可以用这组基表示。对任意f(t...原创 2019-02-23 18:28:23 · 10353 阅读 · 0 评论 -
基于tensorflow的RBF神经网络案例
1 前言在使用RBF神经网络实现函数逼近中,笔者介绍了使用 Matlab 训练RBF神经网络。本博客将介绍使用 tensorflow 训练RBF神经网络。代码资源见:RBF案例(更新版)这几天,笔者在寻找 tensorflow 中 RBF 官方案例,没找到,又看了一些博客,发现这些博客或不能逼近多元函数,或不能批量训练。于是,自己手撕了一下代码。RBF神经网络中需要求解的参数有4个:基...原创 2019-11-16 17:42:14 · 7294 阅读 · 9 评论 -
使用多层RNN-LSTM网络实现MNIST数据集分类及常见坑汇总
1 前言循环神经网络(Recurrent Neural Network, RNN)又称递归神经网络,出现于20世纪80年代,其雏形见于美国物理学家J.J.Hopfield于1982年提出的可作联想存储器的互联网络——Hopfield神经网络模型。RNN是一类专门用于处理和预测序列数据的神经网络,其网络结构如下:RNN网络结构Sepp Hochreiter教授和Jurgen Schmi...原创 2019-05-15 17:57:03 · 3093 阅读 · 0 评论 -
自然语言建模与词向量
1 统计学语言模型自然语言处理(Natural Language Processing,NLP)中最基本的问题是:如何计算一个单词(或一段单词序列)在某种语言下出现的概率?即,下文连乘概率式每一项的求取问题。对于一段拥有T个单词的序列S=(w1,w2,...,wT),计算它出现的概率如下:我们知道,每一门语言都有庞大的词汇量,这样的计算方式会造成巨大的参数空间,所以这个原始模型并没...原创 2019-05-07 22:15:54 · 392 阅读 · 0 评论 -
tensorflow解决回归问题简单案列
在网络出口处不要加上sigmoid、tanh、relu激活函数进行非线性变换,因为sigmoid函数会将回归值压缩到(0,1),tanh函数会将回归值压缩到(-1,1),relu函数会将回归值映射到(0,+oo),而真实值没有这些限制,导致损失函数的计算不合理,误差反馈较慢,模型不收敛。另外,可以先将真实值y归一化,记为y1,再将回归值z3与z1比较,计算误差并调节网络权值和偏值,将z3逆归一化的值作为网络预测值。原创 2019-05-05 10:52:43 · 1035 阅读 · 2 评论 -
使用CNN实现MNIST数据集分类
1 MNIST数据集和CNN网络配置关于MNIST数据集的说明及配置见使用TensorFlow实现MNIST数据集分类CNN网络参数配置如下:原始数据:输入为[28,28],输出为[1,10] 卷积核1:[5,5],32个特征 -->28*28*32 池化核1:[2,2],最大池化 -->14*14*32 卷积核2:[5,5],2个特征 --&g...原创 2019-05-01 21:01:42 · 5485 阅读 · 7 评论 -
使用BP神经网络实现函数逼近
1 一元函数逼近1.1 待逼近函数1.2 代码clear,clcp=[-4:0.1:4]; %神经网络输入值t=sin(0.5*pi*p)+sin(pi*p); %神经网络目标值n=15; %隐藏层神经元个数net=newff(minmax(p),[1,n,1],{'tansig','tansig','purelin'},'trainlm'); %建立网络结构net.trainP...原创 2019-02-20 21:42:54 · 11623 阅读 · 7 评论 -
使用RBF神经网络实现函数逼近
1 一元函数逼近1.1 待逼近的函数1.2代码%%%%%%%%%%一元函数逼近%%%%%%%%%%clear,clc;x=linspace(-20,20,100); %神经网络输入值t=10*x-30*sin(x)-80*tansig(x); %神经网络目标值plot(x,t,'+'); %待逼近的函数图像hold onnet=newrb(x,t,1,2); %平方和误差小于1...原创 2019-02-19 10:20:41 · 11321 阅读 · 4 评论