Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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
Tags
more
Archives
Today
Total
관리 메뉴

RECORD AI

Vectorization Logistic Regression 본문

Deep Learning/basic Neural Networks

Vectorization Logistic Regression

SC_LEE 2022. 12. 22. 17:12
반응형

Vectorization Logistic Regression

로지스틱 회귀를 vectorization하여 경사 하강법의 반복문에서 for 구문을 하나도 쓰지 않고 구현


Forward propagation

한 스텝씩 알아보자.


1. Training샘플 예측하기

  • 트래이닝샘플 예측방법
  1. z값 계산
  2. a 활성값 계산

위의 공식은 m개의 트래이닝샘플이 있을경우 첫번째,두번째,세번째 샘플을 예측하고,
m개의 트래이닝샘플이 있다면 이것을 m번까지 해야한다.


2.for 문 없이 계산하는 방법

정방향 전파(forward propagation)는 m개의 훈련 샘플에 대해 예측 값을 계산하지만
이제 for 문 없이 계산하는 방법을 사용 할 것이다.


2-1 첫번째단계

싱글 트레이닝 데이터를 수평로 쌓은 X행렬

  • X가 (nx, m)차원 행렬이라는 것을 보여준다
  • (nx,m)차원은 이유는 nx차원의 싱글트래이닝데이터가 m개 있기 때문이다

2-2 두번째단계

$z^{(1)}, z^{(2)}, ...,z^{(m)}을 한줄의 코드로 계산한다$

  1. $z^{(1)}, z^{(2)},.., z^{(m)}$ 까지 한번에 계산
  2. $z^{(1)}, z^{(2)},..., z^{(m)}$의 (1,m)행렬을 $w^TX$와 b로 이루어진 벡터의 합으로 표현 할 수 있다.
  • b로 이루어진 것은 (1,m)벡터 또는 (1,m)행렬이며 m차원 행 벡터이다
  • b로 이루어진 행 벡터를 더하면 각 요소에 b를 더하게 되어, (1,m)벡터를 얻게 된다
  1. $w^T$와 전체트래이닝X와의 dot연산이다
  2. $w^Tx^{(1)}, w^Tx^{(2)}, w^Tx^{(m)}$ m까지의 행벡터이다
  • $z^{(1)}, z^{(2)}$ 각각의 정의에 일치한다
  1. 싱글 트레이닝 데이터 z들을 가로로 쌓은 것을 전체 트레이닝데이터 Z 라고 정의하고,
    np.dot는 Numpy함수이다.
  • b는 단일의 실수

브로드캐스팅

\begin{pmatrix}
b &b & \cdots & b\
\end{pmatrix}

  • 이 벡터와 이 실수를 더한다면 파이썬은 실수 b를 자동으로 (1,m)행 벡터로 바꾼다

세번째단계

a(예측 값) 구하는 방법

$A = \begin{pmatrix} a^{(1)} &a^{(2)} & \cdots & a^{(m)}\ \end{pmatrix} = σ({z^{(2)}})$

  • 싱글데이터 x와 z를 가로로 쌓아서 전체 데이터를 얻은 방식과 동일 하게
    A또한 $a^{(1)}, a^{(2)}, a^{(m)}$를 가로로 쌓아 동시에 계산한다
  • A는 각각의 싱글트래닝데이터의 로지스틱회귀 예측값을 가지는 벡터

요약

싱글트래닝데이터의 $z$와 $a$를 계산하기 위해 $m$개의 훈련 샘플을 순환하는 대신
대문자 $Z$ 의 한줄 코드로 모든 $z$를 동시에 계산하고,
적절한 $σ$(시그모이드함수)의 구현으로 한줄의 코드로 모든 $a$를 동시에 계산 할 수 있다.

($m$개의 훈련샘플을 동시에 정방향 전파하는 벡터화를 구현 할 수 있다.)



참조 1

반응형

'Deep Learning > basic Neural Networks' 카테고리의 다른 글

Neural Network Representation  (0) 2022.12.26
Neural Network Overview  (0) 2022.12.26
Logistic Regression Gradient descent  (0) 2022.12.22
more examples of Vectorization  (0) 2022.12.22
Vectorization (벡터화)  (0) 2022.12.22
Comments