心得体会
先谈谈个人对神经网络的一些理解。现在很多框架都把神经网络当做黑盒子来用了,其中的很多算法步骤都看不到,用起来总有些心虚。
我们知道一般的神经网络都是长成上图这个样子的,经典的三层:
输入层、隐藏层和输出层。
为了更好的了解神经网络的本质,我们把左半部分遮住的话就是上图这个样子。
如果你学过逻辑回归的话,就能看出来,其实这部分就是一个简单的
逻辑回归啦。
那神经网络之所以那么牛的原因肯定就是前半部分对吧,前半部分相当于把原始数据
映射到了倒数第二层(和输出层连接的那一层)。我们说映射可能有些人一时不明白什么意思。其实就是对原始数据
提取特征。如果你懂得
信息熵的概念那更好了,就是针对我们要解决的问题,提取出能够表征这个问题的最大信息熵。就是多余的,对解决问题没用的数据我都扔了,只要那些有用的。这样a1,a2,a3就能全权代表原始数据了。这样就比逻辑回归厉害了,逻辑回归最多也就是给数据加上一些特征多项式。
打个比方
类似神经网络这个过程其实生活中到处都是,起初我们以物换物来交易商品,慢慢变成金银,纸币,最后都成了现在的电子交易。我们用手机上一串数字来表示商品。这不就是提取特征的过程吗。而逻辑回归呐?起初用肩扛着以物换物,变成了马车,汽车。交换起来还是还会有不方便的情况。
神经网络本质
现在明白神经网络的本质了吧,就是一层一层的提取特征,一般层数越多,提取的特征就越抽象,就越更接近原始数据的本质。最后对这些特征进行预测输出。
回归正题,
单层神经元来表示逻辑运算
逻辑与:
来表示:
输出函数h(x)即为:
其中g(x)的图像是下图:
那么我们看看真值表的计算:
所以我们有:
这就是and函数了。你可以试试把权重改成-10,20,20之后看看单层神经元表示的是什么?(偷偷先透漏一下,是or函数)
早生几十年我们都是科学家
那么如何才能实现与或呐?这个问题可折磨了科学家们好久,曾一度因为这个原因神经网络也衰落了好久。
我们现在很自然的都会想到再加上一层不就是与或了吗?(真的恨自己没有早生个几十年啊)
就像下图这样:
由此就可以使用这种方法逐渐造出来越开越复杂的函数,也能提取牛的特征。这就是神经网络的厉害之处。