Python深度学习-4.机器学习基础

2018-11-14  本文已影响0人  coding_coder

4.机器学习基础

4.1机器学习的四个分支

4.1.1监督学习

4.1.2无监督学习

4.1.3自监督学习

4.1.4强化学习

在强化学习中, 智能体(agent)接收有关其环境的信息,并学会选择使某种奖励最大化的行动

4.2评估机器学习模型

4.2.1训练集、验证集和测试集

1. 简单的留出验证 (hold-out validation )

图4-1.png
num_validation_samples = 10000
np.random.shuffle(data)
validation_data = data[:num_validation_samples]
data = data[num_validation_samples:]
training_data = data[:]
model = get_model()
model.train(training_data)
validation_score = model.evaluate(validation_data)
# 现在你可以调节模型、重新训练、评估,然后再次调节……
model = get_model()
model.train(np.concatenate([training_data,
validation_data]))
test_score = model.evaluate(test_data)

2. K 折验证

图4-2.png
k = 4
num_validation_samples = len(data) // k
np.random.shuffle(data)
validation_scores = []
for fold in range(k):
    validation_data = data[num_validation_samples * fold:
        num_validation_samples * (fold + 1)]
    training_data = data[:num_validation_samples * fold] +
        data[num_validation_samples * (fold + 1):]
    model = get_model()
    model.train(training_data)
    validation_score = model.evaluate(validation_data)
    validation_scores.append(validation_score)
validation_score = np.average(validation_scores)
model = get_model()
model.train(data)
test_score = model.evaluate(test_data)

3. 带有打乱数据的重复 K 折验证

4.2.2评估模型的注意事项

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

4.3.1神经网络的数据预处理

  1. 向量化:神经网络的所有输入和目标都必须是浮点数张量(在特定情况下可以是整数张量)。无论处理什么数据(声音、图像还是文本),都必须首先将其转换为张量,这一步叫作数据向量化(data vectorization)

  2. 值标准化:一般来说,将取值相对较大的数据(比如多位整数,比网络权重的初始值大很多)或异质数据(heterogeneous data,比如数据的一个特征在 0~1 范围内,另一个特征在 100~200 范围内)输入到神经网络中是不安全的。这么做可能导致较大的梯度更新,进而导致网络无法收敛 。输入数据应该具有以下特征 :取值较小:大部分值都应该在 0~1 范围内;同质性(homogenous):所有特征的取值都应该在大致相同的范围内。更严格的标准化方法:将每个特征分别标准化,使其平均值为 0 ;将每个特征分别标准化,使其标准差为 1

    # 假设 x 是一个形状为 (samples, features) 的二维矩阵
    x -= x.mean(axis=0)
    x /= x.std(axis=0)
    
  3. 处理缺失值:一般来说,对于神经网络,将缺失值设置为 0 是安全的,只要 0 不是一个有意义的值。网络能够从数据中学到 0 意味着缺失数据,并且会忽略这个值。如果测试数据中可能有缺失值,而网络是在没有缺失值的数据上训练的,应该人为生成一些有缺失项的训练样本:多次复制一些训练样本,然后删除测试数据中可能缺失的某些特征

4.3.2特征工程

4.4过拟合与欠拟合

4.4.1减小网络大小

4.4.2添加权重正则化

4.4.3添加 dropout 正则化

4.5机器学习的通用工作流程

4.5.1定义问题,收集数据集

4.5.2选择衡量成功的指标

4.5.3确定评估方法

4.5.4准备数据

4.5.5开发比基准更好的模型

表4-1.png

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

4.5.7模型正则化与调节超参数

本章小结

上一篇下一篇

猜你喜欢

热点阅读