给出一个生活中的最简单的两层神经网的实际例子

马克-to-win @ 马克java社区:防盗版实名手机尾号:73203。下面我们给出一个生活中的最简单的两层神经网的实际例子。比如,在我们的心目当中,只要有游泳池这种设施的房子就属于高档住宅。先进行一个初步判断,高还是低? 最后才进行最终的价格判断,所以这样就有了两层神经网络。先看是高档还是低档住宅,之后高档住宅的价格偏移和低档住宅的价格偏移是完全不一样的。马克-to-win @ 马克java社区:在下图中,判断高档和低档住宅的这一层叫做隐含层,英文叫hidden,我们这里用h1和h2代表。加上输入层,x1和x2,这样就构成了两层的神经网络。隐含层可以做一个初步的判断。将来可以有更多的隐含层。比如有一处房子,地点在天安门旁边东华门,输入x1就应该等于五万元一平米,权重w1,w2的值都是0.5。马克-to-win @ 马克java社区:而这处房子带游泳池,于是x2=1,000,000,w3是0.8,w4是0.001,(为什么? 因为高档设施对判断为高档住宅贡献较大)b1=50000,b2=10000,w5=0.8, w6=0.001(为什么? 因为高档住宅对最终的价格贡献较大),b3=1000于是:
h1=x1*w1+x2*w3+b1=50000*0.5+1,000,000*0.8+50,000=875,000。
h2=x1*w2++x2*w4+b2=50000*0.5+1,000,000*0.001+10000=36000
o1=h1*w5+h2*w6+b3=875,000*0.8+36000*0.001+1000=701,036

现在:另外有一处房子在6环,无游泳池。输入x1就应该等于一万元一平米,权重w1,w2的值都是0.5。而这处房子无游泳池,于是x2=100,w3是0.8,w4是0.001,b1=50,000,b2=10000,w5=0.8, w6=0.001,b3=1000于是:
h1=x1*w1+x2*w3+b1=10000*0.5+100*0.8+50,000=55080
h2=x1*w2++x2*w4+b2=10000*0.5+100*0.001+10000=15000.1
o1=h1*w5+h2*w6+b3=55080*0.8+15000.1*0.001+1000=45079.0001

更多请见:https://blog.csdn.net/qq_43650923/article/details/100532437

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: VGG块是一种由多个卷积层和池化层构成的基本结构,可以用来构建深层卷积神经络模型。加入残差结构则是指在VGG块的基础上加入一个残差快,它的作用是解决深层络的梯度消失问题,提高络的收敛速度。 一个例子如下: ``` import keras from keras.layers import Conv2D, MaxPooling2D, Add, Input def vgg_block(input_tensor, num_filters): x = Conv2D(num_filters, (3, 3), activation='relu', padding='same')(input_tensor) x = Conv2D(num_filters, (3, 3), activation='relu', padding='same')(x) x = MaxPooling2D((2, 2), strides=(2, 2))(x) return x def residual_block(input_tensor, num_filters): x = Conv2D(num_filters, (3, 3), activation='relu', padding='same')(input_tensor) x = Conv2D(num_filters, (3, 3), activation='relu', padding='same')(x) x = Add()([x, input_tensor]) return x input_tensor = Input(shape=(224, 224, 3)) x = vgg_block(input_tensor, 64) x = vgg_block(x, 128) x = residual_block(x, 128) x = vgg_block(x, 256) x = residual_block(x, 256) x = vgg_block(x, 512) x = residual_block(x, 512) x = vgg_block(x, 512) x = residual_block(x, 512) model = keras.models.Model(input_tensor, x) ``` 这是一个使用VGG块和残差块构建的示例络,使用Keras框架实现。 ### 回答2: VGG块是一种常用的卷积神经络结构,其具有多个卷积层和池化层组成的模块化架构。在构建络模型时,我们可以使用多个VGG块来增加络的深度和复杂度。 同时,为了提高模型的性能和训练效果,我们可以加入残差结构。残差结构是通过引入跳跃连接,将的前向传播捷径与后续层的输相加,从而允许信息的流动直接跳过若干卷积层,解决深层络的梯度消失和准确性下降问题。 举个例子,我们可以以VGG16为基础,构建一个包含残差结构的络模型。在该模型,我们在每个VGG块的最后一个卷积层后面加入一个残差块。 残差块由两个卷积层组成,其第一个卷积层的输入是VGG块的输,第二个卷积层的输入是第一个卷积层的输。然后将第二个卷积层的输与VGG块的输进行相加,作为该残差块的输。 这样,每个VGG块后面都加入了一个残差块,通过跳跃连接实现了信息的直接传递,增强了模型的表达能力和学习能力。同时,残差结构也进一步解决了深度卷积神经络的训练问题,提高了模型的准确性和鲁棒性。 通过使用VGG块构建络模型,并加入残差结构,我们可以得到一个深度且效果良好的络模型,适用于图像分类、目标检测等计算机视觉任务。 ### 回答3: VGG块是一种经典的络结构,它由多个卷积层和池化层组成。我们可以使用VGG块来构建一个络模型,并加入残差结构。残差结构是一种通过跳跃连接将输入直接传递到输的技术,可以帮助络更好地学习特征。 下面是一个使用VGG块和残差结构构建的简单络模型的示例: 1. 首先,我们定义一个基本的VGG块,该块由两个卷积层和一个池化层组成。每个卷积层后面都跟着一个ReLU激活函数。 ``` class VGGBlock(nn.Module): def __init__(self, in_channels, out_channels): super(VGGBlock, self).__init__() self.conv1 = nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1) self.conv2 = nn.Conv2d(out_channels, out_channels, kernel_size=3, padding=1) self.relu = nn.ReLU(inplace=True) self.pool = nn.MaxPool2d(kernel_size=2, stride=2) def forward(self, x): out = self.conv1(x) out = self.relu(out) out = self.conv2(out) out = self.relu(out) out = self.pool(out) return out ``` 2. 接下来,我们构建一个包含多个VGG块和残差结构的络。我们使用两个VGG块和一个残差结构来构建一个简单的模型。 ``` class ResidualVGG(nn.Module): def __init__(self, num_classes): super(ResidualVGG, self).__init__() self.vgg_block1 = VGGBlock(3, 64) self.vgg_block2 = VGGBlock(64, 128) self.residual = nn.Sequential( nn.Conv2d(128, 128, kernel_size=1, stride=2), nn.ReLU(inplace=True) ) self.fc = nn.Linear(128, num_classes) def forward(self, x): out = self.vgg_block1(x) out = self.vgg_block2(out) residual = self.residual(out) out += residual out = out.view(out.size(0), -1) out = self.fc(out) return out ``` 在这个例子,我们使用了两个VGG块来提取图像的特征,并在第二个块后面加入了一个残差结构。残差结构由一个1x1的卷积层和ReLU激活函数组成,通过将输入直接添加到输,可以帮助络更好地学习特征。最后,我们使用全连接层将特征映射到最终的输类别。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mark_to_win

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值