机器学习算法实现03-神经网络

来源:互联网 发布:大数据的数据来源 编辑:程序博客网 时间:2024/05/20 19:45

依据之前博文中的神经网络理论做个简单的例子,对神经网络前向传播与反向传播算法有个深入理解,同时对神经网络计算细节有个清晰认识。


题目:上图的样本案例分3类,利用神经网络知识推算出一个未知坐标属于哪类

这里我准备用3层结构的神经网络层


一,

nn_params:初始化参数值。

    首先进行参数随机初始化

    eps = 0.0001 ;
   Theta1=rand(4, 3) * (2*eps)- eps ;
   Theta2=rand(3, 5) * (2*eps) - eps ;
    initheta = [Theta1(:) ; Theta2(:)];

    将initheta 传给nn_params 。

input_layer_size:输入层激励单元数。本例为2个单元

hidden_layer_size:隐藏层单元数。本例为4个单元

num_labels:输出层单元数。本例为3个单元


二,将theta1与theta2重组成对应矩阵




三,将最后分类情况向量化,向量化后即,1对应[1,0,0],2对应[0,1,0],3对应[0,0,1]。




四,前向传播算出第二,第三层的激活函数输出值。注意不要忘了增加偏量值。



五,正则化求出代价函数值,将2个参数矩阵的第一列移除,不参与正则化。



六,利用前向传播,反向传播算出梯度值。逐条数据计算。



七,对梯度值进行正则化,并把theta1,theta2向量化。



下面是本例中用到的函数





0 0
原创粉丝点击