文章目录

  • 一、机器学习基本概念简介
    • 1.1 机器学习的定义
    • 1.2 函数的分类
    • 1.3 如何寻找函数
      • 1.3.1 定义函数
      • 1.3.2 定义 Loss 函数
      • 1.3.3 定义 Optimization(优化函数)
        • 1.3.3.1 假设只有 w 需要优化时
        • 1.3.3.2 将 b,w 的方向组合在一起时
    • 1.4 函数的修改
      • 1.4.1 取多天的资讯进行训练
  • 二、深度学习基本概念简介
    • 2.1sigmoid 函数定义
    • 2.2sigmoid 函数如何逼近各种线段
    • 2.3 建立更加弹性的函数
      • 2.3.1 更多的 Model Features
      • 2.3.2sigmoid 函数的计算方式
    • 2.4 新 Loss
    • 2.5 新 Optimization
    • 2.6batch 与 epoch
    • 2.7ReLU(Rectified Linear Unit)函数
    • 2.8 多层网络及深度学习的定义
  • 三、后话

一、机器学习基本概念简介

1.1机器学习的定义

我们所要求机器所能为我们做的事情均离不开两个最要的模块:输入和输出。比如对于无人驾驶来说,汽车必须根据路段信息来决定车辆的行驶,在此过程中,路段信息就是输入,车俩的行驶就是输出,但问题是他是怎么让输入变成输出的呢。而这就是机器学习所需要做的事情:寻找一个函数根据输入而输出合理的操作,表示为 f(输入)–> 输出,这也是机器学习的定义。

1.2函数的分类

在机器学习中我们知道其定义是找一个函数来根据输入做出合理的输出,在这里介绍两种常见函数:
1.Regression(回归函数):其输出是一个数值。如我们需要预测未来的PM2.5的浓度,当天的PM2.5浓度、气温、臭氧的浓度为输入然后经过一个回归函数来预测明天的PM2.5浓度。

2.Classification(分类函数):其输出为一个类别。如我们在收到邮件时,常常有些骚扰或者垃圾邮件,这些邮件便是输入,经过分类函数可以将这些归类到“垃圾邮件”类别之中

1.3如何寻找函数

1.3.1定义函数

根据之前视频播放资讯预测未来的播放量即其他比例

函数的输入是前一天的资讯,输出是今天的播放量的预测值。我们可以把函数设成一次函数:
y = b +wx1 其中b我们称为偏置参数bias,w为权重参数weight。x1是前一天的播放量,是我们所知道的,称作feature,w和b是未知的,需要我们通过学习得到的,而这样的一个带有未知参数的函数我们称作Model(模型)

1.3.2定义Loss函数

Loss函数的输入是我们在1.31所定义函数的未知参数(parameters)即:L(b, w),输出我们预测的数据更跟实际数据的差别。如:
令L=L(500, 1),则y = b + wx1 -> y = 500 + x1 假设有下面时间的播放量:

对于2017/1/2这一天,当b=500,w=1时,x1等于2017/1/1的播放量根据所设函数计算y=500+4800 = 5300,即我们预测01/02号这天的播放量是5300,但从开始的资讯中我们可知实际这天的实际播放量是4900,则en=abs(5300 - 4900)。同样的方法,我们都可以算出每一天的误差。则最终的Loss = 1/N ∑en,N表示有N份学习资料。我们也可以推出在不同b和w值下Loss是不一样的,而机器要做的就是寻找一组最合适的b,w值从而使Loss最小,提高预测的精确度

1.3.3定义Optimization(优化函数)

在 1.3.2 中我们知道要寻找一组最合适的 b,w 值的过程就是不断优化未知函数的过程,而最常用的方法就是梯度下降法(Gradient Descent)

1.3.3.1假设只有w需要优化时

w* = arg minLoss,假设Loss函数与w关系如下:

首先随机找一个w的初始值w0,计算在w0的L对w的微分∂L/∂w(w=w0)也就是斜率:

从图中我们可以观察到此偏导是负的,所以在w0左边的虚线比较高,右边比较低,这样的话我们可以提高w的值来使Loss值减小(偏导如果是正的则相反),有:

在图中又有了一个新的参数为η,我们称作学习率(Learing rate),η值越大,w值更新越快,越小则w值更新越慢。而η是需要我们在实验过程中手动设置的参数,我们将这一类参数叫做超参数(hyperparameters),由图我们也能得出w与Loss的微分关系:w1-w0=η*∂L/∂w(w=w0),以此方法训练数据得到Loss的最小值,此时gradient为0
同样,b的值也是以这种方法不断更新

1.3.3.2将b,w的方向组合在一起时

w*,b* = arg minLoss,可视化后:

当w* = 0.97(接近1),b* = 100(一般设的比较小)Loss值达到最小480,因此我们拿出这组数据来预测一下;

可以看出大致的方向是能够拟合的,但是预测的播放量的低估总是比实际的出现晚一两天,这可能出现的原因是我们在预测是只用前一天的数据就行预测,数据量太少,因此我们就要修改我们的Model。

1.4函数的修改

1.4.1取多天的资讯进行训练

考虑7天时,函数由y = b + wx1 变成y = b + ∑wjxj(j从1到7)每一天的播放量都乘上对应的w值,Loss值变化及对应的b,w值如下:

L表示训练数据上的损失,L‘表示预测未知数据的损失。随着参考天数的增加,Loss值实在减小,而表格中w有正由负,负表示前一天的播放量与我们预测的那天的播放量是成反比的,从函数的表达式我们也能得到这个结论,w为正则相反。
当我们继续考虑28天和56天时:

我们发现考虑天数对Loss值的影响已经变化不大,因此这应该是极限了。
而以上我们所设和修改后的函数模型称作线性模型(Linear Models)

二、深度学习基本概念简介

前言:Linear Models对我们解决应用场景问题来说太过于简单了,因为Linear Medols永远都只是一条直线,你可以通过修改w值来改变斜率和修改b来修改斜距,但是其永远是直线。
而我们需要的可能是一段斜率是正的,而一段是负的,此时线性模型就永远不能满足这一点,显然Linear Models有着许多的限制,而这种来自于Models的限制叫做Model Bias,注意不是我们上面所设函数中的b参数。因此,我们需要更加有弹性的函数来实现图中红色线段。

2.1sigmoid函数定义

上述的红色曲线可以由一个常数项加上一堆s型折线的和来实现

从0,1,2,3蓝色曲线分别取与红色曲线相对应的部分即可构成红色曲线。依照这种方法,无论所求的曲线有多复杂,折点有多多,我们都可以用一个常数项加不同数的s性折线构成。而要写出s性折线的函数表达式并不是很容易,所以我们可以用一条光滑的曲线去逼近它,这个曲线函数就是sigmoi函数:

从sigmoid函数表达式中y = c*[1 / (1 + e-(b + wx1))](注意表达式中的b是Models bias)看出当x1非常大是函数值会收敛到c的位置,当x1非常小时,函数值会收敛到0。sigmoid函数可写成y = c * sigmoid(b + wx1)

2.2sigmoid函数如何逼近各种线段

1.改变w值可以改变sigmoid函数图像的斜率
2.改变b的值可以让sigmoid函数图像左右移动
3.修改c的值可以改变sigmoid函数图像的高度

2.3建立更加弹性的函数

2.3.1更多的Model Features

当我们用很多的sigmoid函数去形成一条复杂的函数图像时,每一个sigmoid函数中参数c,b,w都是不一样的。
当我们只用一天的数据去预测未来的播放量时,函数可变成

其中i表示sigmoid函数的个数
当用多天数据时,函数可变成

其中i代表sigmoid函数个数,j代表天数,xj表示第前j天的播放量

2.3.2sigmoid函数的计算方式

当j:1,2,3;i:1,2,3时,计算图如下:

其中x1,x2,x3表示该天的播放量,wij表示乘给xj的播放量的weight。把b1+w11x1+w12x2+w13x3相加送到第一个sigmoid函数中计算,第二、三个sigmoid函数也是这样计算。为了简化计算过程,我们可以用矩阵的方法来计算,令
r1=b1+w11x1+w12x2+w13x3
r2=b2+w21x1+w22x2+w23x3
r3=b3+w31x1+w32x2+w33x3

再令a=sigmoid(r)=1 / (1 + e-r),再乘每个sigmoid函数的c再相加有!

如果将三个sigmoid函数的过程整合成矩阵计算的话,如下:
r = b + wx
a = sigmoid(r
y = b + cT(c 矩阵的转置)a
y = b + cT sigmoid(b + wx

2.4新Loss

y = b + cT sigmoid(b + wx)中,我们将所有矩阵的每一列或者每一行整合在一起得到一个大的矩阵 θ

所以Loss函数每一组的参数可以用 L(θ)来表示,计算方法跟只有w,b时是一样的,只不过现在可能是几百,几千个参数

2.5新Optimization

计算方法参数的更新方法跟只有w,b时是一样的
θ* = arg minLoss θ = [θ1 θ2 θ3…]T

2.6batch与epoch

当我们有一笔N资料时,要去计算Loss时,我们可以将N笔资料分成M份,每一份有N/M笔资料,N/M笔资料就叫做一个batch,而我们可以先计算每一个batch的Loss’,然后更新参数 θ,计算出gradient。当所有batch都看过一遍之后叫做epoch

2.7ReLU(Rectified Linear Unit)函数

ReLU是现在深度学习最常用的激活函数,表达式为
y = b + ∑ci max(0, ∑wijxj)
可以看出ReLU是分段函数,当∑wijxj > 0时,y = ∑wijxj,当∑wijxj <= 0时,y = 0 图像为

且可以看出两个ReLU函数才能组成一个sigmoid函数

它们都是激活函数,一般来说ReLU的拟合效果比sigmoid函数好,因此ReLU更加常用

2.8多层网络及深度学习的定义

之前所有的讨论都是只经过一次激活函数,但是我们可以通过多层的激活函数进行预测结果,一层激活函数的输出可以作为下一层的输入,所以层与层之间的参数是不相同的

注意两个 a 向量是不同的
在预测我们一开始的视频播放量时,当经过一百层的ReLU函数后,Loss与预测和实际播放量的拟合程度如下图:


在上面的许多层的ReLU或者sigmoid,被称作Neuron(神经元),很多的Neuron就叫做Neural Network,许多许多的隐藏层就叫做Deep,而这一套分析计算技术就叫做Deep Learning

三、后话

此系列文章是我学习深度学习的一些笔记,可能过程中有些错误,欢迎大家指正,不胜感激!与君共勉

机器学习(一) 机器学习概述相关推荐

  1. 【深度学习】基于Torch的Python开源机器学习库PyTorch概述

    [深度学习]基于Torch的Python开源机器学习库PyTorch概述 文章目录 1 PyTorch简介 2 环境搭建 3 Hello world!3.1 Tensors (张量)3.2 操作 4 ...

  2. 机器学习评测指标概述

    机器学习评测指标概述 文章目录 机器学习评测指标概述 1. 基本分类 1.1 样本类别 1.2 置信度阈值 1.3 IoU阈值 2. 基本指标 recall precison accuracy 3.进 ...

  3. 【机器学习】机器学习概述

    简单的一句话:让机器从数据中学习,进而得到一个更加符合现实规律的模型,通过对模型的使用使得机器比以往表现的更好,这就是机器学习. 机器学习是实现人工智能的一种途径,它和数据挖掘有一定的相似性,也是一门 ...

  4. 机器学习(1.机器学习概述、数据集的组成以及机器学习的特征工程)

    什么是机器学习?    机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测 为什么需要机器学习 解放生产力.解决专业问题.提供社会便利 机器学习应用场景 自然语言处理.无人驾驶. ...

  5. 【机器学习】机器学习从零到掌握之二 -- 教你实现K近邻算法

    本文是<机器学习从零到掌握>系列之第2篇 [机器学习]机器学习从零到掌握之一 -- 教你理解K近邻算法 伪代码如下: 对未知类别属性的数据集中的每个点一次执行以下操作: (1)计算已知类别 ...

  6. 机器学习综述——机器学习理论基础与发展脉络

    机器学习综述 摘要 本文主要参考中科院自动化研究所复杂系统与智能科学实验室王珏研究员<关于机器学习的讨论>,讨论机器学习的描述,理论基础,发展历史以及研究现状. 关键字:机器学习,科学依据 ...

  7. 我爱机器学习网机器学习类别文章汇总

    机器学习领域的几种主要学习方式 From Stumps to Trees to Forests KDD-2014 – The Biggest, Best, and Booming Data Scien ...

  8. 机器学习char1 机器学习基础

    机器学习实战-char1 机器学习基础 文章目录 机器学习实战-char1 机器学习基础 一.机器学习的简单概述 二.机器学习的主要任务 三.学习机器学习的原因 如何选择合适的算法 开发机器学习应用程 ...

  9. 【机器学习】机器学习的经典算法

    [机器学习]机器学习的经典算法 https://www.cnblogs.com/DicksonJYL/p/9517025.html 本文为整篇文章第二部分,整篇文章主要目录如下: 1:一个故事说明什么 ...

  10. pytorch机器学习_机器学习— PyTorch

    pytorch机器学习 PyTorch : It is an open source machine learning library based on the Torch library (whic ...

最新文章

  1. 【前沿科技】看完这篇文章前,你绝对想象不到欧美航空机器人竟然发展到这个程度了!...
  2. 一天搞定HTML----a标签02
  3. Github上LeakCanary编译报错CreateProcess error=2的解决方法
  4. ASP.NET Core中的依赖注入(4): 构造函数的选择与服务生命周期管理
  5. td之间的间距怎么改_论文的一级标题、二级标题格式怎么弄?
  6. 32位存储环境下整数范围为什么是[-2^31,2^31-1]?
  7. [原创]利用DropDownlist来控制Textbox输入数字的精度
  8. SAP License:SAP一个成功的案例之跳槽者必看
  9. 关注健康,从现在开始(视力篇)
  10. 关于atollic truestudio for stm32
  11. 计算机网络基础系列(八)TCP三次握手、四次挥手、可靠数据传输、拥塞控制和UDP
  12. 自定义一个可复用的BaseAdapter
  13. 阿里云服务器ecs配置之安装redis服务
  14. shp格式详解(一)
  15. 设置浏览器显示小于12px以下字体的三种方法
  16. vue 中provide的用法_vue中provide和inject使用
  17. 如何自动注册推特推广号,推特注册的具体步骤
  18. Python数据科学学习笔记之——机器学习专题
  19. 2021-2027全球与中国汽车CMOS图像传感器市场现状及未来发展趋势
  20. thinkphp修改上传文件大小

热门文章

  1. 出货系统镜像批量安装方案
  2. MacBook如何切换操作win系统?2023最新版Parallels虚拟机
  3. 008. 字符串转换整数 (atoi) | Leetcode题解
  4. Macos下的docker安装目录在哪?
  5. 火影忍者246集视频VW
  6. Proteus8.9 VSM Studio SDCC编译器仿真STC15W4K32S4系列013_iic_02_AT24C04
  7. Qt开源库之----Qwt
  8. TLD和eTLD的区别
  9. “着色器”是什么意思? 如何使用HTML5和WebGL创建它们
  10. python math ceil_python中math.ceil什么意思