机器学习之tensorflowJS

机器学习之tensorflowJS

五月 29, 2018

hello,tensorflow

机器学习(ML)现在不光是 IT 届的新宠,几乎是每个人都在谈论的新事物。

ML 如此狂野的原因是因为它非常擅长从数据中学习,以便它能够预测未来类似的事情。

嗯,就是预测未来。

但是手工操作 ML 是非常烦人的,它通常涉及在 JavaScript 中进行毫无趣味的矩阵操作,还涉及到许多的高级数学知识。

还好,TensorFlow.js 出现了,它在 ML 这的表现相当不错!它是一个开源的库,它有很多内置的机器学习 - 例如模型和算法,所以前端 er 不必从头开始学习如何编写它们。

机器学习的特点

机器学习擅长对数据进行分类和标记。也就是对一个又一个的为进行前瞻性预测,因此实现机器学习的前提有 2 点:

  • 拥有数据。有人(用户)给我们一些根据特定公式生成的数据。这些数据可能是一些枯燥的矩阵中的点,也可能是一些有趣的数据,比如是一副图片或者是一段语音。

  • 获得数据生成公式。通过查看分析这些数据,我们可以获取生成数据的固定公式,以便我们可以正确预测未来的数据点。例如,如果给了我一张照片,我们最终能够自信地说出它是一只狗还是一只松饼。

Tips: 传统的思维是 输入+公式 = 结果,而机器训练的逻辑是 结果+公式 = 输入。我们正是为了达到某种目的而去获取用户数据进而训练分析数据。

来个 demo 表演一下

在 ML 中,预测数字往往比预测图形更加容易,所以在这个例子中,我们首先先将图形拟合成数据(数据来自TensorFlow 网站

首选有一个横纵(X-Y)坐标系,有一个点 a 坐标值为(x,y), X 的取值区间在-1 和 1 之间也就是x = [-1,1],y 按照y=a*a^3+b*x^2+c*x+d进行取值,这就是数据生成公式。

在这里我们不知道a,b,c,d这些系数的值,因此也就不知道a的位置。

我们的目标就是训练这几个值,如果给我们一个X值,我们来预测y值应该是什么

整个训练过程用图形化进行展示,其中蓝色的点是我们最终获得的数据,红色的点是我们将要被用来训练猜测的数据。

点击训练按钮,绿色的数据会在不断猜测的过程中越来越接近最终的真相(蓝色)。并且你会发现训练的次数越多。那么最终获得数据也就越准确

线上预览地址

效果示例图