2018/12/28
我是个傻逼
还是没好好学基础
所以第一次实践就出丑了。
今天遇见一个比较奇怪的问题,就是使用sklearn的多层感知机(神经网络)进行实验的时候,他的权值部分的大小,感觉很尴尬。
因为不是非常理解这个里面的原理,就简单进行实验来测试以下。
比如我使用mnist的数据,单个实例为28 × 28的图像,然后设置单个隐藏层,含有30个神经元。
当我直接使用这部分的数据进行预测的时候,
本来我以为最后应该是直接输出某个值,比如1,2...什么的。
但是最后的结果并不是这样,最后的效果看来它是设置了10个神经元。
然后这样整体的架构就是(784,30,10)最后一层输出层每个神经元是概率。
上面的结果其实我很疑惑,然后我就改用了另外的数据。
抽取数值为0和1的实例,然后最后的输出层就只有一个了。
所以我感觉,可能为理解错误。
它最后应该都是以概率的形式进行输出,这可能就能解释为什么,他们有些kernel最后的输出层,采用了热编码。
而且比较关键的就是它可以自适应。
最关键的,我猜它是自动就用了softmax在最后的输出函数。
突然感觉其实我是没学会,所以这些问题都比较傻逼。。。
2018/12/29
其实本质上我还是对最后的输出层不够理解,但是最后sklearn的输出层的激活函数并没有提示,所以导致我可能不太理解。
当时它给出的信息是relu函数,这个函数最后输出的时候怎么回是概率呢。。
所以这个激活函数的作用就没有弄明白。
[1](https://scikit-learn.org/stable/modules/neural_networks_supervised.html
[2]https://docs.microsoft.com/en-us/azure/machine-learning/studio-module-reference/multiclass-neural-network
[3]https://scikit-learn.org/stable/modules/neural_networks_supervised.html