训练神经网络的基本步骤
回顾逻辑回归模型的训练步骤
- 根据给出的输出值x和参数w,b来确定训练模型
- 确定损失函数和成本函数
- 利用参数值的梯度下降函数,找出使得成本函数局部最小的值
训练神经网络的步骤
- 创建神经网络的模型架构
- 根据模型确定损失函数和代价函数:二分类问题,回归问题
其中二元交叉熵(binary cross entropy)
y是二元标签0或1,p(y)属于输出标签y的概率,即对于标签y为1的情况,loss=-log(p(y)) 如果预测值p(y)趋近于1,那么损失函数的值应当趋近于0。反之,如果此时预测值p(y)趋近 于0,那么损失函数的值应当非常大,y=0时,损失函数loss=-log(1-p(y)) - 对于交叉熵损失函数的补充:
对图像牛、鹿、猴做出预测,通过softmax函数输出各种可能的预测值,然后在one-hot中的label值。label中只有一个类别为1,其他都为0,再把对应的概率的对数和标签值相乘累加求负数得到损失函数,对真实值预测概率越大,loss函数越接近0,反之loss函数越大,损失越大
使用交叉熵函数的原因:
极大似然估计,信息熵,详情看链接:https://www.bilibili.com/vide... 调用Tensorflow的反向传播函数和二元交叉熵函数来确定梯度下降
sigmoid函数的替代函数
如何选择sigmoid函数
output layer:
- 处理的是binary classification问题,选择sigmoid函数
处理的是线性回归问题,比如预测股票的涨跌问题,可以选择线性激活函数,如果预测值必须是非负值,则可以选择ReLu函数
hidden layer:
- ReLu函数和sigmoid函数,一般选择ReLu函数,原因如下:ReLu函数的计算更快,效率更高,而且ReLu函数没有平坦的曲线,而sigmoid函数有两端较为平坦的部分,这使得sigmoid函数的w的梯度下降更为缓慢。一般选择ReLu函数作为隐藏层的默认函数
选择激活函数
一般在隐藏层不选择线性函数而是ReLU函数,为了引入多元
多类分类问题及Softmax函数
- 是指可能有两个及以上的输出标签
逻辑回归与Softmax函数的代价函数的比较
其中,Softmax的y只能取一个值,损失函数只根据所取的y值来进行计算神经网络的Softmax输出
在Softmax函数中的输出向量an的值与Z1到Zn的值都有关系Softmax的改进实现
在逻辑回归中的改进:
在Softmax中的改进:
疑问:为什么输出层的激活函数是线性函数:
多标签分类问题
学习率的高级优化方法:
Adam Algorithm Intuition:
如果梯度沿着同一个方向移动,说明需要增加学习率
如果梯度来回震荡,难以收敛吗,说明需要减小学习率
代码实现:
其他的网络层类型
convolutional Layer:卷积层
以观察病患的心电图为例子,以心电图的每一个波动值为一个输入变量x,x1-x20输入到一个神经元,x11-x30输入到一个神经元,以此类推,隐藏层共9个神经元,再输入到下一个隐藏层的时候,只需关注前一层的5个激活值,一个神经元接收5个激活值,共3个神经元,最后再输入到只有一个神经元的sigmoid层,来输出可能的判断
优点:更少的计算量以及需要更少的训练数据
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。