머신러닝

[딥러닝] 딥러닝 1단계: 신경망과 딥러닝 - 3. 파이썬과 벡터화 (1/2)

sa_woll 2024. 3. 18. 18:51

https://www.boostcourse.org/ai215/lecture/355363

 

딥러닝 1단계: 신경망과 딥러닝

부스트코스 무료 강의

www.boostcourse.org

 

벡터화

- 중요한 기술

- 행렬연산을 이용하여 많은 feature들, 인풋값(훈련 세트)들에 대한 연산 시간을 줄인다.

- 벡터화된 연산은 그렇지 않은 연산에 비해 300배 빠르다.

 

더 많은 벡터화 예제

- for문의 사용을 줄이고, 내장 함수를 사용한다. 

- feature의 개수인 n_x을 차원으로 가지는 벡터 w를 만든다. -> 각각의 feature에 대한 for문을 없앤다.

- 아직 훈련 세트에 대한 for문은 잔존

 

로지스틱 회귀의 벡터화

- 훈련 세트에 대한 for문 또한 없앨 수 있다.

** 파이썬 브로드캐스팅: ex) (1,m)차원의 벡터에 어떤 자연수 상수 b를 더하면 자동으로 b를 (1,1)의 수가 아닌 (1,m)의 b로 초기화된 행렬이라 취급하여 더해준다.

- 한 것: z를 1부터 m(데이터의 총 개수)까지 한꺼번에 (Z) 구하는 것.

-> m개의 훈련 샘플을 동시에 정방향 전파하는( ouput값을 구하는) 벡터화된 구현!

 

로지스틱 회귀의 경사 계산을 벡터화하기

- 좌: 벡터화 전 우: 벡터화 후

 

-> 로지스틱 회귀 경사하강법의 한 단계. (모든 데이터셋을 순회)