第 3 章 神经网络预测导论:前向传播
本章主要内容
- 一个能够做出预测的简单网络
- 什么是神经网络,它能够做什么?
- 进行多输入的预测
- 进行多输出的预测
- 进行多输入和多输出的预测
- 对预测进行预测
3.1 什么是预测
本节介绍预测相关的知识
在前一章中,你学习了“预测-比较-学习”这一模式。在本章中,我们将深入研究第一步:预测。
要实现“预测”,我们首先要了解神经网络的三个不同部分:数据、机器、预测。数据是整个故事的起源,正如“巧妇难为无米之炊”一样,数据对于神经网络学习有根本性的影响。一次预测过程中能够处理的数据量,对于网络本身的形态来说也影响巨大。如果数据量不足,那么就很难发挥算法本身的功能。
例如,如果我试图预测一张照片中是否有一只猫,我肯定需要同时拿到一张照片上的所有的像素。为什么?如果我只发给你一个像素,你能否判断这张图像中是否存在猫?当然你不能,我也不能!
现在让我们跳过网络这一部分。事实证明,只有先掌握了输入和输出数据集的“形状”,才能创建一个神经网络。目前为止,“形状”表示“列数”或“一次处理的数据点的数量”。
我们最好用一个图像化的方法来表述。
比如我们来玩一个硬币预测股价的游戏。小明是一个笃信“运气”和冥冥中“神秘力量”的股民,他每天晚上扔硬币十次,如果十次中有超过五次的硬币正面向上,他就预测明天的股票是上涨的,反之则是下跌的。那么这个预测就可以用图像表达成:
正如所见,这个拥有一项权重的网络一次接受一个数据,即硬币正面向上的次数,然后输出一个预测结果(它是否认为明天股票会上涨)。
3.2 能够进行预测的简单神经网络
让我们从最简单的神经网络开始
weight = 0.1
def neural_network(input,weight):
prediction = input*weight
return prediction
上面的代码表示的是一个函数式,它也被称作是空白的神经网络,因为我们这里还没有输入数据。下面我们插入一个数据点。
record_of_positives = [0,1,0,1,1,1,0,0,1,1]
number_of_positives = sum(record_of_positives)
input = number_of_positives
pred = neural_network(input,weight)
print(pred)
上面就是最简单的一个神经网络。它完美地完成了硬币预测股价这个任务。小明以后只需要扔硬币并且填入record_of_positives 就可以了,但是为了省事,小明决定用计算机来扔硬币,并且只想摁一下按键就输出结果。请大家帮小明完成这个设计。
网友评论