简单概念
张量:执行数据。一般表示0-n阶数组
计算图:神经网络。在tensorboard中可以看到
会话:执行计算图。在tensorflow中的函数必须在session中run才会执行。
优化器:优化权重。有多种优化器,对于优化器的选择需要根据你的实际问题进行算法的选择。
简单开始
神经网络的实现过程:【训练123,使用4】
1、准备数据,提取特征x,作为输入feed给神经网络;
2、搭建神经结构,从输入到输出(层建立,先建立计算图,在会话执行);
这一步就是:前向传播
3、在大量特征feed神经网络后,使用迭代优化参数
这一步就是:反向传播
4、模型预测与分类
前向传播
搭建模型,实现推理
反向传播
优化模型,减少损失
损失函数:表示预测与实际的差值
1、均方差
2、交叉熵:两个概率分布之间的距离
3、自定义
优化方法:优化损失函数
1、梯度下降
学习率:每次参数更新的幅度
更新后的参数 = 当前参数 - 学习率 * 损失函数的梯度(导数)
学习率:大了不收敛,小了学习效率低
如何设置学习率;指数衰减学习率
学习率基数 = 学习率初始值 * 学习率衰减率(0,1)exp(运行轮数/多少轮更新一次)
滑动平均(影子值):距离每个参数一段时间的平均。优化所有参数
影子 = 衰减 * 影子 + (1-衰减率) * 参数
其中影子的衰减为:
衰减 = min{ MOVING_AVERAGE_DECAY, (1+轮数)/(10+轮数)}
正则化:缓解过拟合
给参数进行加权,弱化噪声
损失loss=模型中所有参数损失函数+超参数给参数在总loss中的比例(加权)*需要正则化参数
模型中所有参数损失函数:均方差 + 交叉熵