吴恩达2022机器学习专项课程C2(高级学习算法)W1(神经网络):2.2 需求预测

目录

一元特征案例:单个神经元

1.需求

给定一个输入特征:价格,预测T恤是否畅销。

2.单个神经元实现需求

将逻辑回归的sigmoid函数看成一个神经元,神经元接收输入的价格,通过公式计算并输出数字a。或者把神经元看成一台微型计算机,唯一的作用就是输入一个或几个数字,通过计算输出一个或几个数字。

3.激活值

神经科学术语,表示一个神经元向下游其它神经元发送高输出的程度。示例中神经元的预测值就称为a,表示激活值。

多元特征案例:神经网络

1.需求

给定四个输入特征:T恤价格(price),运输成本(shipping cost),营销能力(marketing),面料质量(material),预测T恤是否畅销(probability of being a top seller)。

2.原始特征生成新特征

通过四个特征转换出三个新特征:T恤可负担性(affordability),T恤知名度(awareness),感知质量偏见,也就是感觉T恤质量如何(perceived quality)。

3.新特征构建多个神经元

  • 构建人工神经元,给定T恤价格(price)和运输成本(shipping cost),通过神经元预测人们是否可负(affordability)。
  • 构建人工神经元,给定营销能力(marketing),通过神经元预测T恤知名度(awareness)的高低。
  • 构建人工神经元,给定T恤价格(price)和面料质量(material),通过神经元预测人们是否认为T恤质量好坏(perceived quality)。
  • 构建人工神经元,给定T恤可负担性(affordability),T恤知名度(awareness),感知质量偏见(perceived quality),通过神经元预测T恤是否畅销(probability of being a top seller)。

4.神经元的访问范围

神经元可以从输入层中访问每一个特征。

5.构建层

  • :"层"(layer)由一个或多个神经元组成。输入相同或相似特征,然后一起输出几个数字。
  • 输入层:神经网络的第一层,接收原始数据,参考示例中黄颜色标记的四个特征列。
  • 输出层:神经网络最后一层,将前面层的处理结果转化为最终的预测输出,参考示例中粉颜色的神经元。
  • 隐藏层:介于输入层和输出层之间的一层或多层神经元。由于隐藏层输出的内容不在训练集数据中,因此被称为隐藏,参考示例中间蓝色三个蓝色标记的神经元的那层。
  • 激活项 :T恤可负担性(affordability),T恤知名度(awareness),感知质量偏见(perceived quality)被称为三个神经元那一层的激活项。最终预测是否畅销的概率是输出层的激活项。

6.简化激活值

输入层的4个特征转换为向量x。中间这一层输出的3个激活值被转换成向量a。

另一种视角查看多元特征案例

1.神经网络看成逻辑回归

遮盖左侧部分,此神经网络变成一个逻辑回归问题:神经元接收T恤可负担性(affordability),T恤知名度(awareness),感知质量偏见(perceived quality)作为特征,预测T恤是否畅销。

2.自动学习特征

神经网络可以根据原始特征自动学习到更好的特征集,无需手动设计特征。当你从数据中训练它时,你不需要明确决定其他特征,如可负担性等,神经网络应该计算什么,或者自己弄清楚这个隐藏层想要使用的是哪些特征。

多元特征案例小结

输入层有一个特征向量,这个例子中是四个数字,向量特征x被输入到隐藏层,隐藏层计算并输出的3个激活值,3个激活值使用一个向量表示,该向量给输出层计算,输出层输出1个数字,即最终概率。

神经网络案例:多个隐藏层

1.案例:神经元数量较少

  • 1个输入特征向量X,它被送到1个隐藏层,称为第1个隐藏层。
  • 如果第1个隐藏层有3个神经元,则输出1个向量,包含3个激活值。此向量输入到第2个隐藏层。
  • 如果第2个隐藏层有2个神经元,则输出1个向量,包含2个激活值。此向量发送到输出层。
  • 输出层接收向量,输出神经网络的最终预测。

2.案例:神经元数量较多

3.神经网络的架构与性能

确定神经网络的架构,需要设计隐藏层数量和每个隐藏层有多少神经元。选择不同的隐藏层数量和每层隐藏神经元的数量可以影响学习算法的性能。

4.多层感知机

一些文献中将具有多个隐藏层的神经网络称为多层感知机,通常是指像幻灯片中展示的具有多层结构的神经网络。

总结

一个神经元可以看成一个逻辑回归模型,每个神经元输出的数值称为激活项或激活值。多个神经元组合在一起为一个层,多个层组合在一起就是神经网络。层可以分为输入层,隐藏层,输出层。隐藏层可以有多个。每个层输出值的数量等同于每层神经元的数量,输出的激活值可以简化成一个向量。设计一个神经网络,要关注隐藏层数量以及隐藏层中神经元的数量,这些数量的多少影响着神经网络的性能。

相关推荐
eric-sjq3 小时前
10 分钟实战:用 0.6B 本地模型生成中文网页(WanlyFrontend + 编译器全流程)
javascript·机器学习·自然语言处理·html
To_OC3 小时前
LC 438 找到所有字母异位词:暴力超时后,我靠滑动窗口一招搞定
javascript·算法·leetcode
Forever Nore6 小时前
学完C语言力扣第一题做不来正常吗
数据结构·算法
hansang_IR7 小时前
【题解】LC:倍增 / 区间并查集(Range Parallel Unionfind)
c++·算法·并查集
圆奋奋7 小时前
FreeRTOS学习(三)- 任务调度模块
学习·开源·freertos
吃着火锅x唱着歌8 小时前
Effective C++ 学习笔记 条款40 明智而审慎地使用多重继承
c++·笔记·学习
Tisfy8 小时前
LeetCode 3731.找出缺失的元素:哈希 / 排序
算法·leetcode·哈希算法·排序·哈希表
xian_wwq8 小时前
【学习笔记】Prompt Engineering 没死,只是它不再够用了-2/16
笔记·学习·prompt
lucas_AI8 小时前
Q-CueGraph:你的多模态大模型会 zoom,但真的知道该看哪儿吗?
人工智能·算法