神经网络基础笔记

一、神经网络基本内容

1、结构

组成部分: 输入层、隐藏层、输出层
神经网络结构
代码实现

import tensorflow as tf
from tensorflow import keras
#构造模型
model = keras.Sequential()
model.add(keras.layers.Dense(...))  #参数activation:激活函数 ;input_shape:数据规模
model.add(keras.layers.Dense(...))

#编译
#optimizer:优化器,loss :损失函数,metrics :监控指标
model.compile(optimizer = 'Adam',loss = 'relu',metrics = ['accuracy'])

#训练
#epoch:训练次数
model.fit(train_images,train_labels,epoch = 5)

2、参数选择

损失函数 loss- 用于测量模型在训练期间的准确率。您会希望最小化此函数,以便将模型“引导”到正确的方向上。
优化器 optimizer- 决定模型如何根据其看到的数据和自身的损失函数进行更新。
指标 metrics - 用于监控训练和测试步骤。以下示例使用了准确率,即被正确分类的图像的比率。

常见损失函数和最后一层激活函数的选择:

问题最后一层激活函数损失函数
二分类问题sigmoidbinary_crossentropy
多分类、单标签softmaxcategorical_crossentory
多分类、多标签sigmoidbinary_crossentropy
回归到任意值mse
回归到0~1范围内的值sigmoidmse 或binary_crossentropy

二、过拟合与正则化

1、过拟合

2、正则化

降低过拟合的方法

a.减小网络规模

减少层数、减少神经元数以使用更小容量的模型

b.添加权重正则化

L1正则化:添加的成本与权重系数的绝对值(权重的L1范数) 成正比

L2正则化:添加的成本与权重系数的平方(权重的L2范数) 成正比

#L1正则化

regularizers.l1(0.001) —>意为该层权重矩阵的每个系数都会使网络总损失增加0.001*weight_coefficient_value

#L2正则化

regularizers.l2(0.001)

#同时做L1、L2正则化

regularizers.l1_l2(l1 = 0.001,l2 = 0.001)

c.添加dropout正则化

原理:训练过程中随机将该层一些输出数据舍弃,打破训练输出之间的偶然联系防止被模型记住,从而降低过拟合效果。即引入噪声

实现方法:在模型中加入dropout层

model.add(keras.layers.Dropout(0.5)) #参数选择一般在0.2~0.5之间

三、评估方法

留出验证集:数据量很大时使用(一般使用这种方法就行)
K折交叉验证:留出验证的样本量太少,无法保证可靠性时使用
重复K折验证:可用数据很少,同时模型评估又要准确时使用

笔记
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值