版权声明: https://blog.csdn.net/Dr_destiny/article/details/82859373
1. 图像作为输入时的训练
之前我们处理的输入都是一些标量,比如房子的面积、卧室数量、肿瘤的体积等等,但在实际工程应用中,很多输入比这复杂许多,比如说图像。
在此次编程作业中用到了手写数据集,每个图像都是 ,共有5000张图片,在实际操作时,所有图片都是以向量形式输入的, 的图片就变成一个400维的向量,而所用的参数也就是401个(加上 ),也就是说,每个参数对应一个像素—— ,所以处理高维输入并没有想象中的那么复杂。
2. 关于神经网络中Hidden Layer在编程时的注意事项
这是我在编程作业中犯的一个错误,在输入传递给Hidden Layer时,得用sigmoid函数将输入的线性组合转化为(0,1)之间的数。
X = [ones(size(X,1),1) X];
A_2 = sigmoid(X*Theta1');
A_2 = [ones(size(A_2,1),1) A_2];
[values, p] = max(A_2*Theta2',[],2);
第二行将输入层 ( )的线性组合用sigmoid函数处理,得到hidden layer的值 .
3. Matlab中max()函数的用法
在作业中用到了max()函数,这里列出两个比较好用的功能:
1.
[values, indexs] = max(A) #返回矩阵A中每一列最大的值给values,每个值在该列的位置给indexes
例:
A = [1 2 3;6 5 4];
[values indexes] = max(A)
返回:
values =
6 5 4
indexes =
2 2 2
[values, indexs] = max(A, [], 2) #返回矩阵A中每一行最大的值给values,每个值在该行的位置给indexes
例:
A = [1 2 3;6 5 4];
[values indexes] = max(A, [], 2)
输出:
扫描二维码关注公众号,回复:
3585618 查看本文章
values =
3
6
indexes =
3
1