Python and Vectorization
๋ฒกํฐํ, ํ๋ ฌ๋ก ํ๋ฒ์ ํํ ๊ฐ๋ฅ
๋ฒกํฐํ๋ ํํ ์ฝ๋ (๋น ๋ฅด๋ค)
for loop๊ฐ ํจ์ฌ ๋๋ฆฌ๋ค
More Vectorization Examples
์ฐ์ธก๊ณผ ๊ฐ์ด .dot์ผ๋ก ๋ฒกํฐํํ์ฌ ํ๊ธฐํ์
numpy built in func์ ํ์ฉํ์
for loop๋ฅผ ์ ๊ฑฐํด๋ณด์!
์์ ๊ฐ์ฅ ํฐ for loop ํ๋๋ง ๋จ๊ฒจ๋๊ณ , ์ญ์ ๊ฐ๋ฅ (๋ด๋ถ loop๋ฌธ์ ์ ๊ฑฐํ์)
Vectorizing Logistic Regression
ํ์ด์ฌ์ผ๋ก๋ dot ํ ์ค๋ก ๊ตฌํ ๊ฐ๋ฅ (b๋ฅผ ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํ์ฌ ๋ํ๋ค = ๋ธ๋ก๋์บ์คํ
)
stacking horizontally
X์ ์ฐจ์์ (nx, m)
nx dim vector๊ฐ m(sample)๊ฐ ์๋ค! :)
์๋ํ๋ฉด x ๋ฐ์ดํฐ 1๊ฐ๋ฅผ ์ด๋ฒกํฐ๋ก, ์ธ๋ก๋ก stacking ํ์ผ๋ฏ๋ก, ์ธ๋ก ๋ฐฉํฅ์ผ๋ก๋ ์ฑ๋ถ๋ค (dim), ๊ฐ๋ก ๋ฐฉํฅ์ผ๋ก๋ m๊ฐ์ ์ํ๋ค์ด ์งํ
Vectorizing Logistic Regression's Gradient Output
Z(error vector)๋ฅผ ๋ค์๊ณผ ๊ฐ์ด for loop๋ก ๋๋ ค์ ๊ตฌํ ์ ์๋ค. (๋ค ๋ํ๊ณ m์ผ๋ก ๋๋๋ค)
ํ๋ฒ์ ํํํ๋ ๋ฐฉ๋ฒ (๋ณด๋ผ์)
gradient descent๋ฅผ ๋ฒกํฐํํ์ฌ ๊ตฌํํ๊ธฐ (์ฐ์ธก)
๋ฒกํฐํ ํ๋๋ผ๋, iteration loop๋ ํญ์ ํ์ํ๋ค.
Broadcasting in Python
๊ฐ ์์ 100g ์ ๊ตฌ์ฑ์ฑ๋ถ์ ํตํด ์นผ๋ก๋ฆฌ๋ฅผ ๊ณ์ฐํ์
Can you do this without explicit for-loop?
๋ถ์กฑํ ์ฐจ์์, ๋ฐ๋ณตํด์ m,n์ผ๋ก ์ฑ์์ค๋ค
๋ ๊ถ๊ธํ๋ค๋ฉด numpy ๋ฌธ์๋ฅผ ์ฝ์ด๋ณด๋ผ์
A Note on Python/Numpy Vectors
5, ์ด๋ ๊ฒ ์ฐ์ง ๋ง์๋ผ
์ด๋ ๊ฒ 2์ฐจ์ ๋ฒกํฐ์ฒ๋ผ ํํ๋๋๋ก ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์
randn ์ฐ์ง ๋ง๊ธฐ + reshape ํ์ฉํด์ double check
Quick tour of Jupyter/iPython Notebooks
์ฃผํผํฐ ๋
ธํธ๋ถ ์คํ์ ๋ํ ๊ฐ๊ฒฐํ ์ฌ์ฉ ๋ฐฉ๋ฒ ์ค๋ช
Explanation of Logistic Regression Cost Function (Optional)
์ ์ด๋ฌํ ํํ๊ฐ ๋๋๊ฐ์ ๋ํ ์ค๋ช
cost func์ ๋ํ ์ค๋ช
, Log๋ฅผ ์ทจํ์ฌ ํฉ์ ๋ฌธ์ ๋ก ๋ณํ