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

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

总结

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

相关推荐
GFCGUO4 分钟前
ubuntu18.04运行OpenPCDet出现的问题
linux·python·学习·ubuntu·conda·pip
Indigo_code1 小时前
【数据结构】【顺序表算法】 删除特定值
数据结构·算法
丝丝不是土豆丝2 小时前
学习 CSS 新的属性 conic-gradient 实现环形进度条
学习
阿史大杯茶2 小时前
Codeforces Round 976 (Div. 2 ABCDE题)视频讲解
数据结构·c++·算法
S hh2 小时前
【Linux】进程地址空间
java·linux·运维·服务器·学习
LluckyYH2 小时前
代码随想录Day 58|拓扑排序、dijkstra算法精讲,题目:软件构建、参加科学大会
算法·深度优先·动态规划·软件构建·图论·dfs
转调2 小时前
每日一练:地下城游戏
开发语言·c++·算法·leetcode
wusam2 小时前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习04(环境准备)
学习·docker·centos
攸攸太上2 小时前
Spring Gateway学习
java·后端·学习·spring·微服务·gateway
不穿格子衬衫3 小时前
常用排序算法(下)
c语言·开发语言·数据结构·算法·排序算法·八大排序