一、TensorFlow中训练神经网络的方法

1、第一步指定模型,告诉TensorFlow如何进行推理,指定如何计算输出,给定输入x和参数b。

2、第二步是使用特定的损失函数编译模型,即二元交叉熵函数。

使用BinaryCrossentropy()解决分类问题;使用MeanSquaredError()解决回归问题;J为成本函数

3、第三步是训练模型,最小化成本函数(梯度下降)。

epochs表示迭代轮回的次数

二、激活函数

1、Sigmoid激活函数的替代方案

(1)relu激活函数:修正线性单元

(2)Linear activation function:线性激活函数,又是说没有使用任何激活函数

2、如何选择激活函数

(1)以下为为网络的输出层选择输出函数的方式

a. 处理二分类问题,在输出层选择Sigmoid函数

b. Y是一个可以选择正值或者负值的数字,选择Linear activation function

c. Y取非负数选择ReLU函数

(2)隐藏层一般默认选择ReLU

3、多类分类问题

y的取值不只0和1两个,也有可能是0,1,2,3这样的四个等。

选择下面将要学习的softmax激活函数(右侧的图像就是)

三、softmax回归算法

1、softmax回归算法

softmax回归算法是逻辑回归的泛化,逻辑回归是一种二分类算法,适用于多分类场景

a1表示给定输入特征x,算法对y=1的概率的估计

a2表示给定输入特征x,算法对y=2的概率的估计

2、softmax回归的代价函数

成本函数:系数分类交叉熵函数SparseCategoricalCrossentropy

3、带有softmax输出的神经网络

代码实现:但是不要使用这个代码,使用后面改进之后的。

4、softmax的改进实现

(1)存在问题:数值舍入误差

(2)改进

这是将输出层设置为仅使用线性激活函数,并将激活函数和交叉熵损失放入损失函数的规范中

下面的损失函数给了TensorFlow重新排列项并更准确地计算这个公式的能力,使数值上更准确。

同时softmax函数也变为线性激活函数

在逻辑回归的情况下,如果将输出函数和损失函数结合,在逻辑回归中也必须按一下修改,将输出函数值通过逻辑关系映射以实际获得概率。

5、多标签分类

四、高级优化

不使用梯度下降算法,使用Adam算法自动调整学习率,但是需要开始的初始学习率

五、不同于全连接层的额外的层类型

1、卷积层

每个神经元只查看输入图像的一个区域,称为卷积层

2、卷积神经网络

以EKG心电图为示例:

更多推荐