티스토리 뷰
[DL 딥러닝] Andrew Ng - Neural Networks and Deep Learning 강의 (1-3 파이썬과 벡터화) (2) 로지스틱회귀의 벡터화
Life4AI 2024. 8. 20. 16:32이번에는 로지스틱 회귀를 벡터화하여 전체 훈련 세트에 대한 경사하강법의 반복문에서
for문을 사용하지 않고 구현하는 방법에 대해서 알아보자.
m개의 훈련 샘플이 있을 때, 훈련샘플들을 예측하려면 아래 값들을 계산해야 한다.
즉, m개의 훈련 샘플이 있으니, for문을 이용해 i의 값을 m까지 변화시키며 계산해야 한다.
하지만 계산의 효율성을 증가시키기 위해 벡터를 이용하면 다음과 같이 계산할 수 있다.
위의 코드에서 (1,m) 크기의 행렬과 상수 b를 더하기에 오류가 날 것 같지만, 파이썬이 자동적으로 상수를 (1,m) 크기의 행렬로 브로드캐스팅 해주기에 오류가 발생하지 않습니다.
이제, 벡터화를 통해 m개의 전체 훈련 샘플에 대한 경사 계산을 해보겠습니다.
우리는 이전에 공부하면서, 경사를 \( dz(i)=a(i)−y(i) \)를통해 계산할 수 있음을 배웠다.
dw와 db를 위와 같이 벡터화할 수 있다.
다음은 벡터화하지 않은 비효율적인 구현이다.
가장 먼저, 초록색 for 문을 \( dw += x^{(i)} * dz^{(i)}\)로 바꿔 없앴다.
그 다음에는 for i=1 to m을 벡터를 사용한다면 다음과 같이 계산할 수 있다.
정방향, 역방향 전파를 했고,
m개의 모든 훈련 샘플에 대해 예측값과 도함수도 계산했다.
그럼 경사하강법 갱신은 다음과 같이 된다.
그럼 이로써 경사하강법을 1번 수행한 것이다. for문을 사용하지 않고 벡터를 이용해서!!
가능한 한 for문을 제거해야 한다고 말했지만,
경사하강법을 여러번 반복하고 싶다면, 반복 횟수에 따라 for문이 필요하다.
'Coursera 강의 > Deep Learning Specialization' 카테고리의 다른 글
- Total
- Today
- Yesterday
- numpy 배열 속성
- 경사하강법
- *
- 백준
- baekjoon
- computation graph
- 강의노트 정리
- action value function
- 비용함수
- 손실함수
- Sort
- policy function
- numpy 배열 생성
- python
- 숏코딩
- adrew ng 머신러닝 강의
- NumPy
- 강화학습
- **kwargs
- *args
- 앤드류응
- omp: error #15
- Andrew Ng
- 파이썬
- **
- 로지스틱 회귀
- state value function
- 딥러닝
- 11870
- sorted
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |