x_data:输入数据
 y_data:数据真实标签W:权重
 b:偏量神经元:Wx_data+b
 激活函数σ() :tanh() sigmoid() ReLU()
 隐藏层输出:output = σ(Wx_data+b)
softmax():主要用于分类网络的输出层,使得每个输出的概率在0-1之间,并且所有的概率和为1
epoch:迭代的次数,代表需要将数据集训练的次数
 batch:批量数据处理,代表每次喂入网络中进行梯度下降的数据的个数,而这样需要喂入x_data_size/batch次才能完成一个epochloss:损失函数,需要优化的一个函数,通过改变W和b使得loss越小(即y_data-output)越小。
 gradient descent:梯度下降,通过这种方式来更新参数W和b

参考视频:https://www.bilibili.com/video/av20542427/?p=12
提高梯度下降的速度方法:
如果是S型的激活函数,可以使用softmax型的对数交叉熵似然函数或者是sigmoid的对数交叉熵似然函数
如果是线性的分类,使用二次代价函数。

欠拟合、正常拟合和过拟合。
欠拟合:模型不能很好的去拟合数据,也就是训练时候的loss可能都比较大
正常拟合:训练时loss和测试的loss很接近。
过拟合:训练的太过了,训练的时候loss很小,准确率很好,但是模型的泛化能力太弱了,在测试的时候准确率很低。

防止过拟合的方法:
1)增加数据集
2)代价函数中添加正则项 C=C’+正则项(参数W的函数)
3)Dropout,训练的时候随机丢掉一些结点

优化器(梯度下降的优化算法):
1.随机梯度下降、标准梯度下降和批处理梯度下降(这个在之前的博客有写过)
2.Momentum:这个优化器的思想是当前的权值W的改变会受到上一次权值改变的影响,类似于小球滚动带上了惯性,这样可以加速小球向下滚动的速度。
3.Adagrad:它是随机梯度下降的一种延申算法。其核心思想是对比较常简的数据给予比较小的学习率去调整参数,对于比较罕见的数据给予比较大的学习率去调整参数。这个优化器适用于数据稀疏的数据集(比如一个图片训练集,其中有10000张是A类,1000张是B类,100张是C类。)这个算法的优点在于它不需要人为的去调节学习率,学习率可以自动的调节。缺点是随着迭代次数的增加,学习率会下降,并趋向于0.
4.RMSprop(Root Mean Square):这个优化器是借鉴了Adagrad的思想,但是他只用到了前t-1次的梯度平方的平均值加上当前梯度的平方的和的开平方作为学习率的分母。这样子,RMSprop不会出现学习率越来越低的情况,并且可以自己调节学习率。
5.Adadelta:不需要设置默认学习率,不需要学习率就可以达到很好的效果。
6.Adam:像Adadelta和RMSprop一样,Adam也会存储之前衰减的平方梯度,同时它也会保存之前的衰减梯度。经过一些处理之后再使用类似Adadelta和RMSprop的方式更新参数。