吴恩达深度学习-神经网络基础(神经网络和深度学习)

2.1二分类
这里的二分类就是给定输入向量X,经过模型对应输出1或者0。这里二分类模型用的是logistic模型。

2.2logistic回归
在逻辑回归中,我们的输出用sigmoid函数来表示,要么0要么1。
参见李航-第6章逻辑斯蒂回归与最大熵模型

2.3logistic回归损失函数
通过损失函数最小化,来找对应的w和b,即确定模型。


吴恩达深度学习-神经网络基础(神经网络和深度学习)_第1张图片
逻辑回归损失函数.png

损失函数又叫做误差函数,用来衡量算法的运行情况。我们通过这个L称为的损失函数,来衡量预测输出值和实际值有多接近。

2.4梯度下降法
是用过梯度下降的方法来训练w和b,而梯度下降指的其实就是求偏导数。

吴恩达深度学习-神经网络基础(神经网络和深度学习)_第2张图片
梯度下降法.png

2.5导数
2.6更多导数的例子

导数就是斜率。这里讲的导数都是比较简单的,大学学过高数的应该都没有问题。另外B站有个比较好微积分的教程,
参见微积分的本质

2.7计算图
2.8计算图的导数计算

2.9logistic回归中的梯度下降法
2.10 M个样本的梯度下降


吴恩达深度学习-神经网络基础(神经网络和深度学习)_第3张图片
logistic中的梯度下降.png

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日晚上,助教会公布没有交作业者并令其下车;
@所有人

你可能感兴趣的:(吴恩达深度学习-神经网络基础(神经网络和深度学习))