机器学习与深度学习的基本概念

news/2024/4/29 8:14:22/文章来源:https://blog.csdn.net/weixin_53966032/article/details/128205470

目录

  • 机器学习是什么?

    • 机器学习的任务

      • 回归Regression

      • 分类Classification

      • 创造学习Structed Learing

  • 机器学习怎么找这个函数

      • 定义含未知参数的函数

      • 定义loss损失函数

      • 定义优化器optimization

    • 写出一个更复杂的有未知参数的函数

      • sigmoid

        • 基本推理过程

        • sigmoid函数介绍

        • 继续推导

      • ReLU线性整流函数

        • Relu介绍

视频链接
https://www.bilibili.com/video/BV1Wv411h7kN/?p=3&spm_id_from=pageDriver&vd_source=ef8c99c8c4165aea8f811dafa9772ecd

https://www.bilibili.com/video/BV1J94y1f7u5/?p=3&vd_source=ef8c99c8c4165aea8f811dafa9772ecd

机器学习是什么?

机器学习就是找一个我们写不出来的函数,但是能够实现用户想要的结果。这个函数的输入可以是向量、矩阵以及序列(连续的段落以及语音信息),输出可以是单个数值(相对应的问题称之为回归regression)、类别(分类问题)、序列

机器学习的输入输出

机器学习的任务

回归Regression

机器学习的输出是一个数值

分类Classification

给出基本的选项,对给定的输入按照这些基本的选项进行分类

创造学习Structed Learing

根据给定输入,从无到有创造出一个东西

机器学习怎么找这个函数

定义含未知参数的函数

猜测这个函数的形式,进行定义

y=f(x)y=f(x) y=f(x)

这个f即可称为模型model,此时,x称作特征值feature,y为预测值predict,y的真实值称为标签label

y=b+wx,y=b+∑jwjxjy=b+wx,y=b+ \sum_{j} w_jx_j y=b+wx,y=b+jwjxj

  • 未知参数

    • 偏置量bias

    • 权重weight

可以给定的参数:超参hyperparameter

定义loss损失函数

loss损失函数是关于未知参数的一个函数,是来表示当前这个未知参数的好坏优劣

具体可以定义loss值为下列公式

loss=1n×∑i=1nefiloss=\frac1 n \times \sum_{i=1}^ne_{fi} loss=n1×i=1nefi

MAE:efi=∣yi−y′∣或者是MSE:(yi−y′)2MAE:e_{fi}=|y_i-y' | 或者是 MSE:(y_i-y')^2 MAEefi=yiyMSE(yiy)2

定义优化器optimization

优化器optimization是用来找一组最好的w与b,这个最好的w与b会使loss也最低(一般找到的标准是此时loss关于w的函数的斜率为0)
课程一般是采用Gradient Descent方法:

  • 随机选取初始值,设置迭代次数

  • 计算该点的斜率 w对loss的偏导,若斜率为负,则在该点左侧loss值更大,若斜率为正,则在该点右侧loss值更大

  • w的迭代公式:其中 的η为学习率,是人为设置的(人为设置的参数称之为hyper parameters超参数)

wi+1=wi−η×∂loss∂w∣w=w0w_{i+1}=wi-\eta \times \frac{\partial loss}{\partial w}|_{w=w^0} wi+1=wiη×wlossw=w0

  • 使用Gradient Descent会有全局最优解和局部最优解,但这并不是Gradient Descent的真正问题
  • 多参数的Gradient Descent应用需要进行分别对loss的微分,然后分别进行更新

📌这里之前设置的含未知参数的方程最后得到的是liner model,但是liner model过于简单,难以描述一些复杂的情况,这种来自于model的限制叫做model bias

写出一个更复杂的有未知参数的函数

sigmoid


未知函数=常量+若干个sigmoid的和未知函数= 常量+ 若干个sigmoid的和 =+sigmoid

基本推理过程


红线=常数3+蓝线012

📌所有的折线段Liner Curves都可以用常量+若干个sigmoid来表示。而对于所有的连续曲线段也都可以用这样的方法去近似。转折点越多,需要的sigmoid越多,越容易过拟合。

上述的蓝色折线段称之为Hard sigmoid,用sigmoid去逼近

sigmoid函数介绍

在这里插入图片描述

sigmoid函数的取值是在0和1之间,其基本公式如下:

sigmoid(x)=11+e−xsigmoid(x)=\frac{1} {1+e^{-x}} sigmoid(x)=1+ex1

我们所用到的sigmoid是** c sigmoid(b+wx)**,即

y=c11+e−(b+wxi)y=c \frac {1} {1+e^{-(b+wx_i)}} y=c1+e(b+wxi)1

其中,w影响曲线的斜率,b影响曲线的位置(进行左右平移),c影响曲线的高度(会超过1)
在这里插入图片描述

继续推导

回到最初的推导:

  • 当特征值x取前一天进行推导,那么红线的最终方程如下:

    xi+1=b+∑i=1ncisigmoid(bi+wixi)x_{i+1}= b + \sum_{i=1}^{n} c_i sigmoid (b_i+w_ix_i) xi+1=b+i=1ncisigmoid(bi+wixi)

  • 当特征值x取前面多天进行推导,那么红线的最终方程如下:

    xi+1=b+∑i=1ncisigmoid(bi+∑jnwijxj)x_{i+1}= b + \sum_{i=1}^{n} c_i sigmoid (b_i+ \sum_{j }^{n}w_{ij}x_j) xi+1=b+i=1ncisigmoid(bi+jnwijxj)
    y=b+cTa,a=sigmoid(r),r=b+Wxy=b+ c^T a, a=sigmoid(r), r=b+Wx y=b+cTa,a=sigmoid(r),r=b+Wx

    其中x为特征值(单个值或多个值的向量),W的行数即表示有多少个sigmoid是超参数hyperparameter,W的列也是超参数,表示用前多少天的。剩下的均为未知参数,可以将W、内外b、C拉直结合成一个向量表示未知参数θ.

    紧接着定义loss,以及optimization得到最优的参数θ。其中在最优化时求除的偏导向量叫做gradient
    gradient向量的生成,参数的迭代
    为了减少特征值太多计算困难,我们将特征值随机划分成若干个batch,每次取一个batch中的样本进行一次gradient的计算并更新θ,称为一次update。算完一次全部的batch称为一次epoch。
    这里的epoch数和batch大小均是超参数

采用epoch和batch

ReLU线性整流函数

也可以用Relu来进行复杂函数的表示

Relu介绍

在这里插入图片描述

其基本公式为:

f(x)=max(0,x)f(x)=max(0,x) f(x)=max(0,x)

我们用到的表示形式是:用2个relu可以表示一个sigmoid

f(x)=cmax(0,b+wx),f(x)=cmax(0,b+∑jwjxj)f(x)=cmax(0,b+wx),f(x)=cmax(0,b+\sum_jw_jx_j) f(x)=cmax(0,b+wx),f(x)=cmax(0,b+jwjxj)
sigmoid转relu

📌Relu与sigmoid都是激活函数 Activation function。 可以多做几次求a的过程,设置多个隐含层。
过拟合over fitting:随着网络的复杂,训练集的loss降低而测试集的loss却增大(隐含层过多,激活函数过多都会导致over
fitting)

多做几次求a——增加隐含层复杂网络"
每一个求a都叫做一个神经元,若干个神经元这样迭代称之为神经网络,而近来称多层的神经网络为深度学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_231318.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一套Altair Feko复杂结构模型散射和天线辐射仿真建模攻略

导读:Feko软件广泛应用于电磁散射、电磁辐射仿真,例如:天线、天线布局、天线罩、屏蔽效能、电磁散射、频选结构、线束EMC等方面。问题种类繁多,但是无论仿真哪一类问题,其仿真流程是相同的,我们只需掌握了这…

使用 Echarts 插件完成中国旅游地图

目录前言:什么是 Echarts 插件具体实现思路中国旅游地图成品展示步骤:完成中国旅游地图代码总结:前言: 大家都知道,一般情况下,想要使用前端设置一个 中国旅游地图 需要使用 canvas 画布进行编写&#xff…

基于ARM架构openEuler系统通过qemu模拟器自动安装启动ARM架构的openEuler虚拟机

【原文链接】基于ARM架构openEuler系统通过qemu模拟器自动安装启动ARM架构的openEuler虚拟机 文章目录一、基础准备工作二、自动创建基于dhcp自动获取ip地址的openEuler虚拟机三、自动创建配置静态IP地址的openEuler虚拟一、基础准备工作 (1)下载ARM架构…

[附源码]Python计算机毕业设计Django校园订餐系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

【Linux|树莓派】分文件编程以及静态库动态库

一、分文件编程 简单来说树莓派的分文件编程就是将一个项目的代码放在不同的文件里面&#xff0c;然后在主函数添加一个头文件&#xff0c;这样会使#控制字体颜色主程序变得简单。 在编译的时候要将主函数和功能函数一起编译&#xff1a; 注意&#xff1a;include <stdio.h…

Matplotlib入门[04]——处理图像

Matplotlib入门[04]——处理图像 参考&#xff1a; https://ailearning.apachecn.org/Matplotlib官网 图片来源&#xff1a;百度&#xff08;如有侵权&#xff0c;立删&#xff09; 使用Jupyter进行练习 import matplotlib.pyplot as plt import matplotlib.image as mpimg imp…

【Java学习Note】第8章 多线程

8. 多线程 文章目录8. 多线程8.1 程序、进程、线程8.2 线程的创建8.2.1 继承Thread类-创建线程方法之一8.2.2 Thread常用方法8.2.3 实现Runnable接口-创建线程方法之二8.2.4 两种多线程的区别8.3 线程得调度8.4 线程的生命周期8.5 线程的同步8.5.1 线程同步--Synchronized8.5.2…

CUDA入门和网络加速学习(一)

0. 简介 最近作者希望系统性的去学习一下CUDA加速的相关知识&#xff0c;正好看到深蓝学院有这一门课程。所以这里作者以此课程来作为主线来进行记录分享&#xff0c;方便能给CUDA网络加速学习的萌新们去提供一定的帮助。 1. GPU与CPU区别 处理器指标一般主要分为两大类&…

使用react-grid-layout和react-full-screen实现一个可自定义和全屏展示的dashboard页面

文章目录使用react-grid-layout和react-full-screen实现一个可自定义和全屏展示的dashboard页面具体实现代码展示主展示页面懒加载组件组件加载时展示的组件dashboard菜单组件具体的图表组件Demo演示使用react-grid-layout和react-full-screen实现一个可自定义和全屏展示的dash…

【微服务】SpringCloud中OpenFeign请求处理及负载均衡流程

&#x1f496; Spring家族及微服务系列文章 ✨【微服务】SpringCloud中Ribbon的WeightedResponseTimeRule策略 ✨【微服务】SpringCloud中Ribbon的轮询(RoundRobinRule)与重试(RetryRule)策略 ✨【微服务】SpringCloud中Ribbon集成Eureka实现负载均衡 ✨【微服务】SpringCloud…

EMQ 宣布推出 LF Edge eKuiper 全新 Logo 标识

全球领先的开源物联网数据基础设施软件供应商 EMQ 映云科技宣布,即日起,将正式启用全新的 LF Edge eKuiper(以下简称 eKuiper)产品 Logo。焕然一新的 eKuiper 产品 Logo 标志着 EMQ 在不断提升品牌全球化战略之上,对于打造高性能、高可用、高安全的世界级开源软件产品的极致追求…

【1805. 字符串中不同整数的数目】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个字符串 word &#xff0c;该字符串由数字和小写英文字母组成。 请你用空格替换每个不是数字的字符。例如&#xff0c;"a123bc34d8ef34" 将会变成 " 123 34 8 34" 。注意…

面试题: LEAD 和 LAG 求每个用户的页面停留时长

我们先来看看这两个函数的语法&#xff1a; LEAD(col,n,default) OVER() 说明&#xff1a; 用于统计窗口内向下第n行的值参数1&#xff1a; 为要取值的列名参数2&#xff1a; 为向下第n行&#xff0c;默认值为1&#xff0c;这个值是固定的&#xff0c;不能动态的变化参数3&am…

深度学习-全卷积神经网络(FCN)

1. 简介 全卷积神经网络&#xff08;Fully Convolutional Networks&#xff0c;FCN&#xff09;是Jonathan Long等人于2015年在Fully Convolutional Networks for Semantic Segmentation一文中提出的用于图像语义分割的一种框架&#xff0c;是深度学习用于语义分割领域的开山之…

国际学校妈妈哭诉IB太难:中国孩子都不知道怎么答题?

听别人说考国际学校的IB体系相对简单直到我看到IB试题才知道其实IB一点都不容易特别对于中国学生有大量写论文的部分来看看IB的真题有些学生真的很难下笔不知道怎么答题啊&#xff01;商科生物 题目都是非常考验综合能力的&#xff0c;学生需要掌握很多知识点并融会贯通&#x…

cengbox2靶机(hydra爆破、公私钥免密登录)

环境准备 靶机链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;zdpr 虚拟机网络链接模式&#xff1a;桥接模式 攻击机系统&#xff1a;kali linux 2021.1 信息收集 1.arp-scan -l探测目标靶机ip 2.nmap -p- -A -T4 192.168.1.107 探测目标靶机开放端口和服务 …

Locust学习记录5-任务属性【Task】

Task 当负载测试开始时&#xff0c;将为每个模拟用户创建一个User类的实例&#xff0c;他们将开始在自己的绿色线程中运行。当这些用户运行时&#xff0c;他们选择他们执行的任务&#xff0c;休眠一段时间&#xff0c;然后选择一个新任务。 这些任务时普通的python可调用文件…

服务访问质量(QoS)介绍与技术 一

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。个人爱好: 编程&#xff0c;打篮球&#xff0c;计算机知识个人名言&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石…

K8S Pod控制器详细讲解

文章目录一、Pod控制器介绍二、ReplicaSet(RS)三、Deployment(Deploy)1.镜像更新&#xff1a;2.版本回退3.金丝雀发布/灰度发布四、Horizontal Pod Autoscaler(HPA)五、DaemonSet(DS)六、Job七、CronJob(CJ)结尾一、Pod控制器介绍 Pod是kubernetes的最小管理单元&#xff0c;在…

使用JAR签名进行代码签名

JavaArchive(JAR)包格式可用于打包Java应用程序和库。 签名的JAR文件可以选择包含来自TSA时间戳响应&#xff0c;使用RFC#3161格式。 添加JAR签名者添加JAR签名者的链接&#xff0c;SignServer中的JAR签名器称为JArchiveSigner。 要配置JArchiveSigner&#xff0c;请按照以下…