怎么训练一个曲线预测工具?
1、首先,根据函数来采样,以便得到训练集:
try= Table[x ->Cos[10 x]*Exp[-2 x^2], {x, -2,2, .02}]

2、我们用训练集里面的数据的后面部分,可以近似画出原函数的图像:
plot=ListLinePlot[try[[All, 2]], PlotStyle ->Green,Axes->False, Frame -> False]

3、给定一个未初始化的神经网络:
wang = NetChain[{10, Ramp, 10, Tanh, 1}, "Input" -> "Scalar", "Output" -> "Scalar"]
输入和输出,都是数字(宿槐区别于向量和张量)。

4、自定义一个绘图函数:
pp[w_, t_] := Show[plot, ListPlotLine[w@Range[-2, 2, .02], PlotStyle ->Red,Axes->False, Frame -> False], Epilog -> Text[t, {10, 0.9}, {-1, 0}]]
5、训练神经网络:
jiqi = NetTrain[wang,try,
MaxTrainingRounds -> Quantity[10, "Seconds"],
TrainingProgressReporting -> {pp[#Net, #AbsoluteBatch] &, "Interval" -> 0.1}]
原始神经网络是上面定义的wang;
训练集是try;
训练持续10秒;
每隔0.1秒,就用训练的jiqi来拟合一下图像。

6、训练10秒的jiqi,作图如下。其中红色图就是jiqi出图。
jiqi = NetTrain[wang,try,MaxTrainingRounds -> Quantity[10, "Seconds"]];
pp[jiqi, "10"]

7、下图是训练5秒之后的缝施jiqi的作图能力。
jiqi = NetTrain[wang,try,MaxTrainingRounds -> Quantity[5, "Seconds"]];
pp[jiqi, "5"]

8、训练2秒的机器作图。

9、训练1秒的机器作图。
每次训练,都会得到不同的效果。



10、下图是训练10秒的jiqi,绘制的区间为{-5,5}的函数铲侵哄图形。

11、下图是训练2秒的jiqi,绘制的区间为{-5,5}的函数图形。

12、下图是训练20秒的jiqi,绘制的区间为{-5,5}的函数图形。
