在做第五周的作业的时候产生了一个疑问:
第五周作业一开始是先训练一个三层神经网络的theta参数。5000个样本,400个features输入一个神经网络层,最后输出层有10个神经元,最后输出的a3维度是10*5000,因为一开始已经初始化了theta并已知正确的y输出,最后输出的a3矩阵是
这张照片对应的y输出是
10
10
10
10
10
10
···
(这个一个数字识别的神经网络,y是5000*1的矩阵,每一行代表实际数字是多少,10代表0)
还有一张照片
这张照片对应的y输出都是
1
1
1
1
1
1
1
···
那么问题来了,这些数字到底代表什么意思?
根据这张图片
最后的输出a3是h(x),最后的值会被处理成不是0就是1,来解决一个二元分类问题。
假设现在我们的参数theta是已经训练完毕的,那么作业中我们的三层神经网络最后输出的,每一个样本对应有10个输出(即每一列代表一个样本的10个输出),在第一张图中我们可以看到样本1的输出(即第一列)是
1.1266e-004
1.7413e-003
2.5270e-003
1.8403e-005
9.3626e-003
3.9927e-003
5.5152e-003、
4.0147e-004
6.4807e-003
9.9573e-001
我们可以看到除了最后一行9.9573e-001的值大于0.5,其他输出神经元的输出的值都小于0.5,即预测最后结果是10
为什么这么认为,因为每一个输出神经元都是一个逻辑函数,判断这个输入是否符合当前类(小于0.5即不符合)