带你零公式理解神经网络

带你零公式理解神经网络

此文不是系统的教学性质文章,所以没有从头讲神经网络的原理,本文主要是想给那些已经学习了感知机,了解人工神经网络的结构,但对神经网络仍然没有形成概念的同学从认知上理解神经网络,为后来更好的理解梯度下降,反向传播算法(BackPropagation)以及后续的CNN,RNN,RL,Gan等打下一点点基础,扯远了~

首先,对于神经网络,如果你看了一堆全连接,局部连接,输入输出,训练什么的一头雾水,那就来看看本文,带你跳出参数来看神经网络,做到对敌人的本质有一个宏观的把握。

先说中心思想:神经网络是用来干嘛的?其实神经网络说白了就是一个参数拟合工具,你只需把它看成一个黑盒子就行,干货在最后几段,耐心点,听我慢慢道来。

对于任何一个输入,无论是图片还是其它形式,最终都是以张量形式输入神经网络的,最简单的神经网络输入就是一个一维向量,这个向量就可以代表图片(一张灰度图,也就是黑白图片,是由二维向量组成的,向量的每一个元素代表一个像素,我们只需将此二维向量拉成一维即可,此时信息并没有丢失)见图:

手写识别程序的网络图

你将这个向量输入神经网络,网络就会利用里面的参数(包括权重和偏置)对这个向量进行“惨无人道”的计算和变换。 其实网络不大时我们可以用笔把此时的输出结果算出来,然而这个时候你完全没有必要关心里面是怎么计算的,你只需把网络看成一个变换函数 f ,关心输出的结果是怎样的即可,直接上例子,你就明白了。

我们有一堆0-9的手写数字图,现在假设你已经有了一个训练好的模型,这个模型已经能够识别你输入的任何一张图片,那你希望它的输出形式是怎么样的?我来说一种,我们可以这样,设置输出层的神经元数量为10,依然见上图。

  • 当输入图片0时,我希望输出层的十位分别为:
    10 0000 0000
  • 当输入图片1时,我希望输出层的十位分别为:
    01 0000 0000
  • 当输入图片2时,我希望输出层的十位分别为:
    00 1000 0000
  • 当输入图片9时,我希望输出层的十位分别为:
    00 0000 0001

像这样一一对应。

当然,你也可以有别的想法,比如设只设置4位就够了。

  • 当输入图片0时,我希望输出层的四位分别为:
    0000(二进制,表示十进制的0)
  • 当输入图片1时,我希望输出层的四位分别为:
    0001(二进制,表示十进制的1)
  • 当输入图片2时,我希望输出层的四位分别为:
    0010(二进制,表示十进制的2)
  • 当输入图片9时,我希望输出层的四位分别为:
    1001(二进制,表示十进制的9)

甚至可以规定输出就设置一位,对于输入0-9,分别输出0-9来对应表示。

理论上你是可以任意设置输出形式的,只要能够满足表示10个数字就行,那么问题来了,为什么可以随便设置?

//干货

这个问题一定要弄明白,其实我们之前也强调过了,神经网络就是一个黑盒子,这个黑盒子里有一堆复杂的参数用以对输入做变换,对任何一张数字图,比如3,只要你规定了它的输出形式,比如是0010,一定有办法通过调整黑盒子里的参数使得输入经过黑盒子的变换后,能够最终输出0010。在此基础上,你还想让这个网络同时能够识别数字9,那么在前一步的基础上你可以继续调整和权衡各个参数值使得这个网络又能够识别数字9。接下来,你越发贪婪,还想让网络能够识别更多的数字,那么只要网络够复杂,参数足够多,它就一定能做到调整和权衡各参数值使得这个网络最终能做到:对所有的输入数字,都能正确输出与其对应的结果。而所谓的训练也就是指的调整参数:通过与事先为图片设置好的标签进行对比,不断调整参数,使得网络的输出无限接近标签值。虽然这样理解可能不够严谨,但这确实是一个很有用的启发式思考,这也揭示了神经网络的本质——一个强大的参数拟合工具

至于参数是怎样训练的,这涉及到一些数学推导,你暂时可以不用管,下一篇我会详细推导训练方法,对于初学者(像我),理解了这些你就成功了一大半,后面走起来会轻松很多。

最后,我也是刚刚接触神经网络2周,看了卷积神经网络,深度强化学习,对抗学习等等,很多地方也是一头雾水,所以文中必然漏洞百出,所以欢迎大家一起交流。如果你认为我理解的不对,或者对深度学习其他地方有疑问,欢迎留言,一起努力~

~~另外最近收集了好多机器学习方面的资料,是从大大那里获取的,需要的可以私信哦~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值