机器学习课程笔记:1. Introduction of Machine / Deep Learning(1)

Introduction of Machine / Deep Learning

    • [I I I. Machine Learning ≈ Looking for Function](#I I I. Machine Learning ≈ Looking for Function)
    • [I I . II. II. Different types of Functions](#I I . II. II. Different types of Functions)
    • [I I I . III. III. The Steps of Machine Learning](#I I I . III. III. The Steps of Machine Learning)
      • [1.Find a Model with Unknown Parameters](#1.Find a Model with Unknown Parameters)
      • [2.Define Loss from Training Data](#2.Define Loss from Training Data)
      • 3.Optimization
        • [梯度下降(Gradient Descent)](#梯度下降(Gradient Descent))
    • [I V . IV. IV. More Models](#I V . IV. IV. More Models)
      • [一、Piecewise Linear Curves 分片线性曲线](#一、Piecewise Linear Curves 分片线性曲线)
        • [1. 怎样拟合](#1. 怎样拟合)
        • [2. 基本单位:Sigmoid Function](#2. 基本单位:Sigmoid Function)
        • [3. 抽象总结](#3. 抽象总结)
        • [4. 定义 L o s s Loss Loss](#4. 定义 L o s s Loss Loss)
        • [5. 模型 Optimization](#5. 模型 Optimization)
      • 二、基本单位(激活函数)的扩展
    • [V . V. V. Neural Network and Deep Learning](#V . V. V. Neural Network and Deep Learning)

I I I. Machine Learning ≈ Looking for Function

根据给出数据,模型通过学习寻找到一个合适的函数,计算出输出

I I . II. II. Different types of Functions

  • Regression 回归分析 :函数输出一个标量.
  • Classification 分类 :给出一些分类选项,模型给出正确的分类

I I I . III. III. The Steps of Machine Learning

1.Find a Model with Unknown Parameters

首先根据具体问题选择一个合适的模型/函数,带有未知的参数等待求解.

2.Define Loss from Training Data

我们需要定义一个损失函数 Loss,用于评估模型后续学习的成果,相当于用学生的卷面成绩来评估学习水平。

Loss:损失函数,用于评估模型预测值与真实值(label)之间的偏差(bias)

最常见的损失函数主要有均值绝对误差均方误差 .

3.Optimization

对模型进行优化

最重要的方法:梯度下降(Gradient Descent)

梯度下降(Gradient Descent)
  1. Loss函数的图像上选取一个起始点 w 0 w^0 w0;
  2. 计算 ∂ L ∂ w ∣ w = w 0 \frac{\partial L}{\partial w} \bigg|_{w = w^0} ∂w∂L w=w0 ;
  3. 选取偏导数(斜率、梯度)下降的方向,更新 w 1 w^1 w1 的值为: w 0 − η ∂ L ∂ w ∣ w = w 0 w^0 - \eta\frac{\partial L}{\partial w} \bigg|_{w = w^0} w0−η∂w∂L w=w0 ;
  4. 迭代地重复以上操作,直到找出最优值 w T w^T wT.

I V . IV. IV. More Models

如上文中我们举例中的函数 y = w x + b y = wx + b y=wx+b 这种变量与系数呈简单的线性关系的模型称为线性模型(Linear Model) .

线性模型对于很多特殊问题来说太过于简单(存在Model Bias现象),不能很好的描述与预测复杂数据,因此需要引入新模型

一、Piecewise Linear Curves 分片线性曲线

1. 怎样拟合

类似于分段函数的构建,对于一个更复杂的曲线,可以使用若干个简单的线性函数的曲线逼近,如图:

复杂的红色曲线可以使用三条蓝色的简单曲线与一个常数相加获得。

那么同理,对于一些连续平滑的曲线,仍然可以使用这样的分片相加的方式进行逼近:

万事俱备,现在最主要的问题在于,如上图这样的蓝色函数曲线应该怎么描述。

2. 基本单位:Sigmoid Function

 如上图所示的蓝色折线曲线,直接用函数表示需要进行分段,略显麻烦因此选取一个近似的连续平滑函数进行描述:
y = c 1 1 + e − ( b + w x ) y = c\frac{1}{1+e^{-(b+wx)}} y=c1+e−(b+wx)1

如下图所示:

称这样的函数为 S i g m o i d    F u n c t i o n Sigmoid \; Function SigmoidFunction

可以通过调节函数中的 c 、 b 、 w c、b、w c、b、w 参数来调整不同的curve形状:

通过这样的方式我们可以得到若干个满足我们要求的Sigmoid Functions,那么对这些函数进行叠加就可以拟合出我们想要的模型:

3. 抽象总结

我们给出这样一个情形,有3个sigmoid function,每个function中含有3个变量(feature)

这样的式子可以展开并总结为下面的矩阵形式:

可以发现,式子写成向量形式之后,变成了与我们线性模型一样的式子。再加上外层的常数项与系数之后,最终的流程图与向量函数如下:

这里我们可以看到有很多的未知参数,为了方便计算起见,将所有的参数全部记为一个未知参数向量 θ \boldsymbol{\theta} θ.
θ = [ θ 1 θ 2 ... θ n ] \boldsymbol{\theta}= \left[ \begin{matrix} \theta_1\\\theta_2\\...\\\theta_n \end{matrix} \right] θ= θ1θ2...θn

4. 定义 L o s s Loss Loss

L o s s Loss Loss 函数采用上述提到的 θ \boldsymbol{\theta} θ 未知参数来定义: L ( θ ) L(\boldsymbol{\theta}) L(θ)

根据实际问题选择一个损失函数的计算方法即可。

5. 模型 Optimization

根据我们上一个部分提到的模型优化的含义,即是找到一组最优的 θ \boldsymbol{\theta} θ 取值,使得损失函数的值最小:

θ \boldsymbol{\theta} θ的迭代更新方法也与上述使用线性模型时类似,但由于这里使用了向量变量,对应的位置变量导数需要变为向量(多元未知数)的梯度

如图所示,首先选取一组初始的 θ 0 \boldsymbol{\theta_0} θ0 的值,仍然按照梯度下降的方法不断更新 θ i \boldsymbol{\theta_i} θi 即可。迭代的次数取决于开发者设置的超参数(Hyperparameter),如人为设定的最大迭代次数,或损失函数值低于一个特定值,抑或是在局部取到极小值。

在实际情况中,模型训练的数据量通常会非常大,对每一个数据计算 L o s s Loss Loss 会大大拖慢模型训练速度,浪费计算机性能,因此通常会将庞大的数据分为若干个分组 Batch,仅对每一个Batch计算 L o s s Loss Loss,进行 update。将所有的 Batch 都计算更新一遍的过程称为一个 epoch.

二、基本单位(激活函数)的扩展

如上述说的 S i g m o i d    F u n c t i o n Sigmoid \;Function SigmoidFunction 这样的基本函数被称为 激活函数 A c t i v a t i o n    F u n c t i o n Activation \;Function ActivationFunction.

类似的激活函数除了 S i g m o i d Sigmoid Sigmoid以外,还有一种称为 R e c t i f i e d L i n e a r U n i t ( R e L U ) Rectified Linear Unit (ReLU) RectifiedLinearUnit(ReLU):

如图所示,即将基本单位更细分化一些。

实际模型结果表明,使用 R e L U ReLU ReLU 的拟合和预测效果更好。

V . V. V. Neural Network and Deep Learning

在使用线性模型进行计算时,会有如下的流程图:

实际上,这样的计算流程可以再叠加一层或是几层,可以得到更好的训练效果:

其实是对原先模型的因变量再使用相同模型或其他模型进行拟合,这样进行一层一层加深的拟合/学习的方法称为 深度学习( D e e p    L e a r n i n g Deep \;Learning DeepLearning ):

模型中使用的激活函数称为一个个 神经元( N e u r o n Neuron Neuron ),因此整个过程也被称为神经网络( N e u r a l    N e t w o r k Neural\; Network NeuralNetwork )

对于深度学习使用的层数,有相当多的案例表明,层数过多会引发 过拟合(Overfitting) 问题。

相关推荐
virtual_k1smet1 天前
#rsa.md
笔记·python
丰锋ff1 天前
2022 年真题配套词汇单词笔记(考研真相)
笔记
丰锋ff1 天前
2010 年真题配套词汇单词笔记(考研真相)
笔记·学习·考研
无风听海1 天前
神经网络之激活函数Softmax
人工智能·深度学习·神经网络
无风听海1 天前
神经网络之理解温度对Softmax的影响
人工智能·深度学习
格林威1 天前
不同光谱的工业相机有哪些?能做什么?
图像处理·人工智能·深度学习·数码相机·计算机视觉·视觉检测
dog2501 天前
时延抖动的物理本质
人工智能·算法·机器学习
cpuimage1 天前
深度学习优化器算法巧思速览
深度学习·优化器·adam
聪明的笨猪猪1 天前
Java “并发工具类”面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
雪下的新火1 天前
爆炸特效-Unity-04-shader&粒子系统
经验分享·笔记·unity·游戏引擎·shader·粒子系统