龙空技术网

鸢尾花的分类方法以及回传

伊敏河西海拉尔河南 56

前言:

眼前姐妹们对“鸢尾花分类模型”大约比较关切,同学们都需要了解一些“鸢尾花分类模型”的相关知识。那么小编在网上网罗了一些对于“鸢尾花分类模型””的相关文章,希望咱们能喜欢,小伙伴们一起来了解一下吧!

1.3 回传

以如何给鸢尾花分类为例, 有三种鸢尾花, 0-狗尾鸢尾, 1-杂色鸢尾 和 2-弗吉尼亚鸢尾。人们通过经验的累积总结出了判断鸢尾花种类的规律,通过测量花瓣长、花瓣宽、花萼长和花萼宽 (例如: 花萼长>花萼宽并且花瓣长/花瓣宽>2就是狗尾)

狗尾鸢尾

杂色鸢尾

弗吉尼亚鸢尾

现在很多人希望通过“if-case”语句实现分类,事实上条件判断语句的确可以给鸢尾花分类,这种方法利用符号主义作出理性的判断。但是鸢尾花种植者并不需要测量以上参数就能判断种类而是看一眼就知道了。随着经验的增长判断的准确度和速度也会变得越来越好。这就是直觉:建立了神经网络。

神经网络:采集了大量的数据集包含花瓣长、花瓣宽、花萼长和花萼宽以及这朵花的种类然后把他们喂入神经网络。通过回传的方法优化参数得到模型。最后读取新的图片判断出鸢尾的类型。

输入数据花瓣长、花瓣宽、花萼长和花萼宽之后输出三种鸢尾花的可能性。McCulloch和Pitts给出了神经的计算模型成为MP-模型。

为了简化模型我们先省略这个非线性函数

我们向鸢尾花的数据输入到这个表达式里, x(1, 4)*w(4, 3)+b(3, )=y(3, 0).

我们把0-狗尾鸢尾输入到MP-模型中, 得到的答案却是1-杂色鸢尾,为什么?因为参数W和B是随机生成的所以我们要训练模型。我们用损失函数来分析这些参数

损失函数反映出预测值(y)和标准值(y_)的差别。它可以判断W和B优缺点和质量。当损失函数取到最小值时,参数W和B为最佳值. 均方误差是一种常用的损失函数。

现在一组W和B使得损失函数最小。梯度是每个参数的函数偏导数得到方向。梯度的方向就是函数减小的方向。我们可以用这种梯度下降法在损失函数梯度的方向上找到损失函数的最小值,继而获得最佳的参数。

lr表示学习率,它可以由我们自己设置。如果学习率过大, 损失函数的梯度将在最小值左右摇摆。有过学习率过小,梯度下降太慢可能不会达到最小值

我们将用一个函数模拟这个过程

例如:

import tensorflow as tfw = tf.Variable(tf.constant(5, dtype=tf.float32))lr = 0.2epoch = 40for epoch in range(epoch):    with tf.GradientTape() as tape:        loss = tf.square(w + 1)    grads = tape.gradient(loss, w)    w.assign_sub(lr * grads)    print("After %s epoch,w is %f,loss is %f" % (epoch, w.numpy(), loss))

当 loss=0,w = -1. 答案符合预期.

但是如果 lr=0.001, 知道40次学习结束之后我我们也不会达到w=-1

如果lr=0.999,w会在-1两端波动

import numpy as npimport matplotlib.pyplot as pltw = np.linspace(-8, 6, 1000)loss = (w + 1)*(w + 1)plt.plot(w,loss,'r',linewidth=2)plt.show()

微信搜索:做梦当院士的李子哥

标签: #鸢尾花分类模型 #鸢尾花分类模型图