More Vectorization Examples
More Vectorization Examples
More Vectorization Examples
더 많은 벡터화 예제
로지스틱 회귀와 경사하강법에서의 벡터
위는 로지스틱 회귀에서의 비용함수의 의사코드이다.
위 코드에서는 특성의 개수(dw)를 2개(dw_1, dw_2)로 가정하였지만, 만약 특성의 개수가 늘어난다면, dw_1, dw_2에서 더 나아가 dw_3, …, dw_n이 될 것이다. 따라서 이 부분 또한 for문을 이용해 처리해야한다. 그렇게 되면 이중 for문을 사용하게 되므로 계산속도가 현저히 느려지게 된다.
그럼 이제 특성이 여러개라고 가정하고, 이중 for문인 환경에서 벡터를 적용해서 하나의 for문 구조로 바꿔보자!
위 이미지에서 m을 카운트하는 for문 1개, dw_1, dw_2 등의 특성을 카운트하는 for문해서 총 2개의 for문이 있다.
먼저 선언부분에 있는 dw1, dw2를 n_x 차원의 벡터인 dw를 생성해 하나로 통합할 수 있다.
그러면 자연스레 dw_1, dw_2와 같이 특성을 카운트해줬던 for문을 대신해서 오른쪽에 적혀있는 수식처럼 벡터 연산을 사용할 수 있다.
dw_1, dw_2를 m으로 나눠주던 아래쪽에 있는 수식 또한 dw /= m 으로 간단하게 변경할 수 있다.
결과적으로 두개였던 for문을 벡터연산을 통해 하나로 줄였다 !
This post is licensed under CC BY 4.0 by the author.




