아래 내용은 앤드류 융 교수의 강좌를 요약했다.
https://www.youtube.com/watch?v=qsIrQi0fzbY
w, x가 둘 다 n차원의 열벡터일 때, 이를 로지스틱 회귀를 한다고 하자.
이를 벡터화 없이 계산을 한다는 것은 w의 n개의 element와 x의 n개의 element를 모두 일일히 더한다는 것이다.
z = 0
for i in range(n):
z += w[i] * x[i]
z += b
그리고 이걸 벡터화해서 계산한다는 것은 병렬적으로 연산을 한다는 뜻이다. 넘파이의 벡터화 명령어를 np.dot(w, x)를 표현해서 쓰면
z = np.dot(w, x) + b
이다. 이 경우, 단순히 식이 간결해지는 차원이 아니라, 실제 연산이 훨씬 빨라진다. 대규모 데이터를 처리할 때 for문을 가능한 줄이고 이렇게 벡터로서 연산을 하는 게 중요하다.