吴恩达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.多层感知机

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

总结

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

相关推荐
小帅学编程9 分钟前
JDBC学习
数据库·学习·oracle
业精于勤的牙23 分钟前
最长特殊序列(二)
java·开发语言·算法
其美杰布-富贵-李32 分钟前
Python 反射完整学习笔记
笔记·python·学习·反射
yong999034 分钟前
C#实现OPC客户端与S7-1200 PLC的通信
开发语言·网络·算法·c#
yaoh.wang40 分钟前
力扣(LeetCode) 111: 二叉树的最小深度 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·深度优先
charlie11451419142 分钟前
快速在WSL上开发一般的C++上位机程序
开发语言·c++·笔记·学习·环境配置·工程
我命由我123451 小时前
CSS 锚点定位 - 锚点定位引入(anchor-name、position-anchor)
开发语言·前端·javascript·css·学习·html·学习方法
啊阿狸不会拉杆1 小时前
《数字图像处理》第 11 章 - 特征提取
图像处理·人工智能·算法·计算机视觉·数字图像处理
ekprada1 小时前
Day 47 - 注意力热力图 (Attention Heatmap)
人工智能·机器学习
Yeats_Liao1 小时前
MindSpore开发之路(八):数据处理之Dataset(上)——构建高效的数据流水线
数据结构·人工智能·python·机器学习·华为