Neural Networks
来源:互联网 发布:license 开发 node 编辑:程序博客网 时间:2024/05/30 20:09
根据数据我们知道,人类的神经元的计算速度大概在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
- Neural networks
- Neural Networks
- neural networks
- Neural Networks
- Neural Networks
- Neural Networks
- Neural Networks
- Neural Networks
- Neural Networks
- Neural Networks网站
- Deep learning-------------Neural networks
- Neural Networks code
- Back-Propagation Neural Networks
- Convolutional Neural Networks
- 09: Neural Networks - Learning
- 神经网络(Neural Networks)
- NOTE:NEURAL NETWORKS
- 6-Neural Networks--Representation
- poj 2318 TOYS
- hihocoder 1398 : 网络流五·最大权闭合子图
- G
- poj 3468 线段树区间更新,模板题
- Log4c的使用
- Neural Networks
- 生产者消费者(singlAll和await误用)
- HDU6038——Function(图论,tarjan)
- mysql 导入导出数据
- 7.25 链表,队列,二叉树,查找,排序
- Rsa 加密解密 java
- [3D图形学]视锥剔除入门(翻译)
- 2017.7.25考试(膜你赛from耿)
- css3属性