안녕하세요, HELLO
오늘은 DeepLearning.AI에서 진행하는 앤드류 응(Andrew Ng) 교수님의 딥러닝 전문화의 첫 번째 과정인 "Neural Networks and Deep Learning"을 정리하려고 합니다. "Neural Networks and Deep Learning"의 강의 목적은 '딥러닝의 기능, 과제 및 결과 이해'를 통해 '머신 러닝을 업무에 적용하고, 기술 수준을 높이고, AI 분야에서 단계를 밟을 수 있는 지식과 기술을 얻을 수 있는 경로'를 배우기 위함이며, 강의는 아래와 같이 구성되어 있습니다.
~ Introduction
~ Basics of Neural Network programming
~ One hidden layer of Neural Networks
~ Deep Neural Networks
"Neural Networks and Deep Learning" (Andrew Ng)의 4주차 "Deep Neural Networks"의 강의 내용입니다.
CHAPTER 1. 'Deep L-layer Neural network'
CHAPTER 2. 'Building blocks of deep neural networks'
CHAPTER 3. 'Hyperparameters and parameters'
CHAPTER 1. 'Deep L-layer Neural network'
□ Shallow neural network and Deep neural network
Deep Learning, Deep Neural Network(DNN)을 알아보기 위해서 장표를 살펴보겠습니다.
왼쪽 위는 Logistic Regression이고 오른쪽 위는 1개의 Hidden Layer로 이루어진 신경망입니다. 이렇게 은닉층이 1개 내지는 0개인 모델을 'Shallow' 모델이라고 표현합니다. 반면에 아래와 같이 2개 그리고 5개의 Hidden Layer로 이루어진 신경망을 'Deep' 모델이라고 표현합니다. shallow model과 deep modeldml 차이는 은닉층(Hidden Layer)의 개수 차이입니다.
□ Deep Neural Network Notation
은닉층 3개로 구성된 4개 층(layer) 신경망에 대해 아래와 같이 표기합니다.
이때, 입력층은 0번째 층(layer)으로 입력 X는 a[0]으로 나타내며, 예측값인 출력 ŷ는 a[L]로 표시할 수 있습니다.
□ Forward Propagation in a DNN
은닉층 3개로 구성된 4개 층(layer) 신경망에 대해서 순방향 전파(Forward propagation)를 진행해보겠습니다.
각 층에서 진행되는 연산을 일반화하면 아래와 같습니다.
그리고 training example에 대해 벡터화하면 아래와 같이 정리됩니다.
1개 층 내에서 for-loop 반복문을 대신하여 벡터화하여 연산하였지만, 다음 층으로 연산이 진행될 때는 반복문을 써야 됩니다. 순방향 전파를 수행할 때는 각 층(layer)에 대해서는 반복문을 수행해야 하며, 각 층의 행렬의 차원을 주의해야 합니다.
□ Getting Matrix Dimension Right
신경망 훈련을 진행할 때, 각 파라미터에 대한 행렬 차원을 유의해야 합니다.
Deep neural network에서 파라미터 가중치(w)와 잔차(b)의 행렬 차원은 아래와 같습니다. 파라미터 각각의 미분항은 파라미터의 행렬 차원과 동일합니다.
그리고 training example에 대해 벡터화하여 연산을 하면 아래와 같이 됩니다.
이를 일반화하면 아래와 같이 정리됩니다.
추가적으로 개별 층에서의 연산과 다음 층으로의 연산이 계속해서 이뤄지기에, 행렬 차원을 잘 못 입력할 수 있습니다. 이를 방지하기 위해 종이에 작성하면서 정리하면 오류를 줄일 수 있습니다.
CHAPTER 2. 'Building blocks of deep neural networks'
□ Forward and backward functions
순방향 전파(Forward propagation)에서 연산된 결과 z = wa + b와 a =g(z(x))에서 a는 다음 층(layer)의 연산에 활용되며, z는 역방향 전파(Backward propagation)의 연산에서 활용됩니다.
이때 "캐시(cache)"는 순방향 전파 단위의 값을 기록하고 도함수를 계산하는 데 필요하기 때문에 이를 역방향 전파 단위로 보내게 됩니다. 이를 요약하면 아래와 같은 프로세스로 진행됩니다.
위 내용을 토대로 전체 Deep neural network 과정을 정리하면 아래와 같습니다.
CHAPTER 3. 'Hyperparameters and parameters'
□ Parameters
머신러닝 모델에서 파라미터는 가중치 W와 잔차 b입니다. 그리고 알고리즘에서 우리가 설정해주어야 하는 값이 있는데, Learning Rate인 α(alpha)와 같은 값이 있으며, 알고리즘에서 연산 횟수인 iteration, Hidden Layer, activation function 등이 해당됩니다. 파라미터 이외의 주요 항목들은 최종적으로 머신러닝 모델의 파라미터 W와 b를 조절하기 때문에 이를 Hyperparameter라고 정리합니다.
한 번의 하이퍼 파라미터의 설정을 통해 최적의 값을 구하기는 어렵습니다. 그래서 하이퍼 파라미터를 조정하여 여러 값들을 비교해서 최적의 값을 찾아야 합니다. 그래서 딥러닝 훈련 과정은 경험적 프로세스(empirical process)를 진행하면서 최적 값을 찾아간다고 보시면 됩니다.
■ 마무리
"Neural Networks and Deep Learning" (Andrew Ng)의 4주차 "Deep Neural Networks"에 대해서 정리해봤습니다.
그럼 오늘 하루도 즐거운 나날 되길 기도하겠습니다
좋아요와 댓글 부탁드립니다 :)
감사합니다.
'COURSERA' 카테고리의 다른 글
week 4_Building your Deep Neural Network Step by Step 실습 (Andrew Ng) (0) | 2022.02.13 |
---|---|
week 4_Deep Neural Networks 연습문제 (Andrew Ng) (0) | 2022.02.13 |
week 3_Planar data classification with a hidden layer 실습 (Andrew Ng) (0) | 2022.02.10 |
week 3_얕은 신경망(Shallow, One hidden layer Neural Networks) 연습문제 (Andrew Ng) (0) | 2022.02.10 |
week 3_One hidden layer Neural Networks (Andrew Ng) (0) | 2022.02.09 |
댓글