ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

神经网络_2

2022-04-05 13:01:17  阅读:144  来源: 互联网

标签:frac sum 矩阵 神经网络 theta 向量


代价函数

​ 假设神经网络的训练样本有m个,每个包含一组输入x和一组输出信号y,L表示神经网络层数,\(s_I\)表示每层的neuron个数,\(s_L\)表示最后一层(输出层)神经单元个数

​ 神经网络可分为二分类和多分类情况

​ 二分类:\(S_L = 1,y=0 \ or \ 1\)可以表示哪类

​ K分类:\(S_L=k,y_i=1\)表示分到第i类(K>2)

在逻辑回归中使用的代价函数如下

\(J(\theta) = - \frac{1}{m}[\sum_{j=1}^n \ y_{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta x^{(i)})]+\\\frac{\lambda}{2m} \ \sum_{j=1}^n \theta_j^2\)

可见逻辑回归中只有一个输出变量,标量(scalar),也只有一个应变量y,但是在神经网络中,我们可以有很多输出变量,\(h_\theta(x)\)是一个维度为k的向量,且训练集中的因变量也是同样维度 的一个向量,相比起来,代价函数比逻辑回归的代价函数更加复杂

\(h_\theta(x) \in R^K , \ (h_\theta(x))_i = i^{th}output\)

\(J(\theta) = - \frac {1}{m}[\sum_{i=1}^m \sum_{k=1}^ky_k^{(i)}log(h_\theta(x^{(i)})_k+(1-y_k^{(i)})log(1-(h_\theta(x^{(i)}))_k)]+\\\frac{\lambda}{2m}\sum^{L-1}_{l=1}\sum^{s_l}_{i=1}\sum^{s_{l+1}}_{j=1}(\theta^{(i)}_{ji})^2\)

​ 代价函数的最终作用是一样的,用于观察算法预测结果和真实情况的误差大小,不同之处在于,对于神经网络,每一行特征都会给出k个预测,基本上我们可以利用循环对每行特征值都预测K个不同结果,然后在利用循环在K个预测中选择可能性最高的一个,与y中的实际数据进行比较。

​ 正则化的那一项只是排除了每一层\(\theta_0\)后,每一层的\(\theta\)矩阵的和,最内层的循环j是遍历所有的行(由\(s_l+1\)层激活单元个数决定),循环i则遍历所有列,由该层(\(s_l层\))激活单元数所决定

对\(J(\theta)\)的理解,前半部分即交叉熵损失函数,\(\sum_{k=1}^k\)中的k为结果向量的长度 ,\(\sum_{i=1}^m\)中的m为样本集的数量,同逻辑回归相同,对于后半部分的正则化,则是所有特征矩阵的平方,联系神经网络图

例如输入层3神经元,中间双层5神经元,输出层4神经元,可以知道的是,第一层是(3,1)向量,第二层是(5,1)向量,所以需要一个(5,3) 的特征矩阵实现输入层到第一隐含层的转变,即(5,3)*(3,1) = (5,1),第二层到第三层同理需要一个(5,5)特征矩阵,第三层到输出层需要一个(3,5)特征矩阵,以上三个特征矩阵实现了每层神经元之间的信息传递,实现了神经网络的功能。

标签:frac,sum,矩阵,神经网络,theta,向量
来源: https://www.cnblogs.com/crazy18/p/16101957.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有