机器学习 图像识别

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

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

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

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

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

加权运算

加权值

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

每个像素乘以加权值后用红绿表示的图样

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

期望的效果图

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

七的一部分

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

限定边界

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

对比拟合手写的 7

压缩结果

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

激活值的取值范围

压缩取值范围

sigmoid 曲线

偏移值

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

偏移值

共有偏移量

第一层的 weight 和 bias 数

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

加权值

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

学习

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181127B1P0XX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券