[PYTHON] Deep Learning Specialization (Coursera) Selbststudienprotokoll (C1W2)

Einführung

Dies ist der Inhalt von Kurs 1, Woche 2 (C1W2) von Deep Learning Specialization.

(C1W2L01) Binary Classification

Inhalt

Impressionen

(C1W2L02) Logistic Regression

Inhalt

Impressionen

――Das Symbol ist sowohl hier als auch beim maschinellen Lernen unterschiedlich. Verwenden Sie nicht $ x_0 ^ {(i)} = 1 $. Fügen Sie den konstanten Term $ b $ nicht in $ w $ ein.

(C1W2L03) Logistic Regression Cost Function

Inhalt

(C1W2L04) Gradient Descent

Inhalt

(C1W2L05) Derivatives

Inhalt

Impressionen

――Da es sich um grundlegende Inhalte handelt, können Sie das Video 1,75 Mal ansehen.

(C1W2L06) More Derivatives Example

Inhalt

Impressionen

――Da es sich um grundlegende Inhalte handelt, können Sie das Video 1,75 Mal ansehen.

(C1W2L07) Computation Graph

Inhalt

-Wenn $ J (a, b, c) = 3 \ (a + bc ) $, zerlegen Sie als $ u = bc $, $ v = a + u $, $ J = 3v $ Illustrieren Sie, wie man berechnet

(C1W2L08) Derivatives With Computation Graph

Inhalt

(C1W2L09) Logistic Regression Gradient Descent

Inhalt

(C1W2L10) Gradient Descent on m Example

Inhalt

(C1W2L11) Vectorization

Inhalt

-Erläuterung des Konzepts der Vektorisierung am Beispiel von $ w ^ T x $ von $ z = w ^ T x + b $

Ich habe auch die Zeit mit der Schleifen- und Vektorberechnung verglichen.

vectorization.py


import numpy as np
import time

a = np.random.rand(1000000)
b = np.random.rand(1000000)

tic = time.time()
c = np.dot(a, b)
toc = time.time()

print(c)
print("Vectorization 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")

Das Ergebnis. Es gab einen Unterschied von weniger als 700 Mal, 12 ms für die Vektorisierung und 821 ms für die Schleife.

249840.57440415953
Vectorization version:12.021541595458984ms
249840.57440415237
for loop:821.0625648498535ms

(C1W2L12) More Vectorization Examples

Inhalt

example.py


import numpy as np

u = np.dot(A, v) #Produkt aus Matrix und Vektor

u = np.exp(v) #Lassen Sie exp auf jedes Element einwirken
u = np.log(v) #Machen Sie das Protokoll Element für Element
u = np.abs(v) #Abs für jedes Element(Absolutwert)Zu handeln
u = np.maximum(v, 0) #Elemente unter 0 sollten 0 sein
u = v ** 2 #Quadrat für jedes Element
u = 1/v #Invers für jedes Element

(C1W2L13) Vectorizing Logistics Regression

Inhalt

--Vektorisierung der Logistik-Regressionsberechnung

X = \left[x^{(1)} \ x^{(2)} \cdots \ x^{(m)}\right] \ (X \in \mathbb{R}^{n_x \times m}) \\
Z = \left[z^{(1)} \ z^{(2)} \cdots \ z^{(m)}\right] \ (Z \in \mathbb{R}^m ) \\
A = \left[a^{(1)} \ a^{(2)} \cdots \ a^{(m)}\right] \ (A \in \mathbb{R}^m ) \\
Z = w^T X + \left[b \ b \ \cdots b \right] \\
A = \mathrm{sigmoid}\left( Z \right) \ (\mathrm{sigmoid} \Implementieren Sie die Funktion ordnungsgemäß)

(C1W2L14) Vectorizing Logistics Regression's Gradient Computation

Inhalt

db = \frac{1}{m} \cdot \mathrm{np.sum}(Z) \\
dw = \frac{1}{m} \cdot X\ dZ^T

Impressionen

(C1W2L15) Broadcasting in Python

Inhalt

example.py


>>> import numpy as np
>>> a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
>>> b = np.array([100, 200, 300, 400])
>>> a + b
array([[101, 202, 303, 404],
       [105, 206, 307, 408]])

(C1W2L16) A Note on Python/numpy vectors

Inhalt

example.py


>>> import numpy as np
>>> a = np.random.rand(5) #Rang 1 Array
>>> print(a)
[0.4721318  0.73582028 0.78261299 0.25030022 0.69326545]
>>> print(a.T)
[0.4721318  0.73582028 0.78261299 0.25030022 0.69326545] #Die Anzeige ändert sich auch dann nicht, wenn Sie die Position wechseln
>>> print(np.dot(a, a.T)) #Ich berechne das innere Produkt, bin mir aber nicht sicher, ob ich das innere Produkt oder das äußere Produkt berechnen soll.
1.9200902050946715
>>>
>>> a = np.random.rand(5, 1) # (5, 1)Matrix
>>> print(a) #Zeilenvektor
[[0.78323543]
 [0.18639053]
 [0.45103025]
 [0.48060903]
 [0.93265189]]
>>> print(a.T)
[[0.78323543 0.18639053 0.45103025 0.48060903 0.93265189]] #Spaltenvektor nach der Landung
>>> print(np.dot(a, a.T)) #Berechnen Sie das Produkt aus Zeilenvektor und Spaltenvektor korrekt
[[0.61345774 0.14598767 0.35326287 0.37643002 0.73048601]
 [0.14598767 0.03474143 0.08406777 0.08958097 0.17383748]
 [0.35326287 0.08406777 0.20342829 0.21676921 0.42065422]
 [0.37643002 0.08958097 0.21676921 0.23098504 0.44824092]
 [0.73048601 0.17383748 0.42065422 0.44824092 0.86983955]]

Impressionen

――Das ist hier wichtig, weil ich bei maschinellem Lernen oft den Überblick über die Größe der Matrix verloren habe.

(C1W2L17) Quick tour of Jupyter/ipython notebooks

Inhalt

(C1W2L18) Explanation of Logistics Regression Cost Function (Optional)

Inhalt

Impressionen

Referenz

Recommended Posts

Deep Learning Specialization (Coursera) Selbststudienprotokoll (C3W1)
Deep Learning Specialization (Coursera) Selbststudienprotokoll (C1W3)
Deep Learning Specialization (Coursera) Selbststudienprotokoll (C4W3)
Deep Learning Specialization (Coursera) Selbststudienprotokoll (C1W4)
Deep Learning Specialization (Coursera) Selbststudienprotokoll (C2W1)
Deep Learning Specialization (Coursera) Selbststudienprotokoll (C1W2)
Deep Learning Specialization (Coursera) Selbststudienprotokoll (C3W2)
Deep Learning Specialization (Coursera) Selbststudienprotokoll (C2W2)
Deep Learning Specialization (Coursera) Selbststudienprotokoll (C4W1)
Deep Learning Specialization (Coursera) Selbststudienprotokoll (C2W3)
Deep Learning Specialization (Coursera) Selbststudienprotokoll (C4W2)
Lernaufzeichnung
Lernrekord Nr. 3
Lernrekord Nr. 1
Lernrekord Nr. 2
Tiefes Lernen
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 9) MultiLayerNet-Klasse
Deep Learning Memorandum
Starten Sie Deep Learning
Python Deep Learning
Deep Learning × Python
"Deep Learning from Grund" Memo zum Selbststudium (10) MultiLayerNet-Klasse
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 11) CNN
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 19) Datenerweiterung
Bisherige Lernbilanz
Erstes tiefes Lernen ~ Kampf ~
Python: Deep Learning-Praxis
Deep Learning / Aktivierungsfunktionen
Deep Learning von Grund auf neu
Lernrekord 4 (8. Tag)
Lernrekord 9 (13. Tag)
Lernrekord 3 (7. Tag)
Deep Learning 1 Übung des Deep Learning
Deep Learning / Cross Entropy
Lernrekord 5 (9. Tag)
Lernrekord 6 (10. Tag)
Erstes tiefes Lernen ~ Vorbereitung ~
Programmieren des Lernprotokolls 2. Tag
Erstes tiefes Lernen ~ Lösung ~
Lernrekord 8 (12. Tag)
[AI] Deep Metric Learning
Lernrekord 1 (4. Tag)
Lernrekord 7 (11. Tag)
Ich habe versucht, tief zu lernen
Python: Deep Learning Tuning
Lernrekord 2 (6. Tag)
Deep Learning Großtechnologie
Linux-Lernprotokoll ① Planen
Lernrekord 16 (20. Tag)
Lernrekord 22 (26. Tag)
Deep Learning / Softmax-Funktion
Selbststudien-Memo "Deep Learning from Grund" (Nr. 18) Eins! Miau! Grad-CAM!
Selbststudien-Memo "Deep Learning from Grund" (Nr. 15) TensorFlow-Anfänger-Tutorial