黑色封面的《神经网络设计国外经典教材中文版》算是挺靠谱的入门书了。里面把神经网络讲得比较系统,从基础原理到怎么用激活函数、怎么挑选初始化方法,都讲得蛮透彻。嗯,是它对ReLU和Sigmoid的对比,例子比较多,讲得也通俗。
神经网络的层数设计其实没想象中那么玄乎,书里提到:想分类问题,可以先试试三层结构,输入层、隐藏层、输出层,激活函数用ReLU
或者Tanh
都挺好。你要是做回归,就考虑换均方误差损失函数。
权重初始化也蛮重要。要是用不对,网络容易“死掉”,梯度直接没了。书里推荐了Xavier
和He
初始化,代码例子都给了,响应也快,代码也简单。比如下面这个初始化方法:
W = tf.get_variable('W', shape, initializer=tf.contrib.layers.xavier_initializer())
如果你要深入了解激活函数和sin 函数近似,可以去看看相关文章,里面有挺多实用例子和代码下载。