程序员深度学习神经网络

机器学习 神经网络(2)

2018-11-25  本文已影响7人  zidea

本次分享也是我个人通过学习一个国外的教程而总结的,在此向作者表示感谢!我们通过以小见大形式来进行分析。一切先从简单或特例入手。然后在此基础上延伸和深入。

四个像素的图

我先从简单图形开始,这里的图形是由 4 个像素组成的。每个像素有着不同的灰度值。我们根据像素不同的灰度值进行分类。

分类图 第一类为 solid

将根据像素明暗不同进行分类,暂时分为四类。第一种情况为实色,即全部像素就是全白色。

第二类为 vertical

第二类为 vertical ,当四个像素中,有两个为白色并且纵向排列就是第二种情况。其他情况大家自己看一下吧,这里不做过多的解释,应该是一目了然。

第三种情况 diagonal 第四种情况 horizonal

这里列出四种情况,但是实际情况还具体分析一下,图根据像素位置和灰白程度不同应该不仅仅是这四种。看下图就知道这里还有其他情况,不过下图中两种情况我们都归结为 horizontal  水平分布。

用神经元来表示图像

这个由两行两列的四个像素抽象为是出神经元,每个神经元对应某一行某一列的一个像素。他包含值就是像素的灰度值。

每个像素的值为其灰度值

用 -1 到 1 区间的值来对应灰度值,黑色用 -1 而白色用 1 来表示。

将每个像素对应一个神经元

每一个神经元对应一个图的

这里神经元都会连接到下一层的神经元

像素对应的神经元,都会连接到下一层的神经元

我们将前一层神经元的输入,输入相求和得出该神经元。

我们将每条连接线附上加权值,将每个神经元的值乘上权重值后相加得出值作为下一个神经元的输入值。

每个神经元对应的像素的灰度值作为该神经元的激活值,每个神经元都是一个数值的容器。这个值作为下一层神经元的输入值,这里下一个神经元的激活值输入值的和。

压缩

我们需要将结果值控制或者说压缩在-1 到 1 之间。这里我们通过 sigmoid 函数进行压缩 sigmoid 函数是 s 型。

sigmoid 曲线

我们看一看如何通过 sigmoid 函数来压缩函数的输出在 -1 和 1 之间。

当我们的 x值不断增大的时候,对应的 y 值将无限地趋近 1  而无法达到 1。反之亦然。

上一篇下一篇

猜你喜欢

热点阅读