美文网首页
深度学习讲稿(20)

深度学习讲稿(20)

作者: 山岳之心 | 来源:发表于2021-02-24 23:22 被阅读0次

4.3 最简单的学习法:双向试错法(冷热法)

从本质上来看,神经网络的学习就是为了调整各种特征的权重值,以使得误差最小。如果从第一条数据输入开始,你就开始不断地调整各种特征的权重值,那么随着学习的数据量增多,最终权重越来越接近最优值附近。此时我们就说神经网络已经学习完成了。这一点和动物的学习是很类似的,通过不断地练习,最终掌握一种技能。比如婴儿学步就类似这种方法。

再回到最简单的单节点神经网络上来。

我们在上一节中,进行了一次学习,得到的误差值是0.3025。那接下来我们将knob_weight 变化1\%,即:

knob_weight *= 1.01
pred = input * knob_weight

error = (pred - goal_pred)**2 # 误差
print(error1)

或:

knob_weight *= 0.99
pred = input * knob_weight

error2 = (pred - goal_pred)**2 # 误差
print(error2)

这样我们在第二步学习了两次,分别计算出它们的误差值,然后与第一次学习的误差比较。保留误差值小的那个knob_weight, 舍弃误差变大的knob_weight。如此重复这个过程就可以递推得到最优的knob_weight。

上面的过程我们可以写成如下的python程序:

knob_weight = 0.5
input = 0.5
goal_pred = 0.8

pred = input * knob_weight

error = (pred - goal_pred)**2 # 误差

times = 0
while True:
    times += 1
    temp_weight1 = knob_weight*0.99
    temp_weight2 = knob_weight*1.01
    pred1 = input * temp_weight1
    pred2 = input * temp_weight2
    error1 = (pred1 - goal_pred)**2 
    error2 = (pred2 - goal_pred)**2 
    if error1 < error and error2 > error:
        error = error1
        knob_weight = temp_weight1
    elif error1 > error and error2 < error:
        error = error2
        knob_weight = temp_weight2
    else:
        break
print("运行次数为:", times)
print("最优权重为:%f, 误差为: %f"%(knob_weight, error))

上面的程序非常简单,循环118次后,可以很容易学习到权重knob_weight为1.60016,这已经和真实的结果1.6非常接近了。但是,聪明的你也许会看出上面的学习方法的局限性。在上面的程序中,判断语句中的条件是不完备的,比如碰到误差都减小的情形,上面的学习程序的选择是停止学习。这显然是不太好的。这种冷热学习法的局限是碰到参数空间中的一个极限点就会停下来,而且它有大量的重复计算。如果改变上面的程序,让它是条件完备的,也即碰到误差同时减小时,就搜索两个路径。这样的学习对于复杂问题会碰到指数级别的计算量。所以这个学习算法虽然简单,却有很多的弊端,无法利用它来学习复杂问题。

相关文章

  • 深度学习讲稿(20)

    4.3 最简单的学习法:双向试错法(冷热法) 从本质上来看,神经网络的学习就是为了调整各种特征的权重值,以使得误差...

  • 深度学习讲稿(2)

    1.4 深度学习的当前应用 目前,深度学习已经和商业结合得非常多。这个算法本身已经深刻地改变了人类社会,而且在未来...

  • 深度学习讲稿(1)

    深度学习 I. 从AlphaGo谈起 大家听说过2015年10月, 英国DeepMind设计的人工智能AlphaG...

  • 深度学习讲稿(4)

    第2章: 基本概念 本章主要内容: 什么是深度学习、机器学习和人工智能? 什么是参数模型和非参数模型? 什么是监督...

  • 深度学习讲稿(5)

    2.3 监督机器学习 监督学习对数据集进行转换 监督学习是一种将一个数据集转换成另一个数据集的方法。例如,如果你有...

  • 深度学习讲稿(7)

    2.6 监督参数学习 简化描述:使用旋钮进行试错学习 监督参数学习机是一台具有固定数量的旋钮(参数)的机器,通过转...

  • 深度学习讲稿(6)

    2.5 参数学习和非参数学习 简化表述:试错学习 VS. 计数和概率。前面谈的内容将所有的机器学习算法分成两组:有...

  • 深度学习讲稿(3)

    1.5 准备工作 安装jupyter Notebook 和 Numpy Python 库强烈建议安装VScode...

  • 深度学习讲稿(8)

    2.7 无监督参数学习 无监督参数学习本质上是对数据进行分类,但是在数据分类之前已经对该数据有一定的标记。比如淘金...

  • 深度学习讲稿(25)

    5.3 随机梯度下降法 我们首先来看随机梯度下降法的运算顺序。前面我们已经讲了这种算法的学习逻辑。它对整个数据集要...

网友评论

      本文标题:深度学习讲稿(20)

      本文链接:https://www.haomeiwen.com/subject/ongefltx.html