神经网络两大基本操作之dropout

1.dropout是什么?有什么用?

1.1 让网络的神经元以一定的概率失活(输出置为0)。即是对每一层神经元的输出,以一定的概率把这些输出变为0,然后传递给下一层。
1.2 可以理解为,dropout可以让我们得到一个有很多模型集成而来的模型,因为每次训练的时候,神经元都不一样。

2.举例

2.1 代码

import numpy as np

def dropout():
    """
    X为神经元的输出,H1为神经元的输出,U1为mask;
    :return:
    """
    p=0.5
    X=[
        [1,2,3],
        [4,5,6],
        [7,8,9]
    ]
    W1= [0.1,0.2,0.3,]#1,8,21=3.0
    b1= [0.1,0.2,0.3,]
    H1=np.maximum(0, np.dot(W1,X) + b1)
    print("H1:\n",H1)
    # U1=np.random.rand(*H1.shape)
    # print("U1:\n",U1,H1.shape,*H1.shape)
    U1=np.random.rand(*H1.shape)<p #U1中小于p的被置1,大于p的被置0
    print("U1:\n",U1)
    H1*=U1#dropout操作
    print("H1:\n",H1)

if __name__ == '__main__':
    # main()
    dropout()

2.2 输出

H1:
 [3.1 3.8 4.5]
U1:
 [False False  True]
H1:
 [0.  0.  4.5]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卷积神经网络(Convolutional Neural Network,CNN)是一种常用于图像识别和计算机视觉任务深度学习模型。它的基本原理是通过卷积层、池化层和全连接层等组件来提取图像特征并进行分类。 卷积神经网络基本原理如下: 1. 卷积层:卷积层是CNN的核心组件,通过使用一系列可学习的滤波器(也称为卷积核)对输入图像进行卷积操作,提取图像的局部特征。每个滤波器会在输入图像上滑动,并计算出对应位置的卷积结果,形成一个特征图。这样可以有效地捕捉到图像的空间结构信息。 2. 激活函数:在卷积层之后,通常会使用激活函数(如ReLU)对特征图进行非线性变换,增加网络的表达能力。 3. 池化层:池化层用于减小特征图的尺寸,并保留重要的特征。常用的池化操作有最大池化和平均池化,它们分别选取局部区域中的最大值或平均值作为池化结果。 4. 全连接层:在经过多个卷积层和池化层之后,通常会使用全连接层来进行分类。全连接层将特征图展平成一维向量,并通过一系列的全连接操作进行分类。 5. Dropout:为了防止过拟合,CNN中常常使用Dropout技术,在训练过程中随机丢弃一部分神经元,减少神经元之间的依赖关系。 6. Softmax:在最后的全连接层输出之后,通常会使用Softmax函数将输出转化为概率分布,用于多分类任务的预测。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值