Datawhale X 李宏毅苹果书 AI夏令营|机器学习基础之线性模型

本文主要是介绍Datawhale X 李宏毅苹果书 AI夏令营|机器学习基础之线性模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 线性模型

线性模型是机器学习中最基础和常见的模型之一。在线性模型中,预测变量(输入特征)和目标变量(输出)之间的关系被建模为一个线性组合。数学形式可以表示为:

其中:x 是输入特征向量,w 是权重向量,b 是偏置项,y 是模型的输出。

  • 线性回归:线性回归是一种典型的线性模型,用于预测连续的数值型输出。它直接使用线性关系来进行预测,目标是找到一组权重 w 和偏置 b,使得模型的输出尽可能接近真实值。通常使用均方误差(MSE)作为损失函数,最小化预测值与真实值之间的差异。

  • 逻辑回归:逻辑回归是一种用于二分类问题的监督学习方法。虽然名字中有“回归”二字,但逻辑回归实际上用于分类任务,而不是预测连续值。尽管用于分类任务,但它仍然属于线性模型,因为它的核心也是基于输入特征的线性组合。逻辑回归模型的核心计算部分仍然是一个线性函数:

然而,逻辑回归需要将这个线性组合 z 通过一个 Sigmoid 激活函数 σ(z) 转化为一个概率值(被限制在0到1之间,表示样本属于某一类的概率),以便进行分类,(使用对数损失(log loss):

2. Sigmoid函数

当输入值非常大或非常小时,Sigmoid函数会将其压缩到接近 111 或 000 的值,这使得它能够表示一种“激活”或“非激活”的状态。表达式:

当输入值非常大或非常小时,Sigmoid函数会将其压缩到接近 111 或 000 的值,这使得它能够表示一种“激活”或“非激活”的状态。

当x和y的关系非常复杂时使用sigmoid函数来逼近hard sigmoid函数,Hard Sigmoid函数是一种分段线性近似的Sigmoid函数。

1 epoch = see all the batches once

3. 模型变形ReLU

ReLU函数在输入为负时输出为零,而在输入为正时输出为输入本身。非线性,计算简单,缓解梯度消失问题。2个ReLU可以变成一个hard sigmoid,表达式:

ReLU函数的输出要么是 b+wx_1的值,要么是0.

ReLU 或者Sigmoid函数称为 激活函数(activation function)

引入Sigmoid和ReLU等激活函数后,线性模型本身仍然是线性的,但通过在神经网络中使用这些激活函数,模型可以实现非线性映射,从而具备表示非线性关系的能力。

激活函数(如Sigmoid和ReLU)的引入打破了线性模型的局限性。激活函数在神经网络中的作用主要体现在以下几个方面:

  • 非线性映射:激活函数将线性模型的输出经过非线性变换,使得每一层的输出不再是输入的线性组合,而是经过非线性变换后的输出。这种非线性映射允许模型捕捉更复杂的关系。
  • 神经网络的多层结构:通过多层神经网络,每一层的线性组合再加上非线性激活函数,可以将输入数据映射到更高维的空间,从而逐层捕捉数据中的复杂模式。理论上,足够深的网络可以拟合任何复杂的函数关系。(深度学习)

4. 怎么理解sigmoid或者ReLU作为神经元(neuron)?

生物神经元的功能

在生物学中,神经元(或神经细胞)是大脑和神经系统的基本单元。每个神经元通过接收来自其他神经元的输入信号(通常是化学或电信号),在达到一定阈值后,产生并传递一个新的信号给下游的神经元。这一过程可以简化为三个步骤:

  • 接收输入信号:神经元从其他神经元接收信号。
  • 整合信息:神经元将这些输入信号整合,并判断是否超过某个激活阈值。
  • 输出信号:如果整合后的信号超过阈值,神经元将产生并传递一个新的信号。

人工神经元模型

人工神经元是神经网络的基本构建块,它模拟了生物神经元的上述行为。一个典型的人工神经元模型包括以下几个部分:

  • 输入:人工神经元接收多个输入,每个输入有对应的权重。
  • 加权求和:所有输入乘以各自的权重,并累加到一起,加上一个偏置(bias)。
  • 激活函数:将加权求和的结果传递给一个激活函数,决定该神经元是否“激活”,即输出什么样的值。

激活函数的作用

激活函数在人工神经元中的作用类似于生物神经元的“激活”机制。具体来说,激活函数的主要功能是:

  • 非线性映射:激活函数将输入的线性组合(加权求和)转化为非线性输出。这使得神经网络能够拟合和表达复杂的非线性关系,这在多层神经网络中尤其重要。
  • 决定输出信号:激活函数决定了人工神经元的输出值,类似于生物神经元的激活和抑制过程。例如,当使用Sigmoid函数时,输出值被限制在0到1之间,类似于神经元是否“发火”的概念;当使用ReLU函数时,负输入直接被抑制为零,只有正输入才会传递到下一层。

Sigmoid和ReLU作为神经元的具体表现

  • Sigmoid神经元:Sigmoid激活函数将输入压缩到0到1之间,可以被看作是神经元的激活概率。它类似于生物神经元的“全或无”法则——如果输入超过某个阈值,神经元激活并输出一个信号(接近1);否则,输出接近0。
  • ReLU神经元:ReLU函数在输入为正时直接输出该值,为负时输出0。这类似于生物神经元只对强烈的刺激做出反应,弱刺激(或负值)被忽略。在深度神经网络中,ReLU神经元因其简单且计算效率高而广泛使用。

5. 机器学习框架

  • 写出一个含有未知数 $\theta $的函数,$\theta $代表函数中所有的未知参数。
  • 定义损失,损失也是一个函数,输入就是一组参数,来判断这组参数是否能让模型变得更好
  • 解一个优化问题,找到一个$\theta $,能够让损失越小越好。

这篇关于Datawhale X 李宏毅苹果书 AI夏令营|机器学习基础之线性模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126058

相关文章

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2