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

[인공지능 강의 리뷰] 15 - 뉴럴 네트워크 And 벡터화 표현

파요요요 2022. 5. 17. 15:43
신경망(뉴럴 네트워크) 개요

이번 시간에는 신경망(Neural Networks)을 구현하기에 앞서서,

신경망(Neural Networks)의 전체적인 개요부터 알아보겠습니다.

저번 주의 내용과 많이 겹쳐서, 겹치는 부분은 간략하게 하고 넘어가겠습니다!


뉴럴 네트워크란? ( =신경망)

학습 데이터가 입력되는 층인 "입력층(Input Layer)"

결과(예측치)의 값이 산출되는 "출력층(Output Layer)"

입력층과 출력층 사이의 층을 의미하는 "은닉층(Hidden Layer)"

신경망(Neural Network)은 위의 3가지의 층으로 구성됩니다.

위의 자료에서는, X1 , X2 , X3는 입력층 , Y-hat은 출력층을 의미합니다.

수학적으로 표현할 할 때,

입력 측을 [0]으로, 2번째 층부터 [1]로 표현합니다.

신경망 학습 과정

각 층에 해당하는 변수들을 표현할 때에도,

변수들 위에 [ ]를 붙여서, 각 층에 해당하는 변수들(z, w, b, a)을나타내 줍니다.

이와 반대로,

역전파 과정을 통해서 구한 도함수 값들은 끝에서부터 시작하여 나타냅니다. ex) dz [1] , dz [2]


뉴럴 네트워크 표현

이어서, 더 많은 신경망 표현 방법들을 알아보겠습니다.

 

뉴럴 네트워크(신경망) 표현 알아보기

위의 하얀 동그라미를 퍼셉트론(Perceptron) 또는 뉴런(Neuron)이라고 부르겠습니다.

--> 저는 퍼셉트론(perceptron)으로 통일하겠습니다!

a [0]는 입력값 X를 나타내고,

a [1]는 1번째 층의 결괏값 ( 시그 로이드 함수의 값)을 나타내고,

a [2]는 Y-hat (예측치)를 나타냅니다.

각각의 층의 맨 위 퍼셉트론부터 ~ 맨 아래의 퍼셉트론까지,

순서대로a [1]1 , a [1]2 , a [1]3 , a [1]4라고 표현하겠습니다.

즉,  (4 * 1 행렬) a [1] = ( a [1]1 , a [1]2 , a [1]3 , a [1]4 ) 이런 식으로 구성되는 것이죠.

반응형

뉴럴 네트워크(=신경망) 의 결과 값 산출하기

신경망의 결과가 산출되는 과정을 보면서, 위의 표현들이 어떻게 쓰이는지 봅시다.

 

뉴럴 네트워크 학습과정 이해하기

--> 위의 과정을 좀 더 구체화해보겠습니다.

뉴럴 네트워크 학습과정 이해하기

위와 같이, 퍼셉트론 하나하나 계산해 주는 과정을 거쳐서 결과를 산출해냅니다.

이 과정을 벡터화 과정(Vectorizing)을 통해서, 아래의 자료의 형태로 표현할 수 있습니다.


신경망 학습과정 이해하기

i 번째 층이라고 가정하면,Z [i] = W [i]. T * X [i] + b [i]로 표현할 수 있습니다.

또한,   각각의 행렬의 차원 수를 알아보면,

W [1]의 차원 수는 4( 1층의 퍼셉트론의 수)* 3( 훈련 데이터 x의 수)

b의 차원 수는 4(1층의 퍼셉트론의 수) * 1 ( 편향 b는 퍼셉트론 하나당 1개이므로)로 표현됩니다.

신경망 학습과정 이해하기

마찬가지로, 다른 변수들의 차원 수도 살펴보겠습니다.

--->    행렬의 곱에서, 차원 수가 브로드캐스팅(BroadCasting)을 통해서 변한다는 걸 명심해 주시길 바랍니다.


벡터화 구현 설명

벡터화 구현에 대해 잠깐 알아보겠습니다.

참고*

--> 벡터화(Vectorizing)를 하는 이유는, 프로그래밍 과정에서 비 효율적인 계산을 하는 for 구문을 안 써서 알고리즘 성능을 향상하기 위해서라고 지난주에 배웠습니다.


위 그림을 보면서 , W [1] * X 행렬을 나타낸 부분을 살펴봅시다.

 

행렬의 열은 입력 데이터 x의 갯 수를 나타내고 ,

행렬의 행은 입력데이터 x의 차원 수 m을 나타냅니다. -->x는 m * 1 벡터(=행렬) 입니다.

다시 여기에 , b [1]만 더해주면 z[1] 벡터(=행렬)이 만들어 지는 것이죠.

 

대략적으로 벡터화가 어떤 식으로 쓰이고 활용되는지 알아봤으니 ,

다음 시간에는 , 활성화 함수에 대해 조금 구체적으로 알아보겠습니다.


이 내용들은 모두 coursera에서 앤드루 응 교수님의 강의를 요약정리 및 쉽게 재 풀이하여 적은 글이며,

내용에는 생략되거나 변형된 부분이 많으니 직접 강의를 들어보시는 걸 추천드립니다!

이 글은 상업적 목적이 아닌, 한국에서 인공지능을 배우고 싶은 분들을 위해 적은 교육적 목적에서 작성하였습니다.

반응형