2.1二分類
這里的二分類就是給定輸入向量X,經(jīng)過(guò)模型對(duì)應(yīng)輸出1或者0蜗字。這里二分類模型用的是logistic模型打肝。
2.2logistic回歸
在邏輯回歸中脂新,我們的輸出用sigmoid函數(shù)來(lái)表示,要么0要么1粗梭。
參見(jiàn)李航-第6章邏輯斯蒂回歸與最大熵模型
2.3logistic回歸損失函數(shù)
通過(guò)損失函數(shù)最小化争便,來(lái)找對(duì)應(yīng)的w和b,即確定模型断医。
損失函數(shù)又叫做誤差函數(shù)滞乙,用來(lái)衡量算法的運(yùn)行情況。我們通過(guò)這個(gè)L稱為的損失函數(shù)鉴嗤,來(lái)衡量預(yù)測(cè)輸出值和實(shí)際值有多接近斩启。
2.4梯度下降法
是用過(guò)梯度下降的方法來(lái)訓(xùn)練w和b,而梯度下降指的其實(shí)就是求偏導(dǎo)數(shù)躬窜。
2.5導(dǎo)數(shù)
2.6更多導(dǎo)數(shù)的例子
導(dǎo)數(shù)就是斜率浇垦。這里講的導(dǎo)數(shù)都是比較簡(jiǎn)單的,大學(xué)學(xué)過(guò)高數(shù)的應(yīng)該都沒(méi)有問(wèn)題荣挨。另外B站有個(gè)比較好微積分的教程男韧,
參見(jiàn)微積分的本質(zhì)
2.7計(jì)算圖
2.8計(jì)算圖的導(dǎo)數(shù)計(jì)算
2.9logistic回歸中的梯度下降法
2.10 M個(gè)樣本的梯度下降
m個(gè)樣本的梯度下降計(jì)算的代碼流程
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編程中的內(nèi)容,如果自己有過(guò)了解的話默垄,都是十分基礎(chǔ)的東西此虑。
2.11 向量化
2.12 向量化的更多例子
記住盡量避免for循環(huán),因?yàn)閒or循環(huán)真的是太慢了口锭。向量化具有更高的效率朦前。
import numpy as np #導(dǎo)入numpy庫(kù)
a = np.array([1,2,3,4]) #創(chuàng)建一個(gè)數(shù)據(jù)a
print(a)
[1 2 3 4]
# 向量化來(lái)計(jì)算運(yùn)算和用for循環(huán)的對(duì)比如下:
import time #導(dǎo)入時(shí)間庫(kù)
a = np.random.rand(1000000)
b = np.random.rand(1000000) #通過(guò)round隨機(jī)得到兩個(gè)一百萬(wàn)維度的數(shù)組
tic = time.time() #現(xiàn)在測(cè)量一下當(dāng)前時(shí)間
#向量化的版本
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 關(guān)于Python/numpy 向量的說(shuō)明
217 Jupyter / Ipython 筆記的快速指南
2.18 (選修)logistic損失函數(shù)的解釋
一、學(xué)習(xí)安排(11月1日-11月3日)
1.主要學(xué)習(xí)視頻:第二課:神經(jīng)網(wǎng)絡(luò)基礎(chǔ)(神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí))
鏈接(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)
二鹃操、作業(yè)上傳事項(xiàng)
1.作業(yè)內(nèi)容:
主要是總結(jié)所學(xué)習(xí)的視頻和講義內(nèi)容
(提交形式韭寸,是以“匯報(bào)”形式匯報(bào)給助教(李凱旋),對(duì)于作業(yè)敷衍的直接視為下車)
2.作業(yè)提交日期
作業(yè)規(guī)定在11月3日24點(diǎn)之前荆隘,大家把握好時(shí)間恩伺,且11月4日晚上,助教會(huì)公布沒(méi)有交作業(yè)者并令其下車椰拒;
@所有人