加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

前端人工智能:通过呆板进修推导函数方程式--铂金Ⅲ

发布时间:2019-03-19 03:11:03 所属栏目:建站 来源:小蝌蚪
导读:什么是tensorflow.js tensorflow.js是一个能运行在赏识器和nodejs的一个呆板进修、呆板实习的javascript库,众所周知在赏识器上用javascript举办计较是很慢的,而tensorflow.js会基于WebGL通过gpu举办运算加快来对高机能的呆板进修模块举办加快运算,从而

我们可以看到,按照随机天生的a、b、c、d这四个参数并入到多项式后天生的数据跟真正的数据模仿的曲线不同很大,这就是我们接下来要做的,通过呆板进修和实习,不绝的调解a、b、c、d这四个参数来将这根曲线尽也许的无穷靠近现实的数据曲线。

建设优化器(Create an optimizer)

  1. const learningRate = 0.5;  
  2. const optimizer = tf.train.sgd(learningRate); 

learningRate这个变量是界说进修率,在举办每一次呆板实习的时辰,会按照进修率的巨细去举办计较的偏移量调解幅度,进修率越低,最后猜测到的值就会越精准,可是相应的会增进措施的运行时刻和计较劲。高进修率会加速进修进程,可是因为偏移量幅度太大,轻易造成在正确值的周边上下摆动导致运算出的功效没有那么精确。

tf.train.sgd是我们选用了tensorflow.js里帮我们封装好的SGD优化器,即随机梯度降落法。在呆板进修算法的时辰,凡是回收梯度降落法来对我们的算法举办呆板实习,梯度降落法常用有三种情势BGD、SGD以及MBGD。

我们行使的是SGD这个批梯度降落法,由于每当梯度降落而要更新一个实习参数的时辰,呆板实习的速率会跟着样本的数目增进而变得很是迟钝。随机梯度下矫魅正是为了办理这个步伐而提出的。假设一样平常线性回归函数的函数为:

SGD它是操作每个样本的丧失函数对θ求偏导获得对应的梯度,来更新θ:

随机梯度降落是通过每个样原来迭代更新一次,比拟上面的批量梯度降落,迭代一次必要用到全部实习样本,SGD迭代的次数较多,在解空间的搜刮进程看起来很盲目。可是概略上是往着最优值偏向移动。随机梯度降落收敛图如下:

预期函数模子(training process functions)

编写预期函数模子,着实就是用一些列的operations操纵去描写我们的函数模子

  1. function predict(x) {  
  2.   // y = a * x ^ 3 + b * x ^ 2 + c * x + d  
  3.   return tf.tidy(() => {  
  4.     return a.mul(x.pow(tf.scalar(3, 'int32')))  
  5.       .add(b.mul(x.square()))  
  6.       .add(c.mul(x))  
  7.       .add(d);  
  8.   });  

a.mul(x.pow(tf.scalar(3, 'int32')))就是描写了ax^3(a乘以x的三次方),b.mul(x.square()))描写了b x ^ 2(b乘以x的平方),c.mul(x)这些同理。留意,在predict函数return的时辰,用tf.tidy包了起来,这是为了利便内存打点和优化呆板实习进程的内存。

界说丧失函数(loss)

接下来我们要界说一个丧失函数,行使的是MSE(均方偏差,mean squared error)。数理统计中均方偏差是指参数预计值与参数真值之差平方的祈望值,记为MSE。MSE是权衡“均匀偏差”的一种较利便的要领,MSE可以评价数据的变革水平,MSE的值越小,声名猜测模子描写尝试数据具有更好的准确度。MSE的计较很是简朴,就是先按照给定的x获得现实的y值与猜测获得的y值之差 的平方,然后在对这些差的平方求均匀数即可。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读