Python|深度学习其实并不难:卷积神经网络的简单介绍( 四 )


Python|深度学习其实并不难:卷积神经网络的简单介绍文章插图
c在哪里是正确的类(在我们的例子中是正确的数字) , Pc类c的预测概率,并在natural log中 。 一如既往的 , 损失越少越好 。 例如 , 在最好的情况下 , 我们会
Python|深度学习其实并不难:卷积神经网络的简单介绍文章插图
在更现实的情况下 , 我们可能会有
Python|深度学习其实并不难:卷积神经网络的简单介绍文章插图
我们将在稍后的文章中再次看到交叉熵损失函数 , 所以请记住这一点!
5.3实施Softmax
你现在知道这个练习 , 让我们实现一个Softmax图层类
Python|深度学习其实并不难:卷积神经网络的简单介绍文章插图
这里没有什么太复杂的 。 几个亮点:

  • 我们将输入压平() , 使其更容易处理 , 因为我们不再需要它的形状 。
  • np.dot()将输入和self相乘 。 按元素加权 , 然后对结果求和 。
  • np.exp()计算用于Softmax的指数 。
我们现在已经完成了CNN的整个转发!放在一起:
Python|深度学习其实并不难:卷积神经网络的简单介绍文章插图
Python|深度学习其实并不难:卷积神经网络的简单介绍文章插图
运行cnn.py给我们输出类似于:
Python|深度学习其实并不难:卷积神经网络的简单介绍文章插图
这是有道理的:使用随机权重初始化 , 你会期望CNN只会像随机猜测一样好 。 随机猜测的话,10%的准确率(因为有10类)和一个叉的损失?ln?(0.1) = 2.302 {- \ ln (0.1)} = 2.302?ln(0.1) = 2.302,这是我们得到的!
想自己尝试或修改这段代码吗?在浏览器中运行CNN 。 它也可以在Github上使用 。
6. 结论以上就是对CNN的介绍!在这篇文章中 , 我们
  • 为什么CNN在某些问题上可能更有用 , 比如图像分类 。
  • 介绍MNIST手写数字数据集 。
  • 了解Conv层 , 它将过滤器与图像进行卷积以产生更有用的输出 。
  • 谈到了池化层 , 它可以帮助删除除最有用的功能之外的所有功能 。
  • 实现了一个Softmax层 , 因此我们可以使用交叉熵损失 。
还有很多东西我们还没有讲到 , 比如如何训练CNN 。 本系列的第2部分将对CNN进行深入的一个训练 , 包括推导梯度和实施反向传播 。
Python|深度学习其实并不难:卷积神经网络的简单介绍文章插图
【Python|深度学习其实并不难:卷积神经网络的简单介绍】编译出品