numpy
[TIL] 210401 - Deep LearniNg (~C1W2L18)
이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W2L18 까지의 내용을 정리한 것이다. NumPy를 사용할 때 주의할 점과 문제를 예방하는 법을 알아보았다. 그리고 로지스틱 회귀의 비용함수가 유도되는 과정을 공부하였다. 내용 요약 파이썬과 NumPy 벡터 NumPy를 이용해서 벡터를 만들 때 흔히 실수할 수 있는 예시를 들었다. 크기가 5인 정규분포를 가지는 벡터를 만들려면 아래와 같이 입력한다. >>> a = np.random.randn(5) >>> print(a) [ 0.68386802 0.36410561 -0.67967483 -0.83958757 -2.05102972] 언뜻 보면 (1, 5) 크기의 행렬 같지만 그렇지 않다. >>> print(a.shape) (5,) 여기..
[TIL] 210331 - Deep LearniNg (~C1W2L15)
이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W2L15 까지의 내용을 정리한 것이다. 로지스틱 회귀의 경사 계산을 벡터화해보고 NumPy의 브로드캐스팅 원리를 파악한다. 내용 요약 로지스틱 회귀의 경사 계산을 벡터화 하기 이전에 for 문을 이용한 경사 계산 pseudo 코드를 아래와 같이 적었었다. J = 0 dw_1 = 0 dw_2 = 0 b = 0 for i = 1 to m: z[i] = w_t * x[i] + b a[i] = sigmoid(z[i]) J += -(y_1 * log(a[i]) + (1 - y[i]) * log(1 - a[i])) dz[i] = a[i] - y[i] # 이곳에 for문 들어가게됨 dw_1 += x_1[i] * dz[i] dw_2 += x_2..
[TIL] 210330 - Deep LearniNg (~C1W2L13)
이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W2L13 까지의 내용을 정리한 것이다. 벡터화가 무엇이고 어떻게 사용하는지 살펴본다. 내용 요약 벡터화 (Vectorization) 순차적으로 계산하는 것보다 동시에 분산해서 처리하는 것이 훨씬 빠른 결과를 낼 수 있다. 예시로든 코드를 직접 실행해보니 for 문은 약 600ms, 벡터화를 사용한 코드는 약 2ms의 시간이 걸렸다. 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("Vectorized ve..