Python深度学习 学习笔记5 (神经网络、多分类问题、回归问题、机器学习工作流程)

1.多分类问题

损失函数为categorical_crossentropy(分类交叉商)

model = models.Sequential()
model.add(layers.Dense(64, activation='relu', input_shape=(10000,)))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(46, activation='softmax'))
model.compile(optimizer='rmsprop',
              loss='categorical_crossentropy',
              metrics=['accuracy'])
model.fit(partial_x_train,
          partial_y_train,
          epochs=9,
          batch_size=512,
          validation_data=(x_val, y_val))
results = model.evaluate(x_test, one_hot_test_labels)
最终结果如下。
>>> results
[0.9565213431445807, 0.79697239536954589]

处理多分类问题的标签有两种方法。
通过分类编码(也叫 one-hot 编码)对标签进行编码,然后使用 categorical_
crossentropy 作为损失函数。
将标签编码为整数,然后使用 sparse_categorical_crossentropy 损失函数。

2.回归问题

编译网络用的是 mse 损失函数,即均方误差(MSE,mean squared error),预测值与
目标值之差的平方。这是回归问题常用的损失函数。
在训练过程中还监控一个新指标:平均绝对误差(MAE,mean absolute error)。它是预测值与目标值之差的绝对值。

#数据标准化(减去特征平均值,再除以标准差)
mean = train_data.mean(axis=0)
train_data -= mean
std = train_data.std(axis=0)
train_data /= std
test_data -= mean
test_data /= std

#模型定义
from keras import models
from keras import layers

def build_model():
    model = models.Sequential()
    model.add(layers.Dense(64, activation='relu',
              input_shape=(train_data.shape[1],)))
    model.add(layers.Dense(64, activation='relu'))
    model.add(layers.Dense(1))
    model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])
    return model

# K折验证

#绘制验证分数

#训练最终模型
model = build_model()
model.fit(train_data, train_targets,
          epochs=80, batch_size=16, verbose=0)
test_mse_score, test_mae_score = model.evaluate(test_data, test_targets)

#最终结果如下。
>>> test_mae_score
2.5532484335057877
#你预测的房价还是和实际价格相差约 2550 美元。

3.机器学习的四个分支:监督学习,无监督学习,自监督学习,强化学习

 4.评估机器学习模型

训练集、验证集和测试集:三种经典的评估方法:简单的留出验证、K 折验证,
以及带有打乱数据的重复 K 折验证。

5.数据预处理、特征工程和特征学习

6.过拟合与欠拟合

优化(optimization)是指调节模型以在训练数据上得到最佳性能(即机器学习中的学习),而泛化(generalization)是指训练好的模型在前所未见的数据上的性能好坏。

总结一下,防止神经网络过拟合的常用方法包括:
获取更多的训练数据
减小网络容量
添加权重正则化
添加 dropout

7.

表 4-1 为模型选择正确的最后一层激活和损失函数

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

8.机器学习的通用工作流程

1) 定义问题,收集数据集

2)选择衡量成功的指标

3)确定评估方法

4)准备数据

5)开发比基准更好的模型

6)扩大模型规模:开发过拟合的模型

7)模型正则化与调节超参数

2022/7/8 深度学习基础完结

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值