深度学习与机器学习的区别

  • 深度学习:利用神经网络模拟人脑工作原理,实现对复杂数据的表示和学习。

  • 机器学习:人工处理设计特征,利用统计学和概率论方法,对数据进行建模和预测。

深度学习应用场景

  • 图象、语言、语音
  • 机器学习无法处理的复杂数据

深度学习代表算法-神经网络(Neural Network)NN

  • 神经网络是一种模拟人脑神经原理的计算模型,由多个神经元(节点)组成,每个神经元之间通过权重和偏置进行连接。
  • 是深度学习的重要算法,也是深度学习的基础。
  • 神经网络通过迭代学习,能够自动提取数据中的特征,实现对复杂数据的表示和分类。
  • 网络结构:输入层、隐藏层、输出层

    模仿人脑神经网络结构

特点

  • 每个连接都有个权值,同一层的神经元之间没有连接。
  • 每个神经元都有个激活函数,用于将输入转换为输出。
  • 最后的输出结果对应的层也叫全连接层。

神经网络基础

Logistic回归

  • Logistic回归是一种二分类算法,用于将输入数据映射到0到1之间的概率值。
  • 通过将输入数据映射到0到1之间的概率值,将数据分类为两个类别。
    公式:z = w1x1 + w2x2 + …+ b
  • 激活函数:y = 1/(1+e^-z)
  • 分类结果:如果y>0.5,分类为类别1,否则分类为类别0。

y越大,分类结果越接近类别1。
y越小,分类结果越接近类别0。

Sigmoid 激活函数
$$\boldsymbol{\hat y=\sigma(z)=\dfrac{1}{1+e^{-z}}}$$

1
2
3
4
5
6
7
import numpy as np
def sigmoid(z):
return 1/(1+np.exp(-z))

# 计算Sigmoid函数的导数
def sigmoid_derivative(z):
return sigmoid(z)*(1-sigmoid(z))

Sigmoid 导数重要结论(必背):
$$\boldsymbol{\sigma’(z)=\frac{d\hat y}{dz}=\hat y(1-\hat y)}$$

各参数梯度
$$\boldsymbol{\frac{\partial L}{\partial w_1}=(\hat y-y)x_1}$$
$$\boldsymbol{\frac{\partial L}{\partial w_2}=(\hat y-y)x_2}$$
$$\boldsymbol{\frac{\partial L}{\partial b}=\hat y-y}$$

损失函数

  • 损失函数是一种用于评估模型预测结果与真实结果差异的函数。
  • 用于优化模型参数,使模型预测结果更真实。
  • 常用的损失函数有:均方误差(MSE)、交叉熵损失(Cross-Entropy Loss)等。

    对数似然损失函数:L=-(y * log(y^)) - ((1-y) * log(1-y^)) y^为预测结果

  • 交叉熵损失函数:用于二分类问题,计算模型预测结果与真实结果的差异。
    分别对每个样本进行计算
    目的:更新模型参数,使模型预测结果更真实。

梯度下降

  • 梯度下降是一种优化算法,用于更新模型参数,使模型预测结果更真实。
    函数的梯度:函数的偏导数,表示函数在某个点处的变化率,按照梯度方向进行更新,增长就快,反之,就慢。
    公式:w = w - α * dL/dw α为学习率
    公式:b = b - α * dL/db α为学习率

    让损失函数最小化

导数的意义,在某点,x的改变,导致y改变的倍数

链式法制:di/da=dj/da*da/db

参数更新

w1 = w1 - α * (y^-y)x1
w2 = w2 - α * (y^-y)x2
b = b - α * (y^-y)

正向传播与反向传播

  • 正向传播:将输入数据通过神经网络,计算输出结果。
  • 反向传播:从输出结果开始,计算每个参数的梯度,用于更新模型参数。
  • 重复正向传播和反向传播,直到模型参数收敛。