近日在导师的指导下观看了Andrew NG的在coursera上面的Machine learning。稍做总结吧!
什么是机器学习
在百度百科上这样描述:机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。其实说白了就是通过一些数据进行统计分析使得计算机能够做一些人能够做的东西,比如说预测股票的走势,识别一些图像等等。
为什么机器学习
机器学习是一门热门的学科,究其原因是为了服务人类的。在如今这个信息爆炸的时代机器学习更加重要了。目前的机器学习其实是有着其“瓶颈”所在,比如,机器人学习新生事物时候,数据其实是人为指定的,而非自己去思考,也即,现在的机器学习是人为灌输思想的被动学习,而真正想让机器主动学习,具有人的思维方式,还有待研究。
机器学习的分类
机器学习的分为监督学习和非监督学习。其中监督学习就是指利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。正如人们通过已知病例学习诊断技术那样,计算机要通过学习才能具有识别各种事物和现象的能力。用来进行学习的材料就是与被识别对象属于同类的有限数量样本。监督学习中在给予计算机学习样本的同时,还告诉计算各个样本所属的类别。若所给的学习样本不带有类别信息,就是无监督学习。任何一种学习都有一定的目的,对于模式识别来说,就是要通过有限数量样本的学习,使分类器在对无限多个模式进行分类时所产生的错误概率最小。其中监督学习一般就是指我们所说的分类分析和回归分析,而无监督学习就是我们说的聚类分析。
回归分析
回归分析(regression analysis)是确定两种或两种以上变数间相互依赖的定量关系的一种统计分析方法。运用十分广泛,回归分析按照涉及的自变量的多少,可分为一元回归分析和多元回归分析;按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。如果在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
线性回归
在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。(这反过来又应当由多个相关的因变量预测的多元线性回归区别,,而不是一个单一的标量变量。)
cost fucntion
按中文翻译就是成本函数,在不同的问题中会有不同的定义,在andrew Ng课程中定义如下:
然后我们的目标就是使得cost function最小于是乎就有了两个解决方案,一种是迭代法一种是利用数学中的偏导数使之直接为0进行计算。对于迭代法:
其中alpha为learning rate。用matlab也比较容易实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
function [ J ] = computeCost(x, y, theta)
%UNTITLED5 Summary of this function goes here
% Detailed explanation goes here
%x = [ones(m, 1), data(:,1)]; % Add a column of ones to x
%theta = zeros(2, 1); % initialize fitting parameters
%iterations = 1500;
%alpha = 0.01;
m2=size(x,1);
prediction=x*theta;
for i=1:1500
temp0=theta(1,1)-(0.01*1/m2)*sum((-y+prediction)'*(x(:,1)));
temp1=theta(2,1)-(0.01*1/m2)*sum((-y+prediction)'*(x(:,2)));
theta(1,1)=temp0;
theta(2,1)=temp1;
end
J=sum((prediction-y).^2)/(2*m2);
|
当然这个只是其中一部分,还有逻辑回归下次再写吧!