栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 深度学习基础完结

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1009431.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号