吴恩达机器学习-第二课-第一周

吴恩达神经网络

学习视频参考b站:吴恩达机器学习
本文是参照视频学习的随手笔记,便于后续回顾

神经网络(Neural Networks

发展历程
image

神经元和大脑(Neurons and the brain)

多个树突接受信号,通过轴突把信号传给下一个神经元
通过软件模仿大脑工作,但大脑实际怎么工作的人们并不清楚,只是模仿
image
神经网络存在几十年了,因为近些年数据量激增所以发展起来了
image

需求预测(Demand Prediction)

T桖销售模型
只有一个价格输入,每一层的输出由a来表示
image
多个输入,输入层->隐藏层(可能有很多层)->输出层
可能一个神经元有多个输入,判断哪些输入是不必要的,降低其影响
image
多个隐藏层示例,你需要决定有多少层隐藏层每一层有多少神经元(后面会讲)
image

图像认知示例(Recognizing Images)

图像在计算机中的储存
image
人像认知
早些层可能在认识某些线条,中间层可能在认识某些器官像是眼睛、鼻子,后面层可能在认识不同脸部
每一层认识的窗口越来越大
image
车辆认知
image

神经网络层的工作原理(Neural network layer

细节与符号表示

上标数字表示层,下标数字表示第几个神经元
image
前一层的输出是后一层的输入
image
最后一个输出通过条件判断,输出对应标签
image

更复杂的神经网络

image

Question

image
Answer:one
输入向量x又可以称为a0(上标0表示第0层)
image

神经网络向前传播(Forward Propagation)

计算a1,因为第一层有25个神经元,所以有25个输出
image
计算a2,因为第一层有15个神经元,所以有15个输出
image
计算a3,因为第一层有1个神经元,所以有1个输出,最终可以通过a3的值判断,因此输出不同的标签
image

TensorFlow

如何用代码实现推理(use TensorFlow)

烤咖啡豆模型
不同温度、与持续时间控制咖啡豆是否烤的好
image
通过代码实现:
Dense表示第几层,units表示神经元数,activation表示激活函数,最后用a来接收每一层输出
image
数字分类模型代码实现
image

TensorFlow中的数据表示方式(与numpy相互转换)

numpy中的记录
两个方框表示矩阵(二维数组),一个方框表示一维数组
image
方框中的方框表示第几行,逗号分隔第几行第几个元素
image
TensorFlow中是用矩阵表示数据的
image
代码中实际得到的向量是用矩阵表示的
nsorFlow和NumPy数据表示不同,但可以用Tensor或numpy方法相互转换
image
image

搭建一个神经网络

简单版本
image
现在可以通过Sequential方法将多个层构建成一个神经网络model
然后通过compile编译,fit拟合来训练模型(之后会讲),之后通过predict预测输入值所对应的输出
image
数字分类模型示例
image
可以直接把每层的定义放入Sequential函数中,不用单独定义
image

单个网络层上的向前传播

image

向前传播的一般实现(NumPy)

W的列数是3,所以units为3,然后通过下面的循环计算输出值a
image

Is there a path to AGI?

AI的分类(ANI or AGI)

image
image
大脑的同一区域通过不同的输入学会做不同的事(如何通过算法实现?)
image

神经网络为何如此高效

循环与向量化对比

通过matmul函数实现矩阵乘法,比循环更高效
image

矩阵乘法(线代基础---有基础直接过)

点积:一一对应相乘,然后加起来
转置:矩阵行列互换
矩阵乘法规则:有矩阵A,B,求A×B,A的列数与B的行数要相等,得到A的行数×B的列数的矩阵
image
image
image
image
image

矩阵乘法代码实现

使用matmal函数和@效果一样,一般使用前者
image
向量化
image

Summary

本周学习内容如下:
1.神经网络的发展历程,神经元和大脑,神经网络模型
2.图像认知示例
3.神经网络的工作原理神经网络的向前传播
4.如何用代码实现推理
5.TensorFlow和NumPy对于数据的不同表示方式
6.搭建一个神经网络向前传播的实现
7.AI的分类,神经网络为何如此高效,矩阵乘法与代码实现

posted @ 2024-04-12 14:41  猫猫不会吃芋头  阅读(36)  评论(0)    收藏  举报