神经网络入门 /阮一峰

2019年-目前AI进展读后感 文章目录一、图像处理1.1 对象补全1.2 背景处理1.3 样式转换1.4 图像着色二、GAN 方法2.1 StyleGAN2.2 图像翻译2.3 人像翻译2.4 文本到图像生成三、视频生成3.1 运动传递3.2 脸部生成3.3 中国的实践3.4 视频渲染四、文本和声音处理4.1 语音合成4.2 **音乐合成**4.3 自动评论4.4 智能邮件五、个人总结 今天阅读了阮一峰 的 你所不知道的 A... 阅读详情

眼下最热门的技术,绝对是人工智能。

人工智能的底层模型是"神经网络"(neural network)。许多复杂的应用(比如模式识别、自动控制)和高级模型(比如深度学习)都基于它。学习人工智能,一定是从它开始。

什么是神经网络呢?网上似乎缺乏通俗的解释。

前两天,我读到 Michael Nielsen 的开源教材《神经网络与深度学习》(Neural Networks and Deep Learning),意外发现里面的解释非常好懂。下面,我就按照这本书,介绍什么是神经网络。

 

一、感知器

历史上,科学家一直希望模拟人的大脑,造出可以思考的机器。人为什么能够思考?科学家发现,原因在于人体的神经网络。

  1. 外部刺激通过神经末梢,转化为电信号,转导到神经细胞(又叫神经元)。
  2. 无数神经元构成神经中枢。
  3. 神经中枢综合各种信号,做出判断。
  4. 人体根据神经中枢的指令,对外部刺激做出反应。

既然思考的基础是神经元,如果能够"人造神经元"(artificial neuron),就能组成人工神经网络,模拟思考。上个世纪六十年代,提出了最早的"人造神经元"模型,叫做"感知器"(perceptron),直到今天还在用。

上图的圆圈就代表一个感知器。它接受多个输入(x1,x2,x3...),产生一个输出(output),好比神经末梢感受各种外部环境的变化,最后产生电信号。

为了简化模型,我们约定每种输入只有两种可能:1 或 0。如果所有输入都是1,表示各种条件都成立,输出就是1;如果所有输入都是0,表示条件都不成立,输出就是0。

二、感知器的例子

下面来看一个例子。城里正在举办一年一度的游戏动漫展览,小明拿不定主意,周末要不要去参观。

他决定考虑三个因素。

  1. 天气:周末是否晴天?
  2. 同伴:能否找到人一起去?
  3. 价格:门票是否可承受?

这就构成一个感知器。上面三个因素就是外部输入,最后的决定就是感知器的输出。如果三个因素都是 Yes(使用1表示),输出就是1(去参观);如果都是 No(使用0表示),输出就是0(不去参观)。

三、权重和阈值

看到这里,你肯定会问:如果某些因素成立,另一些因素不成立,输出是什么?比如,周末是好天气,门票也不贵,但是小明找不到同伴,他还要不要去参观呢?

现实中,各种因素很少具有同等重要性:某些因素是决定性因素,另一些因素是次要因素。因此,可以给这些因素指定权重(weight),代表它们不同的重要性。

  • 天气:权重为8
  • 同伴:权重为4
  • 价格:权重为4

上面的权重表示,天气是决定性因素,同伴和价格都是次要因素。

如果三个因素都为1,它们乘以权重的总和就是 8 + 4 + 4 = 16。如果天气和价格因素为1,同伴因素为0,总和就变为 8 + 0 + 4 = 12。

这时,还需要指定一个阈值(threshold)。如果总和大于阈值,感知器输出1,否则输出0。假定阈值为8,那么 12 > 8,小明决定去参观。阈值的高低代表了意愿的强烈,阈值越低就表示越想去,越高就越不想去。

上面的决策过程,使用数学表达如下。

上面公式中,x表示各种外部因素,w表示对应的权重。

四、决策模型

单个的感知器构成了一个简单的决策模型,已经可以拿来用了。真实世界中,实际的决策模型则要复杂得多,是由多个感知器组成的多层网络。

上图中,底层感知器接收外部输入,做出判断以后,再发出信号,作为上层感知器的输入,直至得到最后的结果。(注意:感知器的输出依然只有一个,但是可以发送给多个目标。)

这张图里,信号都是单向的,即下层感知器的输出总是上层感知器的输入。现实中,有可能发生循环传递,即 A 传给 B,B 传给 C,C 又传给 A,这称为"递归神经网络"(recurrent neural network),本文不涉及。

五、矢量化

为了方便后面的讨论,需要对上面的模型进行一些数学处理。

  • 外部因素 x1、x2、x3 写成矢量 <x1, x2, x3>,简写为 x
  • 权重 w1、w2、w3 也写成矢量 (w1, w2, w3),简写为 w
  • 定义运算 w⋅x = ∑ wx,即 w 和 x 的点运算,等于因素与权重的乘积之和
  • 定义 b 等于负的阈值 b = -threshold

感知器模型就变成了下面这样。

六、神经网络的运作过程

一个神经网络的搭建,需要满足三个条件。

  • 输入和输出
  • 权重(w)和阈值(b)
  • 多层感知器的结构

也就是说,需要事先画出上面出现的那张图。

其中,最困难的部分就是确定权重(w)和阈值(b)。目前为止,这两个值都是主观给出的,但现实中很难估计它们的值,必需有一种方法,可以找出答案。

这种方法就是试错法。其他参数都不变,w(或b)的微小变动,记作Δw(或Δb),然后观察输出有什么变化。不断重复这个过程,直至得到对应最精确输出的那组w和b,就是我们要的值。这个过程称为模型的训练。

因此,神经网络的运作过程如下。

  1. 确定输入和输出
  2. 找到一种或多种算法,可以从输入得到输出
  3. 找到一组已知答案的数据集,用来训练模型,估算w和b
  4. 一旦新的数据产生,输入模型,就可以得到结果,同时对w和b进行校正

可以看到,整个过程需要海量计算。所以,神经网络直到最近这几年才有实用价值,而且一般的 CPU 还不行,要使用专门为机器学习定制的 GPU 来计算。

七、神经网络的例子

下面通过车牌自动识别的例子,来解释神经网络。

所谓"车牌自动识别",就是高速公路的探头拍下车牌照片,计算机识别出照片里的数字。

这个例子里面,车牌照片就是输入,车牌号码就是输出,照片的清晰度可以设置权重(w)。然后,找到一种或多种图像比对算法,作为感知器。算法的得到结果是一个概率,比如75%的概率可以确定是数字1。这就需要设置一个阈值(b)(比如85%的可信度),低于这个门槛结果就无效。

一组已经识别好的车牌照片,作为训练集数据,输入模型。不断调整各种参数,直至找到正确率最高的参数组合。以后拿到新照片,就可以直接给出结果了。

八、输出的连续性

上面的模型有一个问题没有解决,按照假设,输出只有两种结果:0和1。但是,模型要求w或b的微小变化,会引发输出的变化。如果只输出0和1,未免也太不敏感了,无法保证训练的正确性,因此必须将"输出"改造成一个连续性函数。

这就需要进行一点简单的数学改造。

首先,将感知器的计算结果wx + b记为z。


z = wx + b

然后,计算下面的式子,将结果记为σ(z)。


σ(z) = 1 / (1 + e^(-z))

这是因为如果z趋向正无穷z → +∞(表示感知器强烈匹配),那么σ(z) → 1;如果z趋向负无穷z → -∞(表示感知器强烈不匹配),那么σ(z) → 0。也就是说,只要使用σ(z)当作输出结果,那么输出就会变成一个连续性函数。

原来的输出曲线是下面这样。

现在变成了这样。

实际上,还可以证明Δσ满足下面的公式。

即Δσ和Δw和Δb之间是线性关系,变化率是偏导数。这就有利于精确推算出w和b的值了。

(正文完)

AI Agent开发学习路线:从Python基础到工程化部署的12-18个月规划 这次我们来看一个面向2026年转行AI Agent开发者的学习路线规划。如果你正在考虑从其他技术领域转向AI Agent开发,或者想系统性地补充相关知识,这篇文章提供了一个可以直接照抄的保姆级学习路径。AI Agent作为当前AI应用落地的核心形态,正从概念验证走向规模化商用,掌握其开发能力意味着在未来的技术竞争中占据有利位置。 本文不会空谈概念,而是直接给出可执行的学习阶段、具体技术栈、推荐资源和实践项目。重点解决几个关键问题:AI Agent开发到底需要学什么?从零开始如何分阶段推进?每个阶段应该达到什 阅读详情

相关推荐

相似图像识别算法是什么,机器图像识别常用算法

这意味着,如果我们找到一个值,可以使得前景色和背景色各自的”类内差异最小”(minimizing the intra-class variance),或者”类间差异最大”(maximizing the inter-class variance),那么这个值就是理想的阈值。于是,可以得到类内差异 = w1(σ1的平方) + w2(σ2的平方)类间差异 = w1w2(μ1-μ2)^2可以证明,这两个式子是等价的:得到”类内差异”的最小值,等同于得到”类间差异”的最大值。具体的实例和Java算法,请看这里。

super67269的博客 2369

神经网络入门

神经网络入门 作者: 阮一峰 日期: 2017年7月13日 眼下最热门的技术,绝对是人工智能。 人工智能的底层模型是"神经网络"(neural network)。许多复杂的应用(比如模式识别、自动控制)和高级模型(比如深度学习)都基于它。学习人工智能,一定是从它开始。 什么是神经网络呢?网上似乎缺乏通俗的解释。 前

小丢的专栏 1175

动手深度学习笔记(三十四)6.4. 多输入多输出通道

动手深度学习笔记(三十四)6.4. 多输入多输出通道6. 卷积神经网络6.4. 多输入多输出通道6.4.1. 多输入通道6.4.2. 多输出通道6.4.3. 1×1 卷积层6.4.4. 小结6.4.5. 练习 6. 卷积神经网络 6.4. 多输入多输出通道 虽然我们在 6.1.4.1节中描述了构成每个图像的多个通道和多层卷积层。例如彩色图像具有标准的RGB通道来代表红、绿和蓝。 但是到目前为止,我们仅展示了单个输入和单个输出通道的简化例子。 这使得我们可以将输入、卷积核和输出看作二维张量。 当我们添加通

juluwangriyue的博客 2251

bp神经网络阈值如何确定,神经网络阈值是什么

也就是说,阈值不动或者不设置阈值,也是没有问题的,但是有了动态的阈值,那么学习得更快,效果更好另外,我个人见解,我觉得神经网络中的阈值违背了阈值的本意(除了作为应激函数的阈值函数),阈值是一个临界值或者某个范围,而A=f(wp+b)中的b具有的是是函数图形左右移动的功能,所以称之为偏差更合理。3、在matlab中命令行窗口中定义输入P,输出T,·通过“newff(minmax(P),[5,1]构建BP神经网络,“[net,tr]=train(net,P,T);不一定,也可设置为[-1,1]之间。...

shirley67269的博客 4971

基恩士PLC编程避坑指南:局部变量@前缀的3个隐藏陷阱与实战解决方案

本文深入剖析了基恩士PLC编程中使用@前缀创建局部变量的三大隐藏陷阱,包括在线调试时的数据丢失、数据类型冲突以及子程序复用时的地址覆盖问题。针对每个陷阱,提供了预定义变量、强类型规范和基址参数传递等实战解决方案,帮助中高级工程师提升代码健壮性与可维护性。

weixin_29171087的博客 103

用C++手把手教你连接SimNow期货模拟盘:从CTP API封装到第一个订单(附完整代码)

本文详细介绍了如何使用C++连接SimNow期货模拟盘,从CTP API的基础架构解析到实现第一个订单的完整流程。内容涵盖CTP API的封装、SimNow环境配置、交易通道实现、行情接收与处理等核心环节,并提供完整代码示例,帮助开发者快速掌握量化交易中的期货模拟盘连接技术。

weixin_27215337的博客 331

BP神经网络阈值

神经网络阈值

qq_39072304的博客 1786

一种车内UWB圆极化天线的理论推导及具体实现

本文详细描述了一款工作于UWB channel 9也即中心频率为7987.2MHz,带宽为499.2MHz的圆极化天线。首先是理论推导圆极化天线的物理尺寸参数,分析物理尺寸参数对天线性能指标的影响。然后分析圆极化天线在汽车驾驶室这种狭窄空间应用中带来的优势,也即可以最大化的极化损失多径,提高主径接收信号的信噪比。

weixin_44555637的博客 2966

神经网络权重更新的原理和方法——神经网络之softmax(7)

通过对本系列的学习,你可以全面的了解softmax的来龙去脉。如果你尚不了解神经网络,通过本系列的学习,你也可以学到神经网络反向传播的基本原理。学完本系列,基本神经网络原理就算式入门了,毕竟神经网络基本的网络类型就那几种,很多变种,有一通百通的特点。

石头的博客 4653

从Stereo-seq原始数据到Seurat对象:华大空间转录组分析流程实战解析

本文详细解析了从Stereo-seq原始数据到Seurat对象的完整分析流程,重点解决华大空间转录组数据处理中的三大痛点:bin_size参数设置、批量处理内存管理及格式转换信息丢失。通过Python的stereopy库和R的SeuratDisk包,实现.gem到.h5ad再到.h5seurat的高效转换,为研究者提供了一套可复用的空间转录组分析解决方案。

weixin_30315723的博客 218

Grok 3国内怎么用?超详细使用指南+实用指令模板

主要是用于快速分析学术论文,提取关键信息,总结研究成果。Analyze the following research paper: [粘贴或上传论文内容]1. Extract key findings, methodologies, and conclusions. (提取主要发现、方法和结论。2. Identify statistical significance and data points. (识别统计显著性和数据点。

Survivor_sl的博客 1万+

阮一峰网络日志 第32期 (1期--31期)

声明:链接及文章内容为原博主阮一峰原创。 期数: 32 期 日期:2018-11-23 http://www.ruanyifeng.com/blog/2018/11/weekly-issue-32.html 期数: 31 期 日期:2018-11-16   http://www.ruanyifeng.com/blog/2018/11/w...

weixin_30641465的博客 222

RT-DETR改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU等)

本文记录的是改进RT-DETR的损失函数,将其替换成。现有研究通过利用边界框之间的几何关系来提高回归性能,但忽略了困难样本和简单样本分布对边界框回归的影响。不同检测任务中困难样本和简单样本的分布不同,对于简单样本占主导的检测任务,关注简单样本的边界框回归有助于提高检测性能;对于困难样本比例较高的检测任务,需要关注困难样本的边界框回归。,提高检测器在不同检测任务中的性能。实现的。

Limiiiing的博客 1925

专业文科30年零基础学神经网络TensorFlow

辛辛苦苦大学毕业,走上外贸岗位。 外贸惨呐,白天联系车间生产,晚上回家和国外客户沟通。TMD老板还要求每天在alibaba发30个listing。你说好好的一个销售,有业绩不就行了,居然还有这种KPI,真是是可忍孰不可忍。不过这也难不倒我,拿出当年大航海时代,从伊比利亚半岛开船去北非海岸挖矿的精神,重新拾起按键精灵开始发产品。(看,谁说网游害人,大航海时代ol不就教会我用脚本采矿么。。。呃,呸,是...

earth9的博客 1038

基于simulink的多能源系统协同控制的复杂场景实例:氢燃料电池+锂电池混合动力电动汽车能量管理仿真

本文介绍了基于Simulink的氢燃料电池与锂电池混合动力电动汽车能量管理系统的建模与仿真方法。系统包含驾驶循环输入、氢燃料电池、锂电池、能量管理和电机驱动等模块,通过Simulink实现各模块的协同控制。文章详细说明了从模型创建到性能评估的完整流程,包括驾驶循环输入设置、燃料电池和锂电池子系统建模、能量管理策略设计等关键步骤。该仿真模型可验证不同工况下的系统响应和能量利用效率,为优化混合动力汽车的能量管理策略提供有效工具。通过引入更复杂的物理细节和环境因素,可进一步提升模型的实用性和准确性。

xiaoheshang_123的博客 368

matlab 显示曲面网格【2025最新版】

matlab点云工具箱对点云三维重建结果显示的函数。博客长期更新,本文最近更新时间为:2025年9月14日。

点云侠的博客 2581

自然语言 基础(一)

基础

www_jun的专栏 426

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

边缘检测综述

一.边缘检测综述 1.1基本概念介绍 开篇的一些废话…… 其实,这里面介绍的整体还是比较基础、偏向新手入门的概念,不过本身自己也对这个领域了解的没多少,可能写的并不怎么样,但是对于自己而言,确实也花了不少时间,在写这个文档的过程中,因为有很多不明白的地方,倒逼着我去查一些资料。这里需要感谢很多人在网上分享的优质的博客,以及学长、老师的对我疑问的解答,也希望这之后这里的介绍能够帮一些新人入门,日后他...

Gao_HongXiang 8677

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

莫烦tensorflow视频 和 LiYu's personal knowledge 和 sklearn

莫烦  https://morvanzhou.github.io/tutorials/machine-learning/ RNN LSTM 循环神经网络 (分类例子) 作者: 莫烦 编辑: 莫烦 2016-11-03 https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/  莫烦Keras 简介 https...

zzx3163967592的博客 281

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

HelloGitHub 第 89 期精选:41 个入门级开源项目全景解析

> 本文以《HelloGitHub》第 89 期([content/HelloGitHub89.md](https://link.gitcode.com/i/d767203e1bd15558952c2670c6e47873))为蓝本,逐条梳理本期收录的 41 个开源项目,覆盖 C/C++、C#、Go、Java、JavaScript、Python、Ruby、Rust、Swift、人工智能、其它工具与

gitblog_01122的博客 469

计算机专业的学生如何在寒假充电?要不在 GitHub 上清华?

大家好,我是 优快云 的头牌博主二哥呀! (请把厚颜无耻打在我们的留言区) 二哥的读者当中有很多大学生,这不有一个大一的小伙伴过来问二哥:“学校课程规划的比较奇怪,大一上学期学c++,下学期学python,在寒假我是应该复习或预习课内内容(python,c++),还是自己对外拓展呢(c,数据结构)?” 就冲这份爱学习的决心,三年后绝对互联网公司的 offer 拿到手软! 讲真,小伙伴学校安排的课程和我当年非常相似,也是大一上来就搞 Java,隔壁班上来就搞 C++,完全没有安排 C语言来过渡下。 所以我给

沉默王二 1万+

杂文

coding环境 首先,接触coding,你得有自己的一套开发环境,没有mac的同学我推荐Ubuntu 14.04,可以参考我的一篇blog ubuntu14.04安装及web环境的搭建,其次,就是世界上程序员最大的社交网站Github了,哈哈,关于如何配置自己的github可以参考github官网,也可以参考廖雪峰的git教程。 coding龙湖 在龙湖,搭好coding环境之

xualaleilei的博客 474

二进制的原码、反码和补码

本文内容约 1700 字,本文最先在公众号:善始者實繁克終者蓋寡中发出。 目录 反码 补码 重新回来 如何得到补码? 补码转为十进制 补码系统的数字表示方式 补码系统的用处 补码的原理 参考内容 重新回来 目前是一名在校的大一学生,有时想写些内容出来,但苦于脑子里没东西。提笔又落笔,迟迟没有内容产出。想起之前我还在这个公众号...

weixin_34327223的博客 927

开源许可证

引用:阮一峰的网络日志 转载于:https://www.cnblogs.com/cag2050/p/6750043.html

weixin_30646505的博客 72
上一篇: 介绍下我的腾讯云+社区专栏
下一篇: mailto协议的使用技巧
xosg
xosg 领域专家: 网络协议与安全技术领域 领域专家: 网络协议与安全技术领域
博客等级 码龄9年 1986粉丝 864原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值