在这几个月中,进军学习神经网络,从最初的线性回归和分类问题到BP神经网络再到现在的cnn卷积神经网络,不断的学习和试错的一个过程,一个完整的神经网络简单到只要学习率以及偏置和均值方差来纠正loss即可,也可以复杂到调节神经网络的各个神经元的个数,和神经网络的整个结构。
神经网络的调参也有也有一定的随机和偶然性。
1,学习率要保持适中(学习率的衰减程度也要进行调节,保证模型的收敛速率);
2,模型的数据集要保持一个数量上的庞大;
3,batchsize的大小也要尽可能的调整到一个适合的大小(才能保证模型的迭代的速度以及过拟合的概率);
4,神经网络的内部结构的选取(基本的迭代器和激活函数的选取);
5,数据的归一化可以减小神经网络的整个的计算量,和模型的收敛时间;
6,学会使用适当的算法对输入的数据以及输出的数据进行处理(比如各种滤波,减小数据的扰动对整个数据集所造成的影响)
7,模型所涉及的基本机构,例如卷积层的参数选取,卷积核的大小,卷积窗口的数目,卷积移动的步长,是否补0等等参数,都可以参照案例进行修改。
8,loss函数的选取 ,MSE和MAE,RMSE等处理回归问题。
9,引入一种防止过拟合的权重分布,让权重在调整减小LOSS的同时尽量的接近这种分布,这就是正则化(和增加dropout层类似,防止模型的过拟合,提高模型的泛化性)。
末:学习是一个从模仿到创造的一个过程,慢慢来才是最快。

持续更新,有什么好的想法都可以进行讨论。