机器学习(1)机器学习定义(神经网络)

本文介绍了机器学习的基础概念,包括回归和分类两种主要任务,以及视频流量预测的线性回归模型示例。通过损失函数和梯度下降法优化模型参数,避免过拟合问题。此外,讨论了激活函数如sigmoid和ReLU在神经网络中的作用,以及深度学习模型如何通过增加隐藏层来逼近复杂曲线。
摘要由CSDN通过智能技术生成

机器学习(1)

1 定义

让计算机找到一个函数(程序员很难自主编写),用于解决人们的问题。

1.1 不同函数类别

  • Regression(回归):输出是一个数值的函数
  • Classification(分类):给定类别,函数会输出正确的一类。比如侦测邮件是否为垃圾邮件。
  • 除了以上常见的两类,还有Structured Learning(产生有结构的输出,比如图像,文本)。

1.2 视频流量预测函数举例

输入参数为前面几天的账号流量信息(如每天视频播放量,点赞人数等),输出明天的流量信息。

步骤:

  1. 写出带有未知参数的函数(Model)。只是作出一个初步的预测。

    1-1.2.png

    b(偏差,bias), w(权重,weight)是未知的参数(从数据中学习得知)

  2. 定义LOSS。LOSS也是一个函数,输入是Model里面的参数(b, w),输出的值反映这个model是否正确。

    比如假设b=0.5k,w=1。则L(0.5k,1), y = 0.5 k + 1 x 1 y=0.5k+1x_1 y=0.5k+1x1

    检测的方法就是将历史流量数据传入,比对真正的结果,计算二者的差距。真实的值称为label。

    1-1.2-2.png

    L O S S : L = 1 N ∑ n e n LOSS: L=\frac{1}{N}\sum_{n}e_n LOSS:L=N1nen

    L与函数质量成反比。如果 e = ∣ y − y ^ ∣ e = \lvert y-\hat{y} \rvert e=yy^,则L称为MAE(mean absolute error);如果 e = ( y − y ^ ) 2 e = ( y-\hat{y} )^2 e=(yy^)2,则L称为MSE(mean square error)

  3. 最佳化参数。最佳的w, b让L最小

    • 随机选一个点 w 0 w^0 w0
    • 计算KaTeX parse error: Undefined control sequence: \part at position 7: \frac{\̲p̲a̲r̲t̲{L}}{\part{w}}|… ,如果导数小于0,则让w变大那么L就会变小。那w跨多大?取决于斜率大小,斜率大就则w更新跨度( η \eta η,超参数)大 一点。KaTeX parse error: Undefined control sequence: \part at position 34: …^0}-\eta \frac{\̲p̲a̲r̲t̲ ̲L}{\part w}|_{w…
    • 逐步更新w。更新次数可以自己决定,也是一个超参数(控制参数的参数)
    1-1.2-3.png

1.3 重新改写模型

这种线性回归模型具有天生的限制,因为实际的数据是会波动的,并不是呈线性的。

折线 = 常数 + 一系列折线集合(把折线根据斜率的不同拆分为各个阶段,每个阶段都有集合中的一个折线加上常数对应表示)。

那曲线(可以通过取样变成折线)各式各样,折线集合也很多种。如何确定合适的折线集合?通过sigmoid函数逼近:

1-1.2-4.png 1-1.2-5.png

1、2、3就是折线集合,加上常数线0,表示红色的折线。

新的模型为: y = b + ∑ i c i s i g m o i d ( b i + w i x 1 ) y=b+\sum_{i}{c_i}sigmoid(b_i+w_ix_1) y=b+icisigmoid(bi+wix1) ,将sigmoid内的前一天替换成前j天的特征: y = b + ∑ i c i s i g m o i d ( b i + ∑ j w i j x j ) y=b+\sum_{i}{c_i}sigmoid(b_i+\sum_{j}w_{ij}x_{j}) y=b+icisigmoid(bi+jwijxj)

就是把 b i + w i x 1 b_i+w_ix_1 bi+wix1 (这是只参考1天的资料)换成 b i + ∑ j w i j x j b_i+\sum_{j}w_{ij}x_{j} bi+jwijxj 参考前j天的资料,不同参考天数的x乘上不同的权重w再相加。

1-1.2-6.png 1-1.2-7.png 1-1.2-8.png

这样就重新建模带有未知参数(b、转置向量c、向量b、矩阵w)的函数。可以将这四个位置参数合成一个向量 θ \theta θ

定义LOSS的方法还是一样,找到一组θ让L最小。对向量θ内每个值求微分,微分集合称为gradient: g = ▽ L ( θ 0 ) g=\triangledown{L(\theta^0)} g=L(θ0)

1-1.2-9.png

实际上求这种微分集合,是将所有资料(称为N笔资料)分成多个batch,对每个batch算一个loss,比如L1,再根据learning rate,将参数变为Θ1传给下个batch计算L2。所有batch都运行了一遍称为一个epoch,而每次更新参数称为一个update

一个epoch内的update = N/batch size(每个batch有多少笔资料) = batch counts(多少个batch)。

激活函数

这里的sigmoid被称作激活函数,激活函数有很多种比如ReLU(修正线性单元)。

relu.png

所以hard sigmoid也可以被ReLU所替换,只不过relu的个数要变化,原本一个sigmoid就可以表示,需要两个ReLU所表示(所以是2i)。

原本的模型可以表示为: y = b + ∑ 2 i c i m a x ( 0 , b i + ∑ j w i j x j ) y=b+\sum_{2i}c_imax(0,b_i+\sum_{j}w_{ij}x_j) y=b+2icimax(0,bi+jwijxj)

深度学习

a可以作为x再进行一次激活函数运算:

1-1.2-10.png

这就是神经网络。每一个neuron,又称作hidden layer,整体又可以称作deep learning。随着层数越叠越多,LOSS越来越小。够多的sigmoid或者ReLU可以逼近任何的曲线。

**过拟合(overfitting):**训练资料的测试结果,和在未看过的资料测试的结果相反。如下图:

1-1.3-1.png

那选三层还是四层模型?三层在未看过的资料测试表现较好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值