2.1二分类
这里的二分类就是给定输入向量X,经过模型对应输出1或者0。这里二分类模型用的是logistic模型。
2.2logistic回归
在逻辑回归中,我们的输出用sigmoid函数来表示,要么0要么1。
参见李航-第6章逻辑斯蒂回归与最大熵模型
2.3logistic回归损失函数
通过损失函数最小化,来找对应的w和b,即确定模型。
损失函数又叫做误差函数,用来衡量算法的运行情况。我们通过这个L称为的损失函数,来衡量预测输出值和实际值有多接近。
2.4梯度下降法
是用过梯度下降的方法来训练w和b,而梯度下降指的其实就是求偏导数。
2.5导数
2.6更多导数的例子
导数就是斜率。这里讲的导数都是比较简单的,大学学过高数的应该都没有问题。另外B站有个比较好微积分的教程,
参见微积分的本质
2.7计算图
2.8计算图的导数计算
2.9logistic回归中的梯度下降法
2.10 M个样本的梯度下降
m个样本的梯度下降计算的代码流程
J=0;dw1=0;dw2=0;db=0;
for i = 1 to m
z(i) = wx(i)+b;
a(i) = sigmoid(z(i));
J += -[y(i)log(a(i))+(1-y(i))log(1-a(i));
dz(i) = a(i)-y(i);
dw1 += x1(i)dz(i);
dw2 += x2(i)dz(i);
db += dz(i);
J/= m;
dw1/= m;
dw2/= m;
db/= m;
w=w-alpha*dw
b=b-alpha*db
下面的一些讲的主要是一些Python编程中的内容,如果自己有过了解的话,都是十分基础的东西。
2.11 向量化
2.12 向量化的更多例子
记住尽量避免for循环,因为for循环真的是太慢了。向量化具有更高的效率。
import numpy as np #导入numpy库
a = np.array([1,2,3,4]) #创建一个数据a
print(a)
[1 2 3 4]
# 向量化来计算运算和用for循环的对比如下:
import time #导入时间库
a = np.random.rand(1000000)
b = np.random.rand(1000000) #通过round随机得到两个一百万维度的数组
tic = time.time() #现在测量一下当前时间
#向量化的版本
c = np.dot(a,b)
toc = time.time()
print(c)
print("Vectorized version:" + str(1000*(toc-tic)) +"ms")
c = 0
tic = time.time()
for i in range(1000000):
c += a[i]*b[i]
toc = time.time()
print(c)
print("For loop:"+ str(1000*(toc-tic)) + "ms")
250078.7175546896
Vectorized version:1.8308162689208984ms
250078.71755468933
For loop:444.06890869140625ms
2.13 向量化logistic回归
2.14向量化logistic回归的梯度输出
2.15 Python中的广播
# Python中的广播
import numpy as np
A = np.array([[56.0,0.0,4.4,68.0],
[1.2,104.0,52.0,8.0],
[1.8,135.0,99.0,0.9]])
A
array([[ 56. , 0. , 4.4, 68. ],
[ 1.2, 104. , 52. , 8. ],
[ 1.8, 135. , 99. , 0.9]])
cal = A.sum(axis = 0)
cal
array([ 59. , 239. , 155.4, 76.9])
percentage = 100*A / cal.reshape(1,4)
percentage
array([[94.91525424, 0. , 2.83140283, 88.42652796],
[ 2.03389831, 43.51464435, 33.46203346, 10.40312094],
[ 3.05084746, 56.48535565, 63.70656371, 1.17035111]])
2.16 关于Python/numpy 向量的说明
217 Jupyter / Ipython 笔记的快速指南
2.18 (选修)logistic损失函数的解释
一、学习安排(11月1日-11月3日)
1.主要学习视频:第二课:神经网络基础(神经网络和深度学习)
链接(https://mooc.study.163.com/smartSpec/detail/1001319001.htm?from=study)
2.参考书资料:
a.Various Deep Learning Topics
b.Week 2 slides
c.C1M1 slides
c.C1M2 slides(http://cs230.stanford.edu/syllabus.html)
二、作业上传事项
1.作业内容:
主要是总结所学习的视频和讲义内容
(提交形式,是以“汇报”形式汇报给助教(李凯旋),对于作业敷衍的直接视为下车)
2.作业提交日期
作业规定在11月3日24点之前,大家把握好时间,且11月4日晚上,助教会公布没有交作业者并令其下车;
@所有人