1.模型表示:
- 模型分层:输入层、输出层、隐藏层。a(i) i表示第几层。
- thera(i) : 为第i层到第i+1层间的权重参数。
2. 向前传播:g(theta(i) * a(i))得到a(i+1)。最后一层即是h(x)
3. 解决分类问题:
- 类别 c = 2时,输出层仅一个节点,与逻辑回归相同,表示某一个分类的概率。
- 类别 c > 2时,输出层c个节点,每个节点的输出值为属于该类的概率。结果去其中最大值。
4. 代价函数:
与逻辑回归类似,只不过输出层包含多个逻辑回归的h(x)。
前半部分为k的h(x)与y的误差,在m个样本上的表现。
后半部分为正则项,包含所有theta。
5. 反向传播:
最小化代价函数的方法,利用集成的方法,之前提过,需要计算出:J值,以及对每个theta的偏导项。
注意:
这里j != 0时, D = 1/m * (delta + lamda * theta) 这个括号上图中没有标出。第一次实现算法时,花费了我差不多5小时一遍一遍的检查代码哪里有问题。最终询问了一个教授才知道这个问题。
计算方法:
6. 神经网络训练步骤: