深度学习

深度学习:通过多层非线性变换对高复杂性数据建模算法的合集。

线性模型的局限性

线性模型的最大特点是任意线性模型的组合还是线性模型,只通过线性变换,任意层的全连接神经网络和单层的神经网络表达能力没有任何区别,都是线性模型。

但在现实问题中,绝大多数的问题是线性模型解决不了的。

激活函数

将输出通过一个非线性函数,这个函数称为激活函数。常用的激活函数有:

ReLU  f(x) = max(x, 0)
sigmoid  f(x) = 1 / 1 + e^-x
tanh  f(x) = 1-e^-2x / 1+ e^-2x

softmax 回归

将神经网络的输出变为一个概率分布:
假设输出为y1 y2 ... yn
softmax(yi) = e^yi / sum(e^yj) j=[1,n]

softmax和交叉熵一起使用

tf.nn.softmax_cross_entropy_with_logits(y, y_)

直接得到使用了softmax之后的交叉熵
另对于只有一个正确答案的分类问题中,可以使用:

tf.nn.sparse_softmax_cross_entropy_with_logits(y, y_)

过拟合

在实际应用中想要的并不是让模型尽量模拟训练数据的行为,而是希望通过训练出来的模型对未知的数据进行判断。模型在训练数据上的表现并不一定代表了它在未知数据上的表现。

过拟合是指当一个模型过于复杂后,它可以记忆训练数据中的随机噪音的部分而忘记了学习训练数据中通用的趋势。

避免过拟合的常用方法是正则化,就是在损失函数中加入刻画模型复杂程度的指标。限制权重的大小,使得模型不能任意拟合训练中的随机噪音。

你可能感兴趣的:(深度学习)