兰州网站建设q479185700強泰州制作公司网站
news/
2025/10/8 12:16:55/
文章来源:
兰州网站建设q479185700強,泰州制作公司网站,徐州专业网站seo,公司企业网站模板下载目录
1.神经网络的整体构架
2.神经网络架构细节
3.正则化与激活函数
4.神经网络过拟合解决方法 1.神经网络的整体构架 ConvNetJS demo: Classify toy 2D data
我们可以看看这个神经网络的网站#xff0c;可以用来学习。
神经网络的整体构架如下1#xff1a; 感知器可以用来学习。
神经网络的整体构架如下1 感知器Perceptron感知器是所有神经网络中最基本的也是更复杂的神经网络的基本组成部分。它只连接一个输入神经元和一个输出神经元。 前馈Feed-Forward网络前馈网络是感知器的集合其中有三种基本类型的层输入层、隐藏层和输出层。在每个连接过程中来自前一层的信号被乘以一个权重增加一个偏置然后通过一个激活函数。前馈网络使用反向传播迭代更新参数直到达到理想的性能。 残差网络Residual Networks/ResNet深层前馈神经网络的一个问题是所谓的梯度消失即当网络太深时有用的信息无法在整个网络中反向传播。当更新参。
对于神经网络的整体构架我们总结为四点层次结构、神经元、全连接和非线性。 层次结构
由上图不难看出在神经网络中神经网络的我们一般分成三个部分
1输入层input layer
2隐藏层hidden layer
3输出层output layer
ps要注意的是中间的隐藏层可以有多层。
神经元
每个层次中都有许多圆圆的球似的东西这个东西就是在神经网络中的神经元就是数据的量或者是矩阵的大小每一种层次中的神经元中的含量不太一样。
在输入层中的每一个神经元里面是你输入原始数据一般称为X的不同特征比如x为一张图片这张图片的像素是32323其中的每一个像素都是它的特征吧所以有3072个特征对应的输入层神经元个数就是3072个这些特征以矩阵的形式进行输入的。我们举个例子比如我们的输入矩阵为1*3072第一维的数字表示一个batchbatch指的是每次训练输入多少个数据中有多少个输入第二维数字中的就是每一个输入有多少特征。
在隐藏层中的每一层神经元表示对x进行一次更新的数据而每层有几个神经元比如图中hidden1层中有四个神经元表示将你的输入数据的特征扩展到几个比如图中就是四个就比如你的输入三个特征分别为年龄体重身高而图中hidden1层中第一个神经元中经过变换可以变成这样‘年龄0.1体重0.4身高0.5’而第二个神经元可以表示成‘年龄0.2体重0.5身高0.3’每一层中的神经元都可以有不同的表示形式。
在输出层中的的神经元个数主要取决于你想要让神经网络干什么比如你想让它做一个10分类问题输出层的矩阵就可以是’1*10’的矩阵第一维表示的与输入层表示数字相同后面10就是10种分类。
全连接
我们看到的每一层和下一层中间都有灰色的线这些线就被称为全连接因为你看上一层中每个神经元都连接着下一层中的所有神经元而这些线我们也可以用一个矩阵表示这个矩阵我们通常称为‘权重矩阵’用大写的W来表示是后续我们需要更新的参数。 权重矩阵W的维数主要靠的是上一层进来数据的输入数据维数和下一层需要输入的维数可以简单理解为上有一层有几个神经元和下一层有几个神经元例如图中input layer中有3个神经元而hidden1 layer中有4个神经元中的W的维度就为‘3*4’以此类推。主要是因为我们全连接层的形式是矩阵运算形式需要满足矩阵乘法的运算法则。
非线性
非线性(non-linear)即 变量之间的数学关系不是直线而是曲线、曲面、或不确定的属性叫非线性。非线性是自然界的复杂性的典型性质之一与线性相比非线性更接近客观事物性质本身是量化研究认识复杂知识的重要方法之一凡是能用非线性描述的关系通称非线性关系。
2.神经网络架构细节
整体构架
基础构架fW2max(0, W1x)
继续堆加一层fW3max(0, W2max(0,W1x))
神经网络的强大之处在于用更多的参数来拟合复杂的数据。
神经元个数对结果的影响
改之前的 layer_defs [];
layer_defs.push({type:input, out_sx:1, out_sy:1, out_depth:2});
layer_defs.push({type:fc, num_neurons:, activation: tanh});
layer_defs.push({type:fc, num_neurons:2, activation: tanh});
layer_defs.push({type:softmax, num_classes:2});
net new convnetjs.Net();
net.makeLayers(layer_defs);
trainer new convnetjs.SGDTrainer(net, {learning_rate:0.01, momentum:0.1, batch_size:10, l2_decay:0.001}); layer_defs [];
layer_defs.push({type:input, out_sx:1, out_sy:1, out_depth:2});
layer_defs.push({type:fc, num_neurons:2, activation: tanh});
layer_defs.push({type:fc, num_neurons:2, activation: tanh});
layer_defs.push({type:softmax, num_classes:2});
net new convnetjs.Net();
net.makeLayers(layer_defs);
trainer new convnetjs.SGDTrainer(net, {learning_rate:0.01, momentum:0.1, batch_size:10, l2_decay:0.001}); 改成2以后的图样 然后神经个数调为5以后的样子 layer_defs [];
layer_defs.push({type:input, out_sx:1, out_sy:1, out_depth:2});
layer_defs.push({type:fc, num_neurons:5, activation: tanh});
layer_defs.push({type:fc, num_neurons:5, activation: tanh});
layer_defs.push({type:softmax, num_classes:2});
net new convnetjs.Net();
net.makeLayers(layer_defs);
trainer new convnetjs.SGDTrainer(net, {learning_rate:0.01, momentum:0.1, batch_size:10, l2_decay:0.001}); 3.正则化与激活函数
正则化的作用
机器学习中经常会在损失函数中加入正则项称之为正则化Regularize。防止模型过拟合也就是说在损失函数上加上某些规则限制缩小解空间从而减少求出过拟合解的可能性。
激活函数
常用的激活函数有SigmoidReluTanh等进行相应的非线性变换 激活函数是用来加入非线性因素的提高神经网络对模型的表达能力解决线性模型所不能解决的问题。
学高等数学的时候在不定积分那一块有个画曲为直思想来近似求解。那么我们可以来借鉴一下用无数条直线去近似接近一条曲线。
4.神经网络过拟合解决方法
参数初始化
参数初始化是很重要的通常我们都适用随机策略来进行参数初始化
W 0.01 * np.random.randn(D, H)
数据预处理
不同的处理结果会使得模型的效果发生很大的差异 DROP-OUT
这就是传说中的七伤拳
过拟合是神经网络中一个令人非常头疼的大问题 一种含义是在机器学习中是解决模型过拟合问题的策略。 另一种含义是是dropout技术的实现让每一层网络的输出被随机选择丢弃一些神经元这样可以防止梯度消失和爆炸的问题有助于提升整个网络的泛化能力。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931497.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!