机器学习 神经网络(F)
图像识别可以用于读图,有了之前的基础,我们甚至可以读取如此复杂的图,来辨别动物。今天我们学习机器学习,可能不能立杆见影看效益。以后也可能不会带来附加价值。但是我相信至少会开阔我们的思路,增强我们学习新知识的方法。


我们将彩色的图取他明暗通道会得到右边的图,设计神经元读图,然后很读图信息来对比狮子的特征值来判断这是否是一只狮子。

同样也可以应用在语音识别上,将单词细分为音节来作为神经元来搭建神经网络

回答第一次分享,识别手写数字的解决方案上。我们用神经元来表示图中的每个像素,神经元的值为像素的灰度值。然后和一些图样进行对比,这里每个神经元的 p 值就是该像素的灰度值。

下一层神经元的输入是上一层神经元值在乘上他的加权值,我们可以回顾一下上一次的分享,每个像素的加权值 w 都不同,有正有负正的加权值用绿色线表示,负的加权值用红色线表示。右边图是这个神经元对应的图样,如果有这个这个神经元就会被激活值。


我们通过对每个像素灰度值乘以加权值后取和。

每个像素乘以加权值后用红绿。在右侧可以看到效果图。图中线的颜色表示加权的的值,右侧用图像呈现像素加权后的效果。

这里是我们期望的加权取和后的图样,这样我们就能判断图中是否我们需要的小短线了。

我们看到图是手写的 7 。我们想要判断出 7 的小横线。


我们可以通过对横线上下进行判断来确定这是一条短的小横线。


计算后的结果值范围很广,可能是任意值,我们可以通过 sigmoid 函数来将其控制在 0 - 1之间






偏移值是对激活值进行平移,调整值落在我们期望的范围内



第二层所有的神经元都会接受第一层的神经元的激活值乘以 加权值然后取和再加上偏移量

我们设计好的神经网络,分为 4 层 包括了输入层和输出层,中间两层为隐藏层。前一层的所有神经元都会与下一层的每个神经元连接。这样计算一下 weight 13002 和bias 42

现在我们已经设计好了识别手写数字的神经网络的结构,还没有开始学习,机器需要通过不断地学习来调整 weight 和 biases 值。