一篇文章带你入门机器学习 Part1 -->Machine Learning from Scratch

news2024/9/28 3:30:10

学习网站:Machine Learning from Scratch

Machine Learning from Scratch (Part1神经网络)

  • 神经网络——Neural Networks
  • 神经网络是如何工作的?
  • 训练神经网络

神经网络——Neural Networks

在人工神经网络的背景下:一个神经元是一个简单的单元,它持有一个数值。这个数值被称为它的"激活值"。

一个神经网络可以做什么
神经网络由许多神经元组成,这些神经元被组织成不同的层。通常有三种类型的层,输入层(Input layer)、隐藏层(Hidden layer(s))、输出层(Output layer)。

一个神经网络可以做什么
一个人工神经网络是一个统计模型,它从训练数据中学习模式,应用于新的、未见过的数据。

神经网络是如何工作的?

神经元之间的联系

每一层中的每个神经元都与下一层的所有神经元有联系。每一个联系的强度被称为“权重。在训练过程中,这些权重被调整以识别数据中的模式。”。

神经元的激活是如何决定的

一个神经元的激活值是基于,前一层所有神经元的激活值,和连接到那些神经元的权重。

神经元的工作原理

将每个传入的激活值乘以其相应的权重,然后将这些所有的乘积相加,最后添加一个称为“偏置”的特殊值。

偏置的作用

偏置有很有重要的作用,这使得神经元能够调整对输入的敏感度,正偏置使得神经元更有可能被激活,负偏置使得神经元不太可能被激活。
激活函数
在计算加权之后,我们应用一个激活函数,常用的选择包括:

  • Sigmoid 函数:将输出映射到0和1之间的范围。
  • ReLU(修正线性单元):如果输入为正,则输出输入;否则输出0。

如下图中,ReLu函数:
在这里插入图片描述
ReLu函数是更受欢迎的,因为它有助于网络更高效地学习。

训练神经网络

现在我们已经了解了神经网络的基本结构和运作方式,接下俩让我们来看一下它是如何学习的。

前向传播——Forward Propagation

即通过神经网络传递输入以获得输出的过程:从输入层开始,对于每个后续层:计算每个神经元的加权和并应用激活函数,重复上述步骤直到我们到达输出层。

测试性能:损失函数

为了训练我们的网络,我们需要衡量它的性能如何。我们通过损失函数来做到这一点。
如图所示以上步骤:
将网络的输出与期望的输出进行比较—>计算差异,将这个差异平方(以使所有值变为正数)—>将所有输出神经元的这些平方差相加。

这个结果被称为“损失”。损失越小,网络的性能就越好。

梯度下降和反向传播
为了提高网络的性能,我们需要调整其权重和偏差。
我们使用两个关键概念即梯度下降和反向传播来做到这一点。

他们的工作原理如下:

计算损失函数的梯度,这告诉我们改变每个权重和偏差如何影响损失。
在减少损失的方向上更新权重和偏差。重复这个过程很多次。

梯度下降

梯度下降法是最小化成本函数的优化算法。我们使用梯度来更新/调整权重和偏差,以最小化成本的方向进行。
我们寻找成本函数的负梯度,它告诉我们如何改变权重和偏差,以最有效地减少成本。

反向传播

反向传播机制,它来确定每一个单样本如何调整权重和偏差,而不仅仅是它们应该向上还是向下,而是在什么相对比例下这些变化能够最快地减少成本。

梯度的大小表示成本函数对每个权重和偏差的敏感度。
例如,你有梯度 [3.2, 0.1]。调整具有梯度3.2的权重导致的成本变化是调整具有梯度0.1的权重时成本变化的32倍。

激活函数的影响因素为以下三点:

1. 改变偏差的值
2. 按照其激活程度成比例地增加权重(激活越大,变化越大)。
3. 改变前一层所有激活值,按照其权重成比例地改变(权重越大,变化越大)。

(但我们不能直接影响激活值本身,只能影响权重和偏差。)

“反向传播”:反向传播是从最后一层向第一层应用的。

∂C/∂w = ∂C/∂a × ∂a/∂z × ∂z/∂w

其中 C 代表成本,w 代表权重,a 代表激活值(神经元的输出),z 代表加权和(神经元输入,激活前)。
这告诉我们如果我们稍微调整某个特定权重w,误差C会如何变化。
它指示了权重变化的方向。如果导数是正的,减小权重将减少误差,反之亦然。
它的大小告诉我们误差对这种权重变化的敏感程度。较大的幅度 = 权重对误差的影响更大。


调整权重和偏差,使得每个权重和偏置的平均微调是成本函数的负梯度。

(当我们训练一个神经网络时,我们的目标是最小化一个成本函数,这个函数衡量了模型预测值和真实值之间的差异。梯度是一个向量,指向成本函数增加最快的方向。因此,如果我们想要减少成本,我们需要朝着梯度的反方向调整权重和偏置,这就是所谓的“负梯度”。通过这种方式,我们可以逐步优化网络的参数,使模型的预测更加准确。)

对于这里的平均微调

以这张图片为例,表格的第一行包含了多个手写数字的图像(2, 5, 0, 4, 1, 9)。这些图像代表了用于训练神经网络的数据。表格的左侧列展示了不同的权重(w0, w1, w2, …, w13,001)。表格的内容则展示了这些权重在每个训练样本(手写数字)上的调整值。

对于权重w0,在第一个训练样本(数字2)上的调整值是-0.08,在第二个训练样本(数字5)上的调整值是+0.02,依此类推。
对于权重w1,在第一个训练样本(数字2)上的调整值是-0.11,在第二个训练样本(数字5)上的调整值是+0.11,依此类推。

右侧展示了这些调整值在所有训练数据上的平均值。例如,权重w0的平均调整值是-0.08,权重w1的平均调整值是+0.12
这些平均调整值可以用于更新神经网络的权重和偏置,以最小化成本函数,从而提高模型的性能。

训练神经网络的步骤
将所有步骤结合起来:

训练神经网络涉及多次重复以下步骤:

1.前向传播:将输入传递通过网络。
2.计算损失:衡量输出结果与预期结果的偏差。
3.反向传播:计算如何调整权重和偏置。
4.更新权重和偏置:进行小幅度调整以提升性能。
经过多次迭代,网络逐渐学会识别训练数据中的模式,并能够将这些知识应用于新的、未见过的数据。

ok,下图就是上面写到的一些内容简化版了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

046全排列

题意 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 提示&#xff1a; 1 < nums.length < 6 -10 < nums[i] < 10 nums 中的所有整数 互不相同 难度 中等 示例 示例 1&#xff1a; 输入&#xff1…

uniapp+若依 开发租房小程序源码分享

1、使用Uniapp开发的前台&#xff0c;基于 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到iOS、Android、Web&#xff08;响应式&#xff09;、以及各种小程序 2、基于SpringBoot的权限管理系统&#xff0c;易读易懂、界面简洁美观。 核心…

WordBN字远笔记!更新1.2.2版本|Markdown编辑器新增高亮功能,界面新增深色模式

WordBN字远笔记1.2.2版本更新描述 WordBN字远笔记在1.2.2版本中进行了多项重要的更新与改进&#xff0c;旨在提升用户的编辑体验和视觉舒适度。 以下是本次更新的两大亮点&#xff1a;Markdown编辑器新增高亮功能以及界面新增深色模式。 1. Markdown编辑器新增高亮功能 在1…

零倾覆力矩点(ZMP)

系列文章目录 前言 在机器人学中&#xff0c;零倾力矩点&#xff08;ZMP&#xff09;是一个特征点&#xff0c;主要用于足式运动。在下文的一些假设中&#xff0c;我们将看到&#xff0c;它非正式地代表了一个系统接触反作用力的结果点。例如&#xff0c;下图中的刚体处于静态平…

leetcode:布尔运算(动态规划版)

最近又要考试&#xff0c;勉励自己复习一些之前学过的&#xff01;&#xff01;&#xff01; 开始使用的是DFS&#xff0c;遍历所有可能的情况&#xff0c;发现超时&#xff01; 下面的是动态规划的一个模板&#xff0c;dp[i][j][result]表示从s的第i个元素到第个元素&#xf…

Auracast认证:蓝牙广播音频的革新之旅

低功耗音频&#xff08;LE Audio&#xff09;技术的突破&#xff0c;为蓝牙世界带来了前所未有的广播音频功能。Auracast™&#xff0c;作为蓝牙技术联盟精心打造的音频广播解决方案&#xff0c;正引领着一场全新的音频分享革命。它不仅革新了传统蓝牙技术的局限&#xff0c;更…

HuggingFace Embedding 转为 Ollama Embedding

Ollama 是基于 LlamaCpp 开发的 CPU 上的推理引擎&#xff0c;通过 LlamaCpp 提供的脚本可以将大语言模型装换为 gguf 的二进制跟是文件&#xff0c;从而通过 Ollama 就行推理。Ollama 支持HuggingFace 大多开源模型&#xff0c;例如 Llama、Qwen、Gemma 和 Phi3 等等。 GGUF …

【Leetcode:2848. 与车相交的点 + 模拟计数】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

软件研制功能点拆分

最近需要进行软件研制概算明细表中的估算对象原始功能点&#xff0c;记录一下学习过程&#xff0c;共有EI(external input 外部输入)、EO(外部输出)、EQ(外部查询)、ILF(internal logic 内部逻辑文件)、EIF(外部接口文件)五个。 功能点计数项分为数据功能&#xff08;逻辑文件&…

【数据仓库】数据仓库常见的数据模型——范式模型

目录 一、范式 1、第一范式 2、第二范式 3、第三范式 4、进一步范式化&#xff1a;BCNF、4NF 和 5NF 简介 &#xff08;1&#xff09;Boyce-Codd 范式&#xff08;BCNF&#xff09; &#xff08;2&#xff09;第四范式&#xff08;4NF&#xff09; &#xff08;5&#x…

光华里社区“电亮生活”行动:智能科技携手志愿温情,老旧小区焕发新生机

在朝阳区建外街道光华里社区&#xff0c;一场关于“电”的革命正悄然改变着居民的生活面貌。面对老旧小区普遍存在的电力设施陈旧、线路老化、电压不稳等老大难问题&#xff0c;社区党委没有坐视不管&#xff0c;而是携手北京中兴物业管理有限公司广联物业管理中心党支部&#…

泽众P-One性能测试平台支持分布式全链路压测

在当今数字化转型加速的时代&#xff0c;高性能、高可用性的系统已成为企业竞争力的核心要素之一。为了确保系统能够在高并发、大数据量的环境下稳定运行&#xff0c;分布式全链路压测成为了不可或缺的一环。P-One凭借其强大的功能&#xff0c;支持分布式全链路压测&#xff0c…

什么是 SMB 服务器以及它如何工作?

在本文中&#xff0c;您将了解 SMB 服务器以及它们如何促进网络文件共享。 我们将介绍它们的基本功能、主要特性以及如何安全地设置它们。无论您是新手还是需要复习&#xff0c;本指南都将帮助您更好地了解 SMB 服务器。 什么是 SMB 服务器&#xff1f; SMB&#xff08;服务器…

day19JS-AJAX数据通信

1. 什么是AJAX 原生生js中有两种通信&#xff0c;一个ajax&#xff0c;还有一个是fetch。 AJAX 并不是编程语言&#xff0c;是一种从网页访问 Web 服务器的技术。AJAX 代表异步 JavaScript 和 XML。 AJAX 使用浏览器内建的 XMLHttpRequest 对象从 web 服务器请求数据&#xff0…

【开放词汇检测】MM-Grounding-DINO论文翻译

摘要 Grounding-DINO 是一种先进的开放式检测模型&#xff0c;能够处理包括开放词汇检测&#xff08;Open-Vocabulary Detection&#xff0c;OVD&#xff09;、短语定位&#xff08;Phrase Grounding&#xff0c;PG&#xff09;和指代表达理解&#xff08;Referring Expressio…

Java多线程——模拟接力赛跑

题目&#xff1a; 多人参加1000米接力跑 每人跑100米&#xff0c;换下个选手 每跑10米显示信息 解题思路&#xff1a; 1.必须要用到多线程的锁&#xff0c;否则就会出现三个选手乱跑的情况&#xff0c;我们需要一个一个跑 2.使用给oneRunner上锁的方式更细的控制资源比直接给…

qt画板v1.0

qt图形视图做的一个工具&#xff0c;具备画板功能&#xff0c;对初学习有很大作用

搭建内网文件服务器(FTP),以及实现内网Gitee

一、实现windows搭建FTP&#xff0c;实现文件共享和管理 具体步骤&#xff1a; 1.打开控制面板&#xff0c;搜索功能 2.打开这几个配置 3.打开IIS&#xff0c;添加FTP站点即可 二、实现内网Gitee 参考博客&#xff1a; Gitblit服务器搭建及Git使用-CSDN博客 jdk1.8.0的安…

关系数据库(1,2)

目录 关系 域 笛卡尔集 元组 分量 基数 码 关系模式 关系模式的表示方式 关系数据库 基本关系操作 完整性 关系 单一的数据结构&#xff0c;二维表是一个逻辑结构&#xff0c;关系模型建立在集合代数的基础上。 域 指具有相同数据类型的集合。 笛卡尔集 笛卡尔集是…

独立站建站及运营经验分享

什么是独立站 了解过跨境电商的朋友肯定都知道&#xff0c;跨境电商其实分两种&#xff0c;一种是入驻平台&#xff0c;一种是做独立站。平台例如亚马逊&#xff0c;速卖通&#xff0c;Lazada&#xff0c;国内就是京东淘宝&#xff0c;他们都属于平台&#xff0c;但平台的劣势…