Neural Networks

根据数据我们知道,人类的神经元的 计算速度大概在10^-3左右,远远不及现在的电子元件的速度,但是表现出的速度却令人吃惊,原因则在于神经网络的高度并行计算的能力。

我们先从一个神经元开始说明。
现在我们假设一个神经元它有N个输入,分别为x1,x2,...,xn, 他们的权重分别为w1,w2,...wn。并且我们还有一个额外的x0 = 1,以及它相对应的w0 .
我们现在定义一个式子:之后我们将这个值作为一个输入进行判别,判别式如下:
根据这个式子我们可以划分出一个超平面,其中平面由于w0的存在而不会永远经过原点,平面的其他信息则由其他的w1,w2等共同决定。
当然,这里的大于0并不是绝对的,你可以根据需要进行更改。

根据这个超平面我们就可以将一堆点进行划分。这也就是一个简单的神经元的模型,如果难以理解我举出下面这样的一个例子。
假定:w0 = -0.8, w1 = w2 = 0.5,此时我有四对输入(0,0)(0,1)(1,0)(1,1)那么根据刚才的判别式,我们分别可以得到这四组input的输出,即:
0,0,0,1.  通过观察可以发现,其实这个神经元实现了一个简单的与门的操作。

再往后假设我给出了更多的数据,目的是为了训练出一个能达到我要的效果的模型。我只需要对于当前的模型进行评估,然后给出一个优化的方向,然后再重复直到达到效果。

此时我们就不得不定义出一个量来具体量化我的模型的优劣,在这里我们用批处理学习的方式来定义,假设我已经给出了一个dataset,他的误差的计算如下:
其中td代表target,od代表output
然后我们既然要优化,肯定要对这个值求梯度。
然后得到一个方向 ,接下来将这个更新给原来的w,即:
的计算公式中,η代表了学习率,可以理解为学习的步长,这个值要适量,否则效果不好,再接下来就是一个方向。

对于这个方向的计算,如下:
要注意的是,在这个式子中,我们假定od与x是线性的,即:
有了这个假设以后,我们就得到了最后的值,即:
然后我们就可以通过这个式子进行优化现有的参数,不仅仅可以用于批处理学习,还可以用于其他方式,比如来一个新值我一对比,发现可以优化,就立即优化。

我举一个例子说明这个神经学习的方式:
假设我要实现一个与非门,然后给了一堆training set
在这个例子之中,零界值(threshold)为0.5,学习率(learning rate)为0.1,经过不断地学习,我们最后得到了与非门的参数。

欢迎讨论,相互学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值