吴恩达《机器学习》

文|Seraph

00 | 绪论:初识机器学习

Welcome
  1. 生活中常见的机器学习使用场景
  • google搜索页面排序
  • 苹果相册自动识别朋友图片
  • 垃圾邮件过滤
  1. 不仅要学习机器学习算法含义,还要想怎么将算法应用到我们生活中的场景。平常多思考怎么利用机器学习算法解决我们工作中遇到的问题。
  2. 应用领域
  • Database mining
    E.g.,Web click data, medical records, bilolgy, engineering
  • Applicatins cant program by hand
    E.g.,Autonomours helicopter, handwriting recognition, most of Natural Language Processing, Computer Vision.
  • Self-customizing programs
    E.g.,Amazon, Netflix product recommendations
  • Understanding human learning(brain, real AI).

What is machine learning

  1. Machine Learning definition
  • Arthur Samuel(1959). Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed.
  • Tom Mitchell(1998). Well-posed Learning Problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, imporves with experience E.
    Example: playing checkers.
    E = the experience of playing many games of checkers
    T = the task of playing checkers.
    P = the probability that the program will win the next game.
  1. Machine learning algorithms:
  • Supervised learning
  • Unsupervised learning
    Others: Reinforcement learning, recommender systems.
  1. Practical advice for applying learning algorithms.
    解决什么问题,用什么算法比较适合,这个可以说是一个算法工程师最为重要的能力。也是区别算法工程师的能力的关键所在。
Supervised Learning
  1. Supervised Learning: “right answers” given.
  • Regression: Predict continuous valued output.
  • Classification: Discrete valued output.
Unsupervised Learning

1.使用场景

  • Google News
  • Genes
  • Organize computing clusters
  • Social network analysis
  • Market segmentation
  • Astronomical data analysis
  1. Cocktail party problem
    algorithm: algorithm

01 | Linear regression with one variable

Model representation

在这里插入图片描述

Cost function

cost function

Gradient descent学习过程
  1. 因为梯度下降法不能确定是全局最优,所有我们经常给不同的参数初始值来重复做实验。这样可能得到的结果不一样。
    但是对于凸函数来说,是能保证全局最优的。
    在这里插入图片描述

  2. 注意所有参数值要同步更新
    在这里插入图片描述

  3. 学习率与收敛的关系
    在这里插入图片描述

  4. “Batch” Gradient Descent
    “Batch”: Each step of gradient descentuses all the training examples.

  5. 即使固定的学习率,梯度下降也能收敛到局部最小值。 在这里插入图片描述

02 | Linear Algebra review

Matrices and Vectors
  1. Matrices are not commutative: A∗B≠B∗A
  2. Matrices are associative: (A∗B)∗C=A∗(B∗C)
  3. 注意以下单位矩阵的维数不一样
    在这里插入图片描述

03 | Environment Setupe Instructions

  1. Octave 3.8.0 MAC
  2. Octave手册

04 | Multivariate Linear Regression

Multiple Features
  1. x 0 = 1 x_0=1 x0=1,形成m+1的特征。
    在这里插入图片描述
  2. 特征缩放:统一特征权重、使梯度下降算法更快地收敛。(相近即可,不一定要范围完全一致)
    在这里插入图片描述
  • Min-Max normalization
    x ′ = x − m i n ( x ) m a x ( x ) − m i n ( x ) x^ {'}=\frac{x-min(x)}{max(x)-min(x)} x=max(x)min(x)xmin(x)
  • Mean normalization
    x ′ = x − a v e r a g e ( x ) m a x ( x ) − m i n ( x ) x^{'}=\frac{x-average(x)}{max(x)-min(x)} x=max(x)min(x)xaverage(x)
  • standardization / z-score normalization
    x ′ = x − x ˉ σ x^{'}=\frac{x-\bar{x}}{\sigma} x=σxxˉ
  • max abs normalization
    x ′ = x ∣ ∣ m a x ( x ) ∣ ∣ x^{'}=\frac{x}{||max(x)||} x=max(x)x
  • robust normalization(先减去中位数,再除以四分位间距(interquartile range))
    x ′ = x − m e d i a n ( x ) I Q R ( x ) x^{'}=\frac{x-median(x)}{IQR(x)} x=IQR(x)xmedian(x)
Features and Polynomial Regression
  1. 多项式的特征需要进行缩放。
    在这里插入图片描述

03 | Computing Parameters Analytically

Normal Equation

θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy

  1. 梯度下降与正规方程对比
    在这里插入图片描述
  • 使用正规方式,就不需要对特征进行缩放了。
  • 当feature少时,使用Normal Equation比较好;当features多的时候,使用Gradient Descent比较好。
    虽然Normal Equation不需要迭代、不需要指定学习率,但是其计算复杂度高,计算矩阵的逆需要n的3次方。
  • 当使用更复杂的分类模型,如逻辑回归,正规方程就不适用了。
  1. Normal Equation Noninvertibility
    在这里插入图片描述
  2. 奇异或退化矩阵(singular or degenerate matrices)
  3. pinv(pseudo-inverse)伪逆:即使矩阵不存在逆的情况下,该函数也会返回逆。

05 | Octave Tutorial

Basic operations
  1. 1~= 2中的~表示不等于。
  2. %表示注释
  3. xor(1, 0)中的xor表示异或
  4. PS1('>> ')该表输入提示符。
  5. a = 3; 加;可以阻止打印
  6. disp(a)表示显示。
  7. disp(sprintf('2 decimals: %0.2f', a))
  8. format long改变输出默认长度为long
  9. v = [1 2 3]表示行向量生成方式
  10. v=[1; 2; 3]表示列向量生成方式
  11. v=1:0.1:2 表示从1到2,步长为0.1生成行向量。(步长默认为1)
  12. one(2, 3)表示生成2x3的都为1的矩阵。同类型:zeros(2, 3) ,随机矩阵rand(2, 3),高斯分布矩阵randn(2, 3),单位矩阵eye(2, 3)
  13. hist(w)表示绘制直方图
  14. help eye表示查询相关指令信息
Moving data around
  1. size
    size(a)表示矩阵维度,返回的是1xN的矩阵。
    size(a, 1)表示矩阵第1维度。
  2. length
    length(a)表示矩阵最长的维度。
  3. load('featureX.dat')表示载入文件数据。
  4. who表示显示当前作用域内所有变量。
  5. whos表示显示当前作用域内所有变量详细情况(维度、占用空间、类型)。
  6. clear a表示清楚变量a。
  7. v = a(1:10)表示将a矩阵的1~10行数据赋给v。
  8. save v.mat v表示保存v矩阵到v.mat文件中
    save hello.txt v -ascii表示以ascii码的形式存储数据,默认是以二进制的形式。
  9. A(:,2) = [10; 11; 12]表示A矩阵第2列换成[10; 11; 12],注意A矩阵被改变了。
  10. A = [A, [100; 101; 102]]表示A矩阵增加一列[100; 101; 102]
  11. A(:)表示取出A矩阵中所有的值成一个向量。
  12. C = [A B]表示A矩阵和B矩阵横向合并成C矩阵。
    D = [A; B]表示A矩阵和B矩阵纵向合并成D矩阵。
Computing on Data
  1. A*B表示矩阵的乘法。
  2. A.*B表示矩阵的点积。
    A.^2表示对矩阵A的所有元素进行平方计算。
    1./A表示对矩阵A的所有元素进行求倒数计算。
    以上公式中的.表示对矩阵元素进行操作。
  3. 对数log(A),e指数exp(A),绝对值abs(A),负数-A
  4. A+1表示矩阵A所有元素加+1。
  5. A'表示矩阵A的转置。
  6. [val, ind] = max(a)表示如果a是向量,返回向量的最大值及相应位置;
    如果a是矩阵,则返回每一列的最大值及相应位置。
  7. A < 3表示返回小于3的布尔矩阵。
  8. find(A < 3)表示找到矩阵A中小于3的元素的位置。(按列读取)
    [r, c] = find(A <3)表示找到矩阵A中小于3的元素行列位置。
  9. magic(3)表示生成3x3的幻方矩阵。(任意行、列、对角线相加和相等)
  10. 求和sum(a),求乘积prod(a),向下取整floor(a),向上取整ceil(a)
  11. max(A, [], 1)表示矩阵A每列的最大值,max(A)默认取每列的最大值。
    max(A, [], 2)表示矩阵A每行的最大值。
  12. max(max(a)或者max(a(:))表示求矩阵a的最大值。
  13. 部分函数的参数用1表示列,2表示行。
  14. sum(sum(A .*eye(lenght(A))))表示求A对象线的和。(A为MxM维度)
  15. flipud(A)表示使矩阵A垂直翻转。
Plotting data
  1. plot(x, y, 'r')表示以x,y为横纵坐标用红色线进行画图。
  2. hold on表示保持住之前的绘画。
  3. xlabel('time')表示标注横坐标为time。
  4. ylable('value)`表示标注纵坐标为value。
  5. legend('sin', 'cos')表示标注线的标识。
  6. title('my plot)`表示标准标题为my plot。
  7. print -dpng 'myplot.png'表示将绘图打印成PNG图片保存。
  8. close表示关闭绘图显示。
  9. figure(1); plot(t, y1)表示在figure1中绘图。
  10. subplot(1, 2, 1)表示将画板分层1行2列,使用第1个进行绘画。
  11. axis([x1 x2 y1 y2])表示设置绘图的横纵坐标的范围。
  12. clf表示清理绘图。
  13. imagesc(A), colorbar, colormap gray;表示用色块显示矩阵。
Control Statements
  1. for语法
for i=1:10,
	v(i) = 2^i;
end;
  1. while语法
while i <= 5,
	v(i) = 100;
	i = i+1;
end;
  1. if语法
if v(1)==1,
	disp('1');
elseif v(2)==2,
	disp("2");
else
	disp("3");
end;
  1. 函数
function [y1, y2] = squareAndCubeThisNumber(x)
	y1 = x^2;
	y2 = x^3;

文件名要和函数名一致,否则其它文件无法导入。

  1. 添加搜索路径
    addpaht('/Path')

  2. 代价函数

function J = costFunctionJ(X, y, theta)
	m = size(X, 1);
	predictions = X*theta;
	sqrErrors = (predictions-y).^2;
	J = 1/(2*m)*sum(sqrErrors);
Vectorization

在这里插入图片描述

06 | Logistic回归

Classifer
  1. 通常使用线性回归进行分类不是个好方法。如下额外的一个样本,导致整体分类效果差很多。
    在这里插入图片描述
    逻辑回归可以将输出结果限制到[0, 1]。Logistic Regression是一种分类算法,而不是回归算法。
    在这里插入图片描述
Hypothesis Representation
  1. Sigmoid function 与 Logistic function是同义词。

猜你喜欢

转载自blog.csdn.net/pengshuyes/article/details/104219284
今日推荐