1.早期机器学习

核方法kernel method
支持向量机SVM
决策树,随机森林,梯度提升机

2.深度学习

1.很多问题更好性能
2.解决问题更简单,将特征工程完全工具化
特征工程:让初始输入数据更适合用SVM等方法处理,也必须手动为数据设计好表示层
3.深度学习无需手动设计,可以一次性学习所有特征
4.三层模型中最优的第一表示层并不是单层或双型模型中最优的第一表示层。

深度学习的变革在于:模型可以在同一时间共同学习所有表示层而不是依次连续学习(贪婪学习)

深度学习两个基本特征:
1.通过渐进的、逐层的方式形成越来越复杂的表示
2.对中间这些渐进的表示共同进行学习

层从输入数据中提取表示

大多数深度学习都是将简单的层连接起来,从而实现渐进式的数据蒸馏

时间序列数据或序列数据:3D 张量,形状为 (samples, timesteps, features)。

梯度提升机XGBoost,用于浅层学习问题
深度学习Keras,用于感知问题

2D Dense 密集连接层,全连接层,密集层
3D LSTM
4D Conv2D

损失函数(目标函数)——在训练过程中需要将其最小化。它能够衡量当前任务是否已
成功完成。
‰优化器——决定如何基于损失函数对网络进行更新。它执行的是随机梯度下降(SGD)
的某个变体。
dense activation
relu(rectified linear unit,整流线性单元)函数j将所有负值归零 -->tanh
sigmoid函数将任意值"压缩"到[0,1]区间内,其输出值k可以看作概率值
softmax激活——输出不同x个类别的概率分布,和为1

loss参数
二分类问题网络输出是一个概率值——交叉熵往往是最好的选择:crossentropy,–>mse
最好使用binary_crossentropy(二元交叉熵),
还可以使用mean_squared_error(均方误差)
mse损失函数:均方误差,预测值与目标值之差的方差

metrics:mae:平均绝对误差,预测值与目标值之差的绝对值

fit
verbose静默模式0

优化/泛化

欠拟合/过拟合
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

3.为模型选择正确的最后一层激活和损失函数

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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

(1) 抽取训练样本x 和对应目标y 组成的数据批量。
(2) 在x 上运行网络[这一步叫作前向传播(forward pass)],得到预测值y_pred。
(3) 计算网络在这批数据上的损失,用于衡量y_pred 和y 之间的距离。
(4) 更新网络的所有权重,使网络在这批数据上的损失略微下降。

4.other

文本
标记
标记的向量编码

one-hot编码是将标记转换为向量最常用、最基本的方法:
他将每个单词与一个唯一的整数索引相关联,然后将这个整数索引i转换为长度为N的二进制向量(N是词表大小)
这个向量只有第i个元素是1,其余元素都是0

词嵌入
Embedding
Embedding层针对特定任务的标记嵌入

5.池化卷积

使用池化可以看作是增加了一个无限强的先验:这一层学得的函数必须具有对少量平移的不变性。当这个假设成立时,池化可以极大地提高网络的统计效率。

在卷积层和池化层几层交替之后,卷积特征映射的张量被重新变形以展平空间维度。

卷积神经网络可以用于输出高维的结构化对象,而不仅仅是预测分类任务的类标签或回归任务的实数值

通常,卷积网络训练中最昂贵的部分是学习特征。输出层的计算代价通常相对不高,因为在通过若干层池化之后作为该层输入的特征的数量较少

6.循环神经网络

循环神经网络RNN(SimpleRNN(过于简化,没有实用价值),
LSTM(SimpleRNN变体,增加了一种携带信息跨越多个时间步的方法(长短期记忆算法)
它保存信息以便后面调用,从而防止较早期的信号在处理过程中逐渐消失),
GRU)

分层特征学习-------------一维卷积神经网络,循环神经网络

7.保存keras模型

使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含:

1.模型的结构,以便重构该模型
2.模型的权重
3.训练配置(损失函数,优化器等)
4.优化器的状态,以便于从上次训练中断的地方开始

使用keras.models.load_model(filepath)来重新实例化你的模型,如果文件中存储了训练配置的话,该函数还会同时完成模型的编译

8.metrics性能评估[包含评估模型在训练和测试时的性能的指标]

1.性能评估模块提供了一系列用于模型性能评估的函数,这些函数在模型编译时由metrics关键字设置

2.性能评估函数类似与目标函数, 只不过该性能的评估结果讲不会用于训练.

3.可以通过字符串来使用域定义的性能评估函数,也可以自定义一个Theano/TensorFlow函数并使用之

9.编译Keras模型必要的两个参数

1.目标函数,损失函数loss

2.优化器optimizers

10.双向循环层Bidirectional

简写:将相同的信息以不同的方式呈现给循环网络,可以提高精度并缓解遗忘问题。
1.双向RNN是一种常见的RNN变体,他在某些任务上的性能比普通RNN更好。他常用于自然语言处理,深度学习对自然语言的瑞士军刀。
2.RNN特别依赖于顺序和时间,RNN按顺序处理输入序列的时间步,而打乱时间步或反转时间步会完全改变RNN从序列中提取的表示。
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐