明 光 大 正

机器学习5

    ML

第一节里面讲了一个大而全的针对神经网络的cost Function

costfunction

Backpropagation Algorithm

  • 想要求导偏导数是比较困难的。以下是前向传播的算法:
    Forwardpropagation
    可以看出会比较繁琐。

  • 然后这是后向传播
    backpropagation
    backpropagation

NG说了back的这个也是相当的复杂的,所以,我再说一节给大家感受一下

  • 说到了一个梯度检验算法,用来证明你做的梯度下降是没有错的。

程序作业

第一项 理解多种结果的逻辑回归分类并计算cost function

多种化为传统

在原来的看法中,以0,1为例,我们将产生这两种结果的cost function定义如下:

LinearOneVariable

若是y有多种结果,我们可以假想为,若有n种结果

  1. 第一个函数计算 (y == x)
  2. 第二个函数计算 (y != x)

如此实现了从多种到传统的过度。

函数整合

针对两个函数整合到一起的函数使用的是(y)和(1-y)的小技巧,实现了不是第一个函数就是第二个函数的功能。

举例假设

  1. 有5000个样例,10个分类,所以基本的特征函数产生有5000*10的矩阵A
  2. 5000个样例有5000个label,针对这些label,处理成为(01)格式,得到5000*10的矩阵B
    • 例如 y=5 处理为(0,0,0,0,1,0,0,0,0,0)
  3. costFunction = -log(A) . B + (-log(1-A)) . (1-B);(注意:这里是点乘)
1
costFunction = -log(A) .* B + (-log(1-A)) .* (1-B);

反向传播

反向传播花了我好长时间,一直想用程序的角度来解决处理矩阵的问题,然后发现多此一举。

原来在反向传播中

  • 先做一遍正向的推导
  • 从后向前计算误差值(关键点是:如果不是处理成向量来做,那么每一层的误差据真是不一样的)
  • 计算梯度
  • 正规化

我认为即使我做完了这些题目也没有什么好开心的,因为还是学不到最关键的部分,像是为什么反向传播可以求得costFunction 的导数。

页阅读量:  ・  站访问量:  ・  站访客数: