Stanford Machine Learning -- 第五讲 神经网络

来源:互联网 发布:ps4 网络设置 编辑:程序博客网 时间:2024/04/29 19:06

本栏目(Machine Learning)包括单参数的回归、多参数的回归、Octave Tutorial(Ps:Octave一个开源的可以取代Matlab的软件,彼此可以兼容)、Logistic Regression、Regularization、神经网络、机器学习系统设计、SVM(support Vector支持向量机)、聚类、降维、异常检测、大规模机器学习等章节。所有内容均来自Standford公开课Machine Learning中Andrew Ng老师的讲解。(http://class.coursera.org/ml/class/index)。


(1)非线性学习

非线性拟合和线性拟合的区别:非线性拟合采用非线性拟合函数,包含2次项以上的项;而线性拟合只包含一次项。


当训练样本特征维数比较大时,线性拟合并不能够很好的解决问题,计算复杂度高,所以要引入新的机器学习算法:非线性拟合中的神经网络。


传统的线性回归和非线性回归拟合并不能够解决维数很高的机器学习案例。因此,我们需要新的算法(神经网络)。


神经网络的结构如下:


神经网络的计算方法:


在学习神经网络之前,我们需要了解几个逻辑运算。



前馈计算:

逻辑运算:




神经网络应用于手写识别:


神经网络多类别分类预测


神经网络应用于分类:

神经网络的Cost Function:


梯度下降算法:



梯度计算和向后传播算法:


向后传播算法:

向前传播算法:




求出梯度下降最优值(matlab实现):



实例:

它的学习算法:

(2)Gradient check算法

我们并不知道求解是否正确,这时我们需要Gradient check算法,来衡量我们的算法是否正确执行:


Cost Function的“梯度”:



Gradient check算法matlab实现:


(3)神经网络传递权值初始化

全部赋值为0可能并不能运行:

于是我们可以采用随机初始化方法:

每层节点个数的选取:

神经网络的训练




Logistic Regression:


(完)