코세라 앤드류 응 AI 강의 리뷰

[인공지능 강의 리뷰] 22 - 딥러닝에서 행렬의 크기 알아보기(Getting your matrix dimensions right)

파요요요 2022. 6. 1. 18:28

코세라 앤드류 응 교수님의 딥러닝 1번째 코스, 신경망 및 딥러닝 코스의 4주 차 강의 내용 리뷰입니다.

뉴럴 네트워크(Neural Network)에서의 행렬의 크기(Matrix dimensions)에 대해 알아보겠습니다.

뉴럴 네트워크(Neural Network)

 


코세라 앤드류 응 교수님의 수업 자료 내용 발췌

저번 시간에 보았던,  딥러닝의 순전파 학습에서의 계산과정입니다

.

저번 시간에는 각 변수들이 어떤 의미를 지녔는지 간략하게 살펴보았다면,

이번에는 변수들의 행렬 크기 ( = 차원 수)를 알아보겠습니다.

 

하나하나 뜯어보며, 변수들이 어떤 크기를 가졌는지 살펴봅시다.

 

변수들의 차원 수(=행렬의 크기)

일단 노란색으로 칠해진 첫 부분부터 살펴보겠습니다.

 

이 과정에서 이루어진 계산은, Z[i] = W [i] * X + b입니다.

 

 1층의 퍼셉트론의 수가 3개 이고,  입력 데이터 X1, X2가 2개이기 때문에, 

가중치  W의 차원 수는  3 (1층의 퍼셉트론의 수) * 2 (0층의 퍼셉트론의 수)입니다.

(행렬의 크기와 차원 수는 같은 말입니다! )

 

--->  0층은 입력 데이터의 종류를 의미합니다, 

그다음 층에서는 ( 2층의 퍼셉트론의 수) * (1층의 퍼셉트론의 수)가 됩니다.

 

이 문제에서는 데이터의 수를 1개라고 가정했기에,

X의 차원수는 2 (X1, X2)  * 1 ( 데이터의 수)입니다.

 

++ 2층에서의 계산에서는 , Xa [1]이 되기 때문에,  그때는 1층의 퍼셉트론의 수 * 데이터의 개수입니다.

 

편향 b는 퍼셉트론마다 가지는 고유의 값이기에,  3 (퍼셉트론의 수)* 1 (고정 값)입니다.

 

Z [i]는 W [i]와 X [i]의 행렬 곱셈 + b이기에,

행렬의 곱셈 원리에 따라서 3 * 1  즉, ( 1층의 퍼셉트론의 수)  * (입력 데이터의 개수)가 됩니다.

 

a [i]는 뜻하므로, a [i]의 차원 수는 Z [i]와 같습니다.

++ 행렬 b의 덧셈을 처리할 때는, 브로드 캐스팅(Broad Casting)이 사용되어 자동 연산됩니다.

 

---> 브로드 캐스팅(Broad Casting)에 대해서는 3주 차 시간에 배웠으니, 포스팅 참고하세요! 

 

1층의 퍼셉트론의 수는 3개였지만, 

이걸 다른 층에 대해서도 계산해야 하기에, 일반화해보겠습니다.

층을 i라 하고, 각 층의 퍼셉트론의 수를n [i]라고 해서 나타내면,

노란색 부분으로 표현됩니다.

 

변수들의 차원 수 일반화 하기

경사 하강법을 사용하기 위해서 필요한 매개변수 w , b도함수들의 차원 수도 마찬가지로 알 수 있습니다.

 

저희는 입력 데이터의 개수를 1개라고 가정하고, 위의 계산을 진행했지만,

 

실제 딥러닝에서의 입력 데이터의 수는 상당히 많습니다. 

 

입력 데이터의 수가 m 개라면, 차원 수는 어떠할지  알아보겠습니다.

 

입력 데이터가 m개일 때의 행렬의 크기

입력 데이터의 개수를 m 개라고 했기 때문에,

 

Z [i] , a [i]의 차원 수는  n [i] (입력되는 퍼셉트론의 수) * m (데이터의 수)로 표현됩니다.

 

또한, 도함수도 마찬가지로 바뀌게 됩니다.

*주의 :    실제 학습에서 업데이트돼가는 매개변수 W , b의 차원 수는  데이터의 수에 영향을 받지 않습니다.


이상으로, 딥러닝에서 쓰이는 변수들의 차원 수를 알아보았고,

다음 시간에는, 딥러닝이 왜 심층 표현인지를 알아보겠습니다! 

반응형