机器学习课程笔记: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) 问题。

相关推荐
爱喝热水的呀哈喽29 分钟前
数据分箱 bagging&boosting onehot独热编码 woe编码 sklearn的ensemble(集成学习)
机器学习
QQ_77813297444 分钟前
AI 浪潮席卷中国年,开启科技新春新纪元
人工智能·机器学习
先知demons1 小时前
【无标题】
笔记
幻风_huanfeng2 小时前
神经网络梯度爆炸的原因及解决方案
人工智能·深度学习·神经网络
米码收割机2 小时前
【python】python基于机器学习与数据分析的二手手机特性关联与分类预测(源码+数据集)【独一无二】
python·机器学习·数据分析
向上的车轮3 小时前
OpenEuler学习笔记(十四):在OpenEuler上搭建.NET运行环境
linux·笔记·学习·.net
Geeker · LStar3 小时前
【初/高中生讲机器学习】0. 本专栏 “食用” 指南——写在一周年之际⭐
人工智能·机器学习·专栏介绍·初/高中生讲机器学习
kakaZhui3 小时前
【llm对话系统】大模型源码分析之llama模型的long context更长上下文支持
pytorch·深度学习·chatgpt·aigc·llama
梦云澜3 小时前
论文阅读(十三):复杂表型关联的贝叶斯、基于系统的多层次分析:从解释到决策
论文阅读·人工智能·深度学习