3.3 什么是神经网络?
这是你的第一个神经网络
为启动一个神经网络,需要你打开Jupyter Notebook,运行以下代码:
# 空白神经网络
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)
你刚刚成功建立了你的第一个神经网络,并用它做了预测!恭喜你!最后一行代码打印了预测结果(pred)。它的值应该是0.6。
那么什么是神经网络呢?
现在你已经知道,可以用一个以上的权重乘以输入数据进行预测。
什么是输入数据?
它是你从现实世界中记录下来的一个数字。它通常是一些很容易知道的东西,比如今天的温度,棒球运动员的击球率,或者昨天的股票价格。
什么是预测?
预测就是神经网络对输入数据进行“思考”之后告诉你的结果,如“基于当前的温度,今天有0%的可能人们会穿运动外套” 或 “基于这位棒球运动员的击球率,他有30%的可能打出一个本垒打”或“基于昨天的股票价格,今天的股票价格将是101.52”
这个预测总是对的吗?
不。很多时候神经网络会犯错。但它可以从中吸取教训。例如,如果预测过高,它将调整自己的权重,以便下次能够预测一个更低的值,反之亦然。
网络如何学习?
秘诀是试错!首先,它试图做出预测。然后,它会看到预测的结果是过高还是过低。最后,它改变权重(增大或者减小),以便下次看到相同的输入时能够给出更准确的预测。
3.4 这个神经网络做了什么?
它将输入乘以权重,将输入“缩放”一定的比例
在前一节中,你使用神经网络做出了第一个预测。这个形式最简单的神经网络使用了乘法。它接受一个输入数据点(6),并将其乘以权重(0.1)。这个权重将数据缩小,如果权重大于1,那么久将数据放大。但是你们将在后面看到,好的输入数据将会使权重始终限制在0到1之间。
神经网络的交互很简单。它接受输入变量,并以此作为信息来源;拥有权重变量,以此作为知识;然后,融合信息和知识,输出预测结果。你能够见到每一个神经网络都是以这样的方式来工作的。它使用权重中的知识来解释输入数据中的信息。后面的神经网络将接受更大、更复杂的输入和权重,但这一共同的基本原则总是成立的。
在本例中,信息是抛硬币的正面向上的统计量。注意几件事情:首先,神经网络除了当前的实例,不能记住任何信息。如果在这个预测之后,你输入另一个实例 record_of_positives,那么网络不会记住它在上一次的预测结果。神经网络只知道你的输入。剩下的一切都会被它遗忘。之后,你会学到如何通过同时提供多个输入,给神经网络一个“短期记忆”。
另一种帮助理解神经网络的权重的方法,是将它作为网络的输入和预测之间敏感度的度量。如果权重很高,那么即使最小的输入也可以对预测结果产生很大的影响!反之,如果权重很低,那么很大的输入对于预测结果也几乎没有影响。
网友评论