白话机器学习 - 感知机


神经网络的如果要用图来表示的话,应该就是下面这个样子的。最左边的是输入,最右边的是输出。然后中间有很多隐藏层。

这个图中隐藏层只有一层,但是大部分用于真实计算的神经网络,都会有很多隐藏层。

对于感知器的介绍,可以参考网络上的文章:
零基础入门深度学习(1) - 感知器

既然是白话,那么我们就用讲故事的方法来说一下。(假设读者已经阅读了上面的文章)
假设有一次考试,分为语文,数学,英语,满分都是100分。但是,语文,数学,英语占的权重(weight)不一样。同时,我们还需要根据考试难度,在最后总分上面,进行一些加分或者减分的调整(bias)。最后,根据一个标准(激活函数 Step Function)来定考试合格或者不合格(output)。
如果教务处说,我们是外国语学校,对于英语成绩比较看重,则我们给予这样的英语比较高的权重。
X1:语文成绩 W1:0.3
X2:数学成绩 W2:0.2
X3:英语成绩 W3: 0.5
然后,由于这次考试难度比较高,则每个人都加5分 (这个其实叫做 偏置项 bias)
X0 = 1 W0 = 5
成绩 = X0 * W0 + X1 * W1 + X2 * W2 + X3 * W3
然后,如果成绩为60分及以上则为合格。(激活函数 Step Function)
如果 成绩 >= 60 ,则合格
成绩 < 60 ,则不合格
OK,这样一个简单的感知机就做成了。在权重(W0,W1,W2,W3)和 Step Function(合格标准)定下来的时候,它可以根据输入(各科成绩),求得输出(是否合格)了。
例如:
语文成绩 50 * 0.3 = 15
数学成绩 40 * 0.2 = 8
英语成绩 80 * 0.5 = 40
附加分 5
成绩 15 + 8 + 40 + 5 = 68 =>合格
语文成绩 80 * 0.3 = 24
数学成绩 50 * 0.2 = 10
英语成绩 40 * 0.5 = 20
附加分 5
成绩 24 + 10 + 20 + 5 = 59 => 不合格
当然,一般来讲,感知机往往是激活函数(StepFunction)是事先决定的,作为训练数据的输入,输出是已知的,权重则是需要通过机器学习来获得的。我们的例子中,合格标准是事先决定的,60分及格,然后给出一部分数据:某些人的语文成绩,数学成绩,英语成绩 ,是否合格,然后通过机器学习,将各科的权重计算出来,获得一个模型。然后利用这个模型,通过输入 语文成绩,数学成绩,英语成绩,来判定是否合格。
当然,如果在训练数据比较少的时候,这个权重可能计算的不是很准确,数据越多,权重越准确。
语文成绩 50 数学成绩 40 数学成绩 40 附加分 5 合格
语文成绩 80 数学成绩 50 数学成绩 40 附加分 5 不合格
能够满足这样条件的权重有很多很多,所以机器学习的结果可能不是很好。
但是如果有足够的数据,则权重的计算结果则会非常理想。
最后再回来说一下,为什么叫感知机,其实最简单的,最原始的时候,感知机的输出就是 0(不合格) 或者 1(合格).结果能被感知,或者不能被感知。当然,随着研究的深入,则输出形式也越来越丰富了,不仅限于是否,也可以是数值或者其他形式的东西。例如,感知机做线性回归的时候,则是数值作为输出。
关注公众号 TensorFlow教室 深度学习,机器学习,自然语言处理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2012-03-22 MongoCola使用教程 1 - MongoDB的基本操作和聚合功能