最近又想看一下神经网络方面的知识是因为从QCon大会上了解到神经网络已经在很多行业落地并切实解决了行业的痛点,比如利用神经网络在上亿张图片中找出涉黄的违规图片,比如精准广告投放,比如物流行业的车货匹配等等。
目前读到的最好的入门文章是阮一峰同学写的神经网络入门,写得非常通俗易懂,好像阮一峰写的每一篇文章都很通俗易懂。比如下面这段:
历史上,科学家一直希望模拟人的大脑,造出可以思考的机器。人为什么能够思考?科学家发现,原因在于人体的神经网络。
1.外部刺激通过神经末梢,转化为电信号,转导到神经细胞(又叫神经元)。
2.无数神经元构成神经中枢。
3.神经中枢综合各种信号,做出判断。
4.人体根据神经中枢的指令,对外部刺激做出反应。
既然思考的基础是神经元,如果能够"人造神经元"(artificial neuron)就能组成人工神经网络,模拟思考。上个世纪六十年代,提出了最早的"人造神经元"模型,叫做"感知器"(perceptron),直到今天还在用。
上图的圆圈就代表一个感知器。它接受多个输入(x1,x2,x3...),产生一个输出(output),好比神经末梢感受各种外部环境的变化,最后产生电信号。
我们一个项目已经利用传统机器学习技术,通过对卡车的历史GPS数据的学习,训练出了一个模型,用来预测卡车到达目的地的时间。如果利用神经网络技术,不同之处在于要训练出一个神经网络来预测卡车到达目的地的时间。
输入层用来接收输入的数据,在我们的场景中,输入层有多个个神经元:卡车车型、卡车当前位置、卡车平均速度、卡车目的地等,信息输入层把输入传递到隐藏层的第一层。
隐藏层对输入数据进行数学计算。建立神经网络的一个难题就是如何决定隐藏层的数量以及每一层的神经元个数。深度学习中的“深”指的是神经网络有超过一层的隐藏层。
输出层返回输出数据。在我们的场景中,输出就是价格预测。输出就是卡车到达目的地还需要多长时间。
当然一个好的神经网络需要大量的数据才能训练出来。