神经网络和深度学习第二周 神经网络基础

2.1 二分分类
神经网络和深度学习第二周 神经网络基础_第1张图片
神经网络和深度学习第二周 神经网络基础_第2张图片

2.2 logistic 回归
我们这门课不用红色笔写的表示方法,而是把w,b看成两个独立的参数训练他们
神经网络和深度学习第二周 神经网络基础_第3张图片

2.3 logistic回归损失函数
神经网络和深度学习第二周 神经网络基础_第4张图片

2.4 梯度下降法
写代码时,用dw或db表示导数。
如果函数变量超过两个,就用花体倒e表示偏导;如果函数只有一个变量,就用d表示导数。
神经网络和深度学习第二周 神经网络基础_第5张图片

2.5 导数
导数的定义,表示斜率

2.6 更多导数的例子
导数讲解

2.7 流程图
流程图是从左到右的计算
神经网络和深度学习第二周 神经网络基础_第6张图片

2.8 流程图的导数计算
链式法则求导

2.9 logistic回归中的梯度下降法
神经网络和深度学习第二周 神经网络基础_第7张图片
神经网络和深度学习第二周 神经网络基础_第8张图片

2.10 m个样本的梯度下降
这里的J,dw1,dw2,db是作为累加器出现的,所以没有(i)。这一页PPT是一次梯度下降的内容。这里面有两个循环,一个是外面的for从1到m的循环,一个是对每个特征求导数的从1到nx的循环(这里只有两个特征就没有写循环),可以通过向量化的方法摆脱显式的循环。
神经网络和深度学习第二周 神经网络基础_第9张图片

2.11 向量化
神经网络和深度学习第二周 神经网络基础_第10张图片
jupyper notebook: shift+enter执行
神经网络和深度学习第二周 神经网络基础_第11张图片
神经网络和深度学习第二周 神经网络基础_第12张图片
可以看到用向量化的方法之后耗时少了很多

2.12向量化的更多例子
神经网络编程指导:for循环能不用就不用。
神经网络和深度学习第二周 神经网络基础_第13张图片
神经网络和深度学习第二周 神经网络基础_第14张图片

2.13向量化logistic回归
向量X是每个训练集x(i)横向堆叠得到的,Z也是z(i)的横向堆叠。
b是实数,但是在python中它和1m的向量相加时,会自动成为1m个向量,这叫python的广播。
神经网络和深度学习第二周 神经网络基础_第15张图片

2.14 向量化logistic回归的梯度输出
通过向量化来去掉另一个循环,完成梯度下降的一次迭代(遍历所有训练集):
神经网络和深度学习第二周 神经网络基础_第16张图片
神经网络和深度学习第二周 神经网络基础_第17张图片

2.15 python中的广播
神经网络和深度学习第二周 神经网络基础_第18张图片
求出每种事物的碳水化合物,蛋白质,脂肪占这种事物100g的总卡路里的百分比。
第一行python代码:求得每列的和,得到四个数字;第二行代码让四列每一列都除以对应的和,就得到了答案。
axis=0代表横向求和,axis=1代表竖向。
通过第一行代码cal已经是一个14的矩阵了,不需要调用.shape(1,4)命令,但是这个命令is very cheap to call,所以可以通过它来确保矩阵的形状size是你想要的。
所以第二行代码是让一个3
4的矩阵除以一个1*4的矩阵。
神经网络和深度学习第二周 神经网络基础_第19张图片
神经网络和深度学习第二周 神经网络基础_第20张图片
更一般的形式:
神经网络和深度学习第二周 神经网络基础_第21张图片

2.16 关于python/numpy向量的说明
python可以让我们写出简洁的代码,同时也容易写出不报错的难易发现的bug。
以下是老师总结的一个减少奇奇怪怪的bug的tip:
不要用这种shape为(5,)(秩为1的数组)的数据结构,不然一些运算结果是很奇怪的
神经网络和深度学习第二周 神经网络基础_第22张图片
正确做法:使用矩阵,行向量或列向量
神经网络和深度学习第二周 神经网络基础_第23张图片
在这里插入图片描述确保这是一个矩阵(列向量),这个函数代价很低,要常常使用。也不要害怕调用reshape函数,确保你的矩阵或向量是你需要的维度。

2.17 jupyter/Ipython notebook的快速指南
介绍作业

2.18(选修)logistic 损失函数的解释
神经网络和深度学习第二周 神经网络基础_第24张图片
神经网络和深度学习第二周 神经网络基础_第25张图片在这里插入图片描述
对这个概率求最大值也就是对其log求最大值:
最大似然估计:求出一组参数,使这个式子取最大值:
神经网络和深度学习第二周 神经网络基础_第26张图片

你可能感兴趣的:(神经网络和深度学习第二周 神经网络基础)