Improving the way neural networks learn
来源:互联网 发布:手机测试温度软件 编辑:程序博客网 时间:2024/05/22 14:21
Improving the way neural networks learn
@(深度学习)[深度学习]
二次代价函数
问题:当输出a趋近1的时候,
优化的方法
- 代价函数的选择:cross-entropy
- 正则化方法:L1;L2;dropout;artificial expantion(提升模型范化的能力)
- 初始化weights的方法
- 选择超参数的方法
cross-entropy cost function
解决二次代价函数学习缓慢的问题:从下面的公式可以看出cross-entropy代价函数对
在什么时候cross-entropy能够被解释为代价函数:
- C是一个非负的函数,可以观察到y的取值是0或1,a的取值在(0,1)之间,因此C>0
- 当神经元的输出趋近于期望的输出时,C会接近0,
- 总结而言 : cross-entropy是正的,且当神经元计算出接近于期望输出的值时,cross-entropy趋近于0
同理,对b的偏导:
cross-entropy to many-neuron multi-layer networks:
假如输出神经元是sigmoid neurons,cross-entropy总是更好的选择,在模型训练之前我们将会初始化参数w和b,可能会导致计算过程中输入x=1,输入结果是0的情况,这样的情况下,二次代价函数的学习速度会下降甚至停止。
代价函数对
相比二次代价函数消去了
假如输出层使用线性神经元,即激活函数不使用sigmoid,而是简单的使用
总结:在选择代价函数的时候,应该考虑输出层激活函数的情况,输出层同时也对应机器学习中单个元的分类或者回归问题,通常分类问题选择cross-entropy,回归问题选择二次函数
Softmax
- 为神经网络定义了一种新的输出类型
特性:
- 输出相加等于一
- 输出的值总是正数
- 也就是说:softmax的输出可以看作一个概率分布
-
区别:
- sigmoid层的输出
- softmax层的输出与上一层的所有加权输入相关
softmax-learning slowdown problem
log-likelihood cost:
说明:在数字识别的例子中,假如输入的图像是数字7,那么log-likelihood cost为
sigmoid输出层——cross-entropy
softmax输出层——log-likelihood
identity输出层 ——quadratic
记住:backprogation假设了代价函数能够被写成输出层神经元的函数:
C=C(aL)
Backpropagation with softmax and the log-likelihood cost
输出层softmax:
代价函数(逻辑似然函数):
δLj=∂C∂zLj=∂C∂aLj∂aLj∂zLj=aLj−yj
regularization
L1 regularization:
梯度下降的权重更新:
因此lasso模型更加适应于特征数量较少的数据集
L2 regularization:
In L1 regularization, the weights shrink by a constant amount toward 0. In L2 regularization, the weights shrink by an amount which is proportional to w
Dropout:修改神经网络的结构避免过拟合
- Improving the way neural networks learn
- Improving the way neural networks learn
- Improving the way neural networks learn
- CHAPTER 3 Improving the way neural networks learn
- CHAPTER 3 改进神经网络的学习(Improving the way neural networks learn)
- 提高神经网络的学习方式Improving the way neural networks learn-1
- 提高神经网络的学习方式Improving the way neural networks learn-2
- Convergent Learning: Do different neural networks learn the same representations?
- Improving Deep Neural Networks Initialization 参考答案
- Improving Deep Neural Networks Regularization 参考答案
- Improving Deep Neural Networks Gradient Checking 参考答案
- Improving Deep Neural Networks学习笔记(一)
- Improving Deep Neural Networks学习笔记(二)
- Improving Deep Neural Networks Optimization Methods Homework
- Improving Deep Neural Networks学习笔记(三)
- Improving Deep Neural Networks Tensorflow 参考答案
- Understanding and Improving Convolutional Neural Networks via CReLU
- Improving neural networks by preventing co-adaptation of feature detectors
- ToolBar学习笔记(1)
- Js中 call、aplly的使用和拓展
- eclipse 基本操作
- 【杭电】[2612]Find a way
- ListFragment 使用ListView and 自定义Adapter(转载)
- Improving the way neural networks learn
- STL容器学习总结
- Node.js文件系统、路径的操作函数
- Qt Designer的进阶使用
- http://ambitiongold.blog.163.com/blog/static/1840165522012921103511610/
- ubuntu中vi编辑器的使用
- HDU-5053-the Sum of Cube【打表】
- MySQL执行计划解读 转他人文章
- 浅析RPC