早前Google Tensorflow开源了一个在线实验的神经网络平台PlayGround,它是一个入门神经网络非常直观的网站,可以将神经网络的训练过程直接可视化。
网页版玩法大家可以去项目网址体验,今天重点给大家介绍一款APP,名字就叫神经网络,下载安装就可以在iPhone和iPad上感受神经网络的魅力了。
这款app灵感来源便是Google Tensorflow 的 Deep playground,程序大量代码都借鉴了这个开源项目。这款程序使用的神经网络是简单的反向传导神经网络(Backpropagation Neural Networks),可以直观地感受到神经网络训练过程中的变化,包括连接的强弱、每个结点负责识别的特征和最终输出等图像等。
与网页版一样提供了4种不同形态的数据,分别是圆形、异或、高斯和螺旋。平面内的数据分为蓝色和黄色两类。
首先选择数据,然后整学习速率、激活函数、正则化、正则化率等参数,也可以调节噪声、训练数据和测试数据的比例和Batch size的大小,就可以开始训练神经网络啦!
其中:
学习率
其中α就是学习速率,提高学习率,可以显著增加学习速度,但太大又可能会跳过最低点,从而造成振荡。
激活函数
激活函数的作用是将神经网络的输出非线性化,使神经网络能够处理非线性数据。本程序有三个激活函数,分别是ReLU、Sigmoid和Tanh。还有一个Linear相当于没有激活函数。
- 红色:ReLU
- 蓝色:Tanh
- 绿色:Sigmoid
- 紫色:Linear
正则化函数
正则化也称权重衰减(Weight decay),目的是降低权值(Weight),防止过拟合。本程序有两个正则化函数,分别是L1和L2,以及一个None选项。L1可以将权值一直衰减到0,因此它能将权值矩阵变稀疏。
L2对大的数衰减大,对小的数衰减小,因此它不是那么容易将权重衰减到0,但是它可以获得一个比较均匀的权值矩阵。
四组数据里面难度最大的就是螺旋型,大家一起挑战一下吧1