自己动手做一个简单的神经网络(深度学习入门)

自己动手做一个简单的神经网络(一)

1.神经网络能做什么

2.神经网络中的神经元

3.神经网络的运作与更新

1.神经网络能做什么

假设将神经网络看成一个盒子,那么这个盒子的作用就是你往盒子里面放一个东西(输入),然后你期望从盒子里得到另一个东西(输出),至于你会得到什么东西和你如何包装这个盒子(神经网络的设计思想)以及盒子本身的材质(如何具体实现神经网络 的作用)有关,同时这个盒子是黑色的,你不知道里面是什么东西,但是你知道可以在里面拿出一些东西。

那么通过这么一个作用,你可以通过神经网络这个盒子来看看你放入什么东西会得到什么东西,假设你放入一个橘子,你想在盒子里拿一个香蕉,假设因为你是第一次拿没有任何经验,你就随便的在箱子里拿了一个东西,假设你得到了一个苹果,显然这不是你要的结果,于是机智的你便观察香蕉与苹果的不同,在下一次拿的时候就有了经验,你会选择更偏向拿于香蕉形状的水果,在进行这样类似的大量训练之后,现在假如你只知道你手里拿的是橘子,然后忘掉了你想得到的东西,你仅仅通过之前训练时熟悉的手感来拿,于是你本能的去拿像香蕉这样的东西,这就达到了我们最初的目的(通过一个橘子来拿到一个香蕉)。

实际上,神经网络通过给定输入,在进行与期望的对比中改进本身网络中的权重来以此得到期望的输出,比如你给神经网络传入大量的动物的照片,并告诉它什么图片对应什么样的动物,之后再给它一些新照片,它会试图认出新图片里的动物。

2.神经网络中的神经元

神经网络似乎看起来很复杂,那我们不如从构成神经网络的神经元出发。

我们先来看一下神经细胞的运作:
自己动手做一个简单的神经网络(深度学习入门)

在生物中的神经元里,当一个神经元受到一定的刺激后,产生相应的电信号在神经元里传输,直至到轴突的神经末梢通过突触间隙来与下一个神经元进行交流,这个电信号可能会在神经元内衰弱,当下一个神经元接受到来自上一个神经元的刺激后,或许因刺激力度不够而不会产生相应的新信号,同时一个神经元可以与多个神经元相连,一个神经元受到刺激后产生的信号会向之后所有相连的神经元进行传输,因为神经末梢的不同,传过去的信号也会不同。

自己动手做一个简单的神经网络(深度学习入门)

3.神经网络的运作与更新

那么我们看一下我们所谓的神经网络里的神经元是如何运作的,一个神经元单位接受的一定量(阈值)的输入(inputs)后,会向与其连接的下一层神经元传送不同的输出,输出的不同取决于两个神经元之间的权值(weight)不同,当一个输出到达下一层时,这个来自上一层的输出便成为了下一层的输入,由此直至最后。最后一层的神经网络输出的便是我们这个神经网络产生的结果,如果他产生的输出与我们期望的不同,我们便想通过期望与实际的差距来更新这个网络里面的权值,反复训练,以此达到我们想要的输出(outputs)。

------关于博主

首先非常感谢各位读者可以看到这里,这篇文章本人发表的第一篇文章,包括文章的编辑以及对内容的表述一定会有存在的问题,欢迎大家一起批评指正和讨论,我们一起进步。

本人在校学生一枚,喜欢研究数学以及那些所谓的“AI”,在以后的日子里我会经常更新我的博客,写博客的主要目的就是想分享并记录一些我平时所学到的内容,以及各种思想,重要的发现之类的,用简单易懂的语言在未来AI的道路上一直探索,希望大家可以多多支持!

这一个《自己动手做一个简单的神经网络》系列我会逐步由简单到复杂为大家剖析神经网络,并且最后做出一个简单的神经网络,希望大家能够喜欢,也同时欢迎大家可以给出改进的意见,这对于刚上步的我来说很重要,谢谢!