吴恩达机器学习(第九章)---神经网络

神经网络是非线性的分类算法。模拟人类的神经系统进行计算。

1、原因

当特征数很大的时候(比如100个),那么在假设函数的时候要考虑太多项,包含x1x2,x1x3,x2x3等等,不能仅仅单个考虑x1,x2等,这样一来,在拟合过程中的计算量就会非常大。

2、基本概念

其中,蓝色的最左边的是输入层(x1,x2,x3),最右边的是输出层(输出层可以有多个神经元),中间的都是隐藏层。每个箭头会对应一个θ,在计算进入到下一层是,添加一个x0(等于1),就像线性回归,逻辑回归中的x0一个道理。

从输入层开始从左往右一层一层前进,h(x)=g(z);相当于就是对每一层的每个单元都用逻辑回归求得该单元,再继续向后求。

3.代价函数

J(\theta)=-\frac{1}{m}(\sum_{i=1}^{m}{\sum_{k=1}^{K}{(y^i_klog(h(x^i))_k+(1-y^i_k)log(1-h(x^i))_k)}})+\frac{\lambda}{2m}\sum_{l=1}^{L-1}{\sum_{i=1}^{s_l}{\sum_{j=1}^{s_{l+1}}{(\theta^l_{ij})^2}}}

(m单元总个数,K输出单元的个数,k第k个,而后面的关于θ的正则项,其实就是求所有θ的平方和,即第l层第i行第j列个,简而言之就是求所有θ的平方和。这里h(x)得到的结果是一个向量,即K维) 

可以看出J(θ)和逻辑回归中的代价函数有些相似,就像上面所说的神经网络是对每一层的每个单元用逻辑回归去求。

猜你喜欢

转载自blog.csdn.net/naocanmani/article/details/83505200