图:TensorFlow运算被表示为数据流图。每个图由一系列操作对象组成。
操作:每个操作对象代表一个图节点,即张量流上的一个运算(加法、乘法或更复杂的操作)单元。其输入为一个张量,输出也是一个张量。
张量:张量可以被表示为数据流图上的边。它们不表示或包含由操作产生的值,而是定义改值的类型和会话中计算改值的方法。
会话:会话是一个实体,表示运行数据流图运算的环境。
前馈神经网络:非常适用于对函数进行拟合和插值。包含大量神经元以及层组织,一个输入层,一个或多个隐藏层,一个输出层。每个神经元都与前一层的所有神经元相连接,但是各层之间没有相互反馈。
在一定精度内拟合一下类型的函数:
任何连续的函数:需要一个隐藏层
任何函数,甚至是不连续的,需要两个隐藏层。
反向传播算法:
目标:使网络的实际输出值和正确输出之间的误差最小
原理:由于网络是前馈的,所以激励总是由输入单元流向输出单元。到达输出单元后,网络的输出会与正确输出相比较。然后将代价函数的梯度反向传播,同时更新权重。(可以递归,可以应用于任何数量的隐藏层)
缺陷:由于网络含有隐藏单元,且输出函数具有非线性性,所以误差函数的表现十分复杂,具有很多局部最优解。因此很容易陷入局部最小值,从而导致给出的解不是最优解。
权重与偏差:
权重和输出函数决定了单个神经元及整个网络的表现。在训练阶段,权重需要得到正确更新,以保证模型的正确表现。(权重中有一个特殊的权重,称为偏差:该权重不与网络中其他的单元相连接,且其输入恒为1。
传递函数:一种最常用的传递函数——sigmoid函数:
该函数的定义域为所有实数,值域为(0,1),即神经元每个激活态的运算所产生的输出值均在0到1之间。
前馈神经网络的最后一层会采用一个softmax函数,这样可以方便的用后验概率解释网络的输出
softmax函数:
此处N表示网络输出的总个数,其中有以下重要性质成立:
卷积神经网络:CNN架构被组织为一系列的块、第一个块由两种层组成:卷积层和池化层;后面的块为完全连接的、带有softmax层的许多网络层。尤其适合图像分类问题,训练速度快,结果更准确。
CNN架构:
在多层网络中,输入层每个神经元的输出都和隐藏层的所有神经元相连接(全相连层)
在CNN网络中,定义卷积层的连接方式和之前的网络大不相同。
卷积层是CNN网络层中最主要的一种,在CNN中,使用一个或多个卷积层是不可避免的。
在卷积层中,每个神经元与输入区的某个特定区域相连,这种区域称为感受野。
一个CNN模型——LeNet
卷积层和池化层是LeNet族模型的核心。该模型是一种多层前馈网络,专门用于视觉模式识别。
在LeNet模型中,较低的层由卷积层和池化层交替组成,后面的层是全连接的,相对于传统的前馈神经网络。而第一个全连接层的输入时该层之前所有特征图组成的集合。
Kaggle平台:是一个预测建模及分析的比赛平台。在这个平台上,有公司及其研究人员发布的数据。
优化TensorFlow自编码器:
所有的监督学习都面临着一个巨大的问题:维度灾难,即随着输入空间维度的增加,模型的性能逐渐变差。这是因为随着维度的增加,从输入中获得足够的信息所需要的样本曾指数级增加。为克服这一问题,出现了一些优化网络。
优化网络:
1、自编码器网络:这种网络的设计和训练目的在于,转换自身输入模式,使得给出降级的或者不完整的输入模式时,可以还原出原本的模式。其输出要尽可能复现输入;其隐藏层存储了压缩的数据,即数据的一个致密表示,其中包含输入数据的最基本特征。
2、玻尔兹曼机:这种网络包含一个输入/输出可见层和一个隐藏层。可见层与隐藏层之间的连接是无向的:数据可以在可见层-隐藏层和隐藏层-可见层两个方向游动,且不同的神经单元可以全连接或部分连接。